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

    列出软件的版本号或提交标识符。如果 网址或提交历史记录中表现出明显的版本,则可能是 。

    Version: 7.6
    
  • License

    分发组件的许可。仅限标准表单 被接受,例如MIT/X11、BSD、Apache 2.0。

    License: BSD
    
  • License File

    包含组件许可副本的文件。此名称必须为 代码库中的现有文件(相对于 README.fuchsia) 文件。

    License File: LICENSE
    

    如有必要,可重复使用该指令以包含多个文件。

  • Upstream Git

    指向此组件所在的上游 Git 代码库的链接 都属于分支。对于从 Cloud Shell 中分支的所有软件, 使用外部 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.