เขียนรหัส GPL ใหม่เพื่อเปลี่ยนใบอนุญาต


23

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

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


3
อาจจะถูกกว่าการจ่ายผู้เขียนของไลบรารี GPL เพื่อปล่อยให้คุณภายใต้ใบอนุญาตที่แตกต่างกัน
quant_dev

3
แทนที่จะถามว่าอะไรคือวิธีที่ถูกที่สุดทำไมไม่เล่าเรื่องทั้งหมดให้เราฟังและถามว่า
John R. Strohm

4
ถ้าไลบรารีอื่นไม่เข้ากันกับ GPL อาจเป็นไลบรารีที่คุณต้องการเปลี่ยน
พอล Butcher

1
ไลเซนส์อื่นมีไลเซนส์อะไรบ้าง
Andres F.

คำตอบ:


34

ฉันไม่ใช่นักกฎหมาย แต่ AFAIK ถ้าคุณเห็นรหัสห้องสมุด GPLed ใด ๆ ห้องสมุดจำลองที่คุณเขียนจะเสียและอาจได้รับการประกาศผลงานที่ได้รับจากผู้พิพากษาถ้ามันคล้ายกันเกินไปในการชื่นชมของเขา

ดังนั้นกระบวนการจะเขียนสเปคการทำงานและมีคนที่ไม่เห็นรหัส GPLed เขียนไลบรารี

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


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

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

2
ฉันคิดว่าปัญหา "เสีย" ส่วนใหญ่ใช้กับ NDA สำหรับปัญหาลิขสิทธิ์มันไม่สมเหตุสมผลเลย พิจารณาว่าลิขสิทธิ์ยังนำไปใช้กับหนังสือเล่มใหม่ภาพยนตร์ ฯลฯ George Lucas อาจเห็นซีรี่ส์ Star Trek ทางทีวีก่อนที่จะสร้าง Star Wars นั่นทำให้ Star Wars เป็นผลงานดัดแปลงหรือไม่ หากผู้รายงานข่าวหนังสือพิมพ์ได้ยินเกี่ยวกับบางสิ่งบางอย่างทางวิทยุสิ่งนั้นจะป้องกันไม่ให้เขาเขียนเกี่ยวกับเหตุการณ์เดียวกันหรือไม่?
281377

6
วิธี Clean room เป็นวิธีหนึ่งในการพิสูจน์ว่าคุณไม่ได้ละเมิดกฎหมายลิขสิทธิ์ ตามที่ฉันเข้าใจ - และอีกครั้งฉันไม่ใช่นักกฎหมาย - สิ่งต่าง ๆ ที่พัฒนาโดยปราศจากความรู้ในงานต้นฉบับอาจไม่ละเมิดลิขสิทธิ์ (แต่อาจละเมิดสิทธิบัตร) สิ่งที่พัฒนาขึ้นด้วยความรู้นั้นอาจละเมิดลิขสิทธิ์หรือเป็นเรื่องยากที่จะพิสูจน์ว่าความคล้ายคลึงกันนั้นเกิดจากเหตุการณ์สุ่มหรือธรรมชาติของปัญหาที่ทำให้เกิดแนวทางที่เป็นธรรมชาติ
AProgrammer

1
@ammoQ: ในสหรัฐอเมริกามีการละเมิดการคัดลอกมานานแล้ว (แพคเกจซอฟต์แวร์เชิงสถิติหรือไม่) ที่ บริษัท ถูกจัดให้มีการละเมิดแม้ว่ารหัสทุกบรรทัดจะถูกเขียนใหม่ โปรดทราบว่าสตาร์วอร์สไม่เหมือนกับสตาร์เทรคและผู้สื่อข่าวหนังสือพิมพ์จะไม่เขียนเรื่องราวจากสิ่งที่เขาหรือเธอได้ยินทางวิทยุ
David Thornley

21

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

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

แน่นอนว่าสิ่งนี้ใช้ได้กับทั้งห้องสมุด การได้รับใบอนุญาตสองใบอนุญาตภายใต้ใบอนุญาตน้อยกว่าไม่ควรเป็นปัญหา

หากคุณทำงานกับผลิตภัณฑ์เชิงพาณิชย์ผู้เขียนห้องสมุดหลายรายจะให้สิทธิ์การใช้งานภายใต้ใบอนุญาตที่แตกต่างกันหากคุณชดเชยให้เหมาะสม


8
มันคุ้มค่ากับการถ่ายภาพ แต่ไม่สามารถใช้งานได้หากเจ้าของห้องสมุดยอมรับหรือใช้ประโยชน์จากการสนับสนุน GPLed ซึ่งเป็นกรณีของห้องสมุดหลายแห่ง
Brian

^ เว้นแต่ว่าพวกเขาจะมีข้อตกลง "ผู้ควบคุม" ซึ่งกำหนดลิขสิทธิ์กลับไปยังผู้แต่งดั้งเดิม: softwareengineering.stackexchange.com/a/225577/93511
Jonathan

17

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

กฎเหล่านี้ไม่เฉพาะเจาะจงกับซอฟต์แวร์ แต่ใช้กับสิ่งที่มีลิขสิทธิ์ทุกชนิด

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


4

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

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


1

