Використання C ++ / Java для розробки програмного забезпечення для комерційних цілей


9

Я планую розробити програму, яку я збираюся продати пізніше. Я намагаюся визначитися з мовою, з якою його кодувати, і звузився до C ++ або Java.

Я пройшов ліцензії GPL v2 та v3, які використовуються для GCC GNU та OpenJDK (так, я можу зрозуміти деяку кількість юридичних речей, але, очевидно, не всі). Але є один момент, на якому всі незрозумілі (це повинно було бути одним із перших відповідей, IMO): якщо я розробляю програму за допомогою C ++ / Java і компілюю її за допомогою компілятора GCC або компілятора OpenJDK, чи можу я продати її, не маючи щоб також розмістити мою програму під GPL?

Наскільки я можу розібратися, я маю повні права присвоювати будь-яку ліцензію своїй програмі, але, є улов: в ліцензії йдеться про те, що я не повинен посилатися на будь-яку бібліотеку, яка є GPL. Якщо це так, мені доведеться випустити свою програму під GPL.

Тепер я не знаю, що в C ++ / Java вважається бібліотекою, тому якщо я використовую звичайні речі в C ++ (iostream, список, карта тощо) або звичайні Java-класи / інтерфейси, доступні як частина стандартного JDK 6 розподіл (рядок, список, карта тощо), чи означає це "посилання на бібліотеки"?


1. Тут ми не надаємо юридичних порад. 2. Що таке "C ++ / Java"? 3. Огляньтесь і подивіться тисячі та тисячі комерційних програмних продуктів, написаних на Java, багато з компонентами JNI.
bmargulies

1
/ In C ++ / Java просто використовується як абревіатура для "або", що є абсолютно вірною англійською мовою.
Робін Грін

Це звучить як питання для opensource.stackexchange.com . (Якщо на це вже не відповіли.)
Кевін Крумвіде

Відповіді:


13

якщо я розробляю програму за допомогою C ++ / Java і компілюю її за допомогою компілятора GCC або компілятора OpenJDK, чи можу я продати її, не розміщуючи програму також під GPL?

Так. GPL спеціально виключає вихід запущеної програми:

вихід з Програми охоплюється лише в тому випадку, якщо її зміст становить роботу, засновану на Програмі (незалежно від того, що було зроблено під час виконання Програми).

це означає, що якщо ви включите у свою програму біти GCC або щось інше GPLed, то так, це повинно бути GPLed, інакше ні - факт, що його об'єктний код був створений компілятором GPLed, не має значення для того, чи повинен він бути GPLed .

Усі бібліотеки стандартної мови, на які ви посилаєтесь, або не є GPLed, або є GPLed, але мають спеціальний виняток, щоб ваш власний програмний продукт мав змогу посилатися на них, якщо ви не змінюєте їх . У випадку C ++ я маю на увазі libgcc, glibc та libstdc ++; у випадку з Java я маю на увазі всі бібліотеки, включені до JRE.

Технічно ви можете легально продавати програмне забезпечення GPL у будь-якому випадку, але майже ніхто не заробляє на цьому гроші.


LGPL (менший GPL) дозволяє додатку посилатися на нього, не вимагаючи, щоб ця програма була GPLd сама. Бібліотека GPL з іншого боку заразна. Але ви вірні, вихід компілятора явно виключається з умов GPL.
Берін Лорич

і що, якщо я зміню бібліотеки стандартних мов? я можу це зробити? що відбувається з ліцензією моєї програми тоді?
piotrek

Тоді виняток не застосовується, і ви повинні дотримуватися всіх умов відповідної ліцензії. Також у випадку Java є наслідки щодо торговельної марки - краще не згадувати Java або OpenJDK у вашій документації чи рекламі, якщо ви її використовуєте (але дивіться справу суду Oracle v Google).
Робін Грін

8

І GCC, і OpenJDK мають явні винятки:

… Коли ви використовуєте GCC для компіляції програми, GCC може поєднувати частини певних файлів заголовків GCC та бібліотек часу виконання зі складеною програмою. Мета цього Винятку - дозволити компіляції програм, що не належать GPL (включаючи власні), таким чином використовувати файли заголовків та бібліотеки виконання, на які поширюється цей Виняток. …

… Коли GNU Classpath використовується немодифікований як основна бібліотека класів для віртуальної машини, компілятора для мови java або для програми, написаної мовою програмування java, це не впливає на ліцензування на розповсюдження цих програм безпосередньо…



0

OpenJDK є GPL'd, але за винятком посилань на бібліотеки. http://en.wikipedia.org/wiki/OpenJDK

Використання класів OpenJDK означало б посилання на бібліотеку, я думаю,

Бібліотека в цьому контексті, з точки зору Java, - це, безумовно, залежність, війна, клас тощо. Як би там не було, я впевнений, що ви можете легально продати програму Java - там є більше кількох, що Oracle / Sun не розпочала юридичних дій.


Те саме стосується libstdc ++ - він також має виняток.
Робін Грін

І rt.jar, і libstdc ++ є реалізацією специфікації, яка не є GPL. По суті, якщо я пов’язую свою програму з не-GPL'd версією libstdc ++, вона функціонуватиме однаково (якщо припустити, що специфікація реалізована належним чином) в обох версіях. Те, що платформа динамічно завантажує версію бібліотеки GPL'd, не враховується у вашій програмі. Ви написали для стандартної платформи та підпадаєте під будь-яку ліцензію, яку ви хочете.
Берін Лорич

0

Не хвилюйтесь, це питання комп’ютерного програмування або, принаймні, питання, яке тісно стосується програмістів.

З того, що я знаю, якщо ви створюєте програмне забезпечення, яке пов'язане з деяким GPL-кодом, ви повинні випустити свій вихідний код, якщо ви розповсюджуєте свою програму.

Це не означає, що ви повинні випустити свій код до sourceforge, тобто якщо третя сторона попросить вас код, ви повинні надати його.


Цей пункт не є актуальним, оскільки діяльність, описана у запитанні, за інших рівних випадків не передбачає посилання на код GPL.
Робін Грін

Питання вище: якщо я розробляю програму за допомогою C ++ / Java і компілюю її за допомогою компілятора GCC або компілятора OpenJDK, чи можу я продати її без необхідності розміщувати програму під GPL?

Я думаю, я чітко вказую, що якщо ви використовуєте GPL-код, вам доведеться випустити.

Вибачте, я був неточним - у деяких випадках це пов'язане з посиланням на код GPLed в певному сенсі, але, наприклад, застосовується виняток Classpath, тож вам не потрібно випускати код під GPL.
Робін Грін

ага, гаразд, про це не знали
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.