38
Software Licensing Isriya Paireepairit Thailand Open Source Festival #7 - http://www.ossfestival.in.th 3 August 2007

Open Source Software Licensing

Embed Size (px)

DESCRIPTION

About Open Source Software licenses: GPL, BSD, MIT, LGPL

Citation preview

Page 1: Open Source Software Licensing

Software LicensingIsriya Paireepairit

Thailand Open Source Festival #7 - http://www.ossfestival.in.th3 August 2007

Page 2: Open Source Software Licensing

License

สัญญา “อนุญาต” ให้

• ใช้งาน• พัฒนา/ปรับปรุง/แก้ไข• แจกจ่าย/หาผลประโยชน์ซอฟต์แวร์

Page 3: Open Source Software Licensing

License to “Use”EULA - End-User License Agreement

Page 4: Open Source Software Licensing

License to Modify/Distribute

• สัญญาจ้างระหว่างหน่วยงานกับ Software House

• สัญญาประมูลงานของหน่วยงานภาครัฐ• สัญญาใช้ component ระหว่าง Software House

• สัญญาจัดจำหน่ายซอฟต์แวร์/เกม• Etc.

Page 5: Open Source Software Licensing

Open Source License

• เป็น สัญญา เช่นเดียวกับสัญญาชนิดอื่นๆ

• เพียงแต่อนุญาตให้• ใช้• พัฒนาแก้ไข• แจกจ่าย/หาผลประโยชน์• ได้อย่างอิสระ

Page 6: Open Source Software Licensing

Misconception

ผิด: Open Source ไม่มีลิขสิทธิ์

ถูก: Open Source มีลิขสิทธิ์เช่นเดียวกับซอฟต์แวร์ทั่วไป

แต่ อนุญาต ให้คนอื่นนำไปใช้/พัฒนา/แจกจ่ายได้

ผู้เขียนซอฟต์แวร์ยังเป็นเจ้าของลิขสิทธิ์ของซอฟต์แวร์อยู่เสมอ

Page 7: Open Source Software Licensing

How to Apply Open Source License

1. เขียนเอง

2. ใช้สัญญาที่มีคนเขียนไว้แล้ว

Page 8: Open Source Software Licensing

Common Open Source Licenses

• GPL/LGPL

• BSD

• MIT X11

• Apache

• Mozilla Public License

• Sun CDDL

• Eclipse Public License

• PHP License

• Python License

• etc.

Page 9: Open Source Software Licensing

GPL

• GNU General Public License

• Version 1: 1985

• Version 2: 1991

• Version 3: 2007

• Free Software Foundation (www.fsf.org)

Page 10: Open Source Software Licensing

GPL Key Concept

•สามารถพัฒนาและแจกจ่ายต่อได้อย่างอิสระ

•ตราบเท่าที่คนอื่นๆ ได้สิทธิ์นั้นแบบเดียวกัน

Page 11: Open Source Software Licensing

Right to Get Source

Company A

User B

ขาย/แจก

สร้าง

ใช้

compile

Page 12: Open Source Software Licensing

GPL Misconception

ผิด: โปรแกรมที่เป็น GPL ขายไม่ได้

ถูก: โปรแกรมที่เป็น GPL ขายได้

แต่ผู้ซื้อ ต้องได้ ซอร์สโค้ดเมื่อร้องขอ

(ในทางปฏิบัติ ตัวโปรแกรมจึงไม่มีราคา เพราะคนอื่นนอกจากเจ้าของสามารถแจกจ่ายได้เช่นกัน)

Page 13: Open Source Software Licensing

How to Get Money from Open Source

ซอร์สโค้ดสามารถแจกจ่ายได้ แต่อย่างอื่นแจกจ่ายไม่ได้

• support/training

• ความเชี่ยวชาญในการแก้ไขโปรแกรม (Ubuntu)

• วิธีการ compile/build โปรแกรม (Red Hat/RHEL)

• เพิ่มความสามารถลงในโปรแกรม (Mozilla/Google)

Page 14: Open Source Software Licensing

RHEL/CentOS Case

• Red Hat Enterprise Linux (RHEL)

• บริษัท Red Hat แจกซอร์สโค้ดของ RHEL แต่ไม่แจก Binary

• บริษัท Red Hat ขาย Binary ของ RHEL

• ลูกค้าซื้อความสะดวกในการ build ซอร์สของ RHEL

• โครงการ CentOS นำซอร์สของ RHEL มา build แล้วแจก binary

Page 15: Open Source Software Licensing

RHEL/CentOS Case (2)

• Red Hat ได้เงินจากการขาย RHEL binary

• ลูกค้ามี 3 ทางเลือก

• ซื้อ RHEL binary จาก Red Hat

• ดาวน์โหลด CentOS binary จากอินเทอร์เน็ต

• ดาวน์โหลด RHEL Source มา build เอง

