AGPL-3.0 license

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 แต่ไม่เหมาะกับไลบรารีหรือเฟรมเวิร์กที่ต้องการให้นักพัฒนาทั่วไปดึงไปฝังในโปรเจกต์อื่นได้อย่างอิสระ