ข้อ จำกัด การออกใบอนุญาตโอเพนซอร์ส GPL และ LGPL [ปิด]


108

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

ขอบคุณ!

คำตอบ:


81

LGPL ช่วยให้คุณใช้และเผยแพร่ซอฟต์แวร์โอเพนซอร์สกับแอปพลิเคชันของคุณโดยไม่ต้องปล่อยซอร์สโค้ดสำหรับแอปพลิเคชันของคุณ

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


14
โปรดทราบว่า LGPL ระบุว่าไลบรารีที่ใช้จะต้องเปลี่ยนได้ จึงไม่สามารถเชื่อมโยงแบบคงที่ได้
Dykam

1
ดังนั้น "DLL" (ไดนามิกลิงก์ไลบรารี) จะถูกต้องตามกฎหมายใช่หรือไม่
Robert Harvey

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

49
  • GPL

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

    ซึ่งจะป้องกันไม่ให้ใช้โค้ดในซอฟต์แวร์ที่เป็นกรรมสิทธิ์

  • LGPL

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

    ซึ่งอนุญาตให้ใช้รหัสในซอฟต์แวร์ที่เป็นกรรมสิทธิ์อื่น ๆ

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

โปรดทราบว่า LGPL เข้ากันได้กับ GPL: คุณสามารถเลือกที่จะ "อัปเกรด" รหัสเป็น GPL และรวมไว้ในโครงการที่ได้รับอนุญาต GPL ทั้งหมดตามที่ระบุไว้ในหัวข้อย่อยแรกของฉันหากคุณต้องการ อย่างไรก็ตามคุณไม่สามารถไปทางอื่นและอนุญาตรหัสลิขสิทธิ์ GPL ใหม่เป็น LGPL ได้


30

IANAL แต่แนวคิดค่อนข้างตรงไปตรงมา

ขั้นแรกคุณและทนายความของคุณต้องอ่านใบอนุญาตGPLและLGPL ประการที่สองคุณควรอ่านGPL คำถามที่พบบ่อย เท่าที่ฉันเข้าใจคุณสามารถนึกถึงการใช้ไลบรารี GPL / LGPL ด้วยวิธีนี้:

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

29
"ขั้นแรกคุณและทนายความของคุณต้องอ่านใบอนุญาต GPL และ LGPL" - ฆ่าฉันเดี๋ยวนี้
d512

10
"ตรงไปตรงมา". ตรงไปตรงมามากที่คุณต้องติดต่อทนายความเพื่อดูว่าคุณสามารถใช้รหัสเล็กน้อยได้หรือไม่ นี่คือเหตุผลที่นักพัฒนาไม่ควรใช้ใบอนุญาต GPL
Womble

9

หากคุณตัดและวางหรือเชื่อมโยงกับโค้ด GPL ลงในแอปพลิเคชันของคุณแอปพลิเคชันของคุณจะต้องได้รับอนุญาตภายใต้ GPL จากนั้นคุณจะต้องปล่อยรหัส

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

หากไลบรารีที่คุณเชื่อมโยงคือ Lesser Gnu Public License หรือที่เรียกว่า LGPL คุณก็ไม่จำเป็นต้องปล่อยโค้ดของแอปพลิเคชันของคุณเอง แต่คุณยังคงต้องปล่อยการแก้ไขทั้งหมดหากคุณแก้ไขโค้ด lgpl'd


"ปล่อย sourcecode ให้กับลูกค้าของคุณ" - จริงเหรอ? เฉพาะกับพวกเขา? ฉันคิดว่า src ต้องเผยแพร่สู่สาธารณะ?
relascope

ฉันไม่ใช่เจ้าของภาษาอังกฤษหรือทนายความ gnu.org/licenses/gpl-faq.html#WhatDoesWrittenOfferValidระบุว่าแหล่งที่มาส่วนใหญ่ให้ทุกคนที่สามารถเข้าถึงไบนารีได้ ไม่ได้บอกว่าทุกคนสามารถขอแหล่งที่มาได้ แต่ทุกคนที่ได้รับไบนารีไม่ว่าจะโดยตรงจากคุณหรือลูกค้าโดยตรงของคุณ
rasjani

ระบุไว้โดยตรงเฉพาะกับลูกค้า ... "แต่ถ้าคุณเผยแพร่เวอร์ชันที่แก้ไขแล้วสู่สาธารณะไม่ทางใดก็ทางหนึ่ง GPL ต้องการให้คุณสร้างซอร์สโค้ดที่แก้ไขแล้วพร้อมใช้งานสำหรับผู้ใช้โปรแกรมภายใต้ GPL"
relascope

7

GPL ไม่ได้ห้ามคุณขายซอฟต์แวร์ อย่างไรก็ตามคุณต้องจัดหาแหล่งที่มาของซอฟต์แวร์

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

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

หวังว่านี่จะช่วยได้


4

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

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