แนวปฏิบัติที่ดีที่สุดในการจัดทำไลเซนส์ห้องสมุดบุคคลที่สามคือ“ เอกสาร”?


60

ฉันกำลังพัฒนาโครงการโอเพนซอร์สขนาดเล็ก แอปพลิเคชั่นนี้ใช้ไลบรารี่ของบุคคลที่สามจำนวนมากที่มีลิขสิทธิ์มากมาย: Apache, MIT, BSD, LGPL และ CDDL

ใบอนุญาตแต่ละใบมีข้อกำหนด "เอกสาร" ของตัวเอง ตัวอย่างเช่น Apache License, v2.0 พูดว่า:

หากงานมีไฟล์ข้อความ "ประกาศ" เป็นส่วนหนึ่งของการเผยแพร่งานดัดแปลงใด ๆ ที่คุณแจกจ่ายจะต้องมีสำเนาประกาศเกี่ยวกับแหล่งที่มาที่สามารถอ่านได้ที่อยู่ในไฟล์ประกาศดังกล่าว

ใบอนุญาต MIT ประกอบด้วยประกาศลิขสิทธิ์และพูดว่า:

ประกาศเกี่ยวกับลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือบางส่วนที่สำคัญของซอฟต์แวร์

ใบอนุญาต BSD ยังมีประกาศลิขสิทธิ์และพูดว่า:

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

LGPL v.3 พูดว่า:

(คุณควร) ให้คำบอกกล่าวที่เด่นชัดกับสำเนาของงานรวมแต่ละชุดที่มีการใช้งานห้องสมุดและห้องสมุดและการใช้งานนั้นได้รับการคุ้มครองโดยใบอนุญาตนี้

ใบอนุญาต LGPL และ CDDL ยังต้องการการจัดหาซอร์สโค้ดพร้อมกับรูปแบบไบนารีของไลบรารีดังนั้นข้อมูลเกี่ยวกับวิธีการที่ซอร์สโค้ดสามารถรับได้ควรมีการจัดเตรียมไว้ที่ใดที่หนึ่ง

แนวปฏิบัติที่ดีที่สุดสำหรับการจัดเรียงข้อมูลทั้งหมดนี้คืออะไร ฉันควรสร้างไฟล์ข้อความและคัดลอกเนื้อหาของNOTICEไฟล์ทั้งหมด, MIT และ BSD ลิขสิทธิ์เป็นต้นลงในไฟล์นั้นหรือไม่? ... หรือฉันควรสร้างไดเรกทอรีแยกสำหรับแต่ละห้องสมุดและนำข้อมูลทั้งหมดที่เกี่ยวข้องกับห้องสมุดไปยังไดเรกทอรีนั้นหรือไม่ … หรืออย่างอื่น?

มันน่าสนใจที่จะเห็นตัวอย่างของ "เอกสาร" นี้ในโครงการที่ตีพิมพ์

UPDATE:

ฉันได้อ่านคุณต้องรวมประกาศการอนุญาตให้ใช้สิทธิกับไฟล์ต้นฉบับทุกไฟล์หรือไม่? แต่ไม่ได้แก้ไขปัญหาของฉัน คำถามของฉันเกี่ยวกับห้องสมุดบุคคลที่สามที่ใช้ในโครงการและคำถามนั้นเกี่ยวกับส่วนหัวในซอร์สโค้ดของโครงการ

คำตอบ:


62

ข้อแรกข้อจำกัดความรับผิดชอบมาตรฐาน: IANAL แต่เป็นคนแปลกหน้าแบบสุ่ม

ฉันเพิ่งบรรจุแอปพลิเคชัน AGPL (*) เมื่อเร็ว ๆ นี้ มันใช้ห้องสมุดบุคคลที่สามที่แจกจ่ายภายใต้สิทธิ์การใช้งาน jQuery, MIT, BSD (และอื่น ๆ ) นี่คือวิธีที่ฉันได้ดำเนินการ

เจตนาหลักของฉันเมื่อฉันได้รับการออกแบบนี้: จะสอดคล้องและเป็นธรรม ในขณะที่คนแรกควรจะเพียงพอคนที่สองรับรองว่าใครก็ตามที่พยายามจะฟ้องฉันเพราะไม่ได้รับสิทธิ์ 100% ต้องยอมรับว่าฉันได้ทำสิ่งต่าง ๆ โดยสุจริต

1) ไฟล์ต้นฉบับ: ไฟล์ทั้งหมดของฉันมีส่วนหัว AGPL ไฟล์บุคคลที่สามทั้งหมดถูกทิ้งไว้ (ส่วนใหญ่) ไม่ได้แก้ไขและดังนั้นจึงรวมส่วนหัวใบอนุญาตของตนเอง

2) LICENSE.txt ที่รากของแพ็คเกจประกอบด้วยข้อความสิทธิ์ใช้งาน AGPL (ดังอธิบายในส่วน "วิธีใช้ข้อกำหนดเหล่านี้กับโปรแกรมใหม่ของคุณ")

3) ไฟล์ใบอนุญาตที่สองซึ่งฉันชื่อ LICENSE-3RD-PARTY.txt นั้นอยู่ที่รูทของแพ็คเกจด้วยซึ่งประกอบด้วยสำเนาคำต่อคำของใบอนุญาตทั้งหมด สำหรับแต่ละสิทธิการใช้งานส่วนหัวจะระบุว่าเป็นใบอนุญาตใดและส่วนใดที่นำไปใช้ ฉันยังรวมชื่อของผู้ถือลิขสิทธิ์ไว้ที่นี่ด้วย - ฉันใช้ซ้ำอีกครั้งหลังจากนั้นจึงคุ้มค่ากับความพยายาม

