Lisans UyumluluÄu ve Yeniden Lisanslama
yazan Richard StallmanEÄer iki ĂśzgĂźr programÄą tek bir program olarak birleĹtirmek veya birinden diÄerine kod aktarmak istiyorsanÄąz, bu durum lisanslarÄąnÄąn onlarÄą birleĹtirmeye izin verip vermediÄini veya birleĹtirmeyi engelleyip engellemediÄi sorusunu ortaya çĹkarÄąr.[1]
EÄer birleĹtirilecek programlar aynÄą lisansa sahipse, eÄer, neredeyse bĂźtĂźn ĂśzgĂźr lisanslarÄąn olduÄu gibi, akla uygun davranan bir lisanssa bir sorun yoktur.[2]
Peki iki lisans birbirinden farklÄąysa? Genel olarak eÄer farklÄą lisanslar altÄąndaki kodu, tĂźm lisanslarla uyumlu olacak Ĺekilde birleĹtirmenin bir yolu varsa, bu lisanslarÄąn uyumlu olduÄunu sĂśylĂźyoruz. Sonuç, sÄąklÄąkla, parçalarÄą çeĹitli uyumlu lisanslarÄąn altÄąnda olan bir programdÄąr, ancak bu her zaman olmaz. Bu tĂźr bir birleĹtirebilme veya birleĹtirememe, verili lisans kĂźmesinin bir niteliÄidir ve lisanslarÄą hangi sÄąrada sĂśylediÄinize baÄlÄą deÄildir. Lisans kĂźmesi ayrÄąca birleĹtirilen program için hangi lisansÄąn gerektiÄini de dĂźzenler.
LisanslarÄą ßç sÄąnÄąfa ayÄąrÄąyoruz: esnek (ayrÄąca “hoĹgorĂźlĂź” [permissive] veya “kolay lokma” [pushover]), ara ve copyleft. GevĹek bir lisansÄąn kodu Ăśzel mĂźlk bir yazÄąlÄąma koymaya mĂźdahale konusunda hiç bir Ĺey yapmaz. Copyleft bir lisans, programlardaki yeniden kullanÄąmlarÄąn aynÄą lisansa sahip olmasÄąnÄą gerektirerek, bunun ĂśnĂźne geçer. Ara lisans Ăśzel mĂźlk kod koymaya iliĹkin bazÄą koĹullar sunar ama bunun ĂśnĂźne geçmeye çalÄąĹmaz.
Genel olarak, esnek, hoĹgĂśrĂźlĂź lisanslar (deÄiĹtirilmiĹ BSD, X11, Expat, Apache, Python, vb.) birbiriyle uyumludur. ĂĂźnkĂź programa koyulan kodla ilgili bir gereksinimleri yoktur. Hatta bĂźtĂźn programÄąn (belki bazÄą deÄiĹikliklerle) bir Ăśzel mĂźlk yazÄąlÄąm ĂźrĂźnĂźne koyulmasÄąna da izin verirler; bu nedenle onlarÄą “kolay lokma lisanslar” olarak adlandÄąrÄąyoruz, çßnkĂź bir kullanÄącÄą diÄerlerinin ĂśzgĂźrlĂźÄĂźnĂź engellemeye çalÄąĹtÄąÄÄąnda “hayÄąr” diyemiyorlar.
Esnek lisanslar altÄąndaki programlarÄąn birleĹiminde, her bir kÄąsÄąm ilk baĹtaki lisanslarÄąnÄąn altÄąnda kalÄąr. Kod, parçalarÄąn birbirinden artÄąk ayÄąrt edilemeyecek Ĺekilde birleĹtiÄinde, bu birleĹtirilmiĹ kÄąsÄąm, oluĹturulmasÄą için birleĹtirilen tĂźm parçalarÄąn lisansÄąnÄąn kapsamÄąna girmelidir. Zaten tĂźm bu lisanslar esnek olduÄu için, bu durum, lisanslarÄąn oldukça uzamasÄą dÄąĹÄąnda herhangi bir pratik sorun yaratmaz.[3]
AynÄą nedenlerle, esnek lisanslar genellikle herhangi bir copyleft lisansla da uyumludur. BirleĹtirilmiĹ programda, esnek lisanslar altÄąnda gelen kÄąsÄąmlar yine aynÄą lisanslarÄąn altÄąnda kalÄąrken, birleĹtirilmiĹ program bir bĂźtĂźn olarak copyleft lisansÄąnÄą taĹÄąr. Bir esnek lisans olan Apache 2.0, patent ĹartlarÄąna sahip, bu da GPL sĂźrĂźm 2 ile uyumsuzdur; bu patent ĹartlarÄąnÄąn iyi olduÄunu dĂźĹĂźndĂźÄĂźm için, GPL sĂźrĂźm 3'Ăź onlarla uyumlu yaptÄąm.
Ănemli bir istisna, “rahatsÄąz edici tanÄątÄąm ĹartÄą” nedeniyle ĂśzgĂźn BSD lisansÄądÄąr. Bu koĹul, ĂśzgĂźn BSD lisansÄą altÄąnda yayÄąnlanan herhangi bir kodu içeren herhangi bir ĂźrĂźnĂźn tĂźm tanÄątÄąmÄąnÄą gerektiriyordu. Bu, tĂźm fiili copleft lisanslarÄąn hepsiyle uyumsuzdu ve hala uyumsuz. AyrÄąca her daÄÄątÄąm için tam bir karÄąn aÄrÄąsÄąydÄą, çßnkĂź programlar benzer ama farklÄą tanÄątÄąm gereksinimleri biriktiriyordu. Bir noktada BSD daÄÄątÄąmÄą 70 farklÄą bildirim gerektiriyordu.
Bu sorunu bir dekanÄą, Hal Varian'Äą Berkeley Ăniversitesi'ni “deÄiĹtirilmiĹ BSD lisansÄą” (tanÄątÄąm ĹartÄą olmadan) yayÄąnlamasÄąnÄą ve Berkeley Sistem DaÄÄątÄąmÄą kodlarÄąnÄą bu yeni lisans altÄąnda yeniden daÄÄątmasÄąnÄą ve yayÄąnlamasÄąnÄą saÄlamasÄą için ikna ederek bĂźyĂźk oranda ortadan kaldÄąrdÄąm. BugĂźnlerde ĂśzgĂźn BSD lisansÄą (neyse ki) çok nadir kullanÄąlÄąyor, ancak “BSD lisansÄą” hakkÄąnda konuĹmama konusunda Ăśzen gĂśstermeliyiz.
Genel olarak, iki farklÄą copyleft lisansÄą, açĹkça uyumluluk hĂźkĂźmleri yoksa kaçĹnÄąlmaz olarak uyumsuzdurlar. Bu ayrÄąntÄąlardaki bir hatanÄąn sonucu deÄildir; copyleft fikrinin doÄasÄą gereÄidir. Copyleft fikri “deÄiĹtirilmiĹ ve geniĹletilmiĹ sĂźrĂźmler aynÄą lisans altÄąnda olmalÄądÄąr” Ĺeklindedir. EÄer (P programÄąnÄą kapsayan) A lisansÄą geniĹletilmiĹ programlar A lisansÄą altÄąnda olmalÄądÄąr diyorsa ve (Q programÄąnÄą kapsayan) B lisansÄą geniĹletilmiĹ programlar B lisansÄą altÄąnda olmalÄądÄąr diyorsa, Ĺiddetli bir uzlaĹmazlÄąklarÄą var demektir; hem P'den hem de Q'dan kod içeren birleĹtirilmiĹ programÄąn lisansÄą hem A olmalÄądÄąr hem de B olmalÄądÄąr.
Bu nedenle GPL sĂźrĂźm 2, GPL sĂźrĂźm 3 ile uyumsuzdur; bu kaçĹnÄąlmazdÄąr. AynÄą Ĺekilde CC-BY-SA 4.0'Äąn koĹullarÄą da CC-BY-SA 3.0'Äąn koĹullarÄąyla doÄasÄą gereÄi uyumsuz olacaktÄąr, yazarlarÄą bundan kaçĹnamazlardÄą.
FarklÄą copyleft lisanslarÄąndan kaynaklanan uyumsuzluk sorunundan kaçĹnmak için iki yaklaĹÄąm var.
FSF, insanlardan programlarÄą “GNU GPL sĂźrĂźm N veya sonraki bir sĂźrĂźm” altÄąnda yayÄąnlamalarÄąnÄą isteme yaklaĹÄąmÄąnÄą kullanÄąyor. Bu lisanslama sĂźrĂźm N ve ayrÄąca sĂźrĂźm N+1 ile de uyumludur (çßnkĂź lisans N+1'i bir seçenek olarak sunuyor). “GPL 3 veya sonraki” altÄąndaki bir kodla, “GPL 2 veya sonraki” altÄąndaki bir kodu birleĹtirdiÄinizde, birleĹimin lisansÄą kesiĹimleri olur, bu da “GPL 3 veya sonraki” lisansÄądÄąr.
Umuyoruz ki hiç bir zaman bir GNU GPL sĂźrĂźm 4 yapmamÄąz gerekmez, ama hiç bir Ĺey mĂźkemmel deÄildir ve tĂźm sorunlarÄą ĂśngĂśrdĂźÄĂźmĂźzĂź varsayamayÄąz. Kodunuzu GNU GPL 3 veya sonrasÄą altÄąnda yayÄąnladÄąÄÄąnÄązda, kodunuzun, ileride ihtiyacÄąmÄąz olur da çĹkarÄąrsak, GNU GPL sĂźrĂźm 4'e yĂźkseltilmesine izin vermiĹ oluyorsunuz.
DiÄer yaklaĹÄąm lisansÄąn her bir sĂźrĂźmĂźn sonraki sĂźrĂźmlere yĂźkseltilmesine açĹkça izin verecek Ĺekilde tanÄąmlanmasÄądÄąr. Mozilla VakfÄą da, PHP de bu yaklaĹÄąmÄą kullanÄąr. Creative Commons, CC-BY-SA lisansÄą için bunu kullanÄąr: sĂźrĂźm 4.0 (mevcut sĂźrĂźm) herhangi bir kullanÄącÄąya deÄiĹtirilmiŠçalÄąĹmalar için CC-BY-SA'nÄąn sonraki sĂźrĂźmlerine yĂźkseltmesine açĹkça izin verir.
Sadece GNU lisanslarÄą yazarlara gelecekteki lisans sĂźrĂźmlerine izin verip vermeme seçeneÄini veriyor. 1989 yÄąlÄąnda GNU GPL'nin ilk sĂźrĂźmĂźnĂź yazdÄąÄÄąmda, CC lisanslarÄąnda Ĺu an mevcut olan lisans yĂźkseltme seçeneÄini koymayÄą deÄerlendirdim, ancak bu kararÄą her bir yazara bÄąrakmanÄąn daha doÄru olduÄunu dĂźĹĂźndĂźm. BĂśylece, bir yazar bir programÄą ister “sadece GPL 1” [GPL 1 only] isterse de “GPL 1 veya sonrasÄą” [GPL 1 or later] altÄąnda yayÄąnlayabilir.
O zamandan beri, bu kararÄąn bilgeliÄini sorgulamaya vardÄąm. Sadece tek bir GNU GPL sĂźrĂźmĂźne izin veren ve lisans yĂźkseltmesini reddeden Linux gibi programlar pratik uyumsuzluklar ortaya çĹkarÄąyorlar.[4] EÄer bir GPL sĂźrĂźm 4 yaparsak, belki de otomatik olarak 5 ve yukarÄąsÄą gibi daha bĂźyĂźk sĂźrĂźmlere yeniden lisanslamaya izin veren bir yĂźkseltme koĹulu eklemeliyiz.
BazÄą copyleft lisanslarÄą, kodu farklÄą bir copyleft lisansÄą altÄąna koymaya izin veren belirgin bir yeniden lisanslama ĹartÄąyla çapraz copyleft birleĹimlerine izin veriyor. ĂrneÄin, CeCILL, kodu GNU GPL sĂźrĂźm 2 veya sonraki sĂźrĂźmlerde yeniden lisanslamaya açĹkça izin veriyor. EÄer CeCILL altÄąndaki P programÄą varsa ve onu GPL sĂźrĂźm 3 veya sonraki altÄąndaki Q programÄąyla birleĹtirmek istiyorsanÄąz, CeCILL bunu yapabileceÄinizi ve birleĹimi veya eklenmiĹ kodu GPL sĂźrĂźm 3 veya sonrasÄą altÄąna koyabileceÄinizi sĂśylĂźyor.
AçĹk yeniden lisanslama izni, uyumluluk ile aynÄą Ĺey deÄildir (yine de kodun yeniden lisanslanmasÄą onu diÄer kodlarla uyumlu yapabilir) ve simetrik deÄildir. ĂrneÄin, CeCILL kodun GNU GPL altÄąnda yeniden lisanslanmasÄąna izin verirken, GNU GPL CeCILL altÄąnda yeniden lisanslanmaya izin vermez. Bu yĂźzden, bu iki P ve Q programlarÄąnÄą birleĹtirip, bu birleĹtirimi CeCILL altÄąnda daÄÄątamazsÄąnÄąz, çßnkĂź bu Q programÄąnda kullanÄąlan GPL'i ihlal eder. Bu birleĹtirilmiĹ programÄą yayÄąnlamanÄąn tek izin verilen yolu, onu uygun GPL sĂźrĂźm(leri) altÄąnda yayÄąnlamaktÄąr.
AynÄą Ĺekilde, CC BY-SA 4.0 açĹk bir Ĺekilde deÄiĹtirilmiĹ sĂźrĂźmlerin GNU GPL sĂźrĂźm 3 altÄąnda yeniden lisanslanmasÄąna izin verir, ancak GPL sĂźrĂźm 3 CC BY-SA altÄąnda yeniden lisanslanmaya izin vermez. YazÄąlÄąm kodu için bunun bir sorun oluĹturmamasÄą gerekir; Creative Commons lisanslarÄąnÄąn kod için olmadÄąÄÄąnÄą sĂśyler ve kod için kullanÄąlmasÄą gereken lisansÄąn GNU GPL olduÄunu sĂśyler. Ancak, CC BY-SA altÄąnda yayÄąnlanan malzemeyle, GNU GPL altÄąnda yayÄąnlanan malzemeyi birleĹtirmeniz gereken durumlara yol açan donanÄąm tasarÄąmlarÄą veya oyun sanat eserleri gibi baĹka tĂźr çalÄąĹmalar da var. Bu birleĹtirme CC BY-SA'nÄąn açĹk yeniden lisanslama izniyle yapÄąlabilir.
Maalesef, CC BY-SA 4.0 gelecekteki GPL sĂźrĂźmlerine yeniden lisanslamaya izin vermiyor. YapmanÄąz gereken, CC-BY-SA 4.0 altÄąndaki malzemenizi GPL altÄąnda yeniden lisanslarken, gelecekteki GPL sĂźrĂźmlerinin bu malzeme için geçerli olup olmadÄąÄÄąnÄą belirtmek için kendinizi bir lisans sĂźrĂźm vekili olarak tanÄąmlamanÄązdÄąr. EÄer bir gĂźn bir GPL sĂźrĂźm 4 olursa ve Creative Commons, CC BY-SA'dan GPL sĂźrĂźm 4'e yeniden lisanslamaya izin vermeye karar verirse, vekil olarak siz bu yeniden lisanslanmĹŠmalzemenin GPL sĂźrĂźm 4'te kullanÄąlmasÄąna geçmiĹe dĂśnĂźk olarak yetki verebileceksiniz. (Alternatif olarak, bu malzemenin yazarlarÄąndan bu izni hemen vermelerini isteyebilirsiniz.)
Normal GNU Genel Kamu LisansÄą ve GNU Affero Genel Kamu LisansÄą iki farklÄą copyleft lisansÄądÄąr, bu yĂźzden doÄal olarak uyumsuzdur. AralarÄąnda Ăśzel tĂźrde bir açĹk uyumluluk oluĹturduk: GNU GPL sĂźrĂźm 3 altÄąndaki kodu, diÄer kaynak kodla birlikte GNU Affero GPL altÄąnda tek bir birleĹmiĹ program olarak içerebilirsiniz. Buna izin verilmesinin nedeni bu lisanslarda bunun açĹkça sĂśylenmiĹ olmasÄądÄąr ve bunun etkisi GNU AGPL'nin birleĹtirilmiĹ programa uygulanabilmesidir. Ancak, GNU GPL (“veya sonrasÄą” olsun olmasÄąn) altÄąndaki kodu basitçe GNU Affero GPL altÄąnda yeniden lisanslama veya tersini yapamazsÄąnÄąz; bu lisanslarÄąn hiç biri buna izin vermiyor. AyrÄąca unutmayÄąn ki GNU Affero GPL sĂźrĂźm 3, normal GNU GPL sĂźrĂźm 2'nin “sonraki sĂźrĂźmĂź” deÄildir, çßnkĂź GNU Affero GPL ve GNU GPL iki farklÄą lisans dizisidir.
GNU KÄąsÄątlÄą Genel Kamu LisansÄą sĂźrĂźm 3 gerçekten de GNU Genel Kamu LisansÄą sĂźrĂźm 3 ve ek bazÄą izinlerdir. GPL sĂźrĂźm 3 (7. bĂślĂźm) her zaman eklenmiĹ olan izinleri kaldÄąrabileceÄinizi sĂśyler ve bunu yaparak aynÄą kodu normal GNU GPL sĂźrĂźm 3 altÄąnda edinmiĹ olursunuz. EÄer program GNU LGPL sĂźrĂźm 3 veya sonrasÄą altÄąnda kullanÄąma izin veriyorsa, onu GPL sĂźrĂźm 3 veya sonrasÄą altÄąnda yeniden lisanslayabilirsiniz; gelecekte her bir GPL sĂźrĂźm N (N > 3) için, GPL sĂźrĂźm N artÄą ek izinlerden oluĹan bir LGPL sĂźrĂźm N yapacaÄÄąz.
GNU KĹsĹtlĹ GPL sßrßm 2.1 de, GNU GPL sßrßm 2 veya sonrasĹna yeniden lisanslamaya açĹkça izin veriyor.
Ara lisanslar, yeniden daÄÄątÄąm için Ăśnemli gereksinimleri olan ama copyleft olmayan lisanslardÄąr. Ărnekler arasÄąnda Eclipse Kamu LisansÄą ve Mozilla Kamu LisansÄą sayÄąlabilir. Ara lisanslar herhangi bir copyleft lisansla uyumsuz olma eÄilimi gĂśsterir, çßnkĂź gereksinimleri birleĹtirilmiĹ programÄąn copyleft lisansÄą altÄąnda olmasÄąna izin vermez. Mozilla Kamu LisansÄą, kod açĹkça bu izni reddetmediÄi sĂźrece, GNU GPL altÄąnda yeniden lisanslamaya izin veriyor.
Son olarak, ikili lisanslama nedir?[5] İkili lisans bir ayrÄąĹÄąmdÄąr: aynÄą programÄąn iki veya daha fazla lisans seçeneÄi taĹÄądÄąÄÄą anlamÄąna gelir. ĂrneÄin, Perl'in eski sĂźrĂźmleri ikili lisansa sahipti: Sanatsal Lisans ile GNU Genel Kamu LisansÄą'nÄąn ayrÄąĹÄąmÄą. Bu, her bir kullanÄącÄąnÄąn Perl'i ya o ya da ĂśbĂźr lisans altÄąnda veya Perl daÄÄątÄąmÄąnÄąn kendisi gibi bu iki lisansÄąn ayrÄąĹÄąmÄą altÄąnda yayÄąnlayabileceÄi anlamÄąna geliyor. Bir ayrÄąĹÄąm, bu ayrÄąĹÄąmdaki lisans seçeneklerinden biri bir kĂźme ile uyumlu ise, ayrÄąĹÄąmÄąn kendisi de bu diÄer lisans kĂźmesiyle uyumludur.
Kodunuz için bir lisans seçecekseniz, lĂźtfen GNU GPL sĂźrĂźm 3 veya sonrasÄąnÄą veya bununla uyumlu bir lisans seçin. Bu Ĺekilde kodunuzu neredeyse bĂźtĂźn ĂśzgĂźr yazÄąlÄąm kĂźlliyatÄąyla birleĹtirilebilir kÄąlarsÄąnÄąz. GPL veya AGPL sĂźrĂźm 3 veya sonrasÄąnÄą seçmeniz ayrÄąca kodunuzun bĂźtĂźn sĂźrĂźmlerinin tĂźm kullanÄącÄąlarÄąnÄąn ĂśzgĂźrlĂźÄĂźnĂź savunmak için elden gelenin en iyisinin yapÄąlmasÄąnÄą saÄlayacaktÄąr.
Kod birleĹtirme
Bir kĂźme lisans birbiriyle uyumluysa, her biri bu lisanslardan biri altÄąnda olan birtakÄąm programÄą yasal olarak birleĹtirebilir veya toplayabilirsiniz demektir. Peki bĂśyle bir durumda birleĹtirilen program nasÄąl lisanslanmaktadÄąr?
Her bir ĂśzgĂźr yazÄąlÄąm lisansÄą, lisansÄą o lisans altÄąndaki kodla birlikte tutmanÄąz gerektiÄini sĂśyler. Bu yĂźzden, tam anlamÄąyla birleĹmiĹ programÄąn lisanslanmasÄą, tĂźm parçalarÄąn bĂźtĂźn lisanslarÄąnÄą içerecektir. Ancak, bazÄą durumlarda birleĹmiĹ programÄąn nasÄąl lisanslandÄąÄÄą sorusuna bir Ăśzet yanÄąt isterseniz. BirleĹmiĹ programÄą kullanan birisi hangi lisanslara dikkat etmelidir?
Bunu hesaplamak için geçerli tĂźm lisanslarÄąn bir listesiyle baĹlamalÄąsÄąnÄąz. Daha sonra bu listeden baĹka lisans tarafÄąndan kapsanan [subsume] herhangi bir lisansÄą silebilirsiniz.
A lisansÄąyla uyum, B lisansÄąyla uyuma iĹaret ettiÄinde A lisansÄą B lisansÄąnÄą kapsar diyoruz.
ĂrneÄin, GNU GPL sĂźrĂźm N ve GNU Affero GPL sĂźrĂźm N'nin her ikisi de GNU KÄąsÄątlÄą GPL sĂźrĂźm N'yi kapsar ve bunlarÄąn ßçß de GNU KÄąsÄątlÄą sĂźrĂźm 2.1'i kapsar.
Herhangi bir GNU lisansÄą sĂźrĂźm N, N'nin en az 3 olmasÄą koĹuluyla Apache 2.0 lisansÄąnÄą kapsar.
GNU GPL sĂźrĂźm N, kendisiyle uyumlu olan bĂźtĂźn Mozilla Kamu LisansÄą sĂźrĂźmlerinin tĂźmĂźnĂź kapsar.
Apache 2.0 lisansÄą BSD, Expat, X11, ISC ve CC0 lisanslarÄąnÄą kapsar. 3 ĹartlÄą BSD lisansÄą BSD 2 lisansÄąnÄą kapsar. BSD lisanslarÄą Expat, X11 ve ISC lisanslarÄą ve CC0'Äą kapsar.
Bu tam bir liste deÄildir, ancak eÄer deÄinmenin yararlÄą olduÄu dĂźĹĂźnĂźlen Ăśrnekler varsa, onlarÄą da ekleyeceÄiz.
BazÄą lisanslar kapsandÄąÄÄąnda, tĂźm birleĹtirilmiĹ program daÄÄątÄąmlarÄąyla birlikte bir kopyasÄąnÄą içermeniz gerekmektedir.
Dipnotlar
ProgramlarÄąn belirli bir birleĹiminden, birleĹtirilen programlarÄąn telif hakkÄą lisanslarÄąyla iliĹkili olmayan sorunlar, baĹka yasal sorunlarÄąn ortaya çĹkabileceÄi akla sÄąÄmaz deÄildir. Biz yalnÄązca lisanslarÄąn kendilerinden kaynaklanan sonuçlarÄą tartÄąĹÄąyoruz.
Fiili olarak kullanÄąlan ve akla uygun Ĺekilde davranmayan baĹlÄąca lisans TeX'in lisansÄądÄąr: eÄer iki program tam da TeX gibi lisanslÄąysa, birleĹtirilmiĹ sĂźrĂźmlerini daÄÄątmanÄąn yetki verilmiĹ bir yolu yoktur.
TeX lisansÄą, deÄiĹtirilmiĹ bir sĂźrĂźmĂźn daÄÄątÄąmÄąna sadece ĂśzgĂźn sĂźrĂźmle birlikte farklÄąlÄąklar dosyasÄą biçiminde izin veriyor. EÄer A ve B ayrÄą olarak bu Ĺekilde yayÄąnlandÄąysa, sonra da birleĹtirildilerse, birleĹtirilen programÄą A ve deÄiĹiklikler dosyasÄą olarak daÄÄątmak B'nin lisansÄąnÄą ihlal edecek. Bunu B ve deÄiĹiklikler dosyasÄą olarak daÄÄątmak da A'nÄąn lisansÄąnÄą ihlal edecek. Bunu baĹka bir Ĺekilde daÄÄątmaksa her ikisinin lisansÄąnÄą ihlal edecek.
TeX'in 1982'de yayÄąnlanmasÄą bir tesadĂźf deÄil: topluluÄumuz o gĂźnden beri akla uygun davranan lisanslar yazmayÄą ĂśÄrendi.
Kaynak dosyasÄą biçiminde daÄÄątÄąrken, genellikle lisans bildirimlerini bulunduklarÄą haliyle kaynak kodu içerisinde bÄąrakmak yeterlidir; ek lisans bildirim gereksinimleri esnek lisanslarda kaynak kod olmadan sadece ikili dosyalar daÄÄątÄąlÄąyorsa ortaya çĹkÄąyor.
Ek olarak, GPL sĂźrĂźm 2 hala ikili dosyalarÄąn, Ăśzel imzalanmĹŠikililer dÄąĹÄąndaki her Ĺeyi geri çeviren donanÄąmlar tarafÄąndan ĂśzgĂźr olmamasÄąna izin verirken, ikili dosyalarÄąn torrent aracÄąlÄąÄÄąyla daÄÄątÄąmÄąna izin vermiyor. SĂźrĂźm 2'yi deÄiĹtiremeyiz ama bu ve baĹka sorunlarÄą sĂźrĂźm 3'te dĂźzelttik.
BazÄąlarÄą satĹŠistisnalarÄą için “ikili lisanslama” [dual licensing] terimini kullanÄąyor, ancak bu yanlĹŠbir adlandÄąrmadÄąr. SatĹŠistisnalarÄą yazÄąsÄąna bakÄąn. UnutmayÄąn ki, eÄer bir programÄąn satÄąldÄąÄÄą lisans ĂśzgĂźr olmayan herhangi bir kod içeriyorsa, bu satĹŠistisnasÄą deÄil, ĂśzgĂźr olmayan yazÄąlÄąmdÄąr.