หากทุกอย่างที่แนะนำที่นี่ (ขอใบอนุญาตสองใบ, การเขียนซ้ำ) ไม่เป็นที่ยอมรับโปรดจำไว้ว่ามันยังไม่ชัดเจนว่าการเชื่อมโยงแบบไดนามิกกับโปรแกรม / ไลบรารีที่เป็นกรรมสิทธิ์นั้นถือเป็นงานที่มา FSF กล่าวว่าเป็น แต่นักกฎหมายหลายคน (รวมถึงลอเรนซ์โรเซ็น) ได้ตั้งคำถามนี้

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


หรืออย่างน้อยก็ถามว่า lib สามารถเป็น LGPL ได้หรือไม่
Johan

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

1

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

มีวิธีที่ง่ายกว่าใน GPL:

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

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


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

@ AProgrammer: แม้แต่ FSF ก็บอกว่าถ้ามันเป็นกระบวนการที่แยกจากกันนี่เป็นโปรแกรมที่แยกต่างหากดังนั้นจึงไม่สามารถทำงานได้ คำถามที่พบบ่อยเกี่ยวกับปลั๊กอิน แต่ตรรกะยังคงใช้: gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins
vartec

คำถามเกี่ยวกับปลั๊กอินและปลั๊กอินนั้นเป็นสิ่งที่ขาดไม่ได้ ฉันจะไม่วางเดิมพัน บริษัท ของฉันที่จัดโครงสร้างโปรแกรมในสองกระบวนการหนึ่ง GPLed เพราะใช้ไลบรารี GPLed อีกอันไม่ใช่เพราะเราต้องการให้แหล่งที่มาเป็นส่วนตัวนั้นถูกต้อง โดยเฉพาะเมื่อทั้งคู่กระจายกัน แต่นั่นคือการโทรของคุณ
AProgrammer

1
@A: การแจกจ่ายกับโปรแกรมอื่นคือ "การรวม" และได้รับอนุญาตอย่างชัดเจนจาก GPL และไม่นั่นไม่ใช่การโทรของฉัน โดยส่วนตัวแล้วฉันจะไม่แตะห้องสมุด GPL แม้จะใช้ไม้เท้ายาว 10 ฟุต
vartec

1

IANAL และไม่ว่าในกรณีใดก็ตามสิ่งนี้อาจไม่ได้มีความหมายตามกฎหมาย แต่ฉันเชื่อว่าในหนังสือของแฮกเกอร์ Steven Levy เขาอธิบายว่า ณ จุดหนึ่ง RMS เขียนรหัสเงิน * ในระหว่างวันและในเวลากลางคืนเขียนเหมือนกัน สิ่งที่บ้านเพื่อที่จะได้เป็นส่วนหนึ่งของ ... GNU? ... นี่คือก่อน Linux ... บางระบบ Unix ฟรี ฉันเชื่อว่าเขาต้องทำให้รหัสบ้านแตกต่างจากรหัสวัน แต่โดยทั่วไปเขาทำสิ่งที่คุณแนะนำ

สิ่งนี้อาจไม่สำคัญตามกฎหมายอย่างใดอย่างหนึ่ง แต่ ... ฉันไม่แน่ใจว่า Apple และ / หรือ Microsoft ได้รับอนุญาต / ใบอนุญาตหรืออะไร แต่เบลแล็บไม่ได้คิดค้นคิดค้นอินเตอร์เฟสเดสก์ท็อป / ไอคอน / เมาส์ซึ่งใช้กับ Mac (หรือ Lisa?) ซึ่ง Microsoft ใช้งานอยู่


นั่นคือ Xerox PARC ไม่ใช่ Bell Labs
Marnen Laibow-Koser

และจ๊อบส์ทำข้อตกลงกับซีร็อกซ์ที่อนุญาตให้แอปเปิ้ลไปดูแล็บในพาโลอัลโต ไม่มีใครที่ Xerox ใส่ใจเทคโนโลยีในเวลานั้น
aledalgrande

0

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


คุณสามารถรับรายการใบอนุญาต Gnu ได้ที่gnu.org/licenses/license-list.htmlและคุณจะสังเกตเห็นว่ามันแบ่งออกเป็นใบอนุญาตที่เข้ากันได้กับ GPL ฟรีใบอนุญาตที่ไม่รองรับ GPL และใบอนุญาตที่ไม่ใช่ฟรี GPL มีข้อกำหนดเฉพาะบางประการที่ใบอนุญาตอื่น ๆ มักไม่สอดคล้องและหนึ่งในเป้าหมายของ GPLv3 คือการทำให้การใช้งานร่วมกันได้ง่ายขึ้น
David Thornley

0

การเปลี่ยนแปลงจะต้องครอบคลุมไปถึงห้องสมุดเพื่อที่จะสามารถเปลี่ยนใบอนุญาตได้

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

ในทางตรงกันข้ามถ้าเครื่องมือ diff ไม่สามารถค้นหาความคล้ายคลึงกันแล้ว ...


2
หากเครื่องมือ diff ไม่พบสิ่งที่คล้ายคลึงกันแสดงว่าอาจเป็นการละเมิดลิขสิทธิ์ ดูจากมุมมองที่ไม่ใช่การเขียนโปรแกรม: ฉันเขียนหนังสือคุณแปลมันเป็นภาษาสวีเดนและตามกฎหมายลิขสิทธิ์ของสหรัฐอเมริกา (และน่าจะเป็นสวีเดน) ที่คุณได้ดัดแปลง
David Thornley

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