Fuchsia 開放原始碼授權政策

本文件說明 Fuchsia 專案中的開放原始碼授權和相關政策。

Fuchsia 專案程式碼

所有 Fuchsia 專案程式碼託管於 https://fuchsia.googlesource.com/.Fuchsia 專案檔案標頭會列出 Copyright <year_of_file_creation> The Fuchsia Authors

授權

Fuchsia 須遵守多項授權:

根據這項政策,任何擁有不同版權持有人的程式碼,或以不同授權發布的程式碼,都視為外部程式碼,且必須遵守本文所述的外部程式碼政策。

外部程式碼

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 授權或其他限制 不過,對於該部分, 程式碼

已核准的授權數

以下是正式版目標裝置的核准授權:

代碼未符合下列其中一項授權,且未明確授予豁免資格 無法在實際工作環境目標中使用。

受限制互惠類別的授權將無法在 Fuchsia 中使用。

特殊例外狀況

下列存放區已獲得正式版目標裝置的特定豁免權:

這些豁免條款僅適用於這些特定存放區,不適用於其他任何內容,即使內容看起來很相似也不例外。

專屬例外狀況

在特殊情況下,如果合作夥伴不會以開放原始碼授權提供特定技術,Fuchsia 可能只能以更嚴格的授權條款,向大眾提供編譯的二進位檔。

凡是屬於這項例外的專屬程式庫 (例如多個相容的驅動程式),都會分開處理,並清楚標示為專屬素材,並附上相關的授權條款。

在 Fuchsia 生態系統中,專屬授權例外狀況並不受青睞,只有在技術大幅改善 Fuchsia 功能或互通性、沒有適當的開放原始碼替代方案,且程式碼或二進位檔可與 Fuchsia 的開放原始碼存放區分開時,才會出現例外狀況。任何第三方都無權獲得 Fuchsia 授權政策。

開發目標

本節適用於開發人員用於建構 Fuchsia 的所有程式碼,包括工具、偵錯工具、公用程式和範例。所有正式版目標允許的授權皆可用於開發目標。在本文件中,「開發目標」的定義是指非正式的 Fuchsia 裝置,由 Fuchsia 開發人員而非最終使用者使用。

已核准的授權數

此外,開發目標也允許使用下列授權:

託管開發構件

如要託管構件 (二進位或 tarball) 用於開發的 Google 儲存空間 為達成此目的,您必須執行下列操作:

  • 確認所有遞移依附元件是否皆已取得核准的授權。
  • 請確認所有依附元件的確切來源皆託管在 https://fuchsia.googlesource.com/
  • 產生包含二進位元和所有轉換依附元件授權的授權文字檔案。使用簽署標的 (也就是 tar 檔案) 提供此檔案。

修改外部程式碼

修改外部程式碼的程序與修改 Fuchsia 的程序相同 請務必隨時更新適當的 README.fuchsia 檔案。 針對上游的變更提供概略說明變更外部程式碼時,請勿修改任何現有的版權聲明或授權檔案。

支援聯絡人

新增外部程式碼

如要瞭解如何新增外部程式碼,請參閱「開放原始碼審查委員會 (OSRB) 程序」。

問題

如果您對 Fuchsia 的外部政策或這些政策與 Fuchsia 專案的關聯有任何疑問,請傳送電子郵件至 external-code@fuchsia.dev