From: Recai Oktas (roktas@omu.edu.tr)
Date: Mon 15 Dec 2003 - 09:32:45 EST
* Y=FCksel =D6ZCAN <yukselozcan@celiknet.com> [2003-12-15 12:49:31+0200]
> Birde konu acilmisken herkese sorayim. MySQL cift lisansli. Bunlardan bir
> tanesi de GPL. Ben isyerlerinde kullanilacak GPL lisansli bir program
> yaziyorum ve veritabani olarak mysql kullaniyorum. MySQL'in ticari surumu
> ucretli. Bu ne anlama geliyor, bu benim yazdigim GPL program ticari
> isletmelere hitap ettigi icin programi kullanacak olanlar MySQL lisansi mi
> almak zorundalar. Bu konuda kafam biraz karisik, yardimci olursaniz
> sevinirim.
Cift lisans, -cogunlukla- lisans uyumlulugunu saglamakta kullanilan bir
yontem. GPL lisansli bir yazilimda *sadece* GPL uyumlu lisans
sartlarini haiz kitapliklar kullanabilirsiniz. Kimi zaman bu ciddi
sikintilar dogurur. A isminde bir program gelistirdiginizi varsayalim.
A hicbir dis kitapliga bagli degilse, gelistiricisi bizzat siz
oldugunuzdan A'nin hangi lisans sartlari altinda dagitilacagina siz
karar vereceksiniz. Eger A, B isimli bir kitaplik gerektiriyorsa A'nin
lisansina butunuyle siz karar veremezsiniz artik. Bu noktada lisans
uyumlulugu devreye giriyor. B GPL ise A'yi da GPL veya GPL uyumlu
yapmak zorundasiniz. Eger siz misal A'yi ticari bir urun haline
getirmek istiyorsaniz B'nin lisans sartlari buna izin vermeli. MySQL
orneginde oldugu gibi bu urun GPL + ticari olarak cift lisansa sahipse
MySQL'in ticari lisansini secerek bu uyumluluk derdinden kurtulmus
olursunuz. Gelistirdiginiz yazilim icin zaten GPL'i secmis iseniz
MySQL'i de GPL lisansli olarak kullanmak durumundasiniz.
GPL konusunda genel bir bilincin olusmasi icin bu lisans uyumlulugunun
anlasilmasi gerekiyor. Musaadenizle tipik bir ornek vereyim. Apache
grubunun maksimum tasinabilirligi hedefleyen cok guzel bir kitapligi
var: APR (Apache Portable Runtime library). Bu kitaplik Apache2 basta
olmak uzere bircok yazilimda kullaniliyor (orn. `Subversion'). APR
"Apache 1.1" ozgur lisansi ile dagitiliyor. Bu lisans ozgur ve fakat
GPL uyumlu degil. [1]
Simdi siz APR'yi kullanan bir yazilim gelistirdiniz. Enteresan olan su
ki bu yazilimda GPL lisansini -lisans metnine istisna ifadesi
koymaksizin- *kullanamazsiniz*. (Evet, soz konusu Apache olsa bile :-)
Kendi basiniza bir lisans uydurmadan, ozgur yazilim cercevesinde kalarak
bu uyumsuzlugu asmak istiyorsaniz ya MIT/X11 gibi herseye uyan bir
lisans sececeksiniz ya da GPL'de israrli iseniz GPL metnine asagidaki
istisna ifadesini koyacaksiniz:
In addition, as a special exception, <name of copyright holder>
gives permission to link the code of this program with the FOO
library (or with modified versions of FOO that use the same
license as FOO), and distribute linked combinations including
the two. You must obey the GNU General Public License in all
respects for all of the code used other than FOO. If you modify
this file, you may extend this exception to your version of the
file, but you are not obligated to do so. If you do not wish to
do so, delete this exception statement from your version.
Sadece bir kitapligi (APR) kullaniyorsaniz ve lisans secimini yapan kisi
siz iseniz uyumluluk sorunlari asilabilir gibi gorunuyor. Peki
program'a bir komut satiri duzenleyicisi eklemeyi dusundunuz ve bu
amacla GPL bir kitaplik olan `Readline'i sectiniz (Readline, `Bash'de
de kullandiginiz kitaplik). Simdi elinizde iki kitaplik var: GPL
uyumsuz APR ve safkan GPL Readline. Programin lisansini `istisnali GPL'
yaparak APR ile GPL'i uyusturmak noktasinda kendi payiniza duseni
gerceklestirdiniz. Guzel de, Readline ne olacak? Hukukcu olmadigimdan
ve bu senaryoya bire bir uyan bir ornekle karsilasmadigimdan ifade
edecegim yarginin FSF onayli kesin yargi oldugunu iddia edememem, fakat
anladigim ve inceledigim o dur ki lisans uyumu icin Readline lisansinda
da istisna bulunmali. Readline'in sahibi FSF asla boyle bir sey
yapmayacagina gore sonuc: APR'yi iceren programi Readline ile link
edemezsiniz. Cozum icin `Readline' yerine BSD lisansli `Editline'i
kullanabilirsiniz. (`libeditline' buyuk olcude `libreadline' uyumlu bir
ara yuz sundugundan programi basitce `libeditline' ile yeniden derlemek
cogu durumda yeterli oluyor.)
[1] Meraklisina not: APR'de de kullanilan Apache 1.1 lisansinin GPL
uyumsuzlugu lisans metnindeki su ifadeden kaynaklaniyor:
Products derived from this software may not be called "Apache",
nor may "Apache" appear in their name, without prior written
permission of the Apache Software Foundation.
Yani APR ile derlediginiz programin ismi `Apache' olamaz veya isimde
`Apache' gecemez. Kulaga cok makul gelen bu istek GPL'deki:
6. [...] You may not impose any further restrictions on the
recipients' exercise of the rights granted herein. [...]
ifadesiyle celisiyor. 6 nolu madde GPL lisansli bir urunde GPL'de
siralanan kisitlamalarin disinda bir sinirlama sunulamayacagini
soyluyor. Karsilasilan GPL uyumsuzluklarinin sebebi de cogunlukla bu
sart. Hukuk boyle bir sey iste :-)
-- roktas