GNU Affero General Public License version 3 (AGPL-3.0) คือสัญญาอนุญาตซอฟต์แวร์โอเพนซอร์สแบบ Copyleft ขั้นสูงสุด ออกแบบมาเพื่อปิดช่องโหว่ทางกฎหมายของ GPL ทั่วไปในยุคที่ซอฟต์แวร์ส่วนใหญ่ย้ายไปทำงานบนระบบคลาวด์ (Cloud) และ Software-as-a-Service (SaaS)
จุดกำเนิดและปัญหา “Cloud Loophole”
ในสัญญาอนุญาตตระกูล GPL ดั้งเดิม (เช่น GPL-2.0 หรือ GPL-3.0) ข้อกำหนดเรื่องการบังคับเปิดเผยซอร์สโค้ด (Copyleft) จะทำงานเมื่อเกิดการ “แจกจ่าย” (Distribution หรือ Conveying) ซอฟต์แวร์ไปยังผู้อื่น เช่น การส่งมอบไฟล์ไบนารี, การติดตั้งลงในเครื่องของลูกค้า หรือการแจกแผ่นซีดี
เมื่อรูปแบบสถาปัตยกรรมซอฟต์แวร์เปลี่ยนไปเป็น Cloud/SaaS ผู้ให้บริการนำโค้ด GPL ไปปรับแต่ง พัฒนาระบบเพิ่มเติม และรันอยู่บนเซิร์ฟเวอร์ของตนเอง โดยให้ผู้ใช้เรียกใช้งานผ่านเว็บเบราว์เซอร์หรือ API กรณีนี้ในทางกฎหมายไม่ถือเป็นการ “แจกจ่ายซอฟต์แวร์” ส่งผลให้ผู้ให้บริการไม่ต้องเปิดเผยซอร์สโค้ดที่ตนดัดแปลงกลับคืนสู่ชุมชน Free Software Foundation (FSF) จึงสร้าง AGPL-3.0 ขึ้นมาในปี 2007 เพื่อแก้ปัญหานี้โดยเฉพาะ
เงื่อนไขสำคัญที่สุด: มาตรา 13 (Section 13)
หัวใจหลักของ AGPL-3.0 อยู่ในมาตรา 13 ที่ระบุว่า
หากนำซอฟต์แวร์ที่ใช้สัญญาอนุญาตนี้ไปปรับแต่ง และเปิดให้ผู้ใช้งานสามารถ โต้ตอบหรือส่งข้อมูลผ่านระบบเครือข่ายคอมพิวเตอร์จากระยะไกล (Interacting through a computer network remotely) ผู้ดูแลระบบจะต้องจัดเตรียมช่องทางให้ผู้ใช้งานเครือข่ายทุกคนสามารถดาวน์โหลดซอร์สโค้ดที่สมบูรณ์และสอดคล้องกับระบบนั้นได้โดยไม่คิดค่าใช้จ่าย
ข้อกำหนดนี้ทำให้ซอฟต์แวร์ SaaS, API service หรือ Web application ทุกตัวที่ใช้โค้ด AGPL-3.0 ตกอยู่ภายใต้กฎ Copyleft ทันที แม้จะไม่ได้ส่งมอบไฟล์ตัวโปรแกรมให้ใครก็ตาม
สรุปสิทธิและข้อบังคับ
| สิ่งที่อนุญาตให้ทำได้ (Permissions) | สิ่งที่ต้องปฏิบัติตาม (Conditions) | ข้อจำกัด (Limitations) |
| ใช้งานเชิงพาณิชย์ได้ | เปิดเผยซอร์สโค้ดเมื่อรันผ่านเน็ตเวิร์ก | ไม่มีการรับประกันความเสียหาย (No Warranty) |
| ปรับแต่ง ดัดแปลง และพัฒนาต่อได้ | ใช้สัญญาอนุญาต AGPL-3.0 กับโค้ดที่ดัดแปลง | ผู้สร้างเดิมไม่ต้องรับผิดชอบทางกฎหมาย (Liability) |
| แจกจ่ายหรือส่งมอบต่อได้ | แสดงประวัติและจุดที่มีการแก้ไขโค้ด | |
| สิทธิ์ในการใช้สิทธิบัตรที่เกี่ยวข้อง | คงประกาศลิขสิทธิ์และข้อความต้นฉบับไว้ |
มุมมองจากฝั่งนักพัฒนาและธุรกิจ
ข้อดี
- ปกป้องชุมชนโอเพนซอร์ส
ป้องกันไม่ให้บริษัท Cloud ขนาดยักษ์นำโปรเจกต์ของชุมชนไปสร้างเป็นบริการเชิงพาณิชย์แบบปิด โดยไม่สนับสนุนโค้ดกลับคืน - โมเดล Dual-Licensing
ช่วยให้เจ้าของโปรเจกต์สามารถขายไลเซนส์เชิงพาณิชย์ (Commercial License) ควบคู่ได้ หากลูกค้าองค์กรไม่ต้องการเปิดเผยซอร์สโค้ดภายใน
ข้อควรระวัง
- ความเสี่ยงในองค์กร
บริษัทเอกชนส่วนใหญ่มีนโยบายห้ามใช้ไลบรารีหรือโมดูล AGPL ภายในระบบ เพราะกังวลว่าโค้ดส่วนอื่นของบริษัท (Proprietary Code) ที่นำมาเชื่อมต่อจะถูกตีความว่าเป็นงานดัดแปลง (Derivative Work) จนต้องเปิดเผยซอร์สโค้ดทั้งหมด - การเชื่อมต่อระหว่างระบบ
การใช้บริการที่อยู่หลัง AGPL-3.0 ผ่าน REST API แบบอิสระต่อกัน (Independent Service) มักไม่นับเป็น Derivative Work แต่หากมีการแก้ไขโค้ดฝั่ง Server โดยตรง จะต้องเปิดเผยส่วนที่แก้นั้นอย่างหลีกเลี่ยงไม่ได้
AGPL-3.0 เหมาะอย่างยิ่งสำหรับโปรเจกต์ที่เป็นแอปพลิเคชันหรือเซิร์ฟเวอร์แบบสำเร็จรูป (เช่น Mastodon, Grafana, Nextcloud) ที่ต้องการให้ทุกคนเข้าถึงซอร์สโค้ดที่แท้จริงได้เสมอ แม้ระบบจะซ่อนอยู่หลัง Cloud แต่ไม่เหมาะกับไลบรารีหรือเฟรมเวิร์กที่ต้องการให้นักพัฒนาทั่วไปดึงไปฝังในโปรเจกต์อื่นได้อย่างอิสระ