Можно ли подразумевать GPL для производной работы?

13

Есть три программных проекта: A, B и C.

А публикуется для всех и лицензируется по лицензии GPL.

B расширяет A, также публикуется, но не имеет информации о лицензии или по ошибке лицензируется в соответствии с LGPL. По сути это нарушает лицензию A, не будучи GPL. Исходный код B по-прежнему доступен.

C расширяет B. Может ли C быть опубликован под лицензией GPL? Мотивация будет: «A - это GPL, любая производная тоже должна быть GPL, поэтому B - это GPL и C тоже может быть GPL».

Andrej
источник
5
На какую часть B распространяется C? Если они все уже в А, я не вижу проблем. Если C расширяет части B, которые не находятся в A, все становится интереснее.
Я бы назвал проекты A, B, C и связался бы с авторами B.
Василий Старынкевич
1
Кроме того, я считаю, что вы могли бы по крайней мере опубликовать C под GPL, поскольку GPL совместима с LGPL. Но IANAL
Старынкевич
2
@Tichodroma, C расширяет части B, но B не может существовать без A :)
Андрей
Автор C также написал (часть) A? Если нет, мы понятия не имеем, какую лицензию авторы A дали B, поэтому мы понятия не имеем, можем ли мы на ней опираться?
сентября

Ответы:

23

Во-первых, B нарушает GPL на A. Но это не совсем ваша проблема и не имеет отношения к вопросу здесь (кто знает, может быть, B получил лицензию LGPL от A на свой код, чтобы она могла быть выпущена под LGPL? ).

Вопрос «Можете ли вы создать часть программного обеспечения GPL на основе кода LGPL?» Ответ на это просто «да».

LGPL является менее строгим, чем GPL (таким образом, почему B нарушает лицензию на A, если не были приняты другие условия), но также позволяет довольно легко вернуть его в проект GPL.

Из лицензии LGPL:

  1. Код объекта, включающий материал из заголовочных файлов библиотеки. Форма объектного кода Приложения может включать материал из заголовочного файла, который является частью Библиотеки. Вы можете передавать такой объектный код в соответствии с выбранными вами условиями, при условии, что, если встроенный материал не ограничен числовыми параметрами, структурами данных и аксессорами, или небольшими макросами, встроенными функциями и шаблонами (длиной не более десяти строк), вы выполните оба следующих действия:

    a) Делайте заметное уведомление с каждой копией объектного кода о том, что Библиотека используется в ней и что Библиотека и ее использование подпадают под действие настоящей Лицензии.
    б) Сопровождайте объектный код копией GNU GPL и данного лицензионного документа.

Это часть лицензии. Вы можете легко создать программное обеспечение GPL на основе кода LGPL.

Существуют некоторые различия версий, на которые вам следует обратить внимание, чтобы убедиться, что код лицензирован правильно и в соответствии с верной версией GPL.


Если информация о лицензии не предоставлена, вы не имеете права распространять ее. B не должен был распространяться, но его вклады не лицензируются по лицензии с открытым исходным кодом. Возможно, это был внутренний проект, который был опубликован, или какое-то другое событие.

Он не представлен по лицензии, совместимой с расширением с помощью GPL. Рассмотрим ситуацию, когда компания, используя программное обеспечение GPL для внутреннего использования (приемлемо - не является нарушением), по ошибке обнародовала свой репо.

В этом случае вполне возможно, что проект C нарушает собственно нарушение авторских прав (добавленный B материал, который не лицензирован по лицензии GPL, поскольку его не следовало распространять в первую очередь).

Один не может заставить лицензию на источнике чужого. Это либо в соответствии с лицензией, либо в нарушение ее. Если это является нарушением, то, как указано в лицензии:

Вы не можете распространять или изменять защищенную работу, за исключением случаев, прямо предусмотренных настоящей Лицензией. Любая попытка иного распространения или изменения его является недействительной и автоматически прекращает действие ваших прав по настоящей Лицензии (включая любые патентные лицензии, предоставленные в соответствии с третьим абзацем раздела 11).

Нарушение GPL не означает, что материал находится под лицензией GPL, а означает, что он не может быть распространен.


источник
3
Хороший ответ. Рассматривали ли вы принятие предложения Open StackExchange ?
Филипп
5
@Andrej Единственное лицо, которое имеет право определять лицензию B, - это люди, написавшие B. Если A имеет лицензию GPL, у них есть возможность «не распространять» или «лицензия как GPL». То, что он был ошибочно распространен, не означает, что он лицензирован как GPL.
6
Кроме того, хороший улов на «вы не знаете, если B получил другую лицензию от авторов A;» возможно, B вообще не нарушает авторских прав A, потому что вы не знаете, что B использует A под лицензией GPL (авторы A могут выдать столько лицензий любого типа, сколько захотят, и, например, могут предложить ее под лицензией GPL). и продать лицензию на него, которая позволяет использовать его в проприетарном коде).
2015 года
1
В случае, когда автор B получает A под лицензией GPL, факт распространения не заставляет GPL выдавать лицензию B. Но существуют ли какие-либо лицензии, которые могли бы сделать это? Значит, человек может опубликовать свое программное обеспечение и быть уверенным, что кто-нибудь получит доступ ко всем будущим опубликованным производным? И разрешить кому угодно форсировать лицензию на дериваты. (Я могу начать новый вопрос для этого :))
Андрей
2
В-четвертых, лицензионное соглашение намного, намного, намного более юридически сомнительно, чем GPL. GPL не накладывает никаких ограничений; любое ограничение на самом деле вытекает из закона об авторском праве (в некоторых случаях GPL отменяет эти ограничения). Вот почему GPL работает так хорошо - не существует такого понятия, как «нарушение GPL», а просто нарушение авторских прав. С EULA вы должны заставить людей согласиться ограничить себя; это означает, что вы находитесь в сфере договорного права, которое очень мутно и наполнено возможной защитой, как будто кто-то не согласен (вам не нужно соглашаться на авторское право).
2015 года
4

Есть правообладатели: авторские права на произведения, созданные A, авторские права на дополнения B, а также авторские права на любые изменения, сделанные C. C должен проверить, имеет ли он разрешение на использование программного обеспечения, на которое A и B имеют авторские права.

А был лицензирован по лицензии GPL. Я совершенно уверен, что GPL дает вам разрешение на использование произведений A на условиях GPL, даже если вы получили их от B, который неправильно лицензировал их. Возможны практические проблемы: например, вы должны быть в состоянии предоставить исходный код. Если вы получили программное обеспечение без исходного кода, у вас нет возможности опубликовать его в соответствии с условиями GPL.

B был лицензирован под другой лицензией. B должен был быть лицензирован по GPL, но не был. Если лицензия B дает вам больше прав, чем GPL, у вас фактически нет этих прав на код A - B не может дать вам дополнительные права на код A. Вы можете использовать код А в соответствии с условиями GPL, потому что А это разрешил, и дополнительный код Б в соответствии с лицензией Б.

Если B выпустила свой код по более строгой лицензии, чем GPL, то B, скорее всего, будет нарушать авторские права. Вы не можете использовать код B под лицензией GPL. Это часто путают: GPL не может заставить B делать что-либо. Это только дает B выбор: публиковать таким образом, и это юридически нормально, или публиковать другим способом, и это незаконно. B имеет право делать что-то незаконное и страдать от последствий (предъявляется иск за нарушение авторских прав). У вас нет прав на код B, который B не дал вам.

gnasher729
источник
3

Технически, можно расширить библиотеку GPL с помощью кода, который сам не покрывается лицензией GPL. Загвоздка в том, что когда вы распространяете созданную вами производную работу, вы должны соблюдать все требования, которые накладывает на вас GPL.

В вашей ситуации это означает, что возможно иметь библиотеку A под лицензией GPL и новый код в библиотеке B под лицензией LGPL. Объединенная работа (библиотека B) эффективно распространяется по лицензии GPL и может распространяться как таковая, поскольку лицензия LGPL совместима с лицензией GPL (вы можете использовать код лицензии LGPL в проекте, лицензированном по лицензии GPL).
В этой ситуации совершенно нормально иметь новый код в библиотеке C под лицензией GPL, а в результате - и под лицензией GPL.

Барт ван Инген Шенау
источник
Это работает только потому, что LGPL-части B могут использоваться с GPLed A под GPL. Если новый код находился по какой-то лицензии, конфликтующей с GPL (например, все права защищены), вы не можете предполагать, что B в целом был эффективно распространен под GPL.
августа
1
@cpast: Вы правы, я забыл упомянуть, что LGPL совместим с GPL. Если лицензии были несовместимы, вам не разрешили бы распространять результат.
Барт ван Инген Шенау