From 219f64a7f9b2840747f4077c304f141c8afede77 Mon Sep 17 00:00:00 2001
From: P. J. McDermott <pjm@nac.net>
Date: Wed, 18 Jan 2012 22:10:48 -0500
Subject: Specify the control file fields.

---
diff --git a/source-package-format-1.0.txt b/source-package-format-1.0.txt
index f688270..aa12f98 100644
--- a/source-package-format-1.0.txt
+++ b/source-package-format-1.0.txt
@@ -22,8 +22,8 @@ to change.  Comments and revisions are welcome.
 
 TODO
 ----
-
-  - Design a way to support package configurations.
+  * Finish describing binary package control fields.
+  * Describe the control file format.
 
 
 BACKGROUND
@@ -117,19 +117,67 @@ and metadata related to binary packages are organized into directories.
       Package sources (for native packages).
 
 
+CONTROL FILE FORMAT
+===================
+
+See documentation on Debian packaging.
+
+
 BINARY PACKAGE METADATA
 =======================
 
-Refer to documentation for dpkg and opkg.
+The fields in the binary package metadata are:
+  * Package (required)
+    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.
+  * Architecture (required)
+    The names of the architectures for which this package is built.  The list of
+    names may consist of values selected from the following:
+      - A four-tuple binary architecture name to specify that the package can be
+        built for the binary architecture and any application platform.
+      - An application platform architecture name to specify that the package
+        can be built for the application platform and its associated binary
+        architecture.
+    Alternatively, the list may consist solely of one of the following values:
+      - The string "all" to specify that the package can be built on any binary
+        architecture and any application platform and can then be installed on
+        binary architectures and/or application platforms other than those on
+        which it is built.
+      - The string "any" to specify that the package cen be built for any binary
+        architecture and any application platform.
+  * Essential (optional)
+    A flag to indicate whether the package is essential for the functioning of a
+    system on which it is installed.  If this field is set to "yes", opkg will
+    refuse to remove the package except when upgrading it.  If this field is set
+    to any other value or is omitted, the package may be removed by a user.
+  * Depends (optional)
+  * Recommends (optional)
+  * Suggests (optional)
+  * Pre-Depends (optional)
+  * Conflicts (optional)
+  * Provides (optional)
+  * Replaces (optional)
+  * Description (required)
 
 
 SOURCE PACKAGE METADATA
 =======================
 
-The format of the source package metadata is to be determined.  It should
-resemble either Debian package control file syntax or OpenBricks package
-metadata file (shell script) syntax.
-
-Metadata will include information necessary to maintain the source package and
-build the binary package(s).  Fields will include the upstream source, build
-dependencies, and maintainer contact information.
+The fields in the source package metadata are:
+  * Source (required)
+    The name of the source package.  Source 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.
+  * Maintainer (required)
+    The name and e-mail address of the package maintainer.  This field must
+    follow the syntax of the "mailbox" symbol in RFC 822 section 6.1.
+  * Build-Depends (optional)
+    A list of packages that must be installed before the package can be built.
+  * Homepage
+    The URL of the Web site for the package.  Accessible at this site should be
+    origin source code and documentation and/or information.  Though the
+    information in this field is machine-usable, the URL must not be surrounded
+    by angle brackets or any other characters.
--
cgit v0.9.1