JavaScript 授權條款網頁標籤
如果您是網站管理員,在網站上部署了精簡化的 JavaScript,這裡提供一種方法,可以在不更改精簡化檔案本身的情況下,聲明它們的授權條款和原始碼位置。當 JavaScript 採用 GNU 授權條款之一,但不包含 Loic Duros 在讓您的 JavaScript 自由的 3.2 節中提出的額外許可時,這特別有幫助。
JavaScript 授權條款網頁標籤方法適用於精簡化的 JavaScript 程式碼檔案。此方法符合 GNU 軟體授權條款中的相關條件,並使 LibreJS 能夠確認網站上資訊的正確性。
使用網頁標籤的前提是,對應的 JavaScript 原始碼檔案帶有授權聲明,正確地以自由授權條款發布它們。編譯後的程式碼並非自由軟體,除非其原始碼是自由軟體,並且標示授權條款對於正確發布自由原始碼至關重要。如果您尚未完成,您應該先執行此操作。
您也可以在非精簡化的 JavaScript 檔案上使用網頁標籤,以程式可以識別的方式指示其授權條款;但這些是原始碼檔案,因此請務必提供人類可讀的授權聲明。省略這些聲明會對這些檔案的法律狀態造成不確定性。
網頁標籤方法不適用於直接包含在 HTML 頁面中的內嵌 JavaScript — 其授權資訊應直接在這些頁面中聲明。
如需更詳細地解釋我們為何設計此格式,請參閱理由說明。
撰寫標籤頁面
為您的網站新增一個 JavaScript 授權條款網頁標籤頁面。您可以使用對您最方便的路徑或檔案名稱;其他人將透過連結找到它。該頁面必須包含一個以屬性 id="jslicense-labels1"
標記的表格。這個名稱讓自動化工具可以輕鬆找到該表格,並告知它們期望的格式。此表格的每一列都將包含三個儲存格,提供關於網站上使用的獨立 JavaScript 檔案、其授權條款,以及訪客如何取得其原始碼的資訊。
每一列的第一個儲存格命名網站使用的 JavaScript 檔案。該儲存格必須包含一個錨點標籤,連結到該檔案,就像整個網站的 script
標籤一樣。
第二個儲存格提供關於此 JavaScript 檔案授權條款的資訊。該儲存格必須包含一個錨點標籤,其連結指向完整的授權條款文字,並且其文字提供授權條款的完整名稱,以及如果授權條款有多個版本,則包含版本號碼以及檔案是否在該授權條款的後續版本下授權。良好的授權條款識別碼及其相關連結為
- GNU-GPL-2.0-或更高版本
- GNU-GPL-3.0-或更高版本
- GNU-LGPL-2.1-或更高版本
- GNU-LGPL-3.0-或更高版本
- GNU-AGPL-3.0-或更高版本
- Apache-2.0-only
- Modified-BSD
- CC0-1.0-only
- Expat
- MPL-2.0-或更高版本
第三個儲存格提供指向 JavaScript 原始碼的連結。原始碼檔案可以是單個、未精簡化的 JavaScript 檔案、.tar.gz
封存檔或 .zip
封存檔。如果原始碼封存檔包含多個 JavaScript 檔案,則該封存檔必須包含一個名為 00-INDEX
的檔案,列出個別原始碼檔案應串連以產生與網站上託管的檔案等效的單個檔案的順序。如果從網站提供的 JavaScript(並從第一個儲存格連結)已經是原始碼形式,則在此儲存格中再次連結到相同的 URL。
以下是一個範例表格,用於說明。此網站僅使用一個 JavaScript 檔案:jQuery 1.7 的精簡化版本,根據 Expat 授權條款發布。該表格列出了檔案及其對應的授權資訊以及指向完整原始碼的連結
<table id="jslicense-labels1">
<tr>
<td><a href="/js/jquery-1.7.min.js">jquery-1.7.min.js</a></td>
<td><a href="https://directory.fsf.org/wiki/License:Expat">Expat</a></td>
<td><a href="/js/jquery-1.7.tar.gz">jquery-1.7.tar.gz</a></td>
</tr>
</table>
此頁面可能包含其他文字和標記,包括您網站的正常版面配置和導覽工具,但該表格必須顯著地顯示在頁面上。
連結到標籤頁面
在每個使用 JavaScript 的頁面上,包含一個指向上述標籤頁面的連結。使用屬性 rel="jslicense"
標記此連結,以便自動化工具可以找到它。例如,您的最終連結可能如下所示
<a href="/about/javascript" rel="jslicense">JavaScript license information</a>
這個連結可以很小,但對於訪問您網站的人來說應該清晰可見。
註記
如果您執行這些操作,您將遵守 GNU 軟體授權條款(例如 GNU 通用公共授權條款)中的相關條件。它們也應該足以遵守許多其他自由軟體授權條款,但我們無法確定它們是否會遵守所有授權條款。與往常一樣,請確保您理解並遵循您發布的任何自由軟體的授權條款條件。