From 6de97c9cf2cd7291e84aef592dc7bb9ea001056b Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 16 Jan 2012 04:39:07 -0500 Subject: Update source package format specification. The multiple/split binary package problem is solved by proposals 2 and 3 and by making the 'build' file a makefile. I can't make proposal 1 (with a separate 'build' file for each binary package) work in an intuitive way. --- diff --git a/source-package-format-1.0.txt b/source-package-format-1.0.txt index 25c546e..0903b05 100644 --- a/source-package-format-1.0.txt +++ b/source-package-format-1.0.txt @@ -23,9 +23,7 @@ to change. Comments and revisions are welcome. TODO ---- - - Decide on build system format (shell scripts or make files). - - Determine how split packages (e.g. *-dev, *-dbg, libgcc, and g++) will be - built. + - Design a way to support package configurations. BACKGROUND @@ -54,41 +52,14 @@ DIRECTORY STRUCTURE PROPOSAL 1 ---------- -This structure easily supports building multiple independent binary packages -from one source package but does not support building split binary packages. - -_-/ - +- .pkg/ - | +- build - | | A script to build the binary package. - | +- control - | | Metadata about the binary package. - | +- install - | | A script to install the binary package. - | +- postinst - | +- postrm - | +- preinst - | \- prerm - +- control - | Metadata about the source package. - +- format - | A magic file to identify the source format version. Should simply contain - | the string "1.0". - +- patches/ - | Patches to be applied to package sources before building. - +- _. - | Upstream source archive (for non-native packages). - \- src/ - Package sources (for native packages). - -'build' in the binary package directory might be changed to a dpkg-style make -file with targets for building and installing. +This directory structure proposal has been declared defunct and removed from +this document. PROPOSAL 2 ---------- -This structure supports building split binary packages but does not easily -support building multiple independent binary packages from one source package. +In this structure, all source and binary packaging files are kept in the same +directory. Note that this directory structure is very functionally similar to that of Debian's source package formats. @@ -101,7 +72,7 @@ Debian's source package formats. +- .preinst +- .prerm +- build - | A script to build the binary package(s). + | A makefile with target rules to build the binary package(s). +- control | Metadata about the source and binary packages. +- format @@ -125,13 +96,14 @@ and metadata related to binary packages are organized into directories. | +- control | | Metadata about the binary package. | +- install - | | A list of patterns to match files to be installed in the binary package. + | | A list of patterns to match files to be installed in the binary + | | package. | +- postinst | +- postrm | +- preinst | \- prerm +- build - | A script to build the binary package(s). + | A makefile with target rules to build the binary package(s). +- control | Metadata about the source package. +- format -- cgit v0.9.1