Переписал код GNU GPL v2 на другом языке: можно ли поменять лицензию?

11

Я переписал некоторые части Mercurial (который распространяется под лицензией GNU GPL v2) на C #. Естественно, я много смотрел на оригинальный код Python, и некоторые его части являются прямым переводом с Python на C #.

Возможно ли лицензирование «моего кода» на других условиях или даже создание части коммерческого приложения с закрытым исходным кодом? Если нет, могу ли я повторно лицензировать «мой код» под LGPL, открыть его, а затем использовать эту библиотеку C # с открытым исходным кодом в моем коммерческом приложении с закрытым исходным кодом?

Антон Гоголев
источник
3
Если вы работали с оригинальным кодом (а не с повторной реализацией из протоколов и документов), он может попасть в сферу «производной работы», и в этом случае он все еще может подпадать под первоначальную лицензию. Поговорите с адвокатом.
@MichaelT Не будет ли использование документации и протоколов обратного инжиниринга также «производной работой»?
Антон Гоголев
3
не обязательно. Производная работа берет оригинал и превращает его в другую форму. В более традиционных средствах массовой информации картина защищена авторским правом, а фотография картины является производным произведением. Если все сделано правильно, обратный инжиниринг чистой комнаты избегает этого. См. Также Каковы вопросы авторского права и лицензирования переноса кода? от ТАК.
INAL, но AFAIK только автоматический перевод кода защищен авторским правом.
vartec
1
@vartec Есть доказательства?
Антон Гоголев

Ответы:

17

Текст лицензии специально охватывает переводы, поэтому нет, вы не сможете повторно лицензировать его.

«Программа» ниже относится к любой такой программе или работе, а «работа на основе Программы» означает либо Программу, либо любую производную работу в соответствии с законом об авторском праве, то есть работу, содержащую Программу или часть он либо дословно, либо с изменениями и / или переведен на другой язык.

Мейсон Уилер
источник
1
IANAL, но я бы предположил, что «Перевод на другой язык» в этом контексте не относится к другому языку программирования. Закон об авторском праве защищает только точное выражение идеи, но не саму идею.
Онорио Катеначчи
2
@Onorio: GPL не является авторским правом, это лицензия.
Мейсон Уилер
5
@OnorioCatenacci - это один из тех случаев, когда «язык» становится немного липким. Ключевая фраза - «производная работа», которую ОП наверняка создал. GPL однозначно допускает создание производного произведения (он же «Свободный ...»), но первоначальные лицензионные ограничения все еще применяются к производному. GPL допускает некоторое повторное лицензирование (бесстыдный плагин, см. Мой ответ). Это больше вопрос лицензирования, а не авторского права.
@MasonWheeler «означает либо Программу, либо любую производную работу в соответствии с законом об авторском праве» - опять же, не юрист, но это, похоже, говорит о том, что авторское право будет каким-то образом связано
Онорио Катеначчи
1
@MasonWheeler "GPL - это не авторское право, это лицензия." Не могли бы вы объяснить это? Все, что может сделать лицензия, это предоставить вам определенные права на произведение, защищенное авторским правом. Если (большое если) авторское право на новое произведение не может быть заявлено правообладателями на оригинальные произведения, то лицензия не применяется.
Джейди
3

Основано на:
http://www.gnu.org/licenses/gpl-faq.html#AllCompatibility

Вы должны быть в порядке со вторым сценарием, который вы изобразили.

Скопированные части остаются под GPLv2, но вся ваша библиотека может быть выпущена как LGPL v2.1 или новее. Затем вы можете связать свой закрытый исходный код с этой библиотекой в ​​соответствии с условиями LGPL.

Как всегда, покопайтесь и убедитесь, что вы понимаете, каковы ограничения.


источник
4
Точно нет. Подумайте об этом: GPL не имеет никакого смысла, если бы это было так. Вы можете просто взять любой код GPL v2 и переключить его на LGPL. Это сделало бы GPL лишним. Посмотрите на мелкий отпечаток: «LGPLv2.1 дает вам разрешение на повторную лицензию кода под любой версией GPL (не LGPL) начиная с GPLv2. Если вы можете переключить код LGPL в этом случае на использование соответствующей версии GPL вместо (как указано в таблице), вы можете сделать эту комбинацию. " Это означает лишь то, что законно переключать вашу библиотеку LGPL на GPL, но не наоборот. Что имеет смысл снова.
Задание