Slide 1

Slide 1 text

企業應如何善用開源技術 才能得其利而防其弊 曾義峰 (Ant) yftzeng@gmail.com 2019-06-01 擁抱開源

Slide 2

Slide 2 text

2/94 曾義峰 (ant) 時而編程 , 時而沉浸於法律領域、倘洋於資訊安全世界中。 13 年網際網路研發經驗 , 4 年顧問資歷。 → TGO Networks 台北分會會籍委員 → 台灣資安社群 CHROOT 成員 → 書亞集成股份有限公司 CTO → 香港商帕格數碼媒體股份有限公司 CTO → 希幔科技股份有限公司 CTO → 台灣駭客年會 (HITCON) 2008/2009 講師 → 開源人年會 (COSCUP) 2009/2012 講師 → 台灣 Modern Web 2015/2016/2017/2018 講師 → 中國開源年會 (COSCon) 2018 講師

Slide 3

Slide 3 text

3/94 曾義峰 (ant) → 曾於英業達 (Inventec) 及廣達電腦 (Quanta) 等教授自由軟體授權相關課程。 → 於 2011 年 OSDC( 開源開發者大會 ) 分享《開源專案之授權自動化分析工具》 → 於 2018 年 COSCon( 中國開源年會 ) 分享《谈开源授权态样如何融入 DevOps 之持续整合》 相關文章 2011-03-07 淺談 App Store 與開放源碼軟體授權的案例: VLC 的合法上架與 Miro Video Converter 的非法下架 https://www.openfoundry.org/tw/enterprise-application/8274 2011-03-15 淺談將開放源碼軟體改名並違法販售: Butterfly Media on Amazon https://www.openfoundry.org/tw/enterprise-application/8275 2011-07-12 從 Red Hat 變更 RHEL 釋出方式來探討 GPL 對原始碼範圍的定義 https://www.openfoundry.org/tw/enterprise-application/8393 2011-08-17 開放原始碼的相容與互斥性:從 Ruby 社群變更開放原始碼授權來探討 https://www.openfoundry.org/tw/enterprise-application/8419 2012-03-03 談 GPL 軟體原始碼定義及瑕疵修復方式-從 GNU Emacs 違反 GPL 授權條款一事說起 https://www.openfoundry.org/en/news/8629 2012-03-08 授權流言終結者 #1 : VirtualBox 授權分析與探討 https://www.openfoundry.org/tw/enterprise-application/8636 2012-03-29 授權流言終結者 #2 : The JSON License 的分析與探討 https://www.openfoundry.org/tw/enterprise-application/8657 2012-04-23 授權流言終結者 #3 : jQuery 授權的分析與探討 https://www.openfoundry.org/en/news/8680 2012-04-29 授權流言終結者 #4 : MongoDB 授權的分析與探討(雙重授權模式 2.0 ) https://www.openfoundry.org/enterprise-application/8687 2012-06-26 授權流言終結者 #5 : Neo4j 授權的分析與探討 https://www.openfoundry.org/enterprise-application/8738

Slide 4

Slide 4 text

4/94 非常早期投入研究 Android 源碼授權的樣態

Slide 5

Slide 5 text

5/94 陸續研究 Symbian, MeeGo, Meltemi

Slide 6

Slide 6 text

6/94 Myth 1 Big software companies don’t use Open Source 大型軟體公司不使用開源軟體

Slide 7

Slide 7 text

7/94 Ref: https://www.theregister.co.uk/2001/06/02/ballmer_linux_is_a_cancer/

Slide 8

Slide 8 text

8/94 Copyright (C) 2015

Slide 9

Slide 9 text

9/94 Copyright (C) 2015

Slide 10

Slide 10 text

10/94 Copyright (C) 2015

Slide 11

Slide 11 text

11/94 Copyright (C) 2015

Slide 12

Slide 12 text

12/94 Copyright (C) 2015

Slide 13

Slide 13 text

13/94 Copyright (C) 2015 Microsoft Windows 本身也利用開放源碼軟體

Slide 14

Slide 14 text

14/94 Ref: https://cloudblogs.microsoft.com/windowsserver/2015/05/06/microsoft-loves-linux/

Slide 15

Slide 15 text

15/94 Q1 Linux Kernel 是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ BSD-3-Clause ☐ GPL-2.0 ☐ GPL-3.0 ☐ 其它 ______________________________

Slide 16

Slide 16 text

16/94 Myth 2 You can't make money from Open Source 你無法從開源賺錢

Slide 17

Slide 17 text

17/94 Ref: https://www.redhat.com/en/about/press-releases/ibm-acquire-red-hat-completely-changing-cloud-landscape-and-becoming-worlds-1-hybrid-cloud-provider IBM 以 340 億美元收購 Red Hat (2018-10-28)

