[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: