| # README.fuchsia File Syntax |
| |
| `README.fuchsia` files are used to annotate third-party source libraries |
| with some useful metadata, such as code origin, version and license. |
| |
| The format of these files consists of one or more directive lines, |
| followed by unstructured description and notes. |
| |
| Directives consist of a directive keyword at the beginning of the line, |
| immediately followed by a colon and a value that extends to the end of |
| the line. The value may have surrounding whitespace, and blank lines may |
| appear before or between directives. |
| |
| Several directives are described below, but other directives may appear |
| in `README.fuchsia` files and software that consumes them should not |
| treat the appearance of an unknown directive as an error. Similarly, |
| such software should match directive keywords case-insensitively. |
| |
| Description lines are optional and follow a `Description` directive |
| that must appear on a line by itself prior to any unstructured |
| description text. |
| |
| ## Syntax |
| |
| ``` |
| 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 |
| ``` |
| |
| ## Common directive keywords |
| |
| Common directive keywords include: |
| |
| * `Name` |
| |
| Descriptive name of the component. This should be included if the name |
| is not obvious from context. |
| |
| ``` |
| Name: OpenSSH |
| ``` |
| |
| * `URL` |
| |
| The URL where the component lives. If the component is based on a |
| specific release, then list that explicitly. |
| |
| ``` |
| URL: https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/openssh-7.6.tar.gz |
| ``` |
| |
| Otherwise, list the vendor's website. |
| |
| ``` |
| URL: https://www.openssh.com/ |
| ``` |
| |
| This directive may be repeated to include multiple URLs if necessary. |
| |
| * `Version` |
| |
| Lists a version number or commit identifier for the software. If the |
| version is apparent from the *URL* or commit history, then this may be |
| omitted. |
| |
| ``` |
| Version: 7.6 |
| ``` |
| |
| * `License` |
| |
| The license under which the component is distributed. Only standard forms |
| are accepted, e.g. MIT/X11, BSD, Apache 2.0. |
| |
| ``` |
| License: BSD |
| ``` |
| |
| * `License File` |
| |
| File that contains a copy of the component's license. This must name |
| an existing file in the repository, relative to the `README.fuchsia` |
| file. |
| |
| ``` |
| License File: LICENCE |
| ``` |
| |
| This directive may be repeated to include multiple files if necessary. |
| |
| * `Upstream Git` |
| |
| Links to the upstream Git repository from which this component has |
| been branched. This should be included for any software branched from |
| an external Git repository. |
| |
| ``` |
| Upstream Git: https://github.com/openssh/openssh-portable |
| ``` |
| |
| * `Description` |
| |
| Marks the end of directives and the beginning of unstructured |
| description, it must appear on a line by itself. |
| |
| ``` |
| Description: |
| |
| A short description of what the package is and is used for. |
| ``` |
| |
| * `Local Modifications` |
| |
| Enumerate any changes that have been made locally to the package from the |
| shipping version listed above. |
| |
| ``` |
| Local Modifications: |
| |
| Added README.fuchsia. |
| Ported build rules from CMake to GN. |
| ``` |