summaryrefslogtreecommitdiffstats
path: root/specs/spf-2.0/fields.mdwn
blob: c28db8df6d22e4eee926a13d6f3166890a0c9d79 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
Source Package Fields [fields-src]
==================================

The fields in the source package metadata are:

  * `Maintainer` (required)  

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

  * `Build-Depends` (optional)  

    A list of packages that must be installed before the package can be built.

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Homepage` (optional)  

    The URL of the Web site for the package.  Accessible at this site should be
    origin source code and documentation and/or information.  Though the
    information in this field is machine-usable, the URL must not be surrounded
    by angle brackets or any other characters.


Binary Package Fields [fields-bin]
==================================

The fields in the binary package metadata are:

  * `Architecture` (required)  

    A list of architectures for which this package may be built.  The value may
    be any one of the following:

    - The string `all` to specify that all of the provided files are
      architecture-independent;
    - The string `any` to specify that at least some of the provided files are
      architecture-dependent; or
    - A space-separated list of one or more real or wildcard binary architecture
      strings to specify that at least some of the provided files are only
      usable on systems of the named binary architecture(s).

    A "wildcard" binary architecture string is one in which one or two
    components (called "wildcard components") is the string `any`.  It shall be
    considered to match any real binary architecture string for which the
    non-wildcard components are equal.

  * `Platform` (required)

    A list of platforms for which this package may be built.  The value may be
    any one of the following:

    - The string `all` to specify that all of the provided files are
      platform-independent;
    - The string `any` to specify that at least some of the provided files are
      platform-dependent; or
    - A space-separated list of one or more platform strings to specify that at
      least some of the provided files are only usable on systems of the named
      platform(s).

  * `Section` (optional, may be required in a future version of this Source
    Package Format)

    The name of the section in the package archive into which this package is to
    be installed.  Packages with a `Section` field must provide only files
    related to the specified section.  The value may be any one of the
    following:

    - The string `boot` for packages containing only boot loaders, kernel
      images, and device firmware;
    - The string `dbg` for architecture-dependent packages containing only
      debugging symbols;
    - The string `dev` for platform-independent packages containing only
      utilities used to build other packages, such as distribution package build
      utilities, compilers, and utilities that configure compiler and linker
      flags;
    - The string `doc` for architecture-independent platform-independent
      packages containing only manual pages and other upstream documentation
      files;
    - The string `lib` for architecture-dependent packages containing only
      shared libraries and object files;
    - The string `libdev` for architecture-dependent packages containing only
      header files, unversioned library symbolic links used when linking, and
      configuration files and architecture-independent utilities that configure
      compiler and linker flags;
    - The string `locale` for architecture-independent platform-independent
      packages containing only locale files;
    - The string `share` for architecture-independent packages containing only
      data; and
    - The string `util` for packages containing only executable files, such as
      utilities and binaries run by other programs.

    No packages may declare any relationships (via `Depends`, `Recommends`,
    etc.) with packages in sections `dbg`, `doc`, or `locale`.  Only packages
    in section `boot` may declare relationships on other packages in the same
    section.  Only binary packages in section `dev` and source packages (via
    `Build-Depends`) may declare relationships with packages in sections `dev`
    and `libdev`.  These restrictions allow feed lists for sections `boot`,
    `dbg`, `dev`, `doc`, `libdev`, and `locale` to be excluded from systems that
    don't need the packages they contain.  That is, only sections `lib`,
    `share`, and `util` are available on all systems, and additionally sections
    `dev` and `libdev` are available when building packages.

    All packages in section `lib` must allow coinstallation of packages of the
    same name and different architectures.  Specifically, all non-directory
    files must have architecture-qualified paths.

  * `Essential` (optional)  

    A flag to indicate whether the package is essential for the functioning of a
    system on which it is installed.  If this field is set to `yes`, opkg will
    refuse to remove the package except when upgrading it.  If this field is set
    to any other value or is omitted, the package may be removed by a user.

  * `Depends` (optional)  

    A list of packages that must be installed and configured before the package
    may itself be configured.

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Recommends` (optional)  

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Suggests` (optional)  

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Pre-Depends` (optional)  

    See $[sectlink][rel-syntax] for the syntax of this field.

    A list of packages that must be installed before the package may itself be
    installed.

    Variable substitutions are performed on the value of this field.

  * `Conflicts` (optional)  

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Provides` (optional)  

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Replaces` (optional)  

    See $[sectlink][rel-syntax] for the syntax of this field.

    Variable substitutions are performed on the value of this field.

  * `Description` (required)  

    A description of the binary package.  This is a multiline field.  The first
    line is a short synopsis, and all following lines are an extended
    description.

    Variable substitutions are performed on the value of this field.


Package Relationship Fields Syntax [rel-syntax]
===============================================

TODO