Package.yml: Fix extra headings.

This commit is contained in:
Joshua Strobl 2017-02-25 21:55:49 +02:00
parent 35ce842e8b
commit 8ec43cd6cf
No known key found for this signature in database
GPG Key ID: 3F6FD9A6B13E584D
1 changed files with 21 additions and 21 deletions

View File

@ -5,7 +5,7 @@ title: Package.yml
All packages consist of a single build file, which provides all of the required metadata for the package manager, plus the build steps involved to produce a package. This follows the YAML specification. All packages consist of a single build file, which provides all of the required metadata for the package manager, plus the build steps involved to produce a package. This follows the YAML specification.
### Format ## Format
All `package.yml` files **must** be valid YAML. All `package.yml` files **must** be valid YAML.
@ -38,13 +38,13 @@ install : |
install -D -m 00644 $pkgfiles/nanorc $installdir/etc/nanorc install -D -m 00644 $pkgfiles/nanorc $installdir/etc/nanorc
``` ```
### Keys ## Keys
Not all fields in `package.yml` are mandatory, but a small selection are. They are listed below. Note that `string(s)` indicates that it is possible to use a `list` of strings, or one single `string` Not all fields in `package.yml` are mandatory, but a small selection are. They are listed below. Note that `string(s)` indicates that it is possible to use a `list` of strings, or one single `string`
`dict` refers to a `key : value` split in YAML, and `dict(s)` refers to a list of `dict`s `dict` refers to a `key : value` split in YAML, and `dict(s)` refers to a list of `dict`s
#### Mandatory Keys ### Mandatory Keys
Key Name | Type | Description Key Name | Type | Description
---- | ---- | ---- ---- | ---- | ----
@ -57,7 +57,7 @@ Key Name | Type | Description
**summary** | `string` | Brief package summary, or display name **summary** | `string` | Brief package summary, or display name
**description** | `string` | More extensive description of the software, usually taken from the vendor website **description** | `string` | More extensive description of the software, usually taken from the vendor website
#### Optional, supported keys ### Optional, supported keys
Key Name | Type | Description Key Name | Type | Description
---- | ---- | ---- ---- | ---- | ----
@ -70,7 +70,7 @@ Key Name | Type | Description
**replaces** | `dict(s)` | Replace one package with another, used when renaming or deprecating packages for clean upgrade paths **replaces** | `dict(s)` | Replace one package with another, used when renaming or deprecating packages for clean upgrade paths
**patterns** | `dict(s)` | Allows fine grained control over file placement within the package or sub-packages. Useful for packages that are development only (i.e. `/usr/bin` files) **patterns** | `dict(s)` | Allows fine grained control over file placement within the package or sub-packages. Useful for packages that are development only (i.e. `/usr/bin` files)
#### Build step keys, optional ### Build step keys, optional
Note that each step in itself is optional, however all can be used. The value of each of these keys is merged into a build script that is executed for each stage of the build. Note that each step in itself is optional, however all can be used. The value of each of these keys is merged into a build script that is executed for each stage of the build.
@ -81,12 +81,12 @@ Step Name | Description
**install** | This is where you should install the files into the final packaging directory, i.e. `make install` **install** | This is where you should install the files into the final packaging directory, i.e. `make install`
**check** | There is where tests / checking should occur, i.e. `make check` **check** | There is where tests / checking should occur, i.e. `make check`
### Macros ## Macros
To further assist in packaging, a number of macros are available. These are simply shorthand ways to perform a normal build operation. They also ensure that the resulting package is consistent. These macros are only available in our build steps, as To further assist in packaging, a number of macros are available. These are simply shorthand ways to perform a normal build operation. They also ensure that the resulting package is consistent. These macros are only available in our build steps, as
they are substituted within the script before execution. they are substituted within the script before execution.
#### Usage ### Usage
Macros are prefixed with `%`, and are substituted before your script is executed. Macros ending with `%` are used to provide directory names or build values, to the script. Macros are prefixed with `%`, and are substituted before your script is executed. Macros ending with `%` are used to provide directory names or build values, to the script.
@ -98,7 +98,7 @@ title: Run the configure macro with the given arguments
%configure --disable-static %configure --disable-static
``` ```
#### Actionable Macros ### Actionable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
@ -111,7 +111,7 @@ Macro | Description
**%apply_patches** | Applies all patches listed in the `series` file in `./files` folder. **%apply_patches** | Applies all patches listed in the `series` file in `./files` folder.
**%reconfigure** | Updates build scripts such as `./configure` and proceeds to run `%configure`. **%reconfigure** | Updates build scripts such as `./configure` and proceeds to run `%configure`.
#### Haskell Actionable Macros ### Haskell Actionable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
@ -120,7 +120,7 @@ Macro | Description
**%cabal_install** | Runs cabal copy to `$installdir` **%cabal_install** | Runs cabal copy to `$installdir`
**%cabal_register** | Runs cabal register to generate a pkg-config for package and version, then installs the conf file. **%cabal_register** | Runs cabal register to generate a pkg-config for package and version, then installs the conf file.
#### Meson Actionable Macros ### Meson Actionable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
@ -128,7 +128,7 @@ Macro | Description
**%meson_build** | Runs ninja and passes our %JOBS% variable. **%meson_build** | Runs ninja and passes our %JOBS% variable.
**%meson_install** | Runs meson install and passed the appropriate DESTDIR and %JOBS% variable **%meson_install** | Runs meson install and passed the appropriate DESTDIR and %JOBS% variable
#### Perl Actionable Macros ### Perl Actionable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
@ -136,7 +136,7 @@ Macro | Description
**%perl_build** | Runs Perl build scripts or attempts `%make`. **%perl_build** | Runs Perl build scripts or attempts `%make`.
**%perl_install** | Runs Perl install scripts or attempts `%make_install`. **%perl_install** | Runs Perl install scripts or attempts `%make_install`.
#### Python Actionable Macros ### Python Actionable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
@ -145,14 +145,14 @@ Macro | Description
**%python3_setup** | Runs the build portion of a setup.py using python3. **%python3_setup** | Runs the build portion of a setup.py using python3.
**%python3_install** | Runs the install portion of a setup.py, to the appropriate root, using python3. **%python3_install** | Runs the install portion of a setup.py, to the appropriate root, using python3.
#### Qt Actionable Macros ### Qt Actionable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
**%qmake** | Runs qmake for Qt5 with the appropriate make flags. **%qmake** | Runs qmake for Qt5 with the appropriate make flags.
**%qmake4** | Runs qmake for Qt4, as well as adding the necessary MOC, RCC, and UIC flags since those Qt4 executables end in -qt4. **%qmake4** | Runs qmake for Qt4, as well as adding the necessary MOC, RCC, and UIC flags since those Qt4 executables end in -qt4.
#### Variable Macros ### Variable Macros
Macro | Description Macro | Description
---- | ---- ---- | ----
@ -168,7 +168,7 @@ Macro | Description
**%libdir%** | The distributions default library directory, i.e. `/usr/lib64` (Alters for `emul32`) **%libdir%** | The distributions default library directory, i.e. `/usr/lib64` (Alters for `emul32`)
**%workdir%** | Hard-coded work directory (source tree) **%workdir%** | Hard-coded work directory (source tree)
### Variables ## Variables
A set of variables are exported in our build stages. These are used to provide context and structure to the scripts. A set of variables are exported in our build stages. These are used to provide context and structure to the scripts.
@ -185,19 +185,19 @@ Variable | Description
**$pkgfiles** | Refers to the `./files` directory relative to the `package.yml` file **$pkgfiles** | Refers to the `./files` directory relative to the `package.yml` file
**$sources** | Refers to the directory where your source files are stored e.g. `$sources/nano.tar.gz` **$sources** | Refers to the directory where your source files are stored e.g. `$sources/nano.tar.gz`
### Types ## Types
The `package.yml` file uses native YAML types, however for the sake of clarity an explanation of how they are used within the context of `ypkg` is provided below. The `package.yml` file uses native YAML types, however for the sake of clarity an explanation of how they are used within the context of `ypkg` is provided below.
#### string ### string
This is simply text, which does not need to be quoted. This is simply text, which does not need to be quoted.
#### integer ### integer
Whole, positive number, used in the `release` field. Whole, positive number, used in the `release` field.
#### list ### list
A YAML list (or array) can be expressed in multiple ways. A short array-notation would look like this: A YAML list (or array) can be expressed in multiple ways. A short array-notation would look like this:
@ -211,7 +211,7 @@ They can also be expressed like this:
- Third Value - Third Value
``` ```
#### dict ### dict
Known as an associative array, this is key to value mapping. These are separated by a colon (`:`), the token on the left is taken to be a key, and the token on the right is the value. Known as an associative array, this is key to value mapping. These are separated by a colon (`:`), the token on the left is taken to be a key, and the token on the right is the value.
@ -219,7 +219,7 @@ Known as an associative array, this is key to value mapping. These are separated
Note that each `ypkg key` in the YAML file is actually a dict. Note that each `ypkg key` in the YAML file is actually a dict.
#### dict(s) ### dict(s)
This is a combination of the `list` type, the `dict` type and some assumptions. We primarily make use of this to express advanced information within the package. These permit you to provide no key, and a value only. This is a combination of the `list` type, the `dict` type and some assumptions. We primarily make use of this to express advanced information within the package. These permit you to provide no key, and a value only.
In this instance, the key is assumed to be the package `name`: In this instance, the key is assumed to be the package `name`: