README.fuchsia 檔案語法

README.fuchsia 檔案可用來為第三方來源程式庫加上註解 具備一些實用的中繼資料,例如程式碼來源、版本、授權和安全性 重要的標籤

這些檔案的格式包含一或多個指令行 後面會有非結構化的說明和附註

指令的開頭是指令關鍵字 後面接著冒號,以及延伸至 即可值的前後可以有空白字元 是否出現在指令前或指令之間

以下將介紹幾種指令,但可能會顯示其他指令 在 README.fuchsia 檔案和使用這些檔案的軟體中,不應出現這些檔案 會將不明指令的外觀視為錯誤。同樣地 這類軟體應不區分大小寫。

說明行是選填欄位,而且必須遵循 Description 指令 它們必須在任何非結構化資料前單獨出現在一行 說明文字

語法

file                  := directive-line* description?
directive-line        := directive | blank-line
directive             := keyword ":" SPACE* value SPACE* EOL
value                 := NONBLANK ANYCHAR*
description           := description-directive description-line*
description-directive := "Description:" SPACE* EOL
description-line      := ANYCHAR* EOL
keyword               := [A-Za-z0-9][A-Za-z0-9 ]*
blank-line            := SPACE* EOL
SPACE                 := any whitespace character
EOL                   := end of line character
NONBLANK              := any non-whitespace, non-EOL character
ANYCHAR               := any character but EOL

常用指令關鍵字

常見的指令關鍵字包括:

  • Name

    元件的描述性名稱。如果名稱 無法區分內容

    Name: OpenSSH
    
  • URL

    元件所在的網址。如果元件是基於 請明確列出這些版本

    URL: https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-7.6.tar.gz
    

    否則,請列出供應商的網站。

    URL: https://www.openssh.com/
    

    必要時,您可以重複這項指令來加入多個網址。

  • Version

    列出軟體的版本號碼或修訂版本 ID。如果 版本列在 URL 或修訂記錄中, 省略。

    Version: 7.6
    
  • License

    元件發布依據的授權。僅限標準表單 的部分,例如MIT/X11、BSD、Apache 2.0。

    License: BSD
    
  • License File

    內含元件授權副本的檔案。必須輸入名稱 存放區中的現有檔案 (相對於 README.fuchsia) 檔案。

    License File: LICENSE
    

    必要時,您可以重複這個指令來加入多個檔案。

  • Upstream Git

    這個元件的上游 Git 存放區連結 如果軟體分支版本來源軟體,則應加入這項規定 外部 Git 存放區

    Upstream Git: https://github.com/openssh/openssh-portable
    
  • Security Critical

    yesno 標籤,用於指出套件是否具備安全性。 這可用於評估套件中的安全性錯誤對 Fuchsia 的影響。

    如果是用於正式環境,套件就具備安全性, 包括:

    • 接受來自網際網路上的不可靠的輸入資料
    • 剖析或解讀複雜的輸入格式
    • 將資料傳送至網際網路伺服器
    • 收集新資料
    • 影響或設定安全性相關政策 (包括使用者體驗)
    • 以不安全的語言撰寫 (例如:C/C++、Rust 不安全 區塊)

    這是必要指令。

    Security Critical: yes
    
  • Description

    標示指令結尾和非結構化開頭 說明的內容必須單獨顯示為一行。

    Description:
    
    A short description of what the package is and is used for.
    
  • Local Modifications

    列舉從 運送版本。

    Local Modifications:
    
    Added README.fuchsia.
    Ported build rules from CMake to GN.