Rock Hua-Chao Hung
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee
  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    3
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    # [開源教]教我正確選擇軟體授權 ## 演講影片 {%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 > 求本日簡報供參,資料太多需要時間學習消化 > 簡報在共筆最上面ㄛ

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully