Planuję opracować program, który zamierzam później sprzedać. Próbuję wybrać język, w którym go kodować, i zawęziłem się do C ++ lub Java.
Przeszedłem przez licencje GPL v2 i v3 używane dla GNU GCC i OpenJDK (tak, rozumiem pewną ilość legalnych rzeczy, ale najwyraźniej nie wszystkie). Ale jest jeden punkt, w którym wszyscy są niejasni (powinna to być jedna z pierwszych odpowiedzi, IMO): jeśli opracuję program przy użyciu C ++ / Java i skompiluję go przy użyciu kompilatora GCC lub kompilatora OpenJDK, czy mogę go sprzedać bez posiadania umieścić mój program również na licencji GPL?
O ile mi wiadomo, mam pełne prawa do przypisania dowolnej licencji do mojego programu, ale jest pewien haczyk: w licencji mówi się, że nie powinienem linkować do żadnej biblioteki objętej GPL. Jeśli tak, będę musiał wydać mój program na licencji GPL.
Teraz nie wiem, co w C ++ / Java jest uważane za bibliotekę, więc jeśli używam normalnych rzeczy w C ++ (iostream, lista, mapa itp.) Lub normalnych klas / interfejsów Java dostępnych jako część standardowego JDK 6 dystrybucja (ciąg, lista, mapa itp.), Czy stanowi to „linkowanie do bibliotek”?
Odpowiedzi:
Tak. GPL wyraźnie wyklucza wynik działania programu:
co oznacza, że jeśli włączysz do programu bity GCC lub coś innego GPL, to tak, musiałby być GPL, w przeciwnym razie nie - fakt, że jego kod obiektowy został wygenerowany przez kompilator GPL, nie ma znaczenia, czy powinien być GPL .
Wszystkie standardowe biblioteki językowe, do których prowadzisz link, nie są GPL lub są GPL, ale mają specjalny wyjątek, który pozwala twojemu oprogramowaniu połączyć się z nimi, jeśli ich nie zmodyfikujesz . W przypadku C ++ mam na myśli libgcc, glibc i libstdc ++; w przypadku Javy mam na myśli wszystkie biblioteki zawarte w JRE.
Technicznie rzecz biorąc, i tak możesz legalnie sprzedawać oprogramowanie GPL, ale prawie nikt nie zarabia na tym.
źródło
Zarówno GCC, jak i OpenJDK mają wyraźne wyjątki:
źródło
To nie jest niejasne. Istnieje wyjątek od licencji, która ma tutaj zastosowanie. Można to znaleźć na podstawie odpowiedniego pytania w FAQ GPL .
Krótko mówiąc, to, co chcesz zrobić, jest dozwolone.
źródło
OpenJDK jest na licencji GPL, ale z wyjątkiem łączenia z bibliotekami. http://en.wikipedia.org/wiki/OpenJDK
Myślę, że użycie klas OpenJDK stanowiłoby łącze do biblioteki (rt.jar).
Biblioteka w tym kontekście, z punktu widzenia Javy, jest z pewnością słoikiem zależności, wojną, klasą itp. W każdym razie jestem pewien, że możesz legalnie sprzedawać aplikację Java - jest więcej niż kilka takich Oracle / Firma Sun nie podjęła działań prawnych.
źródło
Nie martw się, jest to pytanie programistyczne lub przynajmniej takie, które ściśle dotyczy programistów.
Z tego co wiem, jeśli tworzysz oprogramowanie powiązane z jakimś kodem GPL, musisz rozpowszechnić swój kod źródłowy, jeśli rozpowszechniasz swój program.
Nie oznacza to, że musisz wydać swój kod źródłowy, tzn. Jeśli jednak strona trzecia poprosi o kod, musisz go dostarczyć.
źródło