ใบอนุญาต "สงวนลิขสิทธิ์" ใน package.json


113

ฉันมีโปรเจ็กต์ 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จะไม่แสดงข้อผิดพลาดหรือคำเตือนโดยไม่ใส่การอ้างอิงใบอนุญาตที่เราไม่ต้องการใช้ได้อย่างไร

คำตอบ:


183

ตามข้อกำหนด npm ใหม่คุณสามารถใช้ได้{ "license": "UNLICENSED"} หากคุณไม่ต้องการให้สิทธิ์ผู้อื่นใช้แพ็คเกจส่วนตัวหรือไม่ได้เผยแพร่ภายใต้ข้อกำหนดใด ๆ

โปรดดูรายละเอียดทั้งหมดที่นี่

ดังนั้นคุณอาจไม่ได้รับข้อผิดพลาดที่คุณกล่าวถึง


แน่นอนว่านี่เป็นสิ่งที่ดีสำหรับการไม่มีใบอนุญาต แต่ไม่ได้ช่วยอะไรหากคุณต้องการอ้างอิงใบอนุญาตภายนอก
brandonscript

12
จากหน้า npmjs เดียวกัน "ลองตั้งค่า" ส่วนตัว "ด้วย: จริงเพื่อป้องกันการเผยแพร่โดยไม่ได้ตั้งใจ"
bgth

1
รายการ SPDX ประกอบด้วยUnlicenseโดยไม่มี D สุดท้ายและในกรณีผสม นั่นคือสิ่งที่คุณหมายถึง? แม้ว่าเมื่อมองดูแล้วดูเหมือนว่าจะไม่ใช่สิ่งที่ถูกต้อง ไม่มีUNLICENSEDในรายการ
ekkis

