ฉันควรรวมตัวเองเป็นผู้เขียนหลังจากแก้ไขรหัสบุคคลที่สามหรือไม่


17

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

หลังจากทำการแก้ไขเหล่านี้แล้วจะต้องทำอย่างไรต่อไป เก็บข้อมูลใบอนุญาตไว้ไม่ให้แตะต้องหรือพยายามอัปเดตรวมถึงตัวคุณเองด้วยของที่ชอบ@authorหรือ@revisionแท็ก?

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

ฉันรู้ว่าคำตอบสำหรับคำถามเหล่านี้ขึ้นอยู่กับประเภทใบอนุญาตแต่ละประเภทดังนั้นเพื่อให้คำถามของฉันเฉพาะเจาะจงมากขึ้น ...

พิจารณากฎใบอนุญาตทั่วไป (โดยปกติพวกเขามีความแตกต่างกันในแง่มุมเล็ก ๆ น้อย ๆ ใช่มั้ย?) เป็นจริยธรรม (หรืออย่างน้อยได้รับอนุญาต) ที่ฉันได้อย่างอิสระเพิ่มข้อมูลเพื่อป้องกันใบอนุญาตเกี่ยวกับการปรับเปลี่ยนของฉันและบางทีก็อาจปรับเปลี่ยนวิธีการทำผมหมายถึงในรหัสของฉัน (เช่นใช้YACorp.YALibเป็นUtils.YALib)


2
ขึ้นอยู่กับใบอนุญาตและแนวทางปฏิบัติที่กำหนดไว้ของโครงการ บางโครงการเครดิตผู้เขียนทั้งหมดในข้อความใบอนุญาต; คนอื่น ๆ ใส่ผู้แต่งไว้ใน Github และอ้างถึงโครงการตามชื่อในใบอนุญาต ใบอนุญาตบางรายการต้องมีการระบุแหล่งที่มา แต่บางอย่างก็ไม่จำเป็น
Robert Harvey

@RobertHarvey คุณพูดถูก แต่ฉันพยายามกำหนดแนวทางโดยทั่วไปสำหรับสถานการณ์เหล่านี้ ฉันได้อัปเดตคำถามแล้ว
kbtz

การแก้ไขของคุณฟังดูเหมือนแยก หากคุณกำลังตีโครงการคุณสามารถทำสิ่งที่คุณต้องการ (คุณเป็นเจ้าของส้อม) แต่ฉันจะไม่ลิงชื่อห้องสมุดถ้าคุณเป็นเจ้าของโครงการ
Robert Harvey


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

คำตอบ:


9

หลังจากทำการแก้ไขเหล่านี้แล้วจะต้องทำอย่างไรต่อไป เก็บข้อมูลใบอนุญาตไว้ไม่ให้แตะต้องหรือพยายามอัปเดตรวมถึงตัวคุณเองด้วยบางอย่างเช่น @author หรือ @revision tags?

ฉันคิดว่าคุณสับสนใบอนุญาตซอฟต์แวร์และอารัมภบทใด ๆ ที่อาจเป็นส่วนหนึ่งของซอฟต์แวร์

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

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

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

มันขึ้นอยู่กับการประชุมของโครงการ

หากคุณแยกโครงการคุณสามารถทำสิ่งที่คุณต้องการ

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

พิจารณากฎใบอนุญาตทั่วไป (โดยปกติแล้วพวกเขาจะแตกต่างกันในแง่มุมเล็กน้อยใช่ไหม),

มีจริยธรรม (หรืออย่างน้อยได้รับอนุญาต) ที่ฉันเพิ่มข้อมูลลงในบล็อกสิทธิ์ใช้งานอย่างอิสระเกี่ยวกับการแก้ไขของฉันและอาจแก้ไขฉันจะอ้างถึงในรหัสของฉันได้อย่างไร (เช่นใช้ YACorp.YALib เป็น Utils.YALib)

