前陣子開源授權常識補充包提到較寬鬆的 MIT 與 Apache 授權是當今開源專案的主流,允許你自由複製、修改及散佈,衍生作品要不要開源隨喜,不管個人使用或商業營利都行,使用上沒啥壓力,有助於軟體快速傳播發光發熱。MIT 與 Apache 使用上的小小要求是散佈時必須附上版權聲明,在使用上仍需注意,分享最近對兩個相關議題的研究。

Apache 2.0 授權字型怎麼用?

開源字型一般可透過線上服務引用,在網頁只需用 <link href="https://fonts.googleapis.com/css2?family=Roboto" rel="stylesheet"> 引用官方提供的 css,其中會有 @font-face 指向放在官方 CDN 的字型體,開發者毋須操煩授權問題。

但如果因特殊需求要將字型檔放在自家網站上,便涉及複製及散佈(由網站傳送到客戶端的瀏覽器),必須遵守授權條款。

開源字型目前的主流是 SIL OpenFont 授權,但仍有一些是採用 Apache 2.0。以 Google 開源字型為例,SIL OpenFont 為大宗,但仍有部分是 Apache 2.0。

SIL開源字型授權, SIL OpenFont License (OFL)最大的優點是字型檔本身在 Metadata 內含版權聲明,散佈檔案的同時也已附上版權聲明,符合授權要求。如果是 Apache 2.0 就麻煩多了,依據 Apache 2.0 規定,即便散佈的是編譯過的結果,也必須附上 LICENSE 及 NOTICE 檔案。(註:MIT 只需要用註解加幾行聲明文字即達標,比 Apache 必須放完整檔案 簡便多了,這是它廣受歡迎的原因吧)

因此,若要將字型檔放在網站供使用者下載,就必須一併提供 LICENSE 及 NOTICE 檔,網頁瀏覽不像軟體有安裝程式可以一併附上檔案,我有查到相關討論,但沒有找到標準做法,在網頁頁尾 Footer 加上聲明有點太隆重,我個人覺得在 .css 用註解附上 LICENSE.TXT 連結是較可接受做法,但這樣有沒有 100% 滿足授權款條要求就不得而知了。

.js 沒加 MIT 版權聲明?

依據 MIT 授權聲明在散佈軟體全部或部分時都必須附上版權聲明:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

對於 MIT 授權的 JavaScript 程式庫,加註聲明不是難事。以 jQuery 為例,jquery-3.7.1.js 檔案開頭有 MIT 授權資訊:

/*!
 * jQuery JavaScript Library v3.7.1
 * https://jquery.com/
 *
 * Copyright OpenJS Foundation and other contributors
 * Released under the MIT license
 * https://jquery.org/license
 *
 * Date: 2023-08-28T13:37Z
 */
( function( global, factory ) {

即便是 Minify 壓縮版,也有精簡版的版權資訊。

/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */

不過,我意外發現Vue 3 有些 vue.global.js 版本就沒附 MIT 版權資訊,我查到有其他網友跟我一樣有此疑問,得到 Vue 原作者尤雨溪(Evan You)親自回覆。Evan 覺得 npm 安裝 Vue 程式庫時有包含 LICENSE 檔就夠了,js 註解有可能在 Bundle 打包過程被捨棄,意義不大;但網友提到若網站放了 vue.global.js 讓瀏覽器下載便成立散佈行為,缺少授權資訊可能導致違反授權條款,陷開發者於不義。Evan 從善如流,於 3.4.8 版補上授權註解。

至於在 Minify / Bundle 壓縮打包過程,如何防止版權聲明註解被移除,目前有一些約定俗成的規則:參考

使用 /*! ... */ 或在註解加入 @license、@preserve標註版權註解,目前主流壓縮打包工具已能識別及保留這些註解。

/*!
 * MIT License
 * ...
 */
 
 /* @license MIT License */


Comments

Be the first to post a comment

Post a comment