ใบอนุญาต Gnu ในภาษารัสเซีย โลกแห่งใบอนุญาต: ทำความเข้าใจ GNU GPL

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


หากเราพูดถึงโลกแห่งใบอนุญาต "ฟรี" เสาหลักและแกนหลักถือได้ว่าเป็น GNU General Public License (GPL) และในบทความนี้ ฉันต้องการแยกใบอนุญาตที่อยู่ภายใต้ GNU GPL และอธิบายใบอนุญาตอื่นๆ ทั้งหมดที่ไม่อยู่ภายใต้เงื่อนไขของใบอนุญาตนี้ ส่วนแรกของบทความจะอธิบาย GNU GPL เอง ประวัติโดยย่อใบอนุญาตอื่นๆ ที่คล้ายคลึงกัน ในตอนท้ายฉันจะให้อภิธานศัพท์และคำย่อเล็กๆ น้อยๆ ไว้

ใบอนุญาตสาธารณะทั่วไปของ GNU

ก่อนอื่น ฉันอยากจะอธิบายว่า “GNU” คืออะไร GNU ย่อมาจาก "GNU" ไม่ใช่ UNIX ซึ่งเป็นตัวย่อที่เรียกซ้ำโดย Richard Stallman นักอุดมการณ์ที่มีชื่อเสียงเกี่ยวกับซอฟต์แวร์แบบเปิดและฟรี ชื่อนี้ตั้งขึ้นสำหรับ ระบบปฏิบัติการซึ่ง Stallman พัฒนาขึ้นในยุค 80 ประวัติความเป็นมาของ GNU สมควรได้รับบทความของตัวเอง ดังนั้นฉันจะพูดตรงประเด็น

ใบอนุญาตสาธารณะทั่วไปของ GNU หรือโอเพ่นซอร์ส ข้อตกลงใบอนุญาต GNU เป็นใบอนุญาตที่มีเวอร์ชันแรกถึงวันที่ 1 กุมภาพันธ์ พ.ศ. 2532 (วิกิพีเดียบอกว่าปี 1988 แต่ฉันเชื่อว่าวันที่นั้นเป็นของต้นฉบับ) ขณะนี้มีตัวเลือกใบอนุญาตสี่แบบ เรียงตามหมายเลขที่ปรากฏ

GNU GPL เวอร์ชัน 1.0

ข้อกำหนดหลักของ GNU GPL v1.0 มีข้อกำหนดดังต่อไปนี้:
  • การจัดหาซอร์สโค้ดสำหรับการศึกษา รหัสไบนารี่เผยแพร่ภายใต้ใบอนุญาตนี้
  • การรับมรดกใบอนุญาตในกรณีมีการแก้ไข รหัสแหล่งที่มานั่นคือแก้ไขหรือรวมกับโค้ดอื่น ๆ ด้วยเหตุนี้จึงต้องเผยแพร่ภายใต้ ใบอนุญาตกนู GPL จึงพร้อมสำหรับการแก้ไขโดยใครก็ตาม
ข้อกำหนดเหล่านี้มีวัตถุประสงค์หลักประการเดียวคือ เพื่อป้องกันผลกระทบของกฎหมายลิขสิทธิ์ต่อโอเพ่นซอร์สแบบกระจาย ซอฟต์แวร์ซึ่งห้ามการแก้ไขและใช้รหัสของผู้อื่น

GNU GPL เวอร์ชัน 2.0

ใบอนุญาตเวอร์ชันที่สองมีอายุย้อนไปถึงปี 1991 และจุดประสงค์หลักประกาศ (ตามวิกิ) ถึงหลักการของ "เสรีภาพหรือความตาย" หลักการนี้มีอยู่ในข้อที่เจ็ดและแปดของข้อตกลง:

7. ผู้รับอนุญาตไม่ได้รับการยกเว้นจากการปฏิบัติตามภาระผูกพันตามใบอนุญาตนี้ หากเป็นผลมาจากคำตัดสินของศาลหรือคำแถลงเกี่ยวกับการละเมิดสิทธิพิเศษหรือเนื่องจากการเกิดขึ้นของสถานการณ์อื่น ๆ ที่ไม่เกี่ยวข้องโดยตรงกับการละเมิดสิทธิพิเศษ ผู้รับอนุญาตอยู่ภายใต้คำตัดสินของศาล สัญญา หรือพื้นฐานอื่น ๆ มีภาระผูกพันที่ขัดแย้งกับเงื่อนไขของใบอนุญาตนี้ ในกรณีนี้ ผู้ได้รับใบอนุญาตไม่มีสิทธิ์ในการแจกจ่ายสำเนาของโปรแกรม หากเขาไม่สามารถปฏิบัติตามข้อกำหนดของใบอนุญาตนี้และภาระผูกพันที่กำหนดไว้ในลักษณะที่ระบุไว้ข้างต้นได้พร้อมๆ กัน ตัวอย่างเช่น หากภายใต้เงื่อนไขของข้อตกลงใบอนุญาต ผู้ได้รับอนุญาตช่วงไม่สามารถให้สิทธิ์ในการแจกจ่ายสำเนาของโปรแกรมที่พวกเขาซื้อโดยตรงหรือผ่านบุคคลที่สามจากผู้รับอนุญาตได้อย่างอิสระ ในกรณีนี้ ผู้รับอนุญาตจะต้องปฏิเสธที่จะแจกจ่ายสำเนาของ โปรแกรม.

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

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

ข้อ 7 นี้มีวัตถุประสงค์เพื่อกำหนดวัตถุประสงค์ของข้อกำหนดอื่นๆ ทั้งหมดของใบอนุญาตนี้อย่างชัดเจน

8. หากการเผยแพร่และ/หรือการใช้โปรแกรมในบางประเทศถูกจำกัดโดยข้อตกลงในด้านสิทธิบัตรหรือลิขสิทธิ์ ผู้ถือลิขสิทธิ์ดั้งเดิมที่เผยแพร่โปรแกรมภายใต้เงื่อนไขของใบอนุญาตนี้มีสิทธิ์จำกัดพื้นที่การเผยแพร่ของ ​​โปรแกรม ซึ่งระบุเฉพาะรัฐที่อนุญาตให้มีการกระจายอาณาเขต โปรแกรมโดยไม่มีข้อจำกัดเนื่องจากข้อตกลงดังกล่าว ในกรณีนี้ การบ่งชี้ดังกล่าวที่เกี่ยวข้องกับอาณาเขตของบางรัฐจะได้รับการยอมรับว่าเป็นหนึ่งในเงื่อนไขของใบอนุญาตนี้

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

GNU Lesser GPL เวอร์ชัน 2.1

ใบอนุญาตเวอร์ชันนี้มีอายุย้อนไปถึงปี 1999 และมีความแตกต่างอย่างมากจากใบอนุญาต GNU GPL ทั่วไป: ใบอนุญาตนี้มีไว้สำหรับห้องสมุด ใบอนุญาตอนุญาตให้ใช้ในซอฟต์แวร์ที่เป็นกรรมสิทธิ์ได้ ตัวอย่างเช่น ไลบรารี GNU C ได้รับการเผยแพร่ภายใต้ลิขสิทธิ์ GNU Lesser GPL v2.1 เพื่อที่จะ นักพัฒนาบุคคลที่สามสามารถใช้พวกมันในซอฟต์แวร์ได้ฟรีหรือเชิงพาณิชย์

GNU GPL เวอร์ชัน 3.0

GPL เวอร์ชันล่าสุดจนถึงปัจจุบัน ซึ่งเปิดตัวในปี 2550 การเปลี่ยนแปลงใบอนุญาตมีจุดประสงค์เพื่อปกป้องผู้ใช้ใบอนุญาตจากการถูกฟ้องร้องที่เกี่ยวข้องกับสิทธิบัตร ขณะนี้ผู้สร้างโปรแกรมไม่สามารถฟ้องร้องผู้ใช้ได้ GPL 3.0 ห้ามมิให้มีการใช้ใบอนุญาตกับซอฟต์แวร์ที่ถูกห้ามไม่ให้ถูกหลีกเลี่ยงโดยกฎหมายและคำสั่งบางประการ (กฎหมาย Digital Millennium Copyright Act และ European Union Copyright Directive) นั่นคือคุณไม่สามารถเผยแพร่ซอฟต์แวร์ใด ๆ ที่อยู่ภายใต้ขอบเขตของคำสั่งเหล่านี้ภายใต้ใบอนุญาตได้ ดังนั้น GPL 3.0 จึงทำให้มั่นใจได้ว่าซอฟต์แวร์ใดๆ ที่เผยแพร่ภายใต้ใบอนุญาตสามารถแก้ไข หลีกเลี่ยง หรือเปลี่ยนแปลงได้อย่างอิสระ

นอกจากนี้ GPL 3.0 ยังต่อสู้กับปรากฏการณ์ "tivoization" ซึ่งอุปกรณ์ที่ติดตั้งซอฟต์แวร์ลิขสิทธิ์ GPL ไม่อนุญาตให้คุณแก้ไขด้วยเหตุผลหลายประการ GPL v3.0 ห้ามการปรับแต่งสำหรับผลิตภัณฑ์อุปโภคบริโภค (ทำให้มีโอกาสติดไวรัสสำหรับอุปกรณ์ทางการแพทย์และอุปกรณ์สำคัญอื่นๆ)

นอกจาก GPL 3.0 แล้ว มันยังเปิดตัวอีกด้วย เวอร์ชันอัปเดต GNU Lesser GPL 3.0 ซึ่งยังคงสร้างความแตกต่างโดยอนุญาตให้ใช้ไลบรารี่ฟรีในซอฟต์แวร์ที่เป็นกรรมสิทธิ์

ความเข้ากันได้

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

เข้ากันได้กับใบอนุญาต GPL 3.0 เท่านั้น

GNU Affero General Public License (AGPL) v3 - มีส่วนระบุว่าผู้ใช้ที่โต้ตอบกับโปรแกรมผ่านเครือข่ายควรสามารถรับซอร์สโค้ดได้เช่นกัน
ใบอนุญาต Apache เวอร์ชัน 2.0;
ใบอนุญาตชุมชนการศึกษา 2.0;
ใบอนุญาตโครงการ Freetype;
ใบอนุญาตสาธารณะของ Microsoft (Ms-PL);
XFree86 1.1 ใบอนุญาต;

ใบอนุญาตที่เข้ากันได้กับ GNU GPL (ทั้งเวอร์ชัน v2 และ v3)

