В течение многих лет я был большим поклонником размещения лицензий на общедоступные вещи, чтобы другим было проще определить, могут ли они и как-то использовать эти вещи. До того, как GitHub начал осторожно «подталкивать» своих пользователей к включению файлов LICENSE в свои репозитории, я действительно не знал, как лучше всего это сделать с помощью кода, особенно кода, публично публикуемого на GitHub! - но с тех пор я старался использовать файлы LICENSE.
Сейчас я нахожусь в ситуации, когда я работал над небольшим проектом с некоторыми другими людьми, который требует упоминания нескольких лицензий (из-за стороннего кода и библиотек, а также файлов без кода). В то время как мои партнеры относятся к этой проблеме довольно «небрежно» - было предложено, чтобы я «просто поместил код онлайн как есть, никто не будет заботиться» - я бы предпочел сделать это правильно. Проблема в том, что я не знаю, как можно упомянуть несколько (разных) лицензий на GitHub.
Я видел несколько разных решений на GitHub, поэтому мне трудно судить, является ли этот ответ на немного другой вопрос авторитетным. То, что я хотел бы знать, это то, что из следующего - если есть - является наиболее распространенным, или, если есть другие, дополнительные способы сделать это.
- Создайте один файл LICENSE и поместите в него описания всех различных лицензий. ( Вопросы : должны ли они быть размещены в определенном порядке? Начну ли я с упоминания имен всех лицензий, содержащихся в них, для лучшего обзора)?
- Создайте один файл лицензии на лицензию , используемой и назвать их
LICENSE.md
,LICENSE.LibNameA.md
, иLICENSE.AssetsB.md
т.д. , как предложено в связанном ответ. ( Вопрос : наименование будет основываться на именах проектов? Не на именах лицензий. Если бы я использовал более одной лицензии для материалов, представленных самостоятельно, я бы упомянул их все в «основном»LICENSE.md
? Если нет, что бы я делал вместо этого?) - Создайте два файла LICENSE : один список лицензий для «основного» содержимого, т. Е. Весь код / активы, которые он сам создал; один для всех сторонних материалов. ( Вопросы, как указано выше : есть ли конкретная схема именования, которую можно использовать, и порядок, в котором будут перечислены материалы третьих сторон?)
Наконец, если я правильно понял различные пояснения и проекты GitHub, касающиеся их API лицензий, при определении лицензии репо будет учитываться только «основной» файл LICENSE (хотя я не смог выяснить, какая лицензия будет выбрана) если бы несколько было упомянуто).
Ответы:
Вы можете использовать любой механизм для включения тех лицензий, которые вам нравятся, если посетителю вашего проекта станет ясно, какая лицензия применима к какой части проекта.
Мое предпочтение будет:
источник
В презентации создателей SPDX ( слайд 12 ) это очень ясно:
Содержание
LICENSE
:Затем вы можете добавить два дополнительных файла ЛИЦЕНЗИИ:
LICENSE.Apache-2.0
иLICENSE.GPL-2.0-or-later
.Во всех случаях
README.md
должен содержать идентификатор лицензии SPDX :Вы можете сделать это так:
Обратите внимание, что
Apache-2.0 OR GPL-2.0-or-later
иApache-2.0 AND GPL-2.0-or-later
имеет большое значение. Первое означает, что пользователь может выбирать между обоими (что является обычным случаем!), А второе означает, что пользователь должен соблюдать обе лицензии. Смотрите также мульти лицензирование в Википедии.Обратите внимание, что я использую новый (по состоянию на 2017-12-28 ) список лицензий SPDX 3.0 здесь. В версиях 2017 года использовался
GPL-2.0
идентификатор для GPL 2.0, но не было ясно , означает ли это «только GPL 2.0» или «GPL 2.0 или любую более позднюю версию».источник
В конце концов, я действительно связался со службой поддержки GitHub по поводу моего вопроса, и они сказали, что можно цитировать их, если я поясню, что их ответы предназначены только для предложений, а не для рекомендаций.
Их первоначальный ответ содержал следующее:
источник