selamlar,
On 05/12/16 22:00, Hüseyin Cem KOÇ wrote:
> Açık/kapalı kaynak tercihimden öte yazdığım kodu lisanslamak istersem
> beni kısıtlayacak etmenlerin ne olduğunu bilmek istiyorum.
bu konu da surekli burada konusuluyor. bir onceki tartisma burada:
https://groups.google.com/forum/#!msg/qtturkiye/qHLMPpFD42I/aFQuWeA-CAAJ
ozetle konu statik/dinamik baglama meselesi degil. konu kullaniciya
istedigi qt versiyonunu kullanma ozgurlugunu verme / vermeme meselesi.
desktop platformlarda statik baglama yaparak kullanicinin elinden bu
ozgurlugu aliyorsunuz. mobil platformlarda ise qt'u uygulama topagina
(apk vb) gomup topagi imzalayarak bu ozgurlugu elinden aliyorsunuz,
apk'nin icinde statik/dinamik baglanmis olmasi kimseyi ilgilendirmiyor,
sonucta imzali dosyaya kullanicinin mudahele sansi olmadigi icin LGPL'in
sartlarini yerine getirememis oluyorsunuz.
kisaca desktop icin dinamik baglama ile LGPL sartlarini yerine
getiriyorsunuz ancak modern mobil platformlara dagitim yapacaksaniz
ticari lisans almaniz gerekli.
simdi detayli cevaba gecelim:
I)
desktop platformlar icin;
uygulamayi dagitmayacaksaniz istediginizi yapabilirsiniz.
uygulamayi dagitacaksaniz deployment'i statik baglama ile yaparsaniz
uygulamanizi en az LGPL ile lisanslamak zorundasiniz. Eger dinamik
baglama yaparsaniz uygulamanizin icinden aboutQt() a ulasilabilen bir
yer oldukca uygulamanizin lisansini istediginiz sekilde yapabilirsiniz.
bkz
https://doc.qt.io/qt-5/qmessagebox.html#aboutQt
II)
mobil platformlar icin, yine uygulamayi dagitmayacaksaniz istediginizi
yaparsiniz.
uygulamayi magazalar (google play store, apple app store vb) vasitasiyla
dagitmayacaksaniz desktop kurallarina tabisiniz. yani orn. apk dosyasini
birisi web sitesinden indirecekse ve icinden Qt dosyalari .so olarak
cikiyorsa uygulamanizin lisansini kafaniza gore hazirlayabilirsiniz.
cunku kullanici apk dosyasini acip icindeki Qt dosyalarini kolaylikla
degistirebilir. Tabii bunu kullanabilmesi icin once imzasiz apk kurma
ozelligi calisan (bir baska deyisle rootlanmis) bir cihaz kullaniyor
olmasi gerekli.
Magazalar vasitatisiyla dagitim yapildiginda ise konu biraz da
cetrefilli bir hal aliyor.
Biliyorsunuz magaza dagitimi yapabilmek icin uygulama topagini
olusturduktan sonra bir de imzaliyorsunuz. Bunu yaparak da kullanicinin
kod degistirme ozgurlugunu elinden aliyorsunuz. Cunku cihazlar ontanimli
ayarlarinda imzasiz (veya tampered) program calistirmayi reddediyor.
Bunun istisnasi Android platformundaki Ministro namli uygulama. Android
4.x ve alti icin uygulamanizi "Ministro Services"a bagimli hale
getiriyorsunuz. Boylece uygulamayi kurduktan sonra ilk baslatmada
Ministro ilgili Qt kutuphanelerini indiriyor. 1) Uygulamanizin topagina
Qt kutuphanelerini gomup imzalamadiginiz icin 2) Kullanici sizin
uygulamanizdan bagimsiz Qt kutuphanelerini istedigi gibi
degistirebildigi icin LGPL sartlarini saglamis oluyorsunuz.
Malesef, Google ilgili sistem cagrilarini kapattigi icin Ministro
Android 5.x ve ustuyle uyumlu degil. Bu yuzden 5.x ve uzerine deployment
yapacaksaniz iOS kurallarina tabisiniz.
Bu ve onceki mesajlarimla ilgili sorunuz varsa cevaplamaya calisirim.
Kolay gelsin
Burak