From 21dde1b5d765449dc1dac43603706d320782659f Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 13 Aug 2012 19:00:06 -0400 Subject: Begin reorganizing SPF 2.0 into a book. --- (limited to 'specs/spf-2.0') 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 `.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 `.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. diff --git a/specs/spf-2.0/chapters b/specs/spf-2.0/chapters new file mode 100644 index 0000000..477249a --- /dev/null +++ b/specs/spf-2.0/chapters @@ -0,0 +1 @@ +about About this Manual diff --git a/specs/spf-2.0/control b/specs/spf-2.0/control new file mode 100644 index 0000000..2981806 --- /dev/null +++ b/specs/spf-2.0/control @@ -0,0 +1,2 @@ +Title: Source Package Format 2.0 + diff --git a/specs/spf-2.0/index.mdwn b/specs/spf-2.0/index.mdwn new file mode 100644 index 0000000..93e4529 --- /dev/null +++ b/specs/spf-2.0/index.mdwn @@ -0,0 +1,47 @@ + Status: DRAFT + Date: 2012-08-04 + Revises: Source Package Format 1.0 + + +Abstract +======== + +This document describes version 2.0 of the format for software packages. + + +Status of This Document +======================= + +This specification is in `DRAFT` status. It is a work-in-progress and is +subject to change. Comments and revisions are welcome. + + +Legal Notice +============ + +Copyright © 2012 Patrick "P. J." McDermott + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Contents +======== + +$[toc] -- cgit v0.9.1