ใบอนุญาตทางศิลปะ 2.0;
ใบอนุญาตฐานข้อมูล Berkeley (หรือที่รู้จักในชื่อใบอนุญาตผลิตภัณฑ์ซอฟต์แวร์ Sleepycat);
เพิ่มลิขสิทธิ์ซอฟต์แวร์;
ใบอนุญาต BSD ดัดแปลง;
CeCILL เวอร์ชัน 2;
ใบอนุญาตทั่วไปของ Cryptix;
ใบอนุญาตหอไอเฟล เวอร์ชัน 2 - รุ่นก่อนหน้าไม่เข้ากัน;
ใบอนุญาตชาวต่างชาติ;
ใบอนุญาต FreeBSD;
สิทธิ์การใช้งานไลบรารีฟังก์ชันมาตรฐานของ iMatix;
ใบอนุญาตกลุ่ม JPEG อิสระ;
ใบอนุญาต imlib2;
อินเทล โอเพ่นซอร์สใบอนุญาต;
ใบอนุญาต ISC;
NCSA/ใบอนุญาตโอเพ่นซอร์สของมหาวิทยาลัยอิลลินอยส์;
ใบอนุญาต Netscape Javascript;
ใบอนุญาต OpenLDAP เวอร์ชัน 2.7;
ใบอนุญาต Perl 5 และต่ำกว่า;
โดเมนสาธารณะ;
ใบอนุญาต Python 2.0.1, 2.1.1 และเวอร์ชันที่ใหม่กว่า
ใบอนุญาตทับทิม;
ML มาตรฐานของใบอนุญาตลิขสิทธิ์นิวเจอร์ซีย์;
ยูนิโค้ด อิงค์ ข้อตกลงใบอนุญาตสำหรับไฟล์ข้อมูลและซอฟต์แวร์
ประกาศและใบอนุญาตซอฟต์แวร์ W3C;
ใบอนุญาต X11 - บางครั้งเรียกว่าใบอนุญาต MIT โดยไม่ได้ตั้งใจ

ใบอนุญาตที่เข้ากันได้กับ Lesser GPL

ใบอนุญาต eCos เวอร์ชัน 2.0

พจนานุกรม

GNU เป็นตัวย่อแบบเรียกซ้ำสำหรับ Not Unix ของ GNU;
GNU GPL - ข้อตกลงใบอนุญาตแบบเปิดของ GNU;
ซอฟต์แวร์ที่เป็นกรรมสิทธิ์คือซอฟต์แวร์ที่มีข้อจำกัดในการใช้งานและไม่เปิดให้ทำการดัดแปลง กล่าวคือ “ซอฟต์แวร์ที่ไม่เสรี” ใช่ ซอฟต์แวร์ฟรี ใช่ ที่ได้รับการอนุมัติ ใช่ ลิขสิทธิ์ ใช่ อนุญาตให้เชื่อมโยงรหัสภายใต้ใบอนุญาตอื่น ไม่ (ข้อยกเว้นเพียงอย่างเดียว: GNU GPLv3 อนุญาตให้ใช้สิทธิ์ซ้ำภายใต้ GNU AGPLv3)

ใบอนุญาตสาธารณะทั่วไปของ GNU(แปลว่า. ใบอนุญาตสาธารณะทั่วไปของ GNU, ใบอนุญาตสาธารณะทั่วไปของ GNUหรือ ข้อตกลงใบอนุญาตแบบเปิดของ GNU) คือลิขสิทธิ์ซอฟต์แวร์เสรีที่สร้างขึ้นโดยโครงการ GNU ซึ่งผู้เขียนโอนซอฟต์แวร์ให้เป็นกรรมสิทธิ์สาธารณะ มันยังเรียกสั้น ๆ กนู จีพีแอลหรือแม้กระทั่งเพียงแค่ จีพีแอลหากชัดเจนจากบริบทว่าเรากำลังพูดถึงใบอนุญาตเฉพาะนี้ (มีใบอนุญาตอื่น ๆ อีกหลายรายการที่มีคำว่า "ใบอนุญาตสาธารณะทั่วไป" ในชื่อ) เวอร์ชันที่สองของใบอนุญาตนี้เผยแพร่ในปี 1991 ส่วนเวอร์ชันที่สามหลังจากทำงานมาหลายปีและการพูดคุยกันอย่างยาวนานในปี 2007 GNU Lesser General Public License (LGPL) เป็น GPL เวอร์ชันที่อ่อนแอสำหรับไลบรารีซอฟต์แวร์บางตัว ใบอนุญาตสาธารณะทั่วไปของ GNU คือ เวอร์ชันปรับปรุง GPL สำหรับโปรแกรมที่ตั้งใจจะเข้าถึงผ่านทางอินเทอร์เน็ต

วัตถุประสงค์ของ GNU GPL คือการให้สิทธิ์แก่ผู้ใช้ในการคัดลอก แก้ไข และแจกจ่าย (รวมถึง to บนพื้นฐานเชิงพาณิชย์) โปรแกรม และยังให้แน่ใจว่าผู้ใช้โปรแกรมอนุพันธ์ทั้งหมดได้รับสิทธิ์ข้างต้น หลักการของ "การสืบทอด" ของสิทธิเรียกว่า "copyleft" (การทับศัพท์จากภาษาอังกฤษ copyleft) และคิดค้นโดย Richard Stallman ตรงกันข้ามกับ GPL ลิขสิทธิ์ซอฟต์แวร์ที่เป็นกรรมสิทธิ์ “แทบจะไม่ได้ให้สิทธิ์ดังกล่าวแก่ผู้ใช้ และมักจะมีแนวโน้มที่จะจำกัดสิทธิ์เหล่านั้น เช่น โดยการห้ามการกู้คืนซอร์สโค้ด”