อย่าเปลี่ยนใบอนุญาต!

ก่อนอื่นคุณอาจไม่มีสิทธิ์ตามกฎหมายในการเปลี่ยนใบอนุญาต ประการที่สองการเปลี่ยนแปลงใด ๆ ที่คุณทำมีแนวโน้มที่จะทำให้ใบอนุญาตสับสน ออกจากการเปลี่ยนแปลงใบอนุญาตกับทนายความ

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

ที่จริงความกังวลของฉันเป็นเรื่องเกี่ยวกับ "การเคารพต่อชุมชน" มากกว่าด้านกฎหมายฉันขอเพิ่มเติมเกี่ยวกับจริยธรรมที่เหลืออยู่ที่เราสามารถ "ไปได้" ถ้าโครงการของเราสามารถพิจารณาเป็นส่วนตัวหรือส่วนตัวได้

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

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


อย่างที่ฉันคาดไว้คำตอบนั้นเกือบจะชัดเจน แต่มันเป็นความโล่งใจที่ทุกคนพูดใจของพวกเขา ขอบคุณทุกคำตอบ!
kbtz

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

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

@ GlenH7 ฉันคิดว่าโครงการดังกล่าว (เช่น MySQL) มักจะต้องมีลิขสิทธิ์ของผลงานที่ไปรุ่นอย่างเป็นทางการได้รับมอบหมายให้องค์กรปกครอง จากนั้นเวอร์ชันโอเพ่นซอร์สจะถูกเผยแพร่ภายใต้ใบอนุญาตโอเพนซอร์ซทั่วไป (เช่น GPL) แต่พวกเขายังสามารถมีเวอร์ชันโอเพ่นซอร์สเชิงพาณิชย์ได้ แต่นั่นไม่ได้ป้องกัน forks ของโอเพนซอร์ซเวอร์ชัน (ดู MariaDB)
svick

5

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

แก้ไข: ดังนั้นสถานการณ์นี้เตือนฉันเมื่อแพคเกจการแจกจ่าย Linux เช่นไลบรารี Debian มีแนวทางและมาตรฐานเกี่ยวกับวิธีการสร้างและตั้งชื่อแพ็คเกจซึ่งอาจแตกต่างจากวิธีการแจกจ่ายห้องสมุดที่สร้างไว้ล่วงหน้า

ฉันไม่คิดว่าคุณควรอายที่จะตั้งชื่อ / สร้าง / ดัดแปลงห้องสมุดเนื่องจากฉันเดาว่าคุณจะไม่เผยแพร่ผลไปสู่โลกกว้าง ในกรณีนี้ฉันจะรวม README พร้อมกับที่มาซึ่งอธิบายถึงการเปลี่ยนแปลงที่คุณทำและสาเหตุ เช่น README. $ {companyName} .changes


ฉันจะทำสิ่งนี้เช่นกัน แต่คำถามของฉันเกี่ยวข้องกับสิ่งที่พิจารณาจากมุมมองส่วนที่ 3 และ / หรือกฎการออกใบอนุญาตทั่วไป
kbtz

2

คุณจะต้องศึกษากฎการออกใบอนุญาตของรหัส

โดยทั่วไปแอปพลิเคชันส่วนหน้าของโอเพ่นซอร์สจำนวนมาก (เช่น Firefox, OpenOffice) จะพิจารณาชื่อแอปพลิเคชันและโลโก้เป็นเครื่องหมายการค้า ดังนั้นหากคุณต้องการปล่อยแอพที่มีการดัดแปลงคุณจะไม่สามารถใช้เครื่องหมายการค้า / ชุดการค้าดั้งเดิม (เช่น IceWeasel, Torbrowser, LibreOffice)

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

ข้อมูลผู้แต่งทำหน้าที่สองประการ:

  1. การให้เครดิตเมื่อถึงกำหนด
  2. ให้การตำหนิในที่ที่สมควรได้รับ

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

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