本文件說明 Fuchsia 專案中的開放原始碼授權和相關政策。
Fuchsia 專案程式碼
所有 Fuchsia 專案程式碼託管於
https://fuchsia.googlesource.com/.Fuchsia 專案檔案標頭會列出 Copyright <year_of_file_creation> The Fuchsia Authors
。
授權
Fuchsia 須遵守多項授權:
- Fuchsia 核心是根據下列 MIT 風格授權發布:/zircon/kernel/LICENSE。
- 所有 Fuchsia 使用者空間元件均以 BSD 風格授權發布:/LICENSE 或 Apache 2.0 授權:https://fuchsia.googlesource.com/infra/+/main/LICENSE。
- 所有 BSD 授權的程式碼都有額外的 IP 授權:/PATENTS。
根據這項政策,任何擁有不同版權持有人的程式碼,或以不同授權發布的程式碼,都視為外部程式碼,且必須遵守本文所述的外部程式碼政策。
外部程式碼
https://fuchsia.googlesource.com/ 上代管的所有外部程式碼,必須是根據已核准的授權清單授權發布的開放原始碼,除非特定例外狀況或專屬例外狀況章節另有列出。所有外部程式碼
必須在名稱前置字串為 third_party
或
位於 Fuchsia 現有其中一個目錄,名為 third_party
與存放區如果程式碼託管在其專屬的存放區,則在將其簽出做為 Fuchsia 平台來源樹狀結構的一部分時,必須對應至包含名為 third_party
的目錄路徑。我們針對某個應用程式
部分的程式碼取決於該程式碼的使用方式。請見下方清單
經核准的實際工作環境目標和開發目標授權。
Fuchsia 版本中使用的所有程式碼都必須由 Google。在大部分情況下,程式碼必須 https://fuchsia.googlesource.com/.
執行 jiri update
時,必須下載所有原始碼。沒有任何建構步驟可下載額外的原始碼。套件管理系統 (例如 Dart 的 Pub 套件或 Rust 的 Cargo 箱) 中的程式碼必須提供至 https://fuchsia.googlesource.com/,並遵循與專案中其他程式碼相同的授權要求。
授權和追蹤
請參閱「什麼是授權?」,以說明開放原始碼授權的定義和重要性。 所有託管專案的位置 https://fuchsia.googlesource.com/ 必須為 根據經核准的授權所發布,其中含有完整的授權條文, 程式碼僅以參考方式指出授權條款 (例如「BSD3」) 是不夠的,必須附上實際的文字。在大多數情況下,專案應為整個存放區,且授權條款文字應位於存放區的頂層,並以 LICENSE、COPYRIGHT 或類似名稱命名。在極少數情況下, Fuchsia 專案需要在單一專案中代管多個邏輯專案 例如 Fuchsia 的 Dart 酒吧供應商存放區 必須位於本身目錄中,且具有該專案的授權文字 存放區中的頂層檔案必須說明應用程式存放區所使用的授權組合 子目錄
為了方便追蹤,除了授權文字外,每項含有
外部程式碼必須包含一個 README 檔案,當中須包含
專案。README 檔案名稱必須為 README.fuchsia
,且至少包含下列資訊:
Name: common name for the project
URL: web site of upstream project
LICENSE: short description of license
還有 README.fuchsia
檔案 (非強制性)
說明目前使用的上游專案版本,以及
修改所有移植到 Fuchsia 的修改。以下項目的簡短說明:
授權應為
軟體套件資料交換 (SPDX) 授權 ID
符合授權條件,但可選擇更多文字
必須提供執照。Fuchsia 專案程式碼
Fuchsia 作者擁有著作權及根據
Fuchsia 專案的標準授權 - 不需要這個檔案。
代碼類別和許可授權
生產目標
本節適用於在使用者使用的正式版 Fuchsia 裝置上執行的所有程式碼。在本文件中,「正式版目標」是指使用者使用的正式版 Fuchsia 裝置。「正式版目標」 包括核心、驅動程式、系統服務、架構、程式等 無論應用程式的部署方式為何這裡允許使用程式碼 指定目標 (前提是該授權發布於下列其中一項授權) 。如有其他限制,例如 IP 授權或其他限制 不過,對於該部分, 程式碼
已核准的授權數
以下是正式版目標裝置的核准授權:
BSD 三級授權,特別是以下文字 https://opensource.org/license/BSD-3-Clause
BSD 2 子句授權,特別是 https://opensource.org/licenses/BSD-2-Clause
BSD AES 變化版本,具體來說是 https://fedoraproject.org/wiki/Licensing:BSD#AES_Variant 中的文字
MIT 授權條款,具體來說是 /zircon/kernel/LICENSE 中的文字
MITNFA 授權,具體來說是 https://spdx.org/licenses/MITNFA.html 中的文字
X11 授權,具體來說是 /third_party/github.com/intel/libva/va/x11/va_dri2.c 中的文字
Zlib 授權,特別是 https://fuchsia.googlesource.com/third_party/zlib/+/main/README#85
Libpng 授權,特別是 https://fuchsia.googlesource.com/third_party/libpng/+/main/LICENSE
Boost 1.0 授權,具體來說是 https://fuchsia.googlesource.com/third_party/asio/+/main/asio/LICENSE_1_0.txt 中的文字
OpenSSL 授權,特別是 https://fuchsia.googlesource.com/third_party/boringssl/+/upstream/master/LICENSE 中的文字
FreeType 專案授權,特別是 https://fuchsia.googlesource.com/third_party/freetype2/+/main/docs/FTL.TXT
Apache 2.0 授權,具體來說是 https://fuchsia.googlesource.com/third_party/flatbuffers/+/main/LICENSE.txt 中的文字
Independent JPEG Group License (IJG),具體來說是 https://fuchsia.googlesource.com/third_party/iccjpeg/+/main/LICENSE 中的文字
ICU 授權,特別是 https://fuchsia.googlesource.com/third_party/icu/+/main/LICENSE
Curl 授權,特別是 https://fuchsia.googlesource.com/third_party/curl/+/main/COPYING 中的文字
伊利諾大學 / NCSA 開放原始碼授權 (NCSA),特別是 傳送簡訊至 https://fuchsia.googlesource.com/third_party/clang/+/main/LICENSE.TXT
ISC 授權,特別是 https://fuchsia.googlesource.com/third_party/boringssl/+/upstream/master/LICENSE#143
IBM-Pibs 授權,具體來說是 https://github.com/u-boot/u-boot/blob/master/Licenses/ibm-pibs.txt 中的文字
R8a779x_usb3 授權,特別是以下文字: https://github.com/u-boot/u-boot/blob/master/Licenses/r8a779x_usb3.txt
創用 CC 姓名標示 3.0 未本地化授權,詳情請見 https://creativecommons.org/licenses/by/3.0/legalcode
創用 CC 姓名標示 4.0 國際授權,詳情請見 https://creativecommons.org/licenses/by/4.0/legalcode
代碼未符合下列其中一項授權,且未明確授予豁免資格 無法在實際工作環境目標中使用。
特殊例外狀況
下列存放區已獲得正式版目標裝置的特定豁免權:
- https://fuchsia.googlesource.com/third_party/llvm/
- https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/LICENCE.iwlwifi_firmware
這些豁免條款僅適用於這些特定存放區,不適用於其他任何內容,即使內容看起來很相似也不例外。
專屬例外狀況
在特殊情況下,如果合作夥伴不會以開放原始碼授權提供特定技術,Fuchsia 可能只能以更嚴格的授權條款,向大眾提供編譯的二進位檔。
凡是屬於這項例外的專屬程式庫 (例如多個相容的驅動程式),都會分開處理,並清楚標示為專屬素材,並附上相關的授權條款。
在 Fuchsia 生態系統中,專屬授權例外狀況並不受青睞,只有在技術大幅改善 Fuchsia 功能或互通性、沒有適當的開放原始碼替代方案,且程式碼或二進位檔可與 Fuchsia 的開放原始碼存放區分開時,才會出現例外狀況。任何第三方都無權獲得 Fuchsia 授權政策。
開發目標
本節適用於開發人員用於建構 Fuchsia 的所有程式碼,包括工具、偵錯工具、公用程式和範例。所有正式版目標允許的授權皆可用於開發目標。在本文件中,「開發目標」的定義是指非正式的 Fuchsia 裝置,由 Fuchsia 開發人員而非最終使用者使用。
已核准的授權數
此外,開發目標也允許使用下列授權:
GNU 通用公共授權 v2.0 (GPL 2.0),特別是 https://fuchsia.googlesource.com/third_party/gdb/+/main/COPYING
GNU Library General Public License 2.0 (LGPL 2.0),特別是 https://spdx.org/licenses/LGPL-2.0.html#licenseText
GNU Lesser General Public License 2.1 (LGPL 2.1),具體而言是 https://spdx.org/licenses/LGPL-2.1.html#licenseText 中的文字
Mozilla 公開授權第 2.0 版 (MPL 2.0),具體而言是 https://spdx.org/licenses/MPL-2.0.html#licenseText 中的文字
Open Font License 1.1 (OFL 1.1),特別是 https://github.com/u-boot/u-boot/blob/master/Licenses/OFL.txt
託管開發構件
如要託管構件 (二進位或 tarball) 用於開發的 Google 儲存空間 為達成此目的,您必須執行下列操作:
- 確認所有遞移依附元件是否皆已取得核准的授權。
- 請確認所有依附元件的確切來源皆託管在 https://fuchsia.googlesource.com/。
- 如果部分元件是由其他地方代管,請與 開放原始碼審查委員會 (OSRB) 檢查代管安排是否符合 Fuchsia 專案。
- 產生包含二進位元和所有轉換依附元件授權的授權文字檔案。使用簽署標的 (也就是 tar 檔案) 提供此檔案。
修改外部程式碼
修改外部程式碼的程序與修改 Fuchsia 的程序相同
請務必隨時更新適當的 README.fuchsia
檔案。
針對上游的變更提供概略說明變更外部程式碼時,請勿修改任何現有的版權聲明或授權檔案。
支援聯絡人
新增外部程式碼
如要瞭解如何新增外部程式碼,請參閱「開放原始碼審查委員會 (OSRB) 程序」。
問題
如果您對 Fuchsia 的外部政策或這些政策與 Fuchsia 專案的關聯有任何疑問,請傳送電子郵件至 external-code@fuchsia.dev。