Slide 18

Slide 18 text

18/94 Ref: https://www.f5.com/company/news/press-releases/f5-acquires-nginx-to-bridge-netops-devops F5 Networks 以 6.7 億美元收購 NGINX (2019-03-11)

Slide 19

Slide 19 text

19/94 Ref: https://seekingalpha.com/symbol/ESTC Elastic 市值 60 億美元 ElasticSearch (2019-05-31)

Slide 20

Slide 20 text

20/94 Q2 Android 主要是何種自由 / 開放源碼軟體授權? ☐ MIT ☐ Apache-2.0 ☐ GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-2.0 (with User space exception) ☐ Apache-2.0 + GPL-3.0

Slide 21

Slide 21 text

21/94 Myth 3 Open Source has no Copyright 開源軟體沒有著作權

Slide 22

Slide 22 text

22/94 Ref: https://opensource.org/licenses/MIT MIT License

Slide 23

Slide 23 text

23/94 Ref: https://opensource.org/licenses/BSD-3-Clause 3-Clause BSD License

Slide 24

Slide 24 text

24/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0

Slide 25

Slide 25 text

25/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0

Slide 26

Slide 26 text

26/94

Slide 27

Slide 27 text

27/94 Q3 所有自由 / 開源軟體授權的最低遵循義務為何? ☐ 沒有義務,且可以修改 / 去除原著作權聲明 ☐ 需保留著作權聲明,且使用若出事可向原作者求償 ☐ 需保留著作權聲明,且使用若出事不可向原作者求償

Slide 28

Slide 28 text

28/94 Myth 4 Open Source is only about Copyright 開源軟體只涉及著作權

Slide 29

Slide 29 text

29/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0

Slide 30

Slide 30 text

30/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0

Slide 31

Slide 31 text

31/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0

Slide 32

Slide 32 text

32/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0

Slide 33

Slide 33 text

33/94

Slide 34

Slide 34 text

34/94 Q4 AGPL-3.0 授權的互惠性 / 感染性要求包括哪些行為? ☐ 指令輸出 ☐ 靜態連結 ☐ 動態連結 ☐ 網路傳輸

Slide 35

Slide 35 text

35/94 Myth 5 Open Source (licenses) are revocable 開源軟體 ( 授權 ) 可以撤銷

Slide 36

Slide 36 text

36/94 Ref: https://opensource.org/licenses/Apache-2.0 Apache License 2.0

Slide 37

Slide 37 text

37/94 Ref: https://opensource.org/licenses/GPL-3.0 GPL 3.0

Slide 38

Slide 38 text

38/94 Ref: https://opensource.org/licenses/MIT Ref: https://opensource.org/licenses/BSD-3-Clause MIT License 3-Clause BSD License

Slide 39

Slide 39 text

39/94 Ref: https://opensource.org/licenses/MIT Ref: https://opensource.org/licenses/BSD-3-Clause MIT License 3-Clause BSD License 多數開源授權條款內容未提及是否可以撤銷, 但根據美國聯邦巡迴法院 Jacobsen v. Katzer (2008) 案例判決, 除非違反條款內容時方可撤銷。

Slide 40

Slide 40 text

40/94 Q5 最新版本 MongoDB 資料庫的授權為下列何者? ☐ MIT ☐ Apache-2.0 ☐ GPL-3.0 ☐ AGPL-3.0 ☐ SSPL (Server Side Public License)

Slide 41

Slide 41 text

41/94 Myth 6 I want / can avoid Open source software 我想要 / 能夠避免使用開源軟體

Slide 42

Slide 42 text

42/94 軟體開發模式 電腦程式 ( 關卡設計 ) 電腦程式 ( 關卡設計 ) 美術圖案 ( 藝術設計 ) 電腦程式 ( 遊戲引擎 ) 套裝銷售 B D A 美術圖案 ( 藝術設計 ) 採購契約 自由 / 開放 源碼軟體契約 電腦程式 ( 遊戲引擎 ) 可能需要提供作者顯名宣告, 甚至提供電腦程式原始碼等義務

Slide 43

Slide 43 text

43/94 軟體開發模式 案例一 :Linksys 2003 年 3 月 Cisco 正式宣布收購 Linksys 。 此事公開後,使得自由軟體社群紛紛討論 Linksys WRT54G 是否 有違反 GPL 授權規定。經過社群的初步審核後,發現其核心使用 Linux kernel 2.4.5 及其它的 GPL 授權程式,如 Busybox 、 CramFS 等。因此,自由軟體基金會 (Free Software Foundation) 開始介入調查,經由溝通後,使得 Cisco 終於釋出 Linksys WRT54G 的程式原始碼。

