From 8ec4f17ab0320ec7a0aeb6aacc800fb9b73bb3cc Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Tue, 1 Jun 2010 15:47:48 -0700 Subject: [PATCH] Further fixes to the architecture wildcard patch Based on feedback from Kurt Roeckx. Be explicit about what happens with *.dsc and *.changes files, reorder the discussion somewhat, and remove some duplicate text. --- policy.sgml | 90 +++++++++++++++++++++++++---------------------------- 1 file changed, 43 insertions(+), 47 deletions(-) diff --git a/policy.sgml b/policy.sgml index 4620b2e..338ac7c 100644 --- a/policy.sgml +++ b/policy.sgml @@ -2758,6 +2758,23 @@ Package: libc6 portable instead.

+

+ Specifying a list of architecture wildcards indicates that + the source will build an architecture-dependent package on + the union of the lists of architectures from the expansion + of each specified architecture wildcard, and will only + work correctly on the architectures in the union of the + lists. + Use of architecture wildcards other than all is for + a minority of cases where the program is not portable and + should not be used for most packages. Wildcards are not + expanded into a list of known architectures before comparing + to the build architecutre. Instead, the build architecture + is matched against any wildcards and this package is built + if any wildcard matches. + +

+

In the source package control file .dsc, this field may contain either the special value any or a @@ -2789,43 +2806,24 @@ Package: libc6

- Specifying a list of architectures indicates that the source - will build an architecture-dependent package, and will only - 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. -

- -

- Specifying a list of architecture wildcards indicates that - the source will build an architecture-dependent package on - the union of the lists of architectures from the expansion - of each specified architecture wildcard, and will only - work correctly on the architectures in the union of the - lists. - Use of architecture wildcards other than all is for - a minority of cases where the program is not portable and - should not be used for most packages. Wildcards are not - expanded into a list of known architectures before comparing - to the build architecutre. Instead, the build architecture - is matched against any wildcards and this package is built - if any wildcard matches. - - If the source package also builds at least one - architecture-independent package, all will also be - included in the list. + Specifying a list of architectures or architecture wildcards + indicates that the source will build an architecture-dependent + package, and will only work correctly on the listed or + matching architectures. If the source package also builds at + least one architecture-independent package, all will + also be included in the list.

In a .changes file, the Architecture - 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 + 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. all will be present if any architecture-independent packages are being - uploaded. any may never occur in the - Architecture field in the .changes - file. + uploaded. Architecture wildcards such as any may + never occur in the Architecture field in + the .changes file.

@@ -4279,23 +4277,12 @@ Build-Depends: foo [!i386] | bar [!amd64] bar on all other architectures.

-

- Note that the binary package relationship fields such as - Depends appear in one of the binary package - sections of the control file, whereas the build-time - relationships such as Build-Depends appear in the - source package section of the control file (which is the - first section). -

- All fields that specify build-time relationships - (Build-Depends, Build-Depends-Indep, - Build-Conflicts and Build-Conflicts-Indep) may also - be restricted to a certain set of architectures using architecture - wildcards. The syntax for declaring such restrictions is the same as - declaring restrictions using a certain set of architectures without - architecture wildcards. - For example: + All fields that specify build-time relationships may also be + restricted to a certain set of architectures using architecture + wildcards. The syntax for declaring such restrictions is the + same as declaring restrictions using a certain set of + architectures without architecture wildcards. For example: Build-Depends: foo [linux-any], bar [any-i386], baz [!linux-any] @@ -4304,6 +4291,15 @@ Build-Depends: foo [linux-any], bar [any-i386], baz [!linux-any] kernel and an i386 cpu, and baz on any architecture using a kernel other than Linux.

+ +

+ Note that the binary package relationship fields such as + Depends appear in one of the binary package + sections of the control file, whereas the build-time + relationships such as Build-Depends appear in the + source package section of the control file (which is the + first section). +

-- 2.39.5