การให้ไฟล์วัตถุเป็นไปตามข้อเชื่อมโยง LGPL relink หรือไม่?


10

จากคำถามนี้ดังนั้นฉันอ่าน:

รหัสที่มาที่เป็นกรรมสิทธิ์ + รหัสที่มา LGPL

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

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

สิ่งนี้ถูกต้องหรือไม่หากเป็นเช่นนั้นทำไม

คำตอบ:


7

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

FSF ยังพูดอย่างชัดเจนในคำถามที่พบบ่อย :

เพื่อวัตถุประสงค์ในการปฏิบัติตาม LGPL (เวอร์ชันใด ๆ ที่มีอยู่: v2, v2.1 หรือ v3):

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

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


1
เหตุใด "บุคคลภายใน" ของ Qt และพนักงานจึงอ้างสิทธิ์เป็นอย่างอื่นอย่างต่อเนื่อง LGPL ของ Qt ได้รับการปรับเปลี่ยนหรือบางอย่าง?
IvanB

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

ดูเหมือนว่าบางโมดูลของ Qt นั้นมีเฉพาะภายใต้ GPL แทนที่จะเป็น LGPL ถ้าฉันอ่านหน้าเหล่านี้ถูกต้องดังนั้นจึงเป็นไปได้ว่าถ้าพวกเขาพูดถึงตัวเลือกการเชื่อมโยงสแตติกกับวัตถุพวกเขาต้องตรึงไว้ด้วย "ยกเว้นว่าคุณใช้ X, Y หรือ Z" และรายละเอียดสัมผัสที่น่าเบื่อที่คล้ายกัน
Ixrec

1
ในโลกที่สมบูรณ์แบบการเชื่อมโยงแบบไดนามิกอาจยอดเยี่ยม แต่ในโลกนี้และเมื่อต้องรับมือกับ Qt การเชื่อมโยงแบบไดนามิกนั้นเป็นนรก เช่นเดียวกับที่กำลังมากกว่า 60 เมกะไบต์หลายแห่งซึ่งเครื่องมือการปรับใช้ไม่ได้นำเข้ามาและวอล์คเกอร์พึ่งพาไม่ได้ตรวจพบ ในคำถามที่พบบ่อย LGPL ของพวกเขาฉันเห็นThe LGPL allows you to keep the source code of your application private as long as it is “work that uses” the library. Dynamic linking is usually recommended here.แต่ไม่มีอะไรเกี่ยวกับการถูกบังคับ
IvanB

4
อ่านคำถามที่พบบ่อยของพวกเขาดูเหมือนว่าพวกเขาเพียงแค่อ้างว่าเป็นเท็จ (เท็จ) ว่า LGPL ไม่อนุญาตให้แอปพลิเคชันที่เป็นกรรมสิทธิ์เชื่อมโยงกับ Qt แบบคงที่ในขณะที่ขยันมากที่อ้างถึง
IvanB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.