Licencja „Wszelkie prawa zastrzeżone” w pliku package.json

111

Mam mały projekt node.js, który jest wewnątrz firmy i nie będzie publikowany ani udostępniany stronom trzecim. Z pewnością nie zostanie wniesiony do żadnych publicznych repozytoriów pakietów.

Ale kiedy uruchamiam npm install, zawsze pojawia się następujący błąd:

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

Pożądana licencja to: „Prawa autorskie do nas i wszelkie prawa zastrzeżone”. Nie mogłem znaleźć niczego, co wyglądałoby na odpowiednie na liście licencji SPDX . Sugestia zawarta w tej odpowiedzi również nie działa. Jeśli po prostu usunę licensepole z package.jsonbłędu zmienia się na no license field.

Jak mogę npm installwyświetlić brak błędów lub ostrzeżeń bez umieszczania tam odniesienia do licencji, którego nie chcemy używać?

jagoda
źródło

Odpowiedzi:

177

Zgodnie z nową specyfikacją npm możesz użyć, { "license": "UNLICENSED"} jeśli nie chcesz udzielać innym prawa do korzystania z prywatnego lub niepublikowanego pakietu na dowolnych warunkach.

Proszę zapoznać się ze wszystkimi szczegółami tutaj

Więc możesz nie otrzymać wspomnianego błędu.

kds
źródło
Z pewnością jest to świetne rozwiązanie bez licencji, ale nie pomaga, jeśli chcesz odwołać się do licencji zewnętrznej.
brandonscript
11
Na tej samej stronie npmjs „Rozważ także ustawienie„ private ”: true, aby zapobiec przypadkowej publikacji.”
bgth
1
lista SPDX zawiera Unlicensebez ostatniego D iw mieszanej wielkości. czy to jest to, o czym mówisz? chociaż patrząc na to, nie wydaje się, żeby to była właściwa rzecz. nie ma UNLICENSEDna liście
ekkis
@ekkis, dokumentacja package.jsonopisuje UNLICENSEDjako prawidłową wartość (por. docs.npmjs.com/files/package.json#license ).
Frederik Krautwald,
10
@ekkis The Unlicense jest całkowitym przeciwieństwem { "license": "UNLICENSED" } spdx.org/licenses/Unlicense . (Zdaję sobie sprawę, że spojrzałeś na licencję i zobaczyłeś, że nie jest w porządku, pomyślałem, że trzeba to tutaj przeliterować na wszelki wypadek)
JollyJoker,
51

Zgodnie z najnowszą dokumentacją dla package.json :

Jeśli używasz licencji, której nie przypisano identyfikatora SPDX, lub jeśli używasz licencji niestandardowej, użyj następującego prawidłowego wyrażenia SPDX:

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

Następnie dołącz plik o nazwie <filename>znajdującej się na najwyższym poziomie pakietu.

brandonscript
źródło
5

TR; DL: „BEZ LICENCJI” oznacza brak licencji, natomiast „brak licencji” (bez „d” na końcu!) Odnosi się do licencji o nazwie „Bezlicencjonowana”, co jest czymś zupełnie innym. Aby uniknąć nieporozumień, a jeśli chcesz dochodzić praw autorskich, powinieneś wskazać komuś swój własny wewnętrzny plik licencji, patrz poniżej.

-

Zdecydowanie NIE używaj tego, { "license": "unlicense"}co sugeruje odpowiedź w najczęściej głosowanej odpowiedzi, jeśli chcesz jasno zakomunikować, że chcesz mieć licencję typu roszczenia dotyczące praw autorskich.

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

Fragment z dwóch pierwszych akapitów licencji UNLICENSE jasno pokazuje, że nie ma to żadnego związku z wnioskiem OP o roszczenie dotyczące praw autorskich:

Jest to bezpłatne i nieobciążone oprogramowanie udostępnione w domenie publicznej.

Każdy może kopiować, modyfikować, publikować, używać, kompilować, sprzedawać lub rozpowszechniać to oprogramowanie, w formie kodu źródłowego lub jako skompilowany plik binarny, w dowolnym celu, komercyjnym lub niekomercyjnym i w jakikolwiek sposób.

Do najczęściej ocenianych odpowiedzi zalicza się strona dokumentacji węzła, która twierdzi, że użycie opcji BEZ LICENCJI powoduje, że nie dajesz żadnych praw innym:

jeśli nie chcesz przyznać innym prawa do korzystania z prywatnego lub niepublikowanego pakietu na dowolnych warunkach:

Nie wydaje się, aby był to rzeczywisty bezpieczny wybór, aby zachować swoje prawa

  • Nie jestem pewien, czy było to wynikiem ignorancji, czy złych intencji. Możesz wywnioskować, że brak dodatkowego D oznacza, że ​​są to dwa zupełnie różne terminy - ale nie możesz zakładać, że inni będą o tym wiedzieć i kiedy będą szukać tego, co jest licencją BEZ LICENCJI, mogą otrzymać link, który znalazłem.

    {"license": "ZOBACZ LICENCJĘ W"}

To bezpieczniejsza odpowiedź w tej chwili.

UWAGA: Uważam, że ważne jest, aby była to odpowiedź najwyższego poziomu, a nie odpowiedź, ponieważ odpowiedź z największą liczbą głosów w tym czasie ma duży potencjał do błędnej interpretacji i wymaga to widoczności.

Carl Kidwell
źródło
2
Myślę, że to nie jest poprawne. Lista licencji SPDX zawiera wpis „The Unlicense”, który znalazłeś, i różni się od „UNLICENSED”, która nie przyznaje żadnych praw. spdx.org/licenses/Unlicense.html Więc chociaż błąd w pisowni byłby bardzo istotny („Bezlicencja” oznacza nieograniczoną licencję, a „BEZ LICENCJI” zastrzegająca wszelkie prawa), nie ma dwuznaczności. Specyfikacja package.json wyraźnie stwierdza, że ​​„UNLICENSED” nie przyznaje żadnych praw „na żadnych warunkach”.
borówka
1
Mimo to myślę, że twoja odpowiedź jest dobrym powodem, aby wskazać, jak bliskie są sobie te dwie możliwości. Jest na co uważać. Witamy w Stack Overflow!
jagoda
1
Dzięki, wberry, nie widziałem definicji SPDX dla „The Unlicense”, to dobre wezwanie.
Carl Kidwell