# [開源教]教我正確選擇軟體授權
## 演講影片
{%youtube raHdvb8y_-Q %}
{%youtube Q0z32UMiqTA %}
## 筆記區
slide:https://drive.google.com/file/d/1B4La6GRGc95TLu0IG4zowkr1or6aF_4g/view
### 開放授權 Open Licensing
1. Open 的東西才能 reuse 跟 release``,達到最大的效益。
2. 106 年資訊服務採購範本加入 Open license 規定(你如果沒能力規劃:你怎麼拿到就怎麼給我,全部交出來!)
3. 開放授權並不是放棄著作權利。
4. 開源訴訟趨勢
- 個人 vs. 企業 -> 企業 vs. 企業
- 開源成為一種企業競爭模式
BSD 類:無拘無束的自由
其他類:特別的商業模式,由基金會或大型組織,Source code 像 GPL,整體使用像 BSD
GPL 類:(火焰的顏色)大家都必須要一直自由,你不管怎麼使用作品,都需要接續創作者提供的開源授權方式。
### GNU GPL 授權 (大家必須一直自由)
#### GPL
1. 修改 GPL 程式產生的衍生程式,需採用 GPL 授權 (Based on)
2. 只要有就可以要: Object code, Binary Form -> Source Code, Source Form
3. 與 GPL 程式關係密切,稱為 GPL 衍生程式,所以散布時也須公開原始碼 (有 Binary 才要給)
#### LGPL
1. 能用 LGPL 釋出的一定是函式庫 (Library)
2. 連結利用:如果是依照本來 Library 的界面來操作,最後散播的程式要不要公開看個人
3. 如果有修正過 Library 內容,你必須使用 LGPL 公開新的 Library
#### AGPL
1. 應付 ASP (Application Service Provider)
2. AGPL-3.0,前半部與 GPL 相同僅在最後不同:把網路服務視同散佈 Binary
3. e.g. CKAM, ghostscript
Q:如果我使用了某個程式,他後續更改的授權,我會受到影響嗎?
A:如果你沒有使用新的版本,你就不會受到新的授權影響
### 其他開源授權
#### BSD 類 (Permissive licenese)
1. BSD/MIT
2. 幾乎無拘無束的自由,散佈者有權力決定接續的授權方式,但是需要表述著作人的聲明。若達成此點,接下來做什麼授權皆具有合法性。
- C & D
- 著作權聲明 (Copyright Notice):你必須表述我的著作權聲明
- 免責聲明 (Disclamier):也必須將免責聲明表述,壞ㄌ不能怪我
#### Apache-2.0 ():增加商業配置
1. 用十倍以上的廢話將 MIT/BSD 說明清楚
2. 明示:**商標權**未授權
3. 明示:可收費提供擔保
4. 專利授權規定
- 專利反制條款 (如果後續使用者是遵照授權合理使用,不能告專利)
- 在這個領域裡面我們不喜歡談專利(若以專利提告,則專利著作人可以直接撤銷使用者權力)←這樣嗎??
#### 其他類
Sometihng-based:還是要求 Source 必須 Open,但是比 GPL 又把界線寫得更清楚
- 檔案基礎的獨立性 (檔案可以分,授權就可以分)
- MPL,CDDL
- 模組基礎的獨立性 (抽象的功能、模組可以分,那授權就可以分)
- EPL, CPL
- 最後的結果可自己決定,但是中間使用了以上授權需要告知
Copyleft licenese:往後不斷拘束,不管你怎麼改,後面都要遵守前面
### 實戰!選一個適合的授權吧!
1. 分析授權狀態
- 妥善專案開發流程 (程式開發紀錄簿)
- BLACKDUCK / 源碼掃描的商業方案
- FLEXERA / 源碼掃描及商控方案
- FOSSID / 源碼掃描及商控方案
- FOSSOLOGY / 授權資訊掃描開源方案
- BAT / 目的碼掃描開源方案
- 前三者都是將 Open source project 砍回來分析進行比對
CC SA 是可以往後擴充的,再往後可以擴充成 GPL3.0 (我覺得我漏一點東西ㄌ)
#### Open source 的重點是列清單
清單 example
```
project:
web:專案網址
version:版本 & 下載連結
License:
SPDX:開源領域的標準標示方法,避免名稱與別稱的誤用。通常放入授權方式的簡稱簡寫,
若授權方法未在裡面看到,可能就不是開源授權(延伸功能待補)
Copyright Notice:
Disclamier:
```
#### 授權版本相容性(寬的可以變嚴的,嚴的不能變寬的)
GPL 有拘束性,在開發階段就需要區分清楚,判讀才可以有所區隔。
授權條款間彼此無法相容並存
![](https://i.imgur.com/bp1Zs15.jpg)
1. 水火不容:兩種授權方式若都需要衍伸作品跟從原授權方式,是要跟誰的啦
2. 蛇吞象:GPL大熔爐。較寬鬆的授權方式被嚴謹授權方式併吞。易發生於在軟體開發階段漫不經心,很多授權寫在一起分不清楚,若有法律訴訟情狀,即可能裁示通通大 Open。
3. 將所有使用到的專案都寫出來,各個授權標示清楚,誰也不吞誰,讓商業使用者自己判斷。
#### 商業公司如何區分政策?
- 使用上是 內部、外部、雲端
- 來辨別是否散布/散佈程度
- 一個雲端可能突破內外部
- 定調原則
- Source Open for All : GPL 類
- Modified Source for all : 其他類
- No Source at all : BSD 類
- 必須容許例外
:::warning
改做的定義是修改,如果只是當作工具使用,視為內部使用,授權條款不影響個人使用(不影響創作者著作權利)
:::
#### 使用開源發展商業服務之相關注意事項?
- 內部能共享的**版控系統**
- 託管平台至為重要
#### Shareware vs. Freeware
S:使用至某程度之後,必須要付出費用才可繼續以商業方式使用/分享/改做。
F:可以自由修改、自由散佈,不限定使用目的。
#### 到底是不是 OpenSource
- 看官方授權列表 (Licenses by Name
- SPDX 有沒有簡寫
#### OpenSource 是可以被商業使用的
- 須遵守各自 OpenSource 的規範
- 列清單!哪些使用了 GPL / AGPL
#### 小故事
FreeAdhoccUDF 侵權與和解
- 我全部混在一起了,不知道哪塊是哪塊
- 那你只好全部 Open la.
JDK 的商業方案
- 試用方案,真的開始商業使用後要收費
Commons Clause: 附加商用禁止條款
- 認為造成混淆
- 成為 Redis Source Avaiable License (RSAL),並非 Open Source 授權
MongoBD: Server Side Public License (SSPL)
看著你的程式寫程式 vs. 程式共享
GPL2.0 與 3.0 的差別
- 因為 2.0 是 1991 年,對於網路傳播沒有太大的概念,所以認為是要燒光碟給別人 source code,後來有人用了 2.0,雖然有放在網路上,但是沒有給光碟,所以被寫信(?)
- 3.0 加入了網路散播,並且加入軟體專利的條款,類似 Apache 授權,合理使用不能告侵犯專利。
- 3.0 加入針對 User product:常態性使用商品,必須公開源碼(並且要可以在原產品上使用,不能有「我有給Source 只是它不能跑R」的狀態)
### 小語錄
```
宗教法人法成立後就成立開源教吧,不要成立法人了!
打不過你就加入你,加不入你就買下你!
太小不告,不想要讓Open Source產生寒蟬效應,大家都不敢用
太大不告,你是面對一個足球團的律師!
Source 我有給啊,只是他不能跑
```
### 參考
[什麼是opensource 樂高版](https://www.youtube.com/watch?v=6NhyCXJU-IQ)
行政院公共工程委員會 資訊服務採購範本 106.7.13版,第16條第3項第6款
[SPDX](https://spdx.org/)
[Licenses by Name](https://opensource.org/licenses/alphabetical)
## 發問區
> [name=Rock Hua-Chao Hung]安安你好幾歲
> test
> 求本日簡報供參,資料太多需要時間學習消化
> 簡報在共筆最上面ㄛ
{"metaMigratedAt":"2023-06-14T16:14:59.491Z","metaMigratedFrom":"Content","title":"[開源教]教我正確選擇軟體授權","breaks":true,"contributors":"[{\"id\":null,\"add\":26,\"del\":24},{\"id\":\"82f9732a-3cfe-43fa-9b22-7770134cf37b\",\"add\":59,\"del\":0},{\"id\":\"c4516dd4-82bd-445a-8104-3a6b63f574c8\",\"add\":177,\"del\":69},{\"id\":\"6301f9c0-736a-4f23-98dd-1134ada68c56\",\"add\":3457,\"del\":325},{\"id\":\"b353fd62-d669-46f7-baf1-b8fcd0137ec5\",\"add\":463,\"del\":11},{\"id\":\"5d9e5407-240a-480e-a6e1-aebb638a08ae\",\"add\":33,\"del\":0},{\"id\":\"f1ba91a4-c58d-48c9-8145-fb6c66ff2654\",\"add\":60,\"del\":3}]"}