open source software licensing

Post on 09-May-2015

4.707 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Software LicensingIsriya Paireepairit

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

License

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

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

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

License to Modify/Distribute

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

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

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

Open Source License

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

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

Misconception

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

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

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

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

How to Apply Open Source License

1. เขียนเอง

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

Common Open Source Licenses

• GPL/LGPL

• BSD

• MIT X11

• Apache

• Mozilla Public License

• Sun CDDL

• Eclipse Public License

• PHP License

• Python License

• etc.

GPL

• GNU General Public License

• Version 1: 1985

• Version 2: 1991

• Version 3: 2007

• Free Software Foundation (www.fsf.org)

GPL Key Concept

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

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

Right to Get Source

Company A

User B

ขาย/แจก

สร้าง

ใช้

compile

GPL Misconception

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

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

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

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

How to Get Money from Open Source

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

• support/training

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

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

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

RHEL/CentOS Case

• Red Hat Enterprise Linux (RHEL)

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

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

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

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

RHEL/CentOS Case (2)

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

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

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

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

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

RHEL/CentOS Case (3)

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

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

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

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

Derivatives

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

Recursive Distribution

A Bcompile Cdevelop modify modify

GPL Virus

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

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

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

+

Strong Linking

A Bcompile Cdevelop modify modify

+

D

LGPL

GNU Lesser General Public License

LGPL = GPL - GPL Virus

LGPL

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

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

+

Weak Linking

A Bcompile Cdevelop modify modify

+

D

Other License

• MIT License

• BSD License

• Mozilla Public License

MIT License

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

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

BSD License

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

Mozilla Public License

• คล้ายกับ LGPL

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

License Comparison

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

License Comparison

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

License Comparison

• More comparison matrix

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

GPLv3

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

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

Tivoization

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

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

• Wireless Router

• DRM

Patent

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

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

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

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

Other Changes

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

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

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

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

GPLv2 vs GPLv3

• GPLv2 ไม่ compat กับ GPLv3

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

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

Upgrade Path

source - GPLv3 FAQ

before

later

GPLv3 Adoption

source - http://gpl3.palamida.com

GPLv2 370,000

GPLv3 550

Number of Projects using GPLv2 and v3

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

top related