Slide 44

Slide 44 text

44/94 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 套裝銷售

Slide 45

Slide 45 text

45/94 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 收購 套裝銷售

Slide 46

Slide 46 text

46/94 軟體開發模式 案例一 :Linksys 其它公司 基於採購契約 提供電腦程式 基於採購契約 提供電腦程式 收購 你的 Linksys WRT54G 產品中含有 GPL 授權程式 請將該產品所有程式的原始碼 公開 套裝銷售

Slide 47

Slide 47 text

47/94 軟體開發模式 案例一 :Linksys 其實 Cisco/Linksys 對於違反 GPL 授權規定都不知悉, 因為違反的程式皆由上游廠商 Broadcom 與外包廠商 所取得。這也反映了程式取得來源確認的重要性。

Slide 48

Slide 48 text

48/94 軟體開發模式 案例二 : 壹網樂 - 網樂通 其它公司 基於契約 提供電腦程式 套裝租出

Slide 49

Slide 49 text

49/94 軟體開發模式 案例二 : 壹網樂 - 網樂通 其它公司 基於契約 提供電腦程式 套裝租出 你的網樂通產品中含有 GPL 授權程式,請將該產品程式 的原始碼公開。 台灣自由 / 開放源碼社群

Slide 50

Slide 50 text

50/94

Slide 51

Slide 51 text

51/94 軟體開發模式 案例三 : Ameriprise vs. Versata 1. Ameriprise 採購 Versata 軟體, 並額外取得軟體修改權 ( 客製權 ) 。 2. Ameriprise 請外包廠商 Infosys 客製 化,但開發的產品與 Versata 類似。 3. Versata 怒對 Ameriprise 提起訴訟。 4. Ameriprise 隨之反擊,並聲稱 Versata 軟體中含有 GPL-2.0 的 XML parser 程式。 5. 該程式著作屬於 XimpleWare ,因此 XimpleWare 對 Ameriprise 、 Versata 及 Versata 的客戶提起侵權訟訴。 Ref: http://www.protecode.com/complex-legal-proceedings-may-far-reaching-effects-gpl-software-licensing/

Slide 52

Slide 52 text

52/94 軟體開發必須面對的真相

Slide 53

Slide 53 text

53/94 軟體開發必須面對的真相 如果沒有了 Google ( 搜尋引擎 ) 很多軟體工程師就無法辦事了

Slide 54

Slide 54 text

54/94 軟體開發必須面對的真相 C + GUI + library

Slide 55

Slide 55 text

55/94

Slide 56

Slide 56 text

56/94

Slide 57

Slide 57 text

57/94 程式開發必須面對的真相 Download 抄 Combine

Slide 58

Slide 58 text

58/94

Slide 59

Slide 59 text

59/94

Slide 60

Slide 60 text

60/94 程式開發必須面對的真相 大多沒有想過,那些 抄的、改的、用的程式 可能讓公司的專案、程式、產品 違法及賠償

Slide 61

Slide 61 text

61/94 程式開發必須面對的真相 這就好像在網路隨便抓圖片, 然後直接放在產品裡面販售出去一樣 可能讓公司的專案、程式、產品 違法及賠償

Slide 62

Slide 62 text

62/94 程式設計師必須面對的真相 自由 / 開放源碼軟體 無所不在

Slide 63

Slide 63 text

63/94 自 由 開 源 軟 體

Slide 64

Slide 64 text

64/94 mean lang:c

Slide 65

Slide 65 text

65/94

Slide 66

Slide 66 text

66/94

Slide 67

Slide 67 text

67/94

Slide 68

Slide 68 text

68/94

Slide 69

Slide 69 text

69/94

Slide 70

Slide 70 text

70/94 沒有著作權聲明,甚至不確定該著作的來源 ( 他也是抄來的 )

Slide 71

Slide 71 text

71/94 Q6 自由 / 開放源碼軟體授權涉及下列哪幾種智財權? ☐ 著作權 ☐ 商標權 ☐ 專利權 ☐ 營業秘密

Slide 72

Slide 72 text

72/94 Myth 7 My lawyer can solve Open Source License problem 我的律師可以解決開源軟體授權問題

Slide 73

Slide 73 text

73/94 Ref: https://opensource.org/licenses/category 目前單是 OSI( 開放源碼促進會 ) 通過的條款就達 92 種 還不包括未通過的又常見的,例如 Ruby License

Slide 74

Slide 74 text

74/94 Ref: https://opensource.org/licenses/category

Slide 75

Slide 75 text

75/94 Ref: https://opensource.org/licenses/category 更麻煩的還是授權彼此間的交互相容性

Slide 76

Slide 76 text

