1.1 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.
1.2 Changes Since Version 1.0
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.
- 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 ยง 1.3 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.
- Binary package
install
files are no longer required, as not all packages provide data files.
1.3 Rationale
TODO
1.4 Scope
This specification applies both to source packages and to the package building tools that interact with them.
1.5 Definitions
TODO
source package
binary package
package sources
source package directory
package building work area, work area
package building tool