@ekkis เอกสารประกอบของpackage.jsondoes อธิบายUNLICENSEDว่าเป็นค่าที่ถูกต้อง (cf. docs.npmjs.com/files/package.json#license )
Frederik Krautwald

11
@ekkis Unlicense เป็นตรงข้ามสมบูรณ์ของspdx.org/licenses/Unlicense{ "license": "UNLICENSED" } (ฉันรู้ว่าคุณดูใบอนุญาตแล้วและเห็นว่ามันไม่ถูกต้องฉันแค่คิดว่าสิ่งนี้จำเป็นต้องสะกดตรงนี้ในกรณีนี้)
JollyJoker

51

ตามเอกสารล่าสุดสำหรับ package.json :

หากคุณกำลังใช้ใบอนุญาตที่ไม่ได้กำหนดตัวระบุ SPDX หรือหากคุณกำลังใช้สิทธิ์การใช้งานแบบกำหนดเองให้ใช้นิพจน์ SPDX ที่ถูกต้องต่อไปนี้:

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

จากนั้นรวมไฟล์ชื่อ<filename>ที่ระดับบนสุดของแพ็กเกจ


7

TR; DL: 'UNLICENSED' หมายถึงไม่ได้รับอนุญาตในขณะที่ 'unlicense' (no 'd' ต่อท้าย!) หมายถึงใบอนุญาตชื่อ 'The Unlicensed'ซึ่งแตกต่างกันมาก เพื่อป้องกันความสับสนและหากคุณต้องการยืนยันลิขสิทธิ์คุณควรชี้ให้บุคคลอื่นไปที่ไฟล์ใบอนุญาตภายในของคุณเองตามด้านล่าง

-

อย่าใช้คำ{ "license": "unlicense"}แนะนำในคำตอบที่ได้รับการโหวตสูงสุดอย่างแน่นอนหากคุณต้องการสื่อสารอย่างชัดเจนว่าคุณต้องการมีใบอนุญาตรูปแบบการร้องเรียนการละเมิดลิขสิทธิ์

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

คลิปจากสองย่อหน้าแรกของใบอนุญาต UNLICENSE ระบุชัดเจนว่าไม่มีส่วนเกี่ยวข้องใด ๆ กับคำขอของ OP ในการร้องเรียนการละเมิดลิขสิทธิ์:

ซอฟต์แวร์นี้ฟรีและไม่มีภาระผูกพันที่เผยแพร่สู่สาธารณสมบัติ

ทุกคนมีอิสระที่จะคัดลอกแก้ไขเผยแพร่ใช้รวบรวมขายหรือแจกจ่ายซอฟต์แวร์นี้ไม่ว่าจะในรูปแบบซอร์สโค้ดหรือในรูปแบบไบนารีที่คอมไพล์แล้วเพื่อวัตถุประสงค์ใด ๆ ในเชิงพาณิชย์หรือไม่ใช่เชิงพาณิชย์และด้วยวิธีการใด ๆ

สำหรับคำตอบที่ได้รับการโหวตสูงสุดให้เครดิตหน้าเอกสาร Node อ้างว่าการใช้ตัวเลือก UNLICENSED คือการทำดังนั้นคุณจะไม่ให้สิทธิ์ใด ๆ แก่ผู้อื่น:

หากคุณไม่ต้องการให้สิทธิ์ผู้อื่นในการใช้แพ็คเกจส่วนตัวหรือไม่ได้เผยแพร่ภายใต้เงื่อนไขใด ๆ :

สิ่งนี้ดูเหมือนจะไม่ใช่ทางเลือกที่ปลอดภัยในการรักษาสิทธิ์ของคุณ

  • ฉันไม่ชัดเจนว่านี่เป็นผลมาจากความไม่รู้หรือเจตนาที่ไม่ดี คุณสามารถสรุปได้ว่าการขาด D พิเศษหมายความว่าคำเหล่านี้เป็นคำศัพท์ที่แตกต่างกันอย่างสิ้นเชิงสองคำ - แต่คุณไม่สามารถสรุปได้ว่าคนอื่นจะรู้และเมื่อพวกเขาค้นหาสิ่งที่ใบอนุญาต UNLICENSED พวกเขาอาจได้รับลิงค์ที่ฉันพบ

    {"license": "SEE LICENSE IN"}

เป็นคำตอบที่ปลอดภัยกว่าในเวลานี้.

หมายเหตุ: ฉันรู้สึกว่าเป็นเรื่องสำคัญที่จะต้องทำให้คำตอบนี้เป็นคำตอบระดับบนสุดแทนที่จะเป็นคำตอบเนื่องจากคำตอบที่ได้รับการโหวตสูงสุดในเวลานี้มีโอกาสตีความผิดได้มากและจำเป็นต้องมีการเปิดเผย


2
ฉันไม่คิดว่านี่จะถูกต้อง รายการใบอนุญาต SPDX ประกอบด้วยรายการ "The Unlicense" ที่คุณพบและแตกต่างจาก "UNLICENSED" ซึ่งไม่ให้สิทธิ์ใด ๆ spdx.org/licenses/Unlicense.html ดังนั้นในขณะที่ข้อผิดพลาดในการสะกดจะเป็นผลที่ตามมาอย่างมาก ("Unlicense" เป็นสัญญาอนุญาตที่ไม่ จำกัด และ "UNLICENSED" สงวนสิทธิ์ทั้งหมด) แต่ก็ไม่มีความคลุมเครือ ข้อมูลจำเพาะ package.json ระบุอย่างชัดเจนว่า "UNLICENSED" ไม่ให้สิทธิ์ใด ๆ "ภายใต้ข้อกำหนดใด ๆ "
wberry

1
ถึงกระนั้นฉันคิดว่าคำตอบของคุณมีจุดประสงค์ที่ดีในการชี้ให้เห็นว่าตัวเลือกทั้งสองนี้มีความใกล้ชิดกันเพียงใด เป็นสิ่งที่ต้องระวัง ยินดีต้อนรับสู่ Stack Overflow!
wberry

1
ขอบคุณ wberry ฉันไม่เห็นคำจำกัดความ SPDX สำหรับ "The Unlicense" นั่นเป็นการโทรที่ดี
Carl Kidwell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.