Лицензия «Все права защищены» в package.json


111

У меня есть небольшой проект node.js, который является внутренним для компании и не будет опубликован или передан третьим лицам. Конечно, он не будет добавлен ни в какие публичные репозитории пакетов.

Но когда я бегу, npm installя всегда получаю следующую ошибку:

npm WARN package.json <<myproject>>@0.1.0 license should be a valid SPDX license expression

Требуемая лицензия: «Авторские права принадлежат нам, и все права защищены». Я не нашел ничего подходящего в списке лицензий SPDX . Предложение в этом ответе тоже не работает. Если я просто удалю это licenseполе, package.jsonошибка изменится на no license field.

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

Ответы:


177

В соответствии с новой спецификацией npm вы можете использовать, { "license": "UNLICENSED"} если не хотите предоставлять другим право использовать частный или неопубликованный пакет ни на каких условиях.

Пожалуйста, обратитесь к полной информации здесь

Таким образом, вы можете не получить указанную вами ошибку.


Это, безусловно, отлично подходит для отсутствия лицензии, но не помогает, если вы хотите ссылаться на внешнюю лицензию.
— brandonscript

11
На той же странице npmjs: «Также подумайте о настройке« private »: true, чтобы предотвратить случайную публикацию».
— bgth

1
список SPDX содержит Unlicenseбез последней буквы D и в смешанном регистре. это то, о чем вы говорите? хотя, глядя на это, не кажется, что это было бы правильно. нет UNLICENSEDв списке
— ekkis

@ekkis, документация package.jsonописывает UNLICENSEDкак допустимое значение (см. docs.npmjs.com/files/package.json#license ).
— Фредерик Краутвальд 08

10
@ekkis Unlicense - полная противоположность { "license": "UNLICENSED" } spdx.org/licenses/Unlicense . (Я понимаю, что вы взглянули на лицензию и увидели, что она неправильная, я просто подумал, что это нужно
— указать

51

Согласно последним документам для package.json :

Если вы используете лицензию, которой не был назначен идентификатор SPDX, или если вы используете индивидуальную лицензию, используйте следующее допустимое выражение SPDX:

{ "license" : "SEE LICENSE IN <filename>" }

Затем включите файл с именем <filename>на верхнем уровне пакета.


6

TR; DL: «БЕЗ ЛИЦЕНЗИИ» означает отсутствие лицензии, в то время как «нелицензионная» (без буквы « d» в конце!) Относится к лицензии под названием «Безлицензионная», что совсем другое. Чтобы избежать путаницы, и если вы хотите заявить об авторских правах, вам следует указать кому-нибудь на ваш собственный внутренний файл лицензии, как указано ниже.

-

Определенно НЕ ИСПОЛЬЗУЙТЕ вариант, { "license": "unlicense"}предложенный в ответе, получившем наибольшее количество голосов, если вы хотите четко сообщить, что хотите получить лицензию в стиле претензии об авторских правах.

https://choosealicense.com/licenses/unlicense/

Отрывок из первых двух параграфов лицензии UNLICENSE ясно показывает, что это не имеет никакого отношения к запросу OP о заявлении о нарушении авторских прав:

Это бесплатное и необременительное программное обеспечение, выпущенное в общественное достояние.

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

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

если вы не хотите предоставлять другим право использовать частный или неопубликованный пакет ни на каких условиях:

Это не кажется безопасным выбором для сохранения ваших прав

  • Я не понимаю, было ли это результатом незнания или злого умысла. Вы можете сделать вывод, что отсутствие дополнительного D означает, что это два совершенно разных термина, но вы не можете предполагать, что другие будут знать это, и когда они будут искать, что такое БЕЗЛИЦЕНЗИРОВАННАЯ лицензия, они могут найти ссылку, которую я нашел.

    {"лицензия": "ПОСМОТРЕТЬ ЛИЦЕНЗИЮ"}

На данный момент это более безопасный ответ.

ПРИМЕЧАНИЕ. Я чувствовал, что было важно сделать это ответом высшего уровня, а не ответом, поскольку ответ, получивший наибольшее количество голосов в настоящее время, имеет большой потенциал для неправильной интерпретации, и это требует видимости.


2
Я не думаю, что это правильно. Список лицензий SPDX действительно включает запись «Нелицензия», которую вы нашли, и она отличается от «НЕЛИЦЕНЗИРОВАННОЙ», которая не дает никаких прав. spdx.org/licenses/Unlicense.html Таким образом, хотя орфографическая ошибка будет иметь серьезные последствия («Безлицензия» означает неограниченную лицензию, а «НЕЛИЦЕНЗИРОВАННАЯ» означает сохранение всех прав), двусмысленности нет. В спецификации package.json четко указано, что «UNLICENSED» не предоставляет никаких прав «ни на каких условиях».
— wberry

1
Тем не менее, я думаю, что ваш ответ служит хорошей целью показать, насколько близки эти два варианта друг к другу. Это то, чего стоит остерегаться. Добро пожаловать в Stack Overflow!
— wberry

1
Спасибо, wberry, я не видел определения SPDX для "Безлицензии", это хороший аргумент.
— Карл Кидвелл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.