Bug#357613: debian-policy: Conflicting Architecture definitions
Package: debian-policy
Version: 3.6.2.2
Severity: normal
Architectures are defined once as "i386" and once as "i386-linux".
However, "i386-linux" does not work:
dpkg-gencontrol: error: current build architecture i386 does not appear
in package's list (alpha-linux amd64-linux arm-linux hppa-linux
i386-linux ia64-linux m68k-linux mipsel-linux powerpc-linux s390-linux
sparc-linux)
I wanted to build pyinotify, which depends on a Linux kernel feature not
available on all architectures.
A wishlist bug against dpkg-dev
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=112325
suggests that the "correct" architecture definition would be linux-i386,
but that contradicts debian-policy.
This looks a little messy to me, so I cannot suggest a solution
immediately.
I have appended the contradictory parts of debian-policy:
5.6.8 Architecture
==================
http://www.us.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture
Depending on context and the control file used, the Architecture field
can include the following sets of values:
* A unique single word identifying a Debian machine architecture,
see Architecture specification strings, Section 11.1.
[...]
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.
[...]
Specifying a list of architectures indicates that the source will build
an architecture-dependent package, and will only work correctly on the
listed architectures.[29]
[29] 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.
11.1 Architecture specification strings
=======================================
http://www.us.debian.org/doc/debian-policy/ch-customized-programs.html#s-arch-spec
If a program needs to specify an architecture specification string in
some place, the following format should be used: arch-os[60].
[60] The following architectures and operating systems are currently
recognized by dpkg-architecture. The architecture, arch, is one
of the following: alpha, arm, hppa, i386, ia64, m68k, mips,
mipsel, powerpc, s390, sh, sheb, sparc and sparc64. The operating
system, os, is one of: linux, gnu, freebsd and openbsd. Use of
gnu in this string is reserved for the GNU/Hurd operating system.
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (990, 'testing'), (900, 'stable'), (700, 'unstable'), (100, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15.4-suspend2-2.2
Locale: LANG=C, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
-- no debconf information
Reply to: