summaryrefslogtreecommitdiffstats
path: root/specs/spf-2.0
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-08-13 19:00:06 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-08-13 19:01:12 (EDT)
commit21dde1b5d765449dc1dac43603706d320782659f (patch)
tree98fc27da7f70be0137efc4e2a79598360c46b1d2 /specs/spf-2.0
parent7eea1f2b86f532dd3e9e87ae192ed53d42a05ce7 (diff)
Begin reorganizing SPF 2.0 into a book.
Diffstat (limited to 'specs/spf-2.0')
-rw-r--r--specs/spf-2.0/about.mdwn65
-rw-r--r--specs/spf-2.0/chapters1
-rw-r--r--specs/spf-2.0/control2
-rw-r--r--specs/spf-2.0/index.mdwn47
4 files changed, 115 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.
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]