diff options
Diffstat (limited to 'specs/spf-2.0/about.mdwn')
-rw-r--r-- | specs/spf-2.0/about.mdwn | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/specs/spf-2.0/about.mdwn b/specs/spf-2.0/about.mdwn new file mode 100644 index 0000000..75743b6 --- /dev/null +++ b/specs/spf-2.0/about.mdwn @@ -0,0 +1,65 @@ +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 section 5 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 section 5 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. |