化簡為繁的 Apache-2.0 授權條款
Created at Friday, 13 January 2012 11:51 Last Updated on Thursday, 17 April 2014 15:44
Written by 林懿萱
若是把常見的自由軟體分成三類:對使用者限制甚少的 BSD 類、以 Copyleft 的授權拘束性著稱的 GPL 類、及不屬於前述兩類的其他類,則 Apache Software Foundation(簡稱 ASF)推出的 Apache 授權條款會落入 BSD 類中。而 Google 的 Android 作業系統雖以 Linux 為基礎,但卻選擇與 Linux Kernel 不同的授權條款-Apache License 2.0(簡稱 Apache-2.0),Android 作業系統之所以選擇 Apache-2.0,是因為相較於拘束性強的 Copyleft 類授權條款,如 GPL 或是 AGPL 系列條款,Apache-2.0 相對是對商業公司較有彈性的授權條款,其並沒有 GPL 類別的諸多規定,更不被要求義務性地將自行開發的程式碼再回饋給自由開放源碼社群,而可以將這部分程式碼封閉私有化後加以利用(註一);當然,這樣的論點也受到不少批評,認為這是只享受不付出、佔程式開發者便宜的行為。然而,若是採對使用者規定愈少,愈有利於商業公司軟體開發及利用的論點,只有幾百字規定的 BSD 授權條款豈非最佳選擇?(註二)Apache-2.0 佔有什麼優勢,獲得諸如 Google 等商業公司的青睞,本文以下將與 BSD 授權條款相對照,試著對 Apache-2.0 解析之。
一、著作權授權Apache-2.0 授與被授權人的著作權利範圍相當廣泛,包括了使用、重製、再散布、改作、再授權、公開演播(註三)該軟體及其衍生軟體等,此外,這些著作權許可均具有永久、全球、非專屬、免費、免授權金以及不可撤回 (irrevocable) 的特性,被授權人因此得以安心利用 Apache-2.0 授權的軟體。
與 Apache-2.0 相較之下,BSD 授權條款明示所授與的著作權種類較少,僅有使用、改作及再散布等權利。
二、專利權授權Apache-2.0 授與被授權人的專利權許可,包含得製造、代工 (have made)、使用、為販賣邀約 (offer for sell)、販售、進口及以其他方式的轉讓 (transfer) 專利授權產品;而這些專利權許可同樣具有永久、全球、非專屬、免費、免授權金、不可撤回的特性。
相較於 Apache-2.0 對專利授權有清楚規定,BSD 授權條款對此則並未有交代。從這點來看,授權條款若能清楚就專利授權範圍預作規劃,應能讓使用者在採用該授權軟體上更加安心。然而,Apache-2.0 對於專利授權也非毫無限制,若任一 Apache-2.0 授權程式的使用者提起專利訴訟,主張該軟體或編寫進該軟體中的貢獻部份(Contribution,註四)構成專利侵害,則其本依 Apache-2.0 所能得到的專利授權,將自該使用者提起訴訟那天終止。
三、商標權保留Apache-2.0 並未授權商標權使用,在其第 6 條規定,除了描述該軟體來源及複製「授權聲明 (NOTICE)」內容時,所合理、慣用性地描述到的狀況之外,不得使用軟體授權人的商號名稱、商標、服務標章或商品名稱等。
前面提到的 Android 作業系統,其商標使用政策為 Apache-2.0 的商標規定作了很好的示範。 Android 商標政策規定,為行銷通訊的目的,任何人皆可以自由地使用、重製及修改 Android 機器人 (Android Robot) 的圖樣與標誌,但須遵照創用CC「姓名標示」授權條款的相關規定來使用。而關於 “Android” 字樣,Google 則予以保留,並未預先授權給他人使用,所以 Android 相關專案的開發者,除了事實性描述時得以使用外 (The project is developed for “Android” platform),若是基於其他目的、則在未取得 Google 書面同意前不得任意使用該字樣,且使用時需標註「Android 是 Google 公司註冊商標」等字樣(註五)。
相較於 Apache-2.0 對商標的使用有明確的規定和限制,BSD 授權條款則並未對商標權的使用有所規範。
四、再散布程式時不必然需要提供原始碼Apache-2.0 規定,當被授權人需符合以下 1~4 項條件時,可以透過任何媒介,以原始碼、甚至目的碼格式,重製及散布該軟體或其衍生軟體(註六):
- 提供該軟體或衍生軟體的接受者一份 Apache-2.0 條款內容的拷貝;
- 必須在任何修改過的檔案附上明顯的授權聲明,以說明該被授權人修改了這份檔案;
- 當以原始碼形式散布衍生軟體,必須在該等衍生軟體中,保留所有著作權、專利權、商標權及署名聲明 (attribution notice),而那些與衍生軟體無關的授權聲明則除外;
- 如果該軟體散布時,原已夾附「授權聲明」的文字檔 (“NOTICE” text file),則被授權人散布的任何衍生軟體,也必須在該「授權聲明」檔中包含一份易讀的署名聲明。此外,該被授權人亦得在其散布的衍生軟體中添加自己的署名聲明,併入該軟體的「授權聲明」檔中或當作該「授權聲明」檔的附錄。
Apache-2.0 這幾項得再散布程式的條件,重點在區別程式的原撰寫者及修改者,以及授權聲明的標示,這對商業公司來說是頗重要的,因為修改後程式的品質好壞不定,若產生與原程式混淆的情形,不但無益、還可能有損於公司商譽;另一方面,授權聲明的保留,道理同於「文章歡迎轉載,但需註明出處」,是增值公司商譽的一種方式。
BSD 授權條款對程式的再散布雖不若 Apache-2.0 設有這麼多項的條件,但也非全無限制,BSD 授權條款規定當再散布原始碼 (Source Code),須保留著作權聲明、BSD 授權條款的條件及免責聲明;而當再散布二進位格式的程式碼時 (binary code),則於散布時須在文件及其他描述資料中,保留原 BSD 專案作者的著作權聲明、BSD 授權條款的條件,及其免責聲明。
五、修改的程式可選用不同授權條款Apache-2.0 規定,被授權人可以為其修改的程式、或整體的新衍生軟體,在 Apache-2.0 規定之外添附其他的、或選擇不同於 Apache-2.0 規定的條款;然而,被授權人得這麼做的前提要件是,其對該軟體的使用、重製、及散布皆不得違反 Apache-2.0 的規定。而既然被授權人可選擇不同於 Apache-2.0 的授權條款,私有的授權協議 (proprietary agreement) 當然也是一種選項,因此,包含 Apache-2.0 在內的 BSD 類授權條款的這項特性,是吸引不少商業公司採用的一個重要因素。
六、得提供額外擔保Apache-2.0 與其他自由軟體授權條款相同,原則上提供的是無償對授權軟體的使用,因此除了相關法律特別要求,或當事人額外以書面另行約定,否則授權人及任何貢獻者均是以現狀的基礎提供該軟體,未提供任何保證,而是由使用者自行承擔使用該 Apache-2.0 軟體所可能產生的所有風險。
然而,Apache-2.0 進一步規定,當被授權人再散布該軟體或其衍生軟體時,可以選擇提供技術支援、保證,或與 Apache-2.0 規定不相違背的其他權利或義務內容,並對此收費;但是被授權人只能以自己、不能以其他貢獻者的名義為此保證或提供支援服務,且只有當被授權人同意,使每一位貢獻者免於承擔,因其提供技術支援或保證而致的責任或請求時,始得為之。
上述被授權人可提供額外技術支援和保證,可視為提供 Apache-2.0 明示得允許再授權的配套規定,相較之下,BSD 授權條款則僅有典型常見的免責聲明,即授權軟體是以現有狀態提供,未提供任何額外保證的配套方式。
如前所述,同屬 BSD 類的 BSD 授權條款及 Apache-2.0,實有不少相類之處,例如,都不硬性要求再散布程式時需提供原始碼、修改後程式可適用不同的授權條款等,但若細加比較,會發現 BSD 授權條款的用字似乎過於簡略,例如其明示所授權的著作權種類只有使用、改作及再散布,許多授權利用的態樣及授權範圍都未加以規定,也因此衍生許多模糊地帶,例如 BSD 授權條款是否允許再授權,就產生了對授權規定各自解讀不同的爭議;再者,若依照各國著作權法,著作財產權授權約定不明的部分,推定為未授權的預設規定來說,BSD 授權條款規定太過精簡,日後如果發生授權內容的解釋爭議時,反而可能衍生授權範圍不清、規範內容不足的風險,這應該也是為何 Google 等商業公司並沒有大舉採用 BSD 授權條款的重要原因之一。相對的,Apache-2.0 則給予了適如其份的補充和說明,並且,一些 BSD 授權條款並未規定、但卻是商業公司關注的重點,如專利權、商標權是否授予被授權人或予以保留,Apache-2.0 都有明文規定。因此,本文以為 Apache-2.0 可以說是 BSD 授權條款「化簡為繁」的呈現,但既不會過於精簡、也不至於規定的太過繁複,而是畫龍點睛地在許多重點處加以著墨,若從商業公司多希望利用自由開源軟體再加以衍生開發的核心程式能予以封閉私有化,以及商業公司間交易往來慣有詳細的契約約定等角度來觀察,Apache-2.0 會是不錯的授權條款選擇!
註一:Open Handset Alliance 網站 FAQ 的 “Why did you pick the Apache v2 open source license?” (
https://www.openhandsetalliance.com/android_faq.html)(最後瀏覽日:01/07/2012)。
註二:BSD 授權條款最初推出時有四項條款,後廢除須交代於產品中使用了柏克萊加州大學 (University of California, Berkeley) 程式碼的廣告條款,成為三條款的 BSD 授權條款;而三條款的 BSD 授權條款若再刪去禁止使用軟體貢獻者名稱來對衍生產品背書的規定,便成為二條款的 BSD 授權條款。因三條款 BSD 授權條款與 Apache-2.0 在架構上較為接近,所以本文取三條款 BSD 授權條款來與 Apache-2.0 相以對照比較,本文中「BSD 授權條款」特指三條款 BSD 授權條款。
註三:本文作者以為 Apache-2.0 第 2 條著作權的授權,並不若其表面字義只包含「公開展示 (publicly display)」及「公開演出 (publicly perform)」,而是類似創用CC 授權條款 3.0 台灣版的中譯,使「公開演播」一詞廣義地含括但不限於我國著作權法所定義的「公開展示」、「公開演出」、「公開上映」、「公開播送」、「公開傳輸」及「公開口述」等權利;然而,需注意的是,ASF 雖對 Apache 授權條款的翻譯持開放態度,但亦言明各國的翻譯版本並不具法律拘束力,仍須以英文版本的 Apache 授權條款為準,請參 ASF 網站 “Apache License and Distribution FAQ” (
https://www.apache.org/foundation/licence-FAQ.html) 的 “May I translate the Apache license into my local language for my redistribution of Apache packages?” 的說明(最後瀏覽日:01/07/2012)。
註四:在本文的脈絡之下,Apache-2.0 的 “Contribution” 是指為了要被納入到該軟體中,而被合法遞交給該軟體著作權人的任何內容,這些內容可以是該軟體的原始版本,以及針對原始版本或衍生軟體的任何改作或新增,詳參 Apache-2.0 第 1 條定義條款 (Definitions),
https://www.apache.org/licenses/LICENSE-2.0.html(最後瀏覽日:01/07/2012)。
註五:
https://www.android.com/branding.html(最後瀏覽日:01/07/2012)。
註六:Apache-2.0 的 “Derivative Work” 是指,不論是原始碼或目的碼格式,基於該軟體而衍生的軟體,例如,編輯上的修改、註解、優化、或其他修改行為,而整體展現與該軟體同樣的創作內涵;然而,基於 Apache-2.0 的編撰目的,衍生軟體不應包含與該軟體或其衍生軟體運作獨立、或僅連結至該軟體或其衍生軟體介面的其他軟體,詳參 Apache-2.0 第 1 條定義條款 (Definitions),
https://www.apache.org/licenses/LICENSE-2.0.html(最後瀏覽日:01/07/2012)。