summaryrefslogtreecommitdiffstats
path: root/specs/spf-2.0/overview.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'specs/spf-2.0/overview.mdwn')
-rw-r--r--specs/spf-2.0/overview.mdwn246
1 files changed, 246 insertions, 0 deletions
diff --git a/specs/spf-2.0/overview.mdwn b/specs/spf-2.0/overview.mdwn
new file mode 100644
index 0000000..b4e6f09
--- /dev/null
+++ b/specs/spf-2.0/overview.mdwn
@@ -0,0 +1,246 @@
+Directory Tree [tree]
+=====================
+
+The source package directory hierarchy can be summarized with the following
+tree:
+
+ <source-package-directory>/
+ | No naming requirements are made for this directory.
+ +- <binpkg>.pkg/
+ | | Required for each binary package after execution of "config".
+ | +- control
+ | | Required.
+ | | Metadata about the binary package.
+ | +- install
+ | | Required.
+ | | A list of patterns to match files to be installed in the binary
+ | | package.
+ | +- platconf
+ | | Optional.
+ | | A list of run-time configuration files.
+ | +- postinst
+ | | Optional.
+ | | A maintainer script to be executed after a binary package is
+ | | unpacked.
+ | +- postrm
+ | | Optional.
+ | | A maintainer script to be executed after a binary package is
+ | | removed.
+ | +- preinst
+ | | Optional.
+ | | A maintainer script to be executed before a binary package is
+ | | unpacked.
+ | \- prerm
+ | Optional.
+ | A maintainer script to be executed before a binary package is
+ | removed.
+ +- build
+ | Required after execution of "config".
+ | A makefile with target rules to build the binary package(s).
+ +- changelog
+ | Required.
+ | A log of changes made to the source package.
+ +- config
+ | Optional.
+ | A shell script to configure the package build.
+ +- control
+ | Required.
+ | Metadata about the source package.
+ +- copyright
+ | Required.
+ | Information about copyrights and licenses in the source package.
+ +- format
+ | Required.
+ | A magic file to identify the source format version. Should simply
+ | contain the string "2.0".
+ +- patches/
+ | Optional.
+ | Patches to be applied to package sources before building.
+ +- <pkgname>-<pkgver>.tar.<ext>
+ | Optional.
+ | Upstream source archive (for non-native packages).
+ +- platconf
+ | Optional.
+ | A list of build-time configuration files.
+ \- src/
+ Optional.
+ Package sources (for native packages).
+
+
+Descriptions of Files [files]
+=============================
+
+All of the following files are located under what is called a "source package
+directory" (`<source-package-directory>` in the tree in $[sectlink][tree]). No
+naming requirements are made for this directory.
+
+`<binpkg>.pkg/` [files-binpkg.pkg]
+----------------------------------
+
+After execution of the `config` file, for each binary package there must exist a
+directory named `<binpkg>.pkg`, where `<binpkg>` is the name of the binary
+package.
+
+Binary package names may only consist of lowercase Latin letters, digits, plus
+and minus signs, and periods. Names must be at least two characters long and
+must start with either a letter or a digit. (A regular expression for this is
+`[a-z0-9][a-z0-9+.-]+`.)
+
+This directory contains metadata and scripts for a binary package.
+
+`<binpkg>.pkg/control` [files-binpkg.pkg-control]
+-------------------------------------------------
+
+This file is required.
+
+This file contains control fields describing the binary package. See
+$[sectlink][control] for the syntax of this file and $[sectlink][fields-bin] for
+the list of control fields in this file.
+
+`<binpkg>.pkg/install` [files-binpkg.pkg-install]
+-------------------------------------------------
+
+This file is required.
+
+This file contains a list of patterns to match files to be installed in the
+binary package.
+
+Each line in this file is a pattern that is expanded to match files as explained
+in [POSIX.1-2008, Shell & Utilities Volume, Section 2.6.6][posix-xcu-2.6.6].
+
+A file or directory in the destination directory may not be matched by more than
+one binary package's `install` file. The behavior of package building tools in
+such a case is undefined.
+
+`<binpkg>.pkg/platconf` [files-binpkg.pkg-platconf]
+---------------------------------------------------
+
+This file is optional. Its presence indicates that a binary package is
+platform-specific.
+
+This file contains a list of run-time configuration files to be installed in the
+binary package. Files listed in this file shall not be listed in the binary
+package's `install` file.
+
+See $[sectlink][platconf] for the syntax of this file.
+
+`<binpkg>.pkg/postinst` [files-binpkg.pkg-postinst]
+---------------------------------------------------
+
+This file is optional.
+
+This file is a maintainer script to be executed after a binary package is
+unpacked. See $[sectlink][scripts] for more information about maintainer
+scripts.
+
+`<binpkg>.pkg/postrm` [files-binpkg.pkg-postrm]
+-----------------------------------------------
+
+This file is optional.
+
+This file is a maintainer script to be executed after a binary package is
+removed. See $[sectlink][scripts] for more information about maintainer
+scripts.
+
+`<binpkg>.pkg/preinst` [files-binpkg.pkg-preinst]
+-------------------------------------------------
+
+This file is optional.
+
+This file is a maintainer script to be executed before a binary package is
+unpacked. See $[sectlink][scripts] for more information about maintainer
+scripts.
+
+`<binpkg>.pkg/prerm` [files-binpkg.pkg-prerm]
+---------------------------------------------
+
+This file is optional.
+
+This file is a maintainer script to be executed before a binary package is
+removed. See $[sectlink][scripts] for more information about maintainer
+scripts.
+
+`build` [files-build]
+---------------------
+
+After execution of the `config` file, this file must exist.
+
+This file is a makefile that controls the building of binary packages. See
+$[sectlink][build] for requirements for this file.
+
+`changelog` [files-changelog]
+-----------------------------
+
+This file is required.
+
+This file is a log of changes made to the source package. See
+$[sectlink][changelog] for the format of this file.
+
+`config` [files-config]
+-----------------------
+
+This file is optional.
+
+This file is a script in shell command language that configures the package
+build. See $[sectlink][config] for requirements for this file.
+
+`control` [files-control]
+-------------------------
+
+This file is required.
+
+This file contains control fields describing the source package. See
+$[sectlink][control] for the syntax of this file and $[sectlink][fields-src] for
+the list of control fields in this file.
+
+`copyright` [files-copyright]
+-----------------------------
+
+This file is required.
+
+This file contains information about the copyrights in and licenses for the
+source package. This specification currently makes no requirements for the
+format of this file.
+
+`format` [files-format]
+-----------------------
+
+This file is required.
+
+This "magic" file identifies the format version of the source package. For
+packages in this version of the source package format, this file should simply
+contain the string `2.0`.
+
+`patches/` [files-patches]
+--------------------------
+
+This directory is optional.
+
+This directory shall contain patches to be applied to package sources before
+configuring and building any binary packages.
+
+See $[sectlink][patches] for the syntax of patch files.
+
+`<pkgname>-<pkgver>.tar.<ext>` [files-src-src-ver-tar-ext]
+----------------------------------------------------------
+
+TODO
+
+`platconf` [files-platconf]
+---------------------------
+
+This file is optional. Its presence indicates that each binary package is
+platform-specific.
+
+This file contains a list of build-time configuration files to be installed into
+the package building work area.
+
+See $[sectlink][platconf] for the syntax of this file.
+
+`src/` [files-src]
+------------------
+
+TODO
+
+
+[posix-xcu-2.6.6]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_06