GNU GPL ไม่อนุญาตให้รวมโปรแกรมไว้ในซอฟต์แวร์ที่เป็นกรรมสิทธิ์ ถ้า โปรแกรมนี้เป็นไลบรารี วิธีที่ดีที่สุดคืออนุญาตให้ซอฟต์แวร์ที่เป็นกรรมสิทธิ์เชื่อมโยงกับไลบรารีนั้น เพื่อจุดประสงค์นี้ คุณจำเป็นต้องใช้ GNU Lesser General Public License แทน GPL

เสรีภาพและภาระผูกพัน

GPL ให้สิทธิ์แก่ผู้รับโปรแกรมคอมพิวเตอร์หรือ "เสรีภาพ" ดังต่อไปนี้:

  • เสรีภาพในการรันโปรแกรมเพื่อวัตถุประสงค์ใด ๆ
  • อิสระในการศึกษาวิธีการทำงานของโปรแกรมและแก้ไข (เงื่อนไขเบื้องต้นสำหรับสิ่งนี้คือการเข้าถึงซอร์สโค้ด)
  • เสรีภาพในการแจกจ่ายสำเนาของทั้งซอร์สโค้ดและโค้ดที่ปฏิบัติการได้
  • อิสระในการปรับปรุงโปรแกรมและเผยแพร่การปรับปรุง การเข้าถึงสาธารณะ(เงื่อนไขเบื้องต้นสำหรับสิ่งนี้คือการเข้าถึงซอร์สโค้ด)

โดยทั่วไป ผู้จัดจำหน่ายโปรแกรมที่ได้รับภายใต้ GPL หรือโปรแกรมที่ใช้ GPL จะต้องให้โอกาสผู้รับในการรับซอร์สโค้ดที่เกี่ยวข้อง

เรื่องราว

จีพีแอล เวอร์ชัน 2

บริษัทที่จำหน่ายซอฟต์แวร์ GPLv3 ไม่สามารถเรียกร้องทางกฎหมายต่อผู้ใช้ผลิตภัณฑ์ GPLv3 เกี่ยวกับการหลีกเลี่ยงโดยผลิตภัณฑ์เวอร์ชันที่จำหน่ายของ TSAPP และการละเมิดสิทธิบัตรของผู้จัดจำหน่าย ห้ามมิให้มีการแบ่งแยกดินแดนด้วย

โครงการ GNU GPL

ข้อความของ GNU GPL ประกอบด้วยส่วนที่เป็นตัวเลขหลายส่วน ด้านล่างนี้เป็นแผนภาพของใบอนุญาตเวอร์ชัน 2.0 โครงการนี้ไม่มี อำนาจทางกฎหมายและมีวัตถุประสงค์เพื่อให้ข้อมูลโดยย่อเท่านั้น

  1. คำจำกัดความ
    • (ย่อหน้าแรก) คำจำกัดความของคำว่า “โปรแกรม”
    • (วรรคสอง) ขอบเขตของใบอนุญาต
  2. สิทธิในการคัดลอกและแจกจ่าย
  3. การเปลี่ยนแปลงโปรแกรม
    • (ย่อหน้าแรก) สิทธิในการเปลี่ยนแปลงตามเงื่อนไขดังต่อไปนี้
      • ก) การเพิ่มข้อมูลเกี่ยวกับการเปลี่ยนแปลงในไฟล์ที่แก้ไข
      • b) การออกใบอนุญาต เวอร์ชันที่แก้ไขภายใต้เงื่อนไขของ GNU GPL;
      • c) ข้อกำหนดตามเงื่อนไขสำหรับการแสดงข้อมูลลิขสิทธิ์และข้อจำกัดความรับผิดชอบแบบโต้ตอบ
    • (ย่อหน้าที่ 2-4) ชี้แจงคำว่า “งานอนุพันธ์”
  4. ข้อกำหนดซอร์สโค้ด
    • (ย่อหน้าแรก) ตัวเลือกที่เป็นไปได้การกระจายรหัสปฏิบัติการ:
      • ก) การเผยแพร่พร้อมกับซอร์สโค้ด หรือ
      • b) การเผยแพร่พร้อมการรับประกันการให้ซอร์สโค้ดหรือ
      • c) (สำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์) การแจกจ่ายพร้อมกับการรับประกันดังกล่าวที่ได้รับจากบุคคลที่สาม
    • (ย่อหน้าที่สอง) คำจำกัดความของ "ซอร์สโค้ด"
    • (ย่อหน้าที่สาม) ความเพียงพอในการเข้าถึงที่เท่าเทียมกันสำหรับการคัดลอกไฟล์ปฏิบัติการและซอร์สโค้ด
  5. การสิ้นสุดใบอนุญาตหากมีการละเมิดข้อกำหนด
  6. การกระทำที่แสดงการรับใบอนุญาต
  7. ข้อห้าม ข้อ จำกัด เพิ่มเติมเมื่อมีการจำหน่ายต่อไป
  8. ข้อจำกัดภายนอกไม่ได้ลบภาระผูกพันในการปฏิบัติตามข้อกำหนดของใบอนุญาต
  9. ความเป็นไปได้ของข้อจำกัดทางภูมิศาสตร์
  10. GNU GPL เวอร์ชันอนาคต
  11. คำขอยกเว้นกฎ
  12. การปฏิเสธการรับประกัน
  13. การปฏิเสธความรับผิดชอบ

