summaryrefslogtreecommitdiffstats
path: root/specs/spf-2.0/metadata.mdwn
blob: f5b08bd9e6248d5e1e0aae4642df29514500ca49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Control Files [control]
=======================

TODO


Change Log [changelog]
======================

Changes made to the source package should be explained in the file `changelog`.

Each new package revision must be documented with an entry of the following
format:

    package (version) distributions
    [zero or more blank lines]
      * change details
    [zero or more blank lines]
      * more change details
        more detailed change details
    [zero or more blank lines]
     -- maintainer  date

`package` is the source package name.  Source package names may only consist of
lowercase Latin letters, digits, plus and minus signs, and periods.  Names must
be at least two characters long and must start with either a letter or a digit.
(A regular expression for this is `[a-z0-9][a-z0-9+.-]+`.)

`version` is the source package version.  See $[sectlink][src-ver] for the
syntax of source package version identifiers.

`distributions` is a list of distributions into which the package should be
installed when uploaded to the package archive.  The list consists of one or
more distribution names, separated by spaces.

`maintainer` is the name and e-mail address of the package maintainer.  This
field must follow the syntax of the `mailbox` symbol of RFC 5322 section 3.4.

`date` is the date of packaging.  This field must follow the syntax of the
`date-time` symbol of RFC 5322 section 3.3.


Platform Configuration File Lists [platconf]
============================================

Platform-specific configuration files used by the source package at build time
shall be listed in the `platconf` file.  Platform-specific configuration files
used by the binary package(s) at run time shall be listed in the
`<binpkg>.pkg/platconf` file.

Source packages with a `platconf` file, a `<binpkg>.pkg/platconf` file, or both
shall list in their build-time dependencies a package (real or virtual) that
provides the listed platform-specific configuration files.

Each configuration file must be described with an entry of the following format:

    source destination

`source` is the path to the file, relative to the platform configuration
directory -- either `/usr/share/config/PLATFORM/PACKAGE-VERSION` or
`/usr/share/config/PLATFORM/PACKAGE`, where `PLATFORM` is the architecture
string denoting an application platform, `PACKAGE` is the name of the
configurable source package, and `VERSION` is the upstream version of the
configurable source package.

`destination` is the path (file or directory) to which the file should be
copied.  For a file used at build time, it is a path relative to the package
building work area.  For a file used at run time, it is an absolute path in the
user's filesystem hierarchy.


Source Package Version Identifier [src-ver]
===========================================

In general, the syntax of source package version identifiers is:

    <pkgver>[+sip<siprev>][-<pkgrev>][+<dist>-<distrev>]

`<pkgver>` is the version of the original upstream package or the native
package.  It may only consist of lowercase Latin letters, digits, periods, and
tildes.  It must be at least one character long.  (A regular expression for this
is `[0-9a-z.~]+`.)

If the upstream source archive needs to be repacked with certain changes for
compliance with the Software Inclusion Policy, the string `+sip<siprev>` must be
appended to `<pkgver>`.  `<siprev>` is a number that should be incremented on
each repack while `<pkgver>` remains constant.  It should be reset to `1` for
the first repack of a new upstream source archive.  It must be a string of one
or more digits, the first of which must be greater than or equal to `1`.  (A
regular expression for this is `[1-9][0-9]*`.)

`<pkgrev>` is the version of the distribution packaging.  It is optional and
should be omitted for native packages.  It should be incremented on each
revision of packaging while `<pkgver>` and `<siprev>` remain constant.  It
should be reset to `1` for the first revision of packaging for a new upstream
package version or source archive repack.  It must be a string of one or more
digits, the first of which must be greater than or equal to `1`.  (A regular
expression for this is `[1-9][0-9]*`.)

If the package is to be installed into a distribution other than `trunk`, the
string `+<dist>-<distrev>` must be appended to the end of the version
identifier.  `<dist>` is the distribution into which the package is to be
installed, may only consist of lowercase Latin letters and digits, and must be
at least one character long.  (A regular expression for this is `[a-z0-9]+`.)
`<distrev>` is a number that should be incremented on each upload to `<dist>`
while `<pkgver>`, `<siprev>`, and `<pkgrev>` remain constant.  It should be
reset to `1` for the first upload to `<dist>` of a new upstream package version,
source archive repack, or distribution packaging revision.  It must be a string
of one or more digits, the first of which must be greater than or equal to `1`.
(A regular expression for this is `[1-9][0-9]*`.)