From 7e296dc6b90cddd45d50a89c70aff142128b1d49 Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Tue, 16 Jun 2009 13:35:07 -0700 Subject: [PATCH] Bring Architecture description in line with dpkg-source dpkg-source now may include "all" in the list of architectures in the *.dsc Architecture field. Rewrite the Architecture section to be clearer about the acceptable values in different contexts and what they mean. --- policy.sgml | 58 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/policy.sgml b/policy.sgml index 144cbfb..52e7e24 100644 --- a/policy.sgml +++ b/policy.sgml @@ -2710,7 +2710,7 @@ Package: libc6 values: A unique single word identifying a Debian machine - architecture, see . + architecture as described in . all, which indicates an architecture-independent package. any, which indicates a package available @@ -2721,31 +2721,53 @@ Package: libc6

In the main debian/control file in the source - package, or in the source package control file - .dsc, one may specify a list of architectures - separated by spaces, or the special values any or - all. + package, this field may contain the special value + any, the special value all, or a list of + architectures separated by spaces. If any or + all appear, they must be the entire contents of the + field. Most packages will use either any or + all. Specifying a specific list of architectures is + for the minority of cases where a program is not portable or + is not useful on some architectures, and where possible the + program should be made portable instead. +

+ +

+ In the source package control file .dsc, this + field may contain either the special value any or a + list of architectures separated by spaces. If a list is given, + it may include (or consist solely of) the special value + all. In other words, in .dsc files + unlike the debian/control, all may occur + in combination with specific architectures. The + Architecture field in the source package control file + .dsc is generally constructed from the + Architecture fields in the + debian/control in the source package.

Specifying any indicates that the source package isn't dependent on any particular architecture and should compile fine on any one. The produced binary package(s) - will be specific to whatever the current build architecture - is. - This is the most often used setting, and is recommended - for new packages that aren't Architecture: all. - + will either be specific to whatever the current build + architecture is or will be architecture-independent. +

+ +

+ Specifying only all indicates that the source package + will only build architecture-independent packages. If this is + the case, all must be used rather than any; + any implies that the source package will build at + least one architecture-dependent package.

Specifying a list of architectures indicates that the source will build an architecture-dependent package, and will only - work correctly on the listed architectures. - This is a setting used for a minority of cases where the - program is not portable. Generally, it should not be used - for new packages. - + work correctly on the listed architectures. If the source + package also builds at least one architecture-independent + package, all will also be included in the list.

@@ -2753,7 +2775,11 @@ Package: libc6 field lists the architecture(s) of the package(s) currently being uploaded. This will be a list; if the source for the package is also being uploaded, the special - entry source is also present. + entry source is also present. all will be + present if any architecture-independent packages are being + uploaded. any may never occur in the + Architecture field in the .changes + file.

-- 2.39.5