ความเข้ากันได้

การใช้ copyleft กำหนดข้อจำกัดบางประการในการรวมงานภายใต้ GPL และใบอนุญาตฟรีอื่นๆ (โดยหลักคือลิขสิทธิ์) ในงานลอกเลียนแบบ

GPLv2 เข้ากันไม่ได้กับ Mozilla Public License (MPL), Common Development and Distribution License (CDDL), Apache Software License และอื่นๆ

GPLv3 ได้รับการทำให้เข้ากันได้กับใบอนุญาต Apache แต่ไม่สามารถทำงานร่วมกับ MPL และอนุพันธ์ของมันได้ งานภายใต้ MPL มักจะได้รับอนุญาตภายใต้ทั้ง GPL และ LGPL ในเวลาเดียวกัน (เช่น รหัส Mozilla Firefox) ซึ่งช่วยแก้ปัญหาได้บางส่วน

ตัวอย่างที่รู้จักกันดีของ GPL ที่เข้ากันไม่ได้กับใบอนุญาตอื่นคือการไม่สามารถรวมได้ ระบบไฟล์ ZFS ซึ่งเผยแพร่โดย Sun Microsystems ภายใต้ CDDL ลงในเคอร์เนล Linux ซึ่งเผยแพร่ภายใต้ GPLv2

ใบอนุญาตที่ไม่ฟรีใด ๆ เข้ากันไม่ได้กับ GPL

ความยากลำบาก

GNU GPL ต้องมีการกระจายจาก ไฟล์ไบนารี(รวมถึงที่ไม่เปลี่ยนแปลง) ซอร์สโค้ดหรือข้อผูกพันเป็นลายลักษณ์อักษรในการจัดหา (ของคุณหรือของผู้อื่น วิธีการขึ้นอยู่กับเวอร์ชันของใบอนุญาต) ผู้เขียนบางคนเชื่อว่าข้อกำหนดนี้เป็นเรื่องผิดปกติสำหรับ ผู้ใช้แต่ละรายและนักพัฒนา และไม่ชัดเจนและเข้าใจได้สำหรับพวกเขา

บางครั้งผู้เขียนมีปัญหาในการตัดสินใจเลือกสิ่งที่ควรพิจารณาเป็นซอร์สโค้ดสำหรับการแสดงข้อมูลแอนะล็อกแบบดิจิทัล: บันทึกดนตรี, วิดีโอจากกล้องวิดีโอ, ภาพถ่าย- ซึ่งมักเกิดขึ้นเมื่อใช้การบีบอัดแบบสูญเสียหรือการแปลงหลายรายการ (เช่น บันทึกแบบดิจิตอลเล่นเปียโนจากโน้ตหรือร้องเพลง) ตัวอย่างเช่น เสรีภาพเป็นปัญหา แทร็กเสียงภายใต้ใบอนุญาต CC BY-SA (ซึ่งไม่จำเป็นต้องมีการเผยแพร่ซอร์สโค้ด) หากส่วนประกอบไม่สามารถใช้งานได้ภายใต้ใบอนุญาตฟรี แยกกันเนื่องจากเป็นไปไม่ได้ที่จะประกอบแทร็กเสียงเดียวกันหรือแทร็กเสียงอื่นจากแทร็กเหล่านั้น - ]

การปฏิบัติตามกฎหมาย

  • ข้อตกลงใบอนุญาต GPL ไม่อนุญาตให้มีการปรับเปลี่ยนเพื่อให้สอดคล้องกับกฎหมายท้องถิ่น และไม่ได้ระบุถึงข้อจำกัดด้านอาณาเขต ดังนั้นข้อตกลงดังกล่าวจึงไม่สอดคล้องกับระบอบการปกครองทางกฎหมายที่จัดตั้งขึ้นในอาณาเขตของสหพันธรัฐรัสเซีย