76/94 程式交互性 A 程式授權 B 程式授權 A 程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互

Slide 77

Slide 77 text

77/94 程式交互性 B 程式授權 ( 互惠 / 感染 ) A 程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互

Slide 78

Slide 78 text

78/94 程式交互性 ( 互斥 / 不相容 ) A 程式授權 B 程式授權 函式呼叫 / 靜態連結 / 動態連結 / 網路交互

Slide 79

Slide 79 text

79/94 GPL-2.0 與 GPL-3.0 是否相容? GPL-2.0 與 AGPL-3.0 是否相容? GPL-3.0 與 AGPL-3.0 是否相容? LGPL-2.1 與 GPL-2.0 是否相容? LGPL-3.0 與 GPL-2.0 是否相容? MIT 與 GPL-2.0 是否相容? Apache-2.0 與 GPL-2.0 是否相容? 你知道這些授權問題的答案嗎?

Slide 80

Slide 80 text

80/94 GPL-2.0 與 GPL-3.0 是否相容? GPL-2.0 與 AGPL-3.0 是否相容? GPL-3.0 與 AGPL-3.0 是否相容? LGPL-2.1 與 GPL-2.0 是否相容? LGPL-3.0 與 GPL-2.0 是否相容? MIT 與 GPL-2.0 是否相容? Apache-2.0 與 GPL-2.0 是否相容?

Slide 81

Slide 81 text

81/94 Q7 Firefox 是自由 / 開放源碼軟體,得以自由使用其商標? ☐ 是 ☐ 否

Slide 82

Slide 82 text

82/94 Myth 8 Open source (licenses) are hard to understand 開源 ( 授權 ) 很難理解

Slide 83

Slide 83 text

83/94 互惠性 : 三大分類 ( 舊 ) License scope – Reciprocal ( 互惠性 ) Low High (GPLed) GPL LGPL AGPL (MPLed) MPL EPL (BSDed) BSD MIT Apache Gift license Sharing-with-files Sharing-with-rules Give me credit Give me fixes Give me everything

Slide 84

Slide 84 text

84/94 互惠性 : 四大分類 License scope – Reciprocal ( 互惠性 ) GPL LGPL MPL EPL BSD MIT Apache Gift license Sharing with files Sharing with rules Give me credit Give me fixes Give me everything AGPL Sharing with network Give me everything even in network Low High

Slide 85

Slide 85 text

85/94 Ref: https://tldrlegal.com/

Slide 86

Slide 86 text

86/94 Copyright (C) 2015 Ref: http://www.dwheeler.com/essays/floss-license-slide.html Creative Commons “Attribution-Share Alike 3.0 License”; the GNU Free Documentation License; or the GNU GPL (version 2 or later)

Slide 87

Slide 87 text

87/94 Copyright (C) 2015 Ref: https://www.gnu.org/licenses/quick-guide-gplv3.html

Slide 88

Slide 88 text

88/94 Copyright (C) 2015 Ref: https://www.gnu.org/licenses/quick-guide-gplv3.html 但這兩張圖無法解決所有問題, 例如不包括 PHP/Python/Ruby 授權等, 交互未區別函式呼叫 / 靜態連結 / 動態連結 / 網路交互等。 Ref: http://www.dwheeler.com/essays/floss-license-slide.html Creative Commons “Attribution-Share Alike 3.0 License”; the GNU Free Documentation License; or the GNU GPL (version 2 or later)

Slide 89

Slide 89 text

89/94 此領域需要懂法律智財權,加上瞭解工程技術者, 將授權條款的文字,解析為工程技術上的實施與流程 Open Source License Tech Lawyer

Slide 90

Slide 90 text

90/94 更勝一般開源授權技術律師,能看透並提出合法規避者 ( 隨時可搬出 7 種以上的鑽法律漏洞合法規避者 ) Open Source License Hacker

Slide 91

Slide 91 text

91/94 更勝一般開源授權技術律師,能看透並提出合法規避者 ( 隨時可搬出 7 種以上的鑽法律漏洞合法規避者 ) Open Source License Hacker 咳!該說的說,不該說的小聲說

Slide 92

Slide 92 text

92/94 Q8 Apache-2.0 的軟體,作者隨其上的專利可自由施行? ☐ 是 ☐ 否

Slide 93

Slide 93 text

93/94 Q8 Apache-2.0 的軟體,作者隨其上的專利可自由施行? ☐ 是 ☐ 否 同樣地,你是否有注意到, 若你的軟體依 Apache-2.0 開源,其上之專利亦需自由共享。

Slide 94

Slide 94 text

94/94 yftzeng@gmail.com https://www.facebook.com/yftzeng.tw https://twitter.com/yftzeng