LINUX.ORG.RU

История изменений

Исправление Xenius, (текущая версия) :

То есть тут не важно чтоб все производные были GPLными (так как код из либ я не использую напрямую), правильно?

Как ты код используешь вообще не важно, хоть напрямую, хоть нет.

Предположим, проект состоит из множества файлов с исходными кодами, у каждого файла должен быть (это не требования лицензии, но соглашение) заголовок, где указана лицензия на конкретно этот файл.

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

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

А вот лицензия GPL на библиотеке — отдельный случай. Если ты добавляешь эту библиотеку в общий проект, то нужно убедиться что все исходные файлы лицензированы под совместимыми лицензиями — как правило, это так и есть, лицензии, не совместимые с GPL на свободных библиотеках бывают редко.

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

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

У тебя немного особенный случай, поэтому требования в переводе на русский получаются примерно такие:
a) В работе должно быть явно указано, что она использует такую-то GPL-библиотеку. Это можно в README поместить или назвать файл COPYING или ещё как-нибудь.
б) Должно быть явно указано, что вся работа как целое распространяется под условиями GPL. Если есть какие-то дополнительные условия то их тоже надо указать, они могут появиться из-за других библиотек например.
в) Вся работак как целое должна быть лицензирована под GPL для всех у кого есть копия этой работы. При этом какие-то части работы могут иметь другие лицензии, если они не противоречат GPL, и это требование никуда не убирает других лицензий. Это значит, что кто-то другой не будет иметь право сделать программу проприетарной, например, пока не уберёт зависимость от GPL-библиотеки, но нормальным свободным пользователям это никак не мешает.
г) Если у программы есть интерактивный пользовательский интерфейс, то в нём должно демонстрироваться уведомление пользователя о его правах, указанных в GPL, но ты его добавлять не обязан, если его не было — а вот удалить его из readline например нельзя, если она его при каких-то условиях демнострирует.

Исходная версия Xenius, :

То есть тут не важно чтоб все производные были GPLными (так как код из либ я не использую напрямую), правильно?

Как ты код используешь вообще не важно, хоть напрямую, хоть нет.

Предположим, проект состоит из множества файлов с исходными кодами, у каждого файла должен быть (это не требования лицензии, но соглашение) заголовок, где указана лицензия на конкретно этот файл.

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

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

А вот лицензия GPL на библиотеке — отдельный случай. Если ты добавляешь эту библиотеку в общий проект, то нужно убедиться что все исходные файлы лицензированы под совместимыми лицензиями — как правило, это так и есть, лицензии, не совместимые с GPL на свободных библиотеках бывают редко.

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

a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

У тебя немного особенный случай, поэтому требования в переводе на русский получаются примерно такие: a) В работе должно быть явно указано, что она использует такую-то GPL-библиотеку. Это можно в README поместить или назвать файл COPYING или ещё как-нибудь.
б) Должно быть явно указано, что вся работа как целое распространяется под условиями GPL. Если есть какие-то дополнительные условия то их тоже надо указать, они могут появиться из-за других библиотек например. в) Вся работак как целое должна быть лицензирована под GPL для всех у кого есть копия этой работы. При этом какие-то части работы могут иметь другие лицензии, если они не противоречат GPL, и это требование никуда не убирает других лицензий. Это значит, что кто-то другой не будет иметь право сделать программу проприетарной, например, пока не уберёт зависимость от GPL-библиотеки, но нормальным свободным пользователям это никак не мешает. г) Если у программы есть интерактивный пользовательский интерфейс, то в нём должно демонстрироваться уведомление пользователя о его правах, указанных в GPL, но ты его добавлять не обязан, если его не было — а вот удалить его из readline например нельзя, если она его при каких-то условиях демнострирует.