Copyleft คืออะไร?
Copyleft คือวิธีการทั่วไปสำหรับการสร้างโปรแกรมหรือซอฟต์แวร์ฟรี ๆ ที่ต้องการการปรับแต่ง ขยายรุ่นของโปรแกรมหรือซอฟท์แวร์นั้นให้เป็นแบบฟรี

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

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

Copyleft ยังให้แรงจูงใจแก่บรรดาโปรแกรมเมอร์ในการเพิ่มซอฟท์แวร์ฟรี ที่สำคัญโปรแกรมฟรีอย่างเช่น GNU C++ ก็ได้อนิสงศ์จากเหตุผลนี้เช่นเดียวกัน

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

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

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

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

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

ความเหมาะสมของใบอนุญาตได้ถูกรวมไว้ในคู่มือการใช้งานต่าง ๆ และอยู่ในซอร์สโค้ดของ GNU แต่ละอันด้วย

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

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

ตัวอย่างซอฟต์แวร์ที่ใช้ Copyleft
ซอฟต์แวร์ Omnet++
ซอฟต์แวร์ omnet

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เมธอด dict() ในการพัฒนาระบบ Python การสร้างพจนานุกรมอย่างมีประสิทธิภาพ
โดย athirach.offcial พฤ 28 มี.ค. 2024 12:33 pm บอร์ด Python Knowledge
0
6
พฤ 28 มี.ค. 2024 12:33 pm โดย athirach.offcial View Topic เมธอด dict() ในการพัฒนาระบบ Python การสร้างพจนานุกรมอย่างมีประสิทธิภาพ
การใช้งาน filter() กรองตัวเลขหรือตัวอักษรในภาษา Python
โดย athirach.offcial พฤ 28 มี.ค. 2024 12:16 pm บอร์ด Python Knowledge
0
6
พฤ 28 มี.ค. 2024 12:16 pm โดย athirach.offcial View Topic การใช้งาน filter() กรองตัวเลขหรือตัวอักษรในภาษา Python
เมธอด strip() ใน Python การใช้งานเพื่อลบตัวอักษรที่กำหนด
โดย athirach.offcial พฤ 28 มี.ค. 2024 12:03 pm บอร์ด Python Knowledge
0
7
พฤ 28 มี.ค. 2024 12:03 pm โดย athirach.offcial View Topic เมธอด strip() ใน Python การใช้งานเพื่อลบตัวอักษรที่กำหนด
Attribute ในภาษา Python: วิธีกำหนดค่าและใช้งาน
โดย athirach.offcial พฤ 28 มี.ค. 2024 11:37 am บอร์ด Python Knowledge
0
8
พฤ 28 มี.ค. 2024 11:37 am โดย athirach.offcial View Topic Attribute ในภาษา Python: วิธีกำหนดค่าและใช้งาน
คำสั่ง eval() ใน Python วิธีการใช้งานการประมวลผลสตริงเป็นโค้ด
โดย athirach.offcial พฤ 28 มี.ค. 2024 11:07 am บอร์ด Python Knowledge
2
21
พฤ 28 มี.ค. 2024 11:41 am โดย athirach.offcial View Topic คำสั่ง eval() ใน Python วิธีการใช้งานการประมวลผลสตริงเป็นโค้ด
การใช้งานเมทอด zip() ใน Python: รวมข้อมูลจาก objects หลายๆ อันเข้าด้วยกันเป็น tuple อธิบายและตัวอย่าง
โดย athirach.offcial พฤ 28 มี.ค. 2024 10:51 am บอร์ด Python Knowledge
1
16
พฤ 28 มี.ค. 2024 8:55 pm โดย athirach.offcial View Topic การใช้งานเมทอด zip() ใน Python: รวมข้อมูลจาก objects หลายๆ อันเข้าด้วยกันเป็น tuple อธิบายและตัวอย่าง
ปิดโหมดข้อความธรรมดาในอีเมลแล้ว แต่เครื่องมือไม่ขึ้น ต้องตั้งค่ายังไง
โดย Narisara พฤ 28 มี.ค. 2024 10:46 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
19
พฤ 28 มี.ค. 2024 11:13 am โดย Narisara View Topic ปิดโหมดข้อความธรรมดาในอีเมลแล้ว แต่เครื่องมือไม่ขึ้น ต้องตั้งค่ายังไง
ตัวแปร List ใน Python เหมาะสำหรับงานแบบไหน
โดย athirach.offcial พ 27 มี.ค. 2024 11:34 am บอร์ด Python Knowledge
0
28
พ 27 มี.ค. 2024 11:34 am โดย athirach.offcial View Topic ตัวแปร List ใน Python เหมาะสำหรับงานแบบไหน