แต่ในขณะเดียวกัน, กฎหมายระหว่างประเทศมีความเป็นอันดับหนึ่งเหนือรัสเซียสำหรับข้อตกลงและธุรกรรมระหว่างประเทศนั่นคือสำหรับผู้ถือลิขสิทธิ์ - พลเมืองของสหพันธรัฐรัสเซียความถูกต้องของข้อตกลงภายใต้ใบอนุญาต GPL จะใช้เฉพาะกับอาณาเขตของสหพันธรัฐรัสเซีย () และ สำหรับชาวต่างชาติก็จะมีผลบังคับเต็มที่

  • บางครั้งพวกเขาพูดถึงความเป็นไปได้ในการใช้ GNU GPL เป็นข้อตกลงภาคยานุวัติตามบทความ (, ประมวลกฎหมายแพ่งของสหพันธรัฐรัสเซีย) แต่วิธีเดียวเท่านั้น ข้อตกลงใบอนุญาตอธิบายไว้ในประมวลกฎหมายแพ่งของสหพันธรัฐรัสเซีย (“ การสรุปข้อตกลงใบอนุญาตที่ให้สิทธิ์ในการใช้โปรแกรมคอมพิวเตอร์หรือฐานข้อมูลนั้นได้รับอนุญาตจากผู้ใช้แต่ละรายโดยสรุปข้อตกลงภาคยานุวัติกับผู้ถือลิขสิทธิ์ที่เกี่ยวข้องซึ่งมีเงื่อนไขที่กำหนดไว้ใน ซื้อสำเนาของโปรแกรมหรือฐานข้อมูลดังกล่าวหรือบนบรรจุภัณฑ์ของสำเนานี้รวมทั้งใน ในรูปแบบอิเล็กทรอนิกส์(ข้อ 2 ของมาตรา 434) บทความนี้ทำให้เป็นไปได้ที่จะทำให้ซอฟต์แวร์ที่ดาวน์โหลดจากอินเทอร์เน็ตถูกกฎหมายและจัดหาให้ภายใต้ใบอนุญาต GNU GPL โดยวิธีการทำให้ถูกต้องตามกฎหมายโดยการสรุปข้อตกลงทางกฎหมาย/ข้อตกลงทางกฎหมายที่ครบถ้วนสมบูรณ์ ไม่เพียงแต่กับมูลนิธิเท่านั้น แต่กับเจ้าของลิขสิทธิ์แต่ละรายด้วย ของงาน เนื่องจากอย่างน้อยพวกเขาก็ตระหนักถึงอำนาจของมูลนิธิในการปกป้องผลประโยชน์ในศาล พวกเขาไม่ได้สรุปการโอนสิทธิ์ของตนไปยังมูลนิธิ SPO กับเขา - ตามกฎหมายของสหพันธรัฐรัสเซียนั่นคือ โอนสิทธิ์ของพวกเขาโดยไม่มีมูลความจริงเท่านั้น (นั่นคือบ่อยครั้งที่สิ่งนี้พิสูจน์ไม่ได้ - โดยไม่ได้ลงทะเบียนการไหลของเอกสารที่เกี่ยวข้อง) แม้ในกรณีที่ได้ข้อสรุปครบถ้วนแล้วก็ตาม สัญญาทางกฎหมายกับนักพัฒนาทุกคน - ทุกสิ่งทุกอย่าง ผลิตภัณฑ์ซอฟต์แวร์ภายใต้ GPL แม้แต่ที่ผลิตในอาณาเขตของสหพันธรัฐรัสเซียตลอดจนข้อสรุปบังคับของข้อตกลงกับกองทุนเอง - ในฐานะตัวแทนผลประโยชน์ของพวกเขานั่นคือตามกฎหมายและเป็นของกองทุนนี้ - ในฐานะนิติบุคคลต่างประเทศ : อยู่ภายใต้ข้อกำหนดของการทดแทนการนำเข้า

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

รปภ: แปลส่วนเล็ก ๆ ของคำถามที่พบบ่อยอย่างเป็นทางการของ GPL ได้รับการเผยแพร่แล้ว habrahabr.ru/blogs/Dura_Lex/45878
UPD2: รายการใบอนุญาตที่เข้ากันได้ได้รับการปรับปรุงและจัดรูปแบบใหม่


หากเราพูดถึงโลกแห่งใบอนุญาต "ฟรี" เสาหลักและแกนหลักถือได้ว่าเป็น GNU General Public License (GPL) และในบทความนี้ ฉันต้องการแยกใบอนุญาตที่อยู่ภายใต้ GNU GPL และอธิบายใบอนุญาตอื่นๆ ทั้งหมดที่ไม่อยู่ภายใต้เงื่อนไขของใบอนุญาตนี้ ส่วนแรกของบทความจะอธิบาย GNU GPL ประวัติโดยย่อ และใบอนุญาตอื่นๆ ที่คล้ายคลึงกัน ในตอนท้ายฉันจะให้อภิธานศัพท์และคำย่อเล็กๆ น้อยๆ ไว้

ใบอนุญาตสาธารณะทั่วไปของ GNU

ก่อนอื่น ฉันอยากจะอธิบายว่า “GNU” คืออะไร GNU ย่อมาจาก “GNU ไม่ใช่ UNIX” ซึ่งเป็นตัวย่อแบบเรียกซ้ำที่คิดค้นโดย Richard Stallman นักอุดมการณ์ที่มีชื่อเสียงเกี่ยวกับซอฟต์แวร์แบบเปิดและฟรี ชื่อนี้ตั้งขึ้นสำหรับระบบปฏิบัติการที่ Stallman พัฒนาขึ้นในยุค 80 ประวัติศาสตร์ของ GNU สมควรได้รับ บทความแยกต่างหาก ดังนั้นฉันจะตรงประเด็น

GNU General Public License หรือ GNU Open License Agreement เป็นใบอนุญาตที่มีเวอร์ชันแรกถึงวันที่ 1 กุมภาพันธ์ 1989 (Wikipedia ระบุว่าปี 1988 แต่ฉันเชื่อว่าวันที่เป็นของต้นฉบับ) ขณะนี้มีตัวเลือกใบอนุญาตสี่แบบ เรียงตามหมายเลขที่ปรากฏ

GNU GPL เวอร์ชัน 1.0

ข้อกำหนดหลักของ GNU GPL v1.0 มีข้อกำหนดดังต่อไปนี้:
  • การจัดหาซอร์สโค้ดเพื่อการศึกษาสำหรับรหัสไบนารี่ที่เผยแพร่ภายใต้ใบอนุญาตนี้
  • การสืบทอดใบอนุญาตในกรณีของการแก้ไขซอร์สโค้ด กล่าวคือ โค้ดที่ถูกแก้ไขหรือรวมเข้าด้วยกันจะต้องได้รับการเผยแพร่ภายใต้ใบอนุญาต GNU GPL ดังนั้นจึงทุกคนสามารถแก้ไขได้
ข้อกำหนดเหล่านี้มีวัตถุประสงค์หลักประการหนึ่งคือ เพื่อป้องกันการดำเนินการของกฎหมายลิขสิทธิ์เกี่ยวกับซอฟต์แวร์โอเพ่นซอร์สแบบกระจาย ซึ่งห้ามการแก้ไขและใช้รหัสของบุคคลอื่น

GNU GPL เวอร์ชัน 2.0

ใบอนุญาตเวอร์ชันที่สองมีอายุย้อนไปถึงปี 1991 และจุดประสงค์หลักประกาศ (ตามวิกิ) ถึงหลักการของ "เสรีภาพหรือความตาย" หลักการนี้มีอยู่ในข้อที่เจ็ดและแปดของข้อตกลง:

7. ผู้รับอนุญาตไม่ได้รับการยกเว้นจากการปฏิบัติตามภาระผูกพันตามใบอนุญาตนี้ หากเป็นผลมาจากคำตัดสินของศาลหรือคำแถลงเกี่ยวกับการละเมิดสิทธิพิเศษหรือเนื่องจากการเกิดขึ้นของสถานการณ์อื่น ๆ ที่ไม่เกี่ยวข้องโดยตรงกับการละเมิดสิทธิพิเศษ ผู้รับอนุญาตอยู่ภายใต้คำตัดสินของศาล สัญญา หรือพื้นฐานอื่น ๆ มีภาระผูกพันที่ขัดแย้งกับเงื่อนไขของใบอนุญาตนี้ ในกรณีนี้ ผู้ได้รับใบอนุญาตไม่มีสิทธิ์ในการแจกจ่ายสำเนาของโปรแกรม หากเขาไม่สามารถปฏิบัติตามข้อกำหนดของใบอนุญาตนี้และภาระผูกพันที่กำหนดไว้ในลักษณะที่ระบุไว้ข้างต้นได้พร้อมๆ กัน ตัวอย่างเช่น หากภายใต้เงื่อนไขของข้อตกลงใบอนุญาต ผู้ได้รับอนุญาตช่วงไม่สามารถให้สิทธิ์ในการแจกจ่ายสำเนาของโปรแกรมที่พวกเขาซื้อโดยตรงหรือผ่านบุคคลที่สามจากผู้รับอนุญาตได้อย่างอิสระ ในกรณีนี้ ผู้รับอนุญาตจะต้องปฏิเสธที่จะแจกจ่ายสำเนาของ โปรแกรม.

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

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

ข้อ 7 นี้มีวัตถุประสงค์เพื่อกำหนดวัตถุประสงค์ของข้อกำหนดอื่นๆ ทั้งหมดของใบอนุญาตนี้อย่างชัดเจน

8. หากการเผยแพร่และ/หรือการใช้โปรแกรมในบางประเทศถูกจำกัดโดยข้อตกลงในด้านสิทธิบัตรหรือลิขสิทธิ์ ผู้ถือลิขสิทธิ์ดั้งเดิมที่เผยแพร่โปรแกรมภายใต้เงื่อนไขของใบอนุญาตนี้มีสิทธิ์จำกัดพื้นที่การเผยแพร่ของ ​​โปรแกรม ซึ่งระบุเฉพาะรัฐที่อนุญาตให้มีการกระจายอาณาเขต โปรแกรมโดยไม่มีข้อจำกัดเนื่องจากข้อตกลงดังกล่าว ในกรณีนี้ การบ่งชี้ดังกล่าวที่เกี่ยวข้องกับอาณาเขตของบางรัฐจะได้รับการยอมรับว่าเป็นหนึ่งในเงื่อนไขของใบอนุญาตนี้

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

GNU Lesser GPL เวอร์ชัน 2.1

ใบอนุญาตเวอร์ชันนี้มีอายุย้อนไปถึงปี 1999 และมีความแตกต่างอย่างมากจากใบอนุญาต GNU GPL ทั่วไป: ใบอนุญาตนี้มีไว้สำหรับห้องสมุด ใบอนุญาตอนุญาตให้ใช้ในซอฟต์แวร์ที่เป็นกรรมสิทธิ์ได้ ตัวอย่างเช่น ไลบรารี GNU C ได้รับการเผยแพร่ภายใต้ลิขสิทธิ์ GNU Lesser GPL v2.1 เพื่อให้นักพัฒนาบุคคลที่สามสามารถใช้ไลบรารีเหล่านี้ในซอฟต์แวร์ของตนได้ฟรีหรือใช้ในเชิงพาณิชย์

GNU GPL เวอร์ชัน 3.0

GPL เวอร์ชันล่าสุดจนถึงปัจจุบัน ซึ่งเปิดตัวในปี 2550 การเปลี่ยนแปลงใบอนุญาตมีจุดประสงค์เพื่อปกป้องผู้ใช้ใบอนุญาตจากการถูกฟ้องร้องที่เกี่ยวข้องกับสิทธิบัตร ขณะนี้ผู้สร้างโปรแกรมไม่สามารถฟ้องร้องผู้ใช้ได้ GPL 3.0 ห้ามมิให้มีการใช้ใบอนุญาตกับซอฟต์แวร์ที่ถูกห้ามไม่ให้ถูกหลีกเลี่ยงโดยกฎหมายและคำสั่งบางประการ (กฎหมาย Digital Millennium Copyright Act และ European Union Copyright Directive) นั่นคือคุณไม่สามารถเผยแพร่ซอฟต์แวร์ใด ๆ ที่อยู่ภายใต้ขอบเขตของคำสั่งเหล่านี้ภายใต้ใบอนุญาตได้ ดังนั้น GPL 3.0 จึงทำให้มั่นใจได้ว่าซอฟต์แวร์ใดๆ ที่เผยแพร่ภายใต้ใบอนุญาตสามารถแก้ไข หลีกเลี่ยง หรือเปลี่ยนแปลงได้อย่างอิสระ

นอกจากนี้ GPL 3.0 ยังต่อสู้กับปรากฏการณ์ "tivoization" ซึ่งอุปกรณ์ที่ติดตั้งซอฟต์แวร์ลิขสิทธิ์ GPL ไม่อนุญาตให้คุณแก้ไขด้วยเหตุผลหลายประการ GPL v3.0 ห้ามการปรับแต่งสำหรับผลิตภัณฑ์อุปโภคบริโภค (ทำให้มีโอกาสติดไวรัสสำหรับอุปกรณ์ทางการแพทย์และอุปกรณ์สำคัญอื่นๆ)

นอกเหนือจาก GPL 3.0 แล้ว GNU Lesser GPL 3.0 เวอร์ชันอัปเดตก็ได้เปิดตัวเช่นกัน ซึ่งยังคงมีความแตกต่างตรงที่อนุญาตให้ใช้ไลบรารี่ฟรีในซอฟต์แวร์แบบปิดได้

ความเข้ากันได้

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

เข้ากันได้กับใบอนุญาต GPL 3.0 เท่านั้น

GNU Affero General Public License (AGPL) v3 - มีส่วนระบุว่าผู้ใช้ที่โต้ตอบกับโปรแกรมผ่านเครือข่ายควรสามารถรับซอร์สโค้ดได้เช่นกัน
ใบอนุญาต Apache เวอร์ชัน 2.0;
ใบอนุญาตชุมชนการศึกษา 2.0;
ใบอนุญาตโครงการ Freetype;
ใบอนุญาตสาธารณะของ Microsoft (Ms-PL);
XFree86 1.1 ใบอนุญาต;

ใบอนุญาตที่เข้ากันได้กับ GNU GPL (ทั้งเวอร์ชัน v2 และ v3)

ใบอนุญาตทางศิลปะ 2.0;
ใบอนุญาตฐานข้อมูล Berkeley (หรือที่รู้จักในชื่อใบอนุญาตผลิตภัณฑ์ซอฟต์แวร์ Sleepycat);
เพิ่มลิขสิทธิ์ซอฟต์แวร์;
ใบอนุญาต BSD ดัดแปลง;
CeCILL เวอร์ชัน 2;
ใบอนุญาตทั่วไปของ Cryptix;
สิทธิ์การใช้งานฟอรัมไอเฟล เวอร์ชัน 2 - เวอร์ชันก่อนหน้าเข้ากันไม่ได้
ใบอนุญาตชาวต่างชาติ;
ใบอนุญาต FreeBSD;
สิทธิ์การใช้งานไลบรารีฟังก์ชันมาตรฐานของ iMatix;
ใบอนุญาตกลุ่ม JPEG อิสระ;
ใบอนุญาต imlib2;
ใบอนุญาตโอเพ่นซอร์สของ Intel;
ใบอนุญาต ISC;
NCSA/ใบอนุญาตโอเพ่นซอร์สของมหาวิทยาลัยอิลลินอยส์;
ใบอนุญาต Netscape Javascript;
ใบอนุญาต OpenLDAP เวอร์ชัน 2.7;
ใบอนุญาต Perl 5 และต่ำกว่า;
โดเมนสาธารณะ;
ใบอนุญาต Python 2.0.1, 2.1.1 และเวอร์ชันที่ใหม่กว่า
ใบอนุญาตทับทิม;
ML มาตรฐานของใบอนุญาตลิขสิทธิ์นิวเจอร์ซีย์;
ยูนิโค้ด อิงค์ ข้อตกลงใบอนุญาตสำหรับไฟล์ข้อมูลและซอฟต์แวร์
ประกาศและใบอนุญาตซอฟต์แวร์ W3C;
ใบอนุญาต X11 - บางครั้งเรียกว่าใบอนุญาต MIT โดยไม่ได้ตั้งใจ

ใบอนุญาตที่เข้ากันได้กับ Lesser GPL

ใบอนุญาต eCos เวอร์ชัน 2.0

พจนานุกรม

GNU เป็นตัวย่อแบบเรียกซ้ำสำหรับ Not Unix ของ GNU;
GNU GPL - ข้อตกลงใบอนุญาตแบบเปิดของ GNU;
ซอฟต์แวร์ที่เป็นกรรมสิทธิ์คือซอฟต์แวร์ที่มีข้อจำกัดในการใช้งานและไม่เปิดให้ทำการดัดแปลง กล่าวคือ “ซอฟต์แวร์ที่ไม่เสรี”