ฉันสามารถลิงก์ไปยังไลบรารี GPL จากแอปพลิเคชันที่ปิดได้หรือไม่


34

โอเคก่อนที่ทุกคนจะตะโกนเกี่ยวกับคำถามที่ซ้ำกันใช่ฉันเคยเห็นหลายคำถามเช่นนี้ที่นี่ แต่ไม่มีใครตอบคำถาม

ถ้าฉันเชื่อมโยงกับไลบรารี GPL-ed โดยไม่ต้องแก้ไขไลบรารีนั้นฉันต้องปล่อยซอร์สโค้ดของฉันหรือไม่

ตามคำถามนี้คำตอบคือใช่!

แต่คำตอบนี้ไม่เป็นที่น่าพอใจสำหรับฉัน คำตอบนั้นบอกว่าฉันไม่สามารถใช้รหัส GPL ในทางใดทางหนึ่งโดยไม่ต้องทำให้รหัสของฉันที่มาเปิด

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

ดังนั้นคำถามของฉันคือ: ถ้ารัฐ GPL เป็นคำตอบก่อนหน้าทั้งหมดในเว็บไซต์บอกว่ามันเป็นโปรแกรมที่เชื่อมโยงไปยังโปรแกรม GPL อื่นจะต้องเป็น GPL เองมันเป็นไปได้อย่างไรที่จะสร้าง / เผยแพร่ / ขายใบสมัครกรรมสิทธิ์ใด ๆ ที่ทำงานบน Linux? เนื่องจากตามที่ฉันอธิบายไว้ข้างต้นว่าแอปพลิเคชันจะต้องชอบรหัส GPL เพื่อให้ทำงานบน Linux

ตัวอย่างที่ใช้ประโยชน์ได้มากกว่าพูดว่าฉันลิงก์ไปยังไลบรารีที่แบ่งใช้ซึ่งเป็น GPL-ed ในแอ็พพลิเคชันที่ไม่ใช่ GPL ซึ่งจะบังคับให้แอ็พพลิเคชันที่ไม่ใช่ GPL กลายเป็น GPL-ed หรือไม่? โดยเฉพาะอย่างยิ่งถ้าฉันใช้ไลบรารี GPL โดยไม่ต้องแก้ไขแล้วแจกจ่ายไลบรารีนั้นในฐานะที่เป็น.soหรือ.dllต้องใช้แอปพลิเคชันของฉันเป็นโอเพนซอร์สหรือไม่


9
คุณถามคำถามเดียวกันโดยหวังว่าจะได้คำตอบที่ต่างออกไป คุณไม่สามารถใช้ GPL ในซอฟต์แวร์ที่เข้ากันได้กับที่ไม่ใช่ GPL ง่ายตาย
Andrew T Finnell

1
เขาจริงเหรอ? Blimey คำตอบนั้นง่าย ทำไมคุณไม่ติดต่อกับผู้เขียนโปรแกรม GPL และถามว่าพวกเขาสนใจหรือไม่ ถ้าพวกเขาบอกว่ามันดีมาก! หากพวกเขาคัดค้านการพยายามยึดถือรายละเอียดทางกฎหมายจะทำให้คุณไม่เป็นที่นิยมอย่างมากไม่ว่าคุณจะรู้สึกถูก
James

3
@James: ถ้าพวกเขาเลือก GPL มันเป็นคำสั่งที่แข็งแกร่งสวยที่พวกเขาทำจิตใจ คนที่ไม่รังเกียจเลือก MIT หรือ BSD หรือ LGPL ตั้งแต่แรก มันเป็นเรื่องยากมากที่จะเห็นห้องสมุดภายใต้ GPL เต็มรูปแบบ เมื่อคุณทำคุณสามารถมั่นใจได้ว่ามันเป็นความตั้งใจ
Jan Hudec

