หลายคนอาจจะมองว่า Open Source เป็นของฟรี ถูกครับ แต่ยังุถูกไม่หมดครับ เพราะมองง่ายๆ ว่าใช้ฟรี แต่ถ้าเอาไปพัฒนาต่อก็ต้องดูสัญญาตามนี้นะครับ โดยผมขอสรุปเท่าที่ผมรู้บางตัวนะครับ
GPL-GNU (General Public License)
- เอามาใช้ได้ฟรี
- ปรับแต่งแล้วเอาขายต่อได้ แต่ต้องให้ source code กับลูกค้าด้วย
- ไม่ว่าเราจะเอา Library มาใช้ หรือ แก้ไขตัว Library ก็ตาม โปรแกรมของที่เราพัฒนาขึ้นก็จะเป็น GPL ไปด้วย (มองง่ายๆว่าเป็น Zombie License หรือถ้าเอาแบบภาษาทางการ คือ Copyleft licenses หรือ เรียกว่า สัญญาอนุญาตต่างตอบแทน (เอามาใช้แล้ว เราต้องตอบแทนด้วย เช่น GPL เอา Code มาใช้ ถ้าแก้ส่งลูกค้าให้ Code ลูกค้า และโปรแกรมของเราก็เป็น GPL ด้วย)
LGPL (Lesser General Public License)
- ภาพรวมเหมือนตัว GPL
- ตอนโปรแกรมไปขายต่อไม่จำเป็นต้องแจก source code ในส่วนที่เราพัฒนาเอง แต่ถ้าเราไปแก้ส่วนของ Library ที่ LGPL แล้ว เราก็ต้อง Open Source Code ในส่วนนั้นด้วยครับ เช่น มีการแก้ Library ที่ใช้การอ่าน Excel File จากเดิมรองรับไฟล์ .xls ให้รองรับไฟล์ .xlsx เพิ่มเติมได้ เราต้อง Open Source Code ส่วนนี้ด้วยนะครับ
BSD(Berkeley Software Distribution License),
MIT(Massachusetts Institute of Technology License)
- สองตัวนี้คล้ายๆ กันนะครับ เป็น Permissive licenses คือ ใช้ได้ฟรี
- ปรับแต่งแล้วเอาไปขายต่อ ไม่จำเป็นต้องแจก source code
- ต้องมีการระบุ License Agreement ลงไปที่ส่วนใดส่วนหนึ่งของงานด้วย
Apache License
- ใช้ได้ฟรี ปรับแต่งแล้วเอาไปขายต่อ ไม่ต้องแจก Source Code และ License ประเภทนี้ยังครอบคลุมเรื่องสิทธิบัตรด้วย นั่นคือไม่มีการผูกขาด ทุกคนสามารถใช้ได้ฟรีตลอดไป
- เรื่องสิทธิบัตรยังไม่ค่อยเข้าใจ ผมเข้าใจว่า License ประเภทอื่นๆ จะครอบคลุมแต่เรื่องลิขสิทธิ์ คือยอมให้ใช้ได้ฟรี แต่ทีมพัฒนาอาจเปลี่ยนใจออก version ใหม่เป็น license แบบเก็บเงินได้ เหมือนกับกรณี MySQL แต่สำหรับ Apache license ถ้าอยากจะเก็บเงิน ต้องไปสร้างเป็นโปรเจ็คใหม่ ไม่ใช่ใช้โปรเจ็คเดิมแล้วแบ่งเป็น commercial/community Edition ประมาณนี้นะครับ
- เพิ่มเติมเรื่องสิทธิบัตรครับ (แก้ตอน 2015-06-28) Apache2 เรื่องสิทธิบัตร (patent) ถ้าเจ้าของ project จด patent คนที่ใช้ License นี้จะได้รับสิทธิใน patent นั้นด้วยโดยอัตโนมัติ คือ ถ้านาย ก แจก library ด้วย Apache2 แล้วนาย ข เอา License ไปใช้ หลังจากนั้น นาย ก patent library นี้ ขอเรียกว่า patent x อยู่มาวันหนึ่ง นาย ค ฟ้องนาย ข นาย ข จะสามารถเอา patent x ของนาย ก มาป้องกันตัวได้ ยกเว้นในกรณีเดียว คือ ถ้านาย ข เกิดอกตัญญูฟ้อง นาย ก เกี่ยวกับ License นี้ สิทธิใน patent x ของ นาย ข จะถูกยกเลิกทันที
หมายเหตุ: ถ้าเอา Library ในกลุ่มพวกนี้มาใช้ควรศึกษากฏให้ดีด้วยนะครับ โดยเฉพาะตัว GPL และที่สำคัญควรให้เกียรติกับทีมงานที่พัฒนา Library ที่เราเอามาใช้ด้วยการอ้างอิงไว้ด้วยนะครับ ที่ต่างประเทศพลาดที่นี้ฟ้องกันจนเจ๊งเลยนะครับ
References
- MIT License (Expat)
- Apache License 2.0 (Apache-2.0)
- GNU Lesser General Public License v3 (LGPL-3)
- BSD 3-Clause License (Revised)
- WIKI: Copyleft
- WIKI: Comparison of free and open-source software licenses
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.