Page 16: Open Source Software Licensing

RHEL/CentOS Case (3)

• Source Code ของ RHEL แจกจ่ายได้อิสระ

• Trademark ของ RHEL เป็นของ Red Hat

• CentOS จึงต้องใช้ชื่ออื่น

• กรณีเดียวกับ Firefox/IceWeasel

Page 17: Open Source Software Licensing

Derivatives

• งานที่พัฒนาต่อ (derivative) จากซอร์สที่เป็น GPL ต้องเป็น GPL ด้วย

Page 18: Open Source Software Licensing

Recursive Distribution

A Bcompile Cdevelop modify modify

Page 19: Open Source Software Licensing

GPL Virus

• โค้ดที่เป็น GPL เมื่อผสมกับโค้ดอื่น โค้ดทั้งหมดต้องเป็น GPL ด้วย

• เป้าหมายเพื่อส่งเสริมให้เกิดโปรแกรม GPL มากๆ

• (ไม่รวมกรณี library linking)

Page 20: Open Source Software Licensing

+

Strong Linking

A Bcompile Cdevelop modify modify

+

D

Page 21: Open Source Software Licensing

LGPL

GNU Lesser General Public License

LGPL = GPL - GPL Virus

Page 22: Open Source Software Licensing

LGPL

• ผสมรวมกับซอฟต์แวร์อื่นที่ไม่ใช่ LGPL/GPL ได้

• Derivative ต้องเป็น LGPL หรืออัพขึ้นเป็น GPL

Page 23: Open Source Software Licensing

+

Weak Linking

A Bcompile Cdevelop modify modify

+

D

Page 24: Open Source Software Licensing

Other License

• MIT License

• BSD License

• Mozilla Public License

Page 25: Open Source Software Licensing

MIT License

• เดิมใช้กับ X11

• นำซอร์สโค้ดไปทำอะไรก็ได้ ตราบเท่าที่ไม่ฟ้องผู้พัฒนา

Page 26: Open Source Software Licensing

BSD License

• เดิมใช้กับ Unix ของ Berkley

Page 27: Open Source Software Licensing

Mozilla Public License

• คล้ายกับ LGPL

• มีเงื่อนไขเพิ่มขึ้นสำหรับ Mozilla

Page 28: Open Source Software Licensing

License Comparison

source - http://www.dwheeler.com/essays/floss-license-slide.html

Page 29: Open Source Software Licensing

License Comparison

http://en.wikipedia.org/wiki/Comparison_of_free_software_licences

Page 30: Open Source Software Licensing

License Comparison

• More comparison matrix

http://developer.kde.org/documentation/licensing/licenses_summary.html

Page 31: Open Source Software Licensing

GPLv3

• เวอร์ชันอัพเดตของ GPLv2

• ใจความหลักเหมือนเดิม• แก้ปัญหาบางอย่างของ GPLv2

Page 32: Open Source Software Licensing

Tivoization

• แจกซอร์สโค้ด แต่ไม่ยอมให้แก้ไขโปรแกรมที่รันอยู่

• อุปกรณ์ต่างๆ เช่น• เครื่อง set-top box ของ TiVo

• Wireless Router

• DRM

Page 33: Open Source Software Licensing

Patent

• แจกซอร์สโค้ด (ลิขสิทธิ์) แต่ไปฟ้องสิทธิบัตร

• กรณีสัญญา Microsoft-Novell

• คุ้มครองเฉพาะลูกค้าของ Novell

• แก้ให้: คุ้มครองสิทธิบัตรแก่ผู้ใช้ทุกคน

Page 34: Open Source Software Licensing

Other Changes

• กรณีแจกจ่ายผ่าน P2P

• การปรับใช้ในประเทศอื่นๆ นอกจากสหรัฐ (Internationalization)

• เข้ากันได้กับ Apache 2.0 License

• ปรับคำศัพท์ เช่น• เปลี่ยน distribute เป็น propagate/convey

Page 35: Open Source Software Licensing

GPLv2 vs GPLv3

• GPLv2 ไม่ compat กับ GPLv3

• เพราะแต่ละ license ระบุว่าต้องแจกจ่ายผลงานที่แก้ไข ใต้ License เดิม

• แก้ปัญหา: ใช้ประโยค GPLv2 or later

Page 36: Open Source Software Licensing

Upgrade Path

source - GPLv3 FAQ

before

later

Page 37: Open Source Software Licensing

GPLv3 Adoption

source - http://gpl3.palamida.com

GPLv2 370,000

GPLv3 550

Number of Projects using GPLv2 and v3

Page 38: Open Source Software Licensing

Major Open Source Projects and GPLv3

Yes Considering (Probably) No

SambaSugarCRM

Sun Solaris/JDK Linux Kernel

Anyway, we still can use GPLv2 and GPLv3 programs together e.g. Running Samba on Linux