Ticari amaçlı yazılım geliştirmek için C ++ / Java kullanma


9

Daha sonra satmak istediğim bir program geliştirmeyi planlıyorum. Kodlamak için bir dile karar vermeye çalışıyorum ve C ++ veya Java'ya daralmış durumdayım.

GNU'nun GCC ve OpenJDK'sı için kullanılan GPL v2 ve v3 lisanslarından geçtim (evet, bazı yasal şeyleri anlayabiliyorum, ama açıkça, hepsi değil). Ancak herkesin belirsiz olduğu bir nokta var (bu cevaplanan ilk şeylerden biri olmalıydı, IMO): C ++ / Java kullanarak bir program geliştirir ve GCC derleyicisini veya OpenJDK'nın derleyicisini kullanarak derlerse, programımı GPL altına yerleştirmek için?

Yapabildiğim kadarıyla, programıma herhangi bir lisans atama konusunda tam haklara sahibim, ancak bir yakalama var: lisansta GPL altındaki herhangi bir kütüphaneye bağlantı vermemem gerektiğini söylüyor. Eğer öyleyse, programımı GPL kapsamında yayınlamam gerekecek.

Şimdi, C ++ / Java'da bir kütüphane olarak kabul edildiğini bilmiyorum, bu yüzden C ++ (iostream, liste, harita vb.) İçindeki normal şeyleri veya standart JDK'nın bir parçası olarak mevcut olan normal Java sınıflarını / arabirimlerini kullanırsam 6 dağıtımı (Dize, Liste, Harita vb.), Bu 'kütüphanelere bağlanma' anlamına mı geliyor?


1. Biz burada yasal tavsiye yapmıyoruz. 2. 'C ++ / Java' nedir? 3. Etrafınıza bakın ve çoğu JNI bileşenli Java ile yazılmış binlerce ve binlerce ticari yazılım ürününü görün.
bmargulies

1
/ İn C ++ / Java sadece mükemmel bir İngilizce olan "veya" kısaltması olarak kullanılmaktadır.
Robin Green

Bu, opensource.stackexchange.com için bir soru gibi geliyor . (Daha önce orada yanıtlanmadıysa.)
Kevin Krumwiede

Yanıtlar:


13

C ++ / Java kullanarak bir program geliştirir ve GCC derleyicisini veya OpenJDK derleyicisini kullanarak derlersem, programımı GPL altına yerleştirmeden de satabilir miyim?

Evet. GPL, programı çalıştırma çıktısını özellikle hariç tutar:

Programdan elde edilen çıktı, yalnızca içeriği Programa dayalı bir çalışma teşkil ediyorsa (Programı çalıştırarak yapılmış olmaktan bağımsız) karşılanır.

Bu, programınıza GCC bitleri veya başka bir GPL eklenmiş olmanız durumunda, bunun GPL olması gerektiği anlamına gelir, aksi takdirde hayır - nesne kodunun bir GPLed derleyicisi tarafından üretilmesi gerçeği GPLed olup olmayacağı ile ilgili değildir. .

Bağlayacağınız tüm standart dil kütüphaneleri GPL değildir veya GPL'lidir, ancak değiştirmediğiniz takdirde özel yazılımınızın bunlara bağlanmasına izin vermek için özel bir istisnası vardır . C ++ durumunda libgcc, glibc ve libstdc ++; Java söz konusu olduğunda, JRE'de bulunan tüm kütüphaneleri kastediyorum.

Teknik olarak, GPL yazılımını yasal olarak satabilirsiniz, ancak neredeyse hiç kimse bunu yapmaktan para kazanmaz.


LGPL (Küçük GPL), uygulamanın GPLd olmasını gerektirmeden ona bağlanmasına izin verir. Öte yandan bir GPL kütüphanesi bulaşıcıdır. Ancak haklısınız, derleyicinin çıktısı GPL terimlerinden açıkça hariç tutulmuştur.
Berin Loritsch

ve standart dil kitaplıklarını değiştirirsem ne olur? bunu yapabilir miyim? programımın lisansına ne olacak?
piotrek

O zaman istisna geçerli değildir ve ilgili lisansın tüm koşullarını takip etmeniz gerekir. Ayrıca, Java durumunda ticari marka etkileri vardır - kullanıyorsanız belgelerinizde veya reklamlarınızda Java veya OpenJDK'den bahsetmemeniz daha iyi olur (ancak Oracle v Google mahkeme davasına bakın).
Robin Green

8

Hem GCC hem de OpenJDK'nın açık istisnaları vardır:

… Bir programı derlemek için GCC kullandığınızda, GCC belirli GCC başlık dosyalarının ve çalışma zamanı kitaplıklarının bölümlerini derlenmiş programla birleştirebilir. Bu Kural Dışı Durumun amacı, GPL olmayan programların (özel mülkler dahil) derlenmesini, bu şekilde bu Kural Dışı Durumun kapsadığı başlık dosyalarını ve çalışma zamanı kitaplıklarını kullanmasına izin vermektir. ...

… GNU Classpath, sanal makine, java dil için derleyici veya java programlama dilinde yazılmış bir program için çekirdek sınıf kütüphanesi olarak değiştirilmemiş olarak kullanıldığında, bu programların doğrudan dağıtılması için lisanslamayı etkilemez…



0

OpenJDK GPL'dir, ancak kütüphanelere bağlanma istisnası vardır. http://en.wikipedia.org/wiki/OpenJDK

OpenJDK sınıflarını kullanmak, düşündüğüm bir kütüphaneye bağlanma anlamına gelir (rt.jar).

Bu bağlamda, Java açısından bir kütüphane, kesinlikle bir bağımlılık kavanozu, savaş, sınıf vb .'dir. Her neyse, yasal olarak bir Java uygulaması satabileceğinizden eminim - Oracle / Sun yasal olarak harekete geçmedi.


Aynı şey libstdc ++ için de geçerlidir - ayrıca bir istisnası vardır.
Robin Green

Hem rt.jar hem de libstdc ++, GPL olmayan bir belirtimin uygulamalarıdır. Aslında, benim uygulama libstdc ++ GPL'd olmayan bir sürümü ile bağlantılı olsaydı her iki sürümünde aynı şekilde (spec düzgün uygulandığı varsayılarak) çalışır. Bir platformun kütüphanenin GPL'd sürümünü dinamik olarak yüklemesi, uygulamanızda hesaba katılmaz. Platform standardına yazdınız ve istediğiniz herhangi bir lisans kapsamındasınız.
Berin Loritsch

0

Endişelenmeyin, bu bir bilgisayar programlama sorusu veya en azından programcıları yakından ilgilendiren bir sorudur.

Bildiğim kadarıyla, bazı GPL koduyla bağlantılı bir yazılım oluşturursanız, programınızı dağıtırsanız kaynak kodunuzu serbest bırakmanız gerekir.

Bu, kodunuzu sourceforge için serbest bırakmanız gerektiği anlamına gelmez. Ancak üçüncü bir taraf sizden kodu isterse, bunu sağlamanız gerekir.


Bu nokta konuyla ilgili değildir, çünkü soruda açıklanan faaliyet diğer şeylerin eşit olması GPL koduna bağlanmayı içermez.
Robin Green

Yukarıdaki Soru: C ++ / Java kullanarak bir program geliştirir ve GCC derleyicisi veya OpenJDK derleyicisi kullanarak derlerse, programımı GPL altına yerleştirmek zorunda kalmadan da satabilir miyim?

GPL kodunu kullanırsanız, serbest bırakmanız gerektiğini açıkça belirtiyorum.

Üzgünüm, yanlıştım - bazı durumlarda bir anlamda GPL koduna bağlamayı içerir, ancak örneğin Classpath istisnası geçerlidir, bu nedenle kodunuzu GPL altında bırakmanız gerekmez.
Robin Green

ahh, tamam o zaman, bunu bilmiyordum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.