Ліцензія "Усі права захищені" в пакет.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не показувати помилок або попереджень, не вводячи туди посилання ліцензії, яке ми не хочемо використовувати?

Відповіді:


176

Відповідно до нової специфікації npm, яку ви можете використовувати { "license": "UNLICENSED"} якщо не бажаєте надавати іншим право користуватися приватним або неопублікованим пакетом за будь-яких умов.

Будь ласка, ознайомтеся з усіма деталями тут

Тож ви не зможете отримати помилку, про яку ви згадали.


Це, безумовно, відмінно підходить для відсутності ліцензії, але не допомагає, якщо ви хочете посилатися на зовнішню ліцензію.
— фірмовий сценарій

11
З тієї ж сторінки npmjs "Подумайте також про налаштування" private ": true, щоб запобігти випадковій публікації."
— bgth

1
список SPDX містить Unlicenseбез остаточного D і в змішаному регістрі. це те, про що ти маєш на увазі? хоча дивлячись на це, не здається, що це було б правильним. немає UNLICENSEDв списку
— НЕ ekkis

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

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

51

Відповідно до останніх документів для package.json :

Якщо ви використовуєте ліцензію, якій не було призначено ідентифікатор SPDX, або якщо ви користуєтеся власною ліцензією, використовуйте такий дійсний вираз SPDX:

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

Потім додайте файл, названий <filename>на верхньому рівні пакету.


5

TR; DL: "UNLICENSED" означає не ліцензовану, тоді як "unliclicence" (немає "d" в кінці!) Посилається на ліцензію під назвою "The Unlicensed", яка є щось зовсім інше. Щоб уникнути плутанини та якщо ви хочете стверджувати авторське право, вам слід вказати комусь на ваш власний внутрішній файл ліцензії, наведений нижче.

-

Однозначно НЕ використовуйте те, { "license": "unlicense"}як пропонується у відповіді вгорі, якщо ви бажаєте чітко повідомити, що ви хочете мати ліцензію на стиль авторського права.

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

З кліпу з перших двох пунктів ліцензії UNLICENSE чітко видно, що це взагалі не має відношення до прохання ОП щодо претензії на авторське право:

Це безкоштовне та необроблене програмне забезпечення, що випускається у загальнодоступне надбання.

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

На початок голосуючих відповідей на сторінці документації з Node заявляється, що використання НЕЗАЛЕЖЕНОГО варіанту полягає в тому, щоб зробити це, щоб ви не надавали жодних прав іншим:

якщо ви не бажаєте надавати іншим право користуватися приватним або неопублікованим пакетом за будь-яких умов:

Це не є фактично безпечним вибором для збереження своїх прав

  • Мені не ясно, чи це було наслідком незнання чи поганого наміру. Ви можете зробити висновок, що відсутність додаткового D означає, що це два абсолютно різні терміни, - але ви не можете припустити, що інші будуть знати, що і коли вони шукатимуть, що це НЕЗАЛЕЖНА ліцензія, вони можуть отримати посилання, яке я знайшов.

    {"ліцензія": "ВИДІТЬ ЛІЦЕНЗІЮ"}

Наразі безпечніша відповідь.

ПРИМІТКА. Я вважав, що важливо зробити цю відповідь на найвищому рівні, а не відповідь, оскільки відповідь, яка проголосувала вище, на даний момент має великий потенціал для неправильного тлумачення, і для цього потрібна видимість.


2
Я не думаю, що це правильно. У списку ліцензій SPDX входить запис, який ви знайшли "Неліцензійне", і він відрізняється від "Недозволеного", який не надає прав. spdx.org/licenses/Unlicense.html Оскільки помилка написання буде дуже наслідковою ("Unlicense" є необмеженою ліцензією, а "UNLICENSED" зберігає всі права), неоднозначності немає. Специфікація package.json чітко зазначає, що "UNLICENSED" не надає жодних прав "за будь-яких умов".
— wberry

1
Незважаючи на це, я думаю, що ваша відповідь служить гарною метою вказувати, наскільки ці два варіанти близькі один одному. Це на що слідкувати. Ласкаво просимо до переповнення стека!
— wberry

1
Дякую wberry, я не побачив визначення SPDX для "Неліцензуючого", що було гарним викликом.
— Карл Кідвелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.