@Jan อาจจะขึ้นอยู่กับแอพและ john-charles ที่ตั้งใจใช้ แต่ฉันแค่คิดว่ามันแปลกที่ JC กำลังเข้าใกล้สิ่งนี้ jc กำลังพยายามหาคำตอบที่เขาต้องการหรือไม่? มีคำถามมากมายในไซต์นี้ที่สามารถแก้ไขได้ด้วยการ "เพียงแค่พูดกับพวกเขาสำหรับการร้องไห้ออกมาดัง ๆ " :-)
James

@JanHudec: ฉันเห็นด้วย ฉันได้แย้งที่จะปล่อย IP ของ บริษัท บางส่วนในรูปแบบของห้องสมุด GPL'ed เพราะนั่นจะไร้ประโยชน์อย่างยิ่งต่อคู่แข่งของเราและยังคงมีประโยชน์มากสำหรับชุมชนของเรา
MSalters

คำตอบ:


33

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

นอกจากนี้ยังมีข้อยกเว้นพิเศษสำหรับส่วนหัวเคอร์เนล Linux และ libgcc (ไลบรารีที่เรียกโดยคอมไพเลอร์)


19
libc ไม่มี LGPL - คุณได้รับอนุญาตให้เชื่อมโยงกับโปรแกรม LGPL นอกจากนี้ยังมีข้อยกเว้นทั่วไปสำหรับการเรียกเคอร์เนล / ระบบดังนั้นจึงไม่มีข้อโต้แย้งเกี่ยวกับการเรียกระบบ vs ไลบรารี่
มาร์ติน

6
LGPL ไม่ใช่ใบอนุญาตใหม่มันเปิดตัวครั้งแรกในปี 1991 libc เป็น LGPL เสมอ
FigBug

4
@ john-charles - นั่นเป็นเหตุผลที่ LGPL ถูกคิดค้นขึ้นในปี 1991 ด้วย gplv2 AsLinux (และเมล็ด FOSS อื่น ๆ ) ได้รับความนิยม - และเป็นสาเหตุที่มันถูกเรียกว่า Library-GPL - มีความกลัวว่าจะมี libc จากผู้จำหน่ายคอมไพเลอร์ทุกรายหากแอปเพื่อการค้าไม่สามารถใช้ gcc ได้
Martin Beckett

1
@MartinBeckett นี่เป็นความเห็นของ FSF (คุณไม่สามารถลิงก์ไปยังรหัส GPLd หากคุณไม่ได้ให้ลิขสิทธิ์ภายใต้ GPL) แต่ก็ไม่ได้มีการโต้แย้ง ยังไม่มีการฟ้องร้องที่สำคัญ (ที่ฉันรู้ว่าถ้าฉันผิดโปรดแก้ไขฉัน) เพื่อยืนยันความเห็นของ FSF เกี่ยวกับการเชื่อมโยง
K.Steff

2
@ john-charles - ใช่กฎหมายทั่วไปทั้งหมดได้รับการทดสอบในศาล แต่มีกฎหมายกรณีจำนวนมากเกี่ยวกับลิขสิทธิ์ หากฉันอ้างว่าสำเนาแบทแมน DVD ที่ไม่ได้ทำการแก้ไขของฉันไม่ใช่งานที่ได้รับมาและดังนั้นฉันจึงสามารถขายได้มากเท่าที่ฉันต้องการ MPAA ไม่น่าจะยอมรับ! copyleft GNU ใช้ลิขสิทธิ์ในการบังคับใช้ข้อตกลงใบอนุญาตในวิธีที่ฉลาด - หนึ่งในเหตุผลที่ไม่เคยทดสอบในศาลคือทุกคนได้ตัดสินเสมอ
Martin Beckett

7

ในกรณีทั่วไปคุณถูกต้องที่คุณไม่สามารถลิงก์ไปยังไลบรารี GPL แจกจ่ายรหัสของคุณแล้วไม่ปล่อยรหัสของคุณเป็น GPL

อย่างไรก็ตามมีSystem Library Exceptionซึ่งเป็นวิธีที่ผู้ใช้เชื่อมโยงกับ Linux libs และยังคงเผยแพร่ผลิตภัณฑ์ภายใต้สิทธิ์การใช้งานที่ไม่ใช่ GPL