-----------------------------------------------------------------------------
                        The MIT License (MIT)
        applies to: 
        - AJAX Upload, Copyright (c) Andrew Valums
        - jQuery hashchange event, Copyright (c) 2010 "Cowboy" Ben Alman
        - jquery.hotkeys, Copyright (c) 2010 John Resig
-----------------------------------------------------------------------------

Permission is hereby granted, free of charge [...]

4) README.txt ที่รากอธิบายว่าซอฟต์แวร์ AGPL (ดู LICENSE.txt) และใช้ไลบรารีบุคคลที่สามที่เผยแพร่ภายใต้ข้อกำหนดของตนเอง (ดู LICENSE-3RD-PARTY.txt)

5) ในเอกสารออนไลน์ฉันมีหน้าใบอนุญาตที่ซ้ำข้อมูลจาก readme: ซอฟต์แวร์ของฉันคือ AGPL และใช้ส่วนประกอบของบุคคลที่สามที่เป็น BSD / MIT / [... ] ฉันได้ตัดสินใจที่จะทำให้หน้านี้สะอาดขึ้นและสามารถอ่านได้มากขึ้นดังนั้นจึงมีเพียงชื่อของใบอนุญาตเท่านั้นที่มีลิงก์ไปยังข้อความแบบเต็มและชื่อของผู้ถือลิขสิทธิ์ที่มีลิงก์ไปยังเว็บไซต์ของตนเอง

jQuery
    Copyright 2013 jQuery Foundation and other contributors
    http://jquery.com
    MIT License
Data Driven Documents (D3)
    Copyright (c) 2013, Michael Bostock    <-- link to personal website, if any
    http://d3js.org                        <-- link to software website
    BSD-like license                       <-- link to license full text
[...]

6) นอกจากนี้ในเอกสารออนไลน์ฉันมีหน้าเครดิตซึ่งฉันแสดงรายชื่อผู้สนับสนุนหลักทั้งทางตรงและทางอ้อม ฉันมีตัวอย่างที่อ้างถึงกลุ่ม PostgreSQL แม้ว่า PostgreSQL จะไม่รวมอยู่ในการดาวน์โหลด แต่คุณต้องการให้มันรันซอฟต์แวร์ นี่จะเป็นสถานที่ที่ดีในการวางการตอบรับทั้งหมดที่ผู้แต่งต้องการเครื่องมือหรือห้องสมุด / ฯลฯ

7) ภายในซอฟต์แวร์ตัวเองรายการของไลบรารีพร้อมกับสิทธิ์ใช้งานและเจ้าของลิขสิทธิ์ถูกทำซ้ำในกล่องโต้ตอบเกี่ยวกับ

หากต้องการตอบคำถามเฉพาะของคุณเกี่ยวกับการรวมซอร์สโค้ดและเลย์เอาต์ของไฟล์:

  • โดยทั่วไปจะยอมรับเฉพาะลิงก์ไปยังซอร์สโค้ดแบบเต็มของแพ็คเกจบุคคลที่สาม ศึกษาใบอนุญาตเฉพาะแต่ละใบเพื่อให้แน่ใจ แต่ IMHO ที่ให้ลิงก์ควรเพียงพอ ตัวอย่างเช่นหากคุณใช้ไลบรารี่เวอร์ชันย่อคุณสามารถระบุลิงก์ไปยังการดาวน์โหลดมาตรฐานและใช้ได้

  • เว้นแต่ว่าองค์ประกอบของบุคคลที่สามเรียกร้องอย่างชัดเจนว่าการกระจายจะทำให้เค้าโครงของไฟล์เหมือนกันคุณสามารถจัดเรียงสิ่งต่าง ๆ ได้ตามที่คุณต้องการ ลองนึกภาพคุณใช้เว็บไลบรารีโดยมี css / และ js / แต่ละไดเรกทอรีคุณสามารถรวมเข้าด้วยกันเป็น lib / directory เดียวที่มี css / และ js / ที่ผสานหรือแม้แต่กระจายพวกมันรอบ ๆ ต้นกำเนิดของคุณ - ทางเลือกของคุณ

และในฐานะที่เป็นโน้ตสุดท้ายฉันจะยินดีต้อนรับนักวิจารณ์ที่โบกมือพูดว่า "คุณกำลังทำสิ่งนี้ผิด" และ / หรือ "คุณควรทำเช่นนั้น "

(*) นี่ไม่ได้มีวัตถุประสงค์เพื่อเชื่อมโยงสแปม แต่เพียงเพื่อตอบส่วน "โปรดให้ตัวอย่าง" ของคำถาม อย่าลังเลที่จะ mods เพื่อล้างลิงค์นี้ถ้ามันผิดกฎ


2
ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม! มันเป็นข้อมูลที่ฉันต้องการ ฉันจะไม่ยอมรับมันเพื่อดูว่าคนอื่นมีอะไรจะพูดไหม
Alexey

8
สำหรับผู้ที่จะมาที่นี่ในภายหลัง FireFox มีเอกสารคล้ายกับLICENSE-3RD-PARTY.txtไฟล์ที่อธิบายในคำตอบนี้ (คลิกLicensing InformationในAboutกล่อง) มีเอกสารที่คล้ายกันใน Google Chrome เช่นกัน
Alexey

1
นี่คือเอกสารที่คล้ายกันซึ่งแสดงรายการซอฟต์แวร์ของบุคคลที่สามที่ใช้โดย IntelliJ IDEA: confluence.jetbrains.com/display/IDEADEV/…
Alexey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.