blob: 1604e43e8cc90f5e7c7e6f903b599837bf437499 (
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
|
Background [background]
=======================
A source package consists of software source code, a build system, and package
metadata. From it is built one or more binary packages, which can be installed
into an operating system.
Changes Since Version 1.0 [changes]
===================================
Following is a summary of differences between versions 1.0 and 2.0 of this
source package format:
* The platform configuration file list is now split between two files.
`platconf` lists build-time configuration files, and `<binpkg>.pkg/platconf`
lists run-time configuration files.
- As a result, the platform configuration file lists now have a simpler
syntax that does not include the type of configuration file.
- It is now easy to determine whether individual binary packages are
platform-specific.
* Package building can now be configured by a `config` script.
- There is now no need for any configuration logic in the `build` makefile.
See $[sectlink][rationale] for rationale behind this design.
- The list of binary packages that can be built from a source package no
longer needs to be statically defined.
* The source package hierarchy has been clarified to to indicate whether each
file is required.
- Additionally, certain files are now only required by a certain step in the
build process, allowing them to be dynamically generated.
* Packages without any sources (such as pure metapackages) are now explicitly
allowed.
* Maintainer scripts are now explained.
* The set of required `build` makefile targets has been changed.
- The amount of redundant information in source packages is reduced by not
requiring the `build` file to list all binary packages.
- The user can choose to build all binary packages, only
architecture-independent binary packages, or only architecture-independent
binary packages. See $[sectlink][rationale] for rationale behind this design.
* The source package version is no longer included in `control`.
- It is already given in the most recent entry in `changelog`.
* The version identifier syntax now encodes information about source archive
repacks and non-trunk distribution uploads.
- The syntax has been made strict to make parsing simple and deterministic.
* The `Source` and `Package` control fields have been removed, as the
information they provided is provided elsewhere.
- Source package names are now given only in the `changelog` file.
- Binary package names are now given only in the names of `<binpkg>.pkg/`
directories.
* Platform names are no longer specified in the `Architecture` field.
- They are now specified in a new `Platform` field.
* Wildcard binary architecture strings are now supported.
Rationale [rationale]
=====================
TODO
Scope [scope]
=============
This specification applies both to source packages and to the package building
tools that interact with them.
Definitions [defs]
==================
TODO
source package
binary package
package sources
source package directory
package building work area, work area
package building tool
|