Ввод лицензии в каждый файл кода?

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

Ответ 1

Один за пределами кода, пожалуйста! Я не знаю о других, но я ненавижу видеть то же самое поверх каждого файла. Кажется, я читал его несколько раз, просто через страницу. Посредством этого.

Ответ 2

EULA - неправильный термин здесь, поскольку люди, которые смотрят на исходный код, обычно не являются конечными пользователями.

Юридически, это тоже не имеет значения; авторское право не обязательно должно быть объявлено явно.

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

Я бы сказал, что лучший компромисс заключается в том, чтобы поставить очень короткий заголовок, содержащий ссылку (абсолютный URL-адрес, а также относительный в рамках проекта), до полного текста лицензии в каждый файл исходного кода. Таким образом, любой, кто интересуется лицензией, знает, где его найти (в идеале, люди, которые готовы платить огромные лицензионные сборы, вы, безусловно, хотите, чтобы эти люди могли связаться с вами!)

Ответ 3

Нет, вам не нужно указывать лицензию в каждом исходном коде.

Если вы посмотрите ближе, большинство приложений FOSS этого не делают. Они помещают выражение об авторских правах в начало каждого файла и короткое предложение, сообщающее вам, в какой лицензии находится файл, и где вы можете найти полный текст лицензии. Они обычно указывают вам на файл COPYING или LICENSE, содержащий полный текст лицензии и/или на веб-сайт, который содержит полный текст (в случае отсутствия файла COPYING).

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

Ответ 4

Это может зависеть от лицензии. GPL различает preamble и license. В нем четко указано, что предикат (раздражающий) должен быть частью кода:

Могу ли я опустить преамбулу GPL или инструкции по использованию это на ваших собственных программах, чтобы сэкономить место?

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

Источник: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

См. также http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html

A бесплатная электронная книга от ifrOSS объясняет и комментирует GPL 2 на немецком языке. Существует еще один для GPL 3

Для обоснованного ответа вы должны запросить юридическую консультацию, которая недоступна в sx. Если вы не можете найти адвоката для своего проекта с открытым исходным кодом, ознакомьтесь с юридической сетью FSFE.

Ответ 5

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

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

Если вы используете GPL, это больше проблема, но если вы используете лицензии общего пользования, такие как BSD или MIT, я не думаю, что вам все равно, что люди делают с кодом в любом случае. Я полагаю, это зависит от того, насколько строго ваша лицензия.

Ответ 6

IANAL,

Предполагая, что вы говорите о лицензировании, а не в EULA, вы можете поместить лицензию на внешний вид. Это почти всегда выполняется с действительно длинными лицензиями, такими как GPL. Было бы глупо поместить всю лицензию GPL в каждый файл. Обычно у вас будет просто уведомление о том, где вы можете найти фактическую лицензию. Это совершенно законно. Однако с очень короткими лицензиями, такими как BSD/Apache/MIT/whatever, проще просто включить лицензию в каждый файл, так как уведомление о том, где найти лицензию, будет почти таким же, как и сама лицензия.

Ответ 7

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

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

Ответ 8

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

Ответ 9

То, что я делаю, - это поставить двухстрочный комментарий в верхней части файла, указав имя моей компании, дату последней ревизии и имя лицензии, имеющуюся в исходном файле, а затем в самом низу файла короткий версии лицензии.

Конечно, полная лицензия (все из них в случае нескольких лицензий) всегда заключена в файлы исходного файла и выпуска.

Ответ 10

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

Однако для Copyright у вас должно быть уведомление об авторских правах на каждый фрагмент текста.