อีกข้อยกเว้นคือเมื่อสิทธิ์ใช้งานทั้งสองนั้นเข้ากันได้ ตรวจสอบหน้าใบอนุญาตที่เข้ากันได้กับ FSF เพื่ออ่านเพิ่มเติม

ในที่สุดผู้เขียนของ GPL จะ lib สามารถสร้างข้อยกเว้นเฉพาะเช่นการใช้งานที่ไม่ใช่เชิงพาณิชย์หรืองานอดิเรก

น่าเสียดายที่มีศักยภาพมากเกินไปที่จะมีกฎที่ยากและรวดเร็ว หากไม่มีคำถามเฉพาะเจาะจงมากขึ้นคำตอบของคุณคือ "อาจทำไม่ได้ แต่คุณอาจทำได้"


1
SLE ยังตอบคำถามของโปรแกรมที่เป็นผลงานของคอมไพเลอร์เนื่องจากมันมีโปรแกรมวิเคราะห์คำที่สร้างขึ้นโดยคอมไพเลอร์
Martin Beckett

3
ไม่ SLE อนุญาตให้พัฒนาโค้ด GPL โดยใช้ toolchain ที่ไม่ใช้งานฟรีและรันไทม์มาตรฐานเช่น Visual Studio มันไม่อนุญาตให้เชื่อมโยงแอปพลิเคชันที่ไม่ใช่ฟรีกับไลบรารี GPL
Jan Hudec

1
การส่งออกของโปรแกรม GPL ไม่ได้ครอบคลุมโดย GPL ดูgnu.org/licenses/gpl-faq.html#GPLOutput
Maximus Minimus

-1

คำตอบสั้น ๆ คือไม่มีใครรู้จริง ๆ (การสนทนานี้เกี่ยวกับ GPL ไม่ใช่ LGPL)

GPL มีภาษาที่คลุมเครือเกี่ยวกับ "งานดัดแปลง" ซึ่งผู้คนต่างตีความในวิธีที่ต่างกัน ฉันทามติดูเหมือนว่าการเชื่อมโยงแบบคงที่เป็นการละเมิด แต่การโทรผ่านการขัดจังหวะระบบ (เช่นไปยัง Linux Kernel) ไม่ได้ สิ่งหลังนั้นขึ้นอยู่กับความจริงที่ว่า บริษัท เช่น Oracle มีการจัดส่งบน Linux และไม่ได้ถูกฟ้องร้อง - มันไม่ชัดเจนในใบอนุญาต

การเชื่อมโยงแบบไดนามิกไม่ชัดเจนอาจเป็น 70/30 บอกว่าเป็นการละเมิด การเรียกโปรแกรมโดยใช้ไพพ์หรือการเรียกโพรซีเดอร์แบบรีโมตอาจ 30/70 ไม่ละเมิดแม้ว่าสิ่งนี้จะเป็นสิ่งเดียวกัน การโทรผ่าน COM หรือใช้ Java Jar นั้นไม่ชัดเจน

โดยทั่วไปหากมีข้อสงสัยใด ๆ และคุณไม่ชอบนักกฎหมายให้อยู่ห่างจาก GPL


1
GPL ไม่ใช่สิ่งที่คลุมเครือและมีการพูดคุยกันถึงเรื่องกฎหมายว่าด้วยเรื่องอะไรและไม่ใช่งานดัดแปลง ความแตกต่างระหว่างส่วนต่อประสาน syscall Linux และ libc คือสิ่งแรกคือจำเป็นต้องมีซอฟต์แวร์ที่ใช้งานได้ (ซึ่งได้รับการยืนยันว่าเป็นข้อยกเว้นด้านลิขสิทธิ์) ในขณะที่ส่วนหลังนั้นไม่ใช่ (คุณสามารถนำไปใช้เองได้) มันไม่มีอะไรเกี่ยวข้องกับวิธีการดำเนินการที่ถูกเรียกใช้ซึ่งไม่มีความเกี่ยวข้องทางกฎหมาย I ANAL นี่ไม่ใช่คำแนะนำทางกฎหมาย
จูลส์

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