Qt Community ve LGPL Hakkında

Başlatan Kanguru, 07 Temmuz 2015 - 06:02:30

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Kanguru

Merhaba Arkadaşlar.

Ben Android, iOS ve Windows Phone için uygulama geliştirmek için uğraşıyorum. Haliyle bu platformlara tek seferde native uygulamalar geliştirebileceğim tek seçenek Qt.
Şimdi Qt Community ile bir uygulama yaptık ve bu uygulamayı kapalı kaynak olarak satmak istiyoruz. Qt LGPL lisans olduğu için bu lisansı okudum (bkz. http://ozgurlisanslar.org.tr/lgpl/lgpl-v3/).  0. maddede şöyle bir cümle var:
Alıntı YapBir "uygulama" kütüphane tarafından sağlanan arayüzün kullandığı her türlü çalışma olup, kütüphaneye başka türlü dayanmayan çalışmadır. Kütüphane tarafından tanımlanan bir sınıfın altsınıfını tanımlamak, kütüphane tarafından sağlanan bir arayüzü kullanma şekli olarak varsayılır.
Şimdi ben şöyle bir sınıf türetirsem ve projemi kapalı kaynak olarak satarsam yasal olmayan bir iş mi yapmış olurum?
Mesela: class Example : public QCamera { ... };
Qt Community ile geliştirilen uygulamanın satış koşulları nelerdir?

Teşekkürler!

cagriemer

LGPL ile lisanslanmis bir kutuphaneyi kullanan kapali kaynak uygulamanizi satabilirsiniz. Buna herhangi bir engel yok. LGPL'in esprisi su; kullanici bu kutuphaneyi kendi tercih ettigi baska bir tanesiyle degistirebiliyor mu? Degistirme sonucunda uygulamanin calisip calismamasi sizin sorumlulugunuzda degil. Sizin sorumlulugunuzda olan degistirme imkanini tanimak. Bu da eger linklemeyi dinamik yapiyorsaniz ek bir islem yapmanizi gerektirmiyor. Eger statik yapiyorsaniz uygulamanin object dosyalarini da paylasmaniz gerekiyor. Java'da derleme farkli gerci ama fikir ayni [1]. Diger onemli husus da kullandiginiz kutuphanenin kodunda degisiklik yapip yapmadiginiz. Eger yapiyorsaniz bu yaptiginiz degisikligi paylasmaniz gerekiyor.

[1] https://www.gnu.org/licenses/lgpl-java.html

Kanguru

Qt 5.4 Community LGPL v2.1 ve LGPL v3 lisanslı kütüphane barındırıyor. Kullandığım dil ise C++. Yani ilk mesajda verdiğim kod örneğinde herhangi bir sakınca yok.
Fakat apk gibi dosyalarda yine .lib, .a uzantılı dosyaları da mı paylaşmalıyım? Kapalı kaynak yapmamdaki amaç ticari bir uygulama olacağından dolayı.
Ben istiyorum ki uygulamamı kimse değiştirmesin.

cagriemer

Soyle anlatmaya calisayim. Diyelim kendi yazdiginiz tum kod ve kitapliklardan bir .so dosyasi olusturdunuz derleyip. Ardindan odunc aldiginiz (LGPL) koddan baska bir .so dosyasi olusturacaksiniz. Son olarak bu .so dosyalarindan .apk dosyasini yaratacaksiniz. Kullanici, eger isterse, .apk dosyasini acip LGPL objesini kendi derledigiyle degistirebilmeli. Bunu yapmasi icin gereken adimlari da bir belgeyle aciklamaniz gerekiyor. Bunun disinda uygulamanizin size ait olan kod kismini paylasmak zorunda degilsiniz. Tekrar edeyim tek yapmaniz gereken LGPL ile lisanslanmis kodun ya da bu kodun derlenmis halinin degistirilebilmesine imkan saglamak ve bunu bir "nasil" belgesiyle aciklamak.

cagriemer

Biraz okuma yapiyordum konu hakkinda, surada [1] Apple'in, uygulama magazasina dinamik olarak baglanmis kitapliklara sahip uygulamalari almayabileceginden bahsetmisler.

[1] http://wiki.qt.io/Licensing-talk-about-mobile-platforms

Kanguru

Cevap için teşekkürler. Dediğinizi anladım. Yani ben mesela class Example : public QCamera { ... }; diye bir sınıf oluşturup bu sınıfı QCamera'dan türetsem QCamera sınıfı Qt'nin olduğu için Example sınıfının bulunduğu dosyanın .so dosyasını paylaşmak zorundayım, ayrıca nasıl değiştirileceğini de anlatmak zorundayım (Aslında ben yine kodumu paylaşmış oluyorum bu durumda).

Verdiğiniz linki inceleyeceğim, teşekkürler.