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

Bug#619400: marked as done (dpkg-cross does not do sensible things with multi-arch: same packages)

Your message dated Sat, 02 Apr 2011 13:32:19 +0000
with message-id <E1Q60w7-00059P-0p@franck.debian.org>
and subject line Bug#619400: fixed in dpkg-cross 2.6.3
has caused the Debian Bug report #619400,
regarding dpkg-cross does not do sensible things with multi-arch: same packages
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org

619400: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=619400
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: dpkg-cross
Version: 2.6.3ubuntu1
Severity: important
Tags: patch

Hash: SHA1

This is a copy of Ubuntu bug #739151

Running dpkg-cross against the Multi-Arch: same version of libc6
currently in natty does not produce sensible output. Instead it
generates a .deb that contains only a large number of iconv .so modules
under /usr/x86_64-linux-gnu/include, e.g.:


I have no idea why it's installing to include. The source location was

It might seem that it's not a big deal for dpkg-cross to not handle
multiarch packages since multiarch packages can just be installed
directly; but since we can't use foreign-architecture build dependencies
on the buildds yet, cross-toolchain packages in the archive (such as
armel-cross-toolchain-base) need to build using gcc-4.5-source,
eglibc-source, etc. and run dpkg-cross afterwards to output their binary
packages. So the armel cross-compiler in the archive isn't buildable
until this is resolved.

I've checked with dpkg-cross 2.6.2 from Debian unstable; the same
problem is present there.

- -- Package-specific info:

- -- /etc/dpkg-cross/cross-compile --

# /etc/dpkg-cross/cross-compile: configuration for dpkg-cross

# default architecture for dpkg-cross (to avoid always typing the -a option
# if you do cross installations only for one architecture)
# Note: default_arch is managed by debconf - it can be overridden
# if ~/.dpkg-cross/cross-compile exists or by specifying an
# architecture on the command line.
# Use '[sudo] dpkg-reconfigure dpkg-cross' to change this value.
#default_arch = 

# All subsequent variables may be removed (and/or become
# unsupported) at any time.

# general section: paths of cross compiling environment
# you can set the following variables here:
#  crossprefix: prefix for cross compiling binaries; default: $(DEB_HOST_GNU_SYSTEM)-
#  crossbase  : base prefix for the following; default: /usr
#  crossdir   : base directory for architecture; default:
#               $(CROSSBASE)/$(DEB_HOST_GNU_TYPE)
#  crossbin   : dir for binaries; default: $(CROSSDIR)/bin
#  crosslib   : dir for libraries; default: $(CROSSDIR)/lib
#  crossinc   : dir for headers; default: $(CROSSDIR)/include
#  maintainer : maintainer name to pass to original dpkg-buildpackage
#               in -m option. If not set at all, don't pass a -m, thus
#               dpkg-buildpackage will use the name from the changelog
#               file. If set to the special string CURRENTUSER,
#               dpkg-buildpackage will use the name from the
#               changelog, too, but signing the .changes will be done
#               as the current user (default key).
#  removedeps : comma-separated list of package names that should be removed
#               from depends/conflicts/etc fields
#  keepdeps   : comma-separated list of package names that should be kept
#               in depends/conflicts/etc fields as is, without adding
#               -arch-cross.
# In preparation for merging dpkg-cross into dpkg, the previous
# defaults have been removed.

- -- System Information:
Debian Release: squeeze/sid
  APT prefers natty
  APT policy: (999, 'natty')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38-7-generic (SMP w/4 CPU cores)
Locale: LANG=pl_PL.utf8, LC_CTYPE=pl_PL.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages dpkg-cross depends on:
ii  debconf [debconf-2.0]   1.5.36ubuntu4    Debian configuration management sy
ii  dpkg-dev                1.16.0~ubuntu6   Debian package development tools
ii  libconfig-auto-perl     0.20-2           Magical config file parser
ii  libdebian-dpkgcross-per 2.6.3ubuntu1     functions to aid cross-compiling D
ii  perl                    5.10.1-17ubuntu3 Larry Wall's Practical Extraction 

Versions of packages dpkg-cross recommends:
ii  fakeroot                 1.14.4-1ubuntu1 Gives a fake root environment

Versions of packages dpkg-cross suggests:
ii  binutils-multia Binary utilities that support mult

- -- debconf information:
  dpkg-cross/default-arch: None

Version: GnuPG v1.4.11 (GNU/Linux)

Index: dpkg-cross
RCS file: /cvsroot/dpkg-cross/dpkg-cross/dpkg-cross,v
retrieving revision 1.83
diff -u -r1.83 dpkg-cross
--- dpkg-cross	23 Feb 2011 14:46:33 -0000	1.83
+++ dpkg-cross	23 Mar 2011 14:32:35 -0000
@@ -507,7 +507,7 @@
-	if (defined ($control{'multi-arch'})) {
+	if (defined ($control{'multi-arch'}) and !$anyway) {
 		my $output = basename ($package);
 		warn sprintf(_g("%s: Skipping the '%s' Multi-Arch package.\n"), $progname, $output);
 		if (not -f $output) {
@@ -775,6 +775,16 @@
 		} elsif ((m:^/emul/ia32-linux/usr/lib/([^/]+\.[ao])$:)) {
 			# regular .a or .o file under /emul/ia32-linux/ for #463588
 			link_file("$src$_", "$dst$crosslib32/$1") or goto fail;
+		} elsif (m:^(/usr)?/lib/$crosstype/([^/]+\.[ao])$:) {
+			# regular .a or .o file under /lib or /usr/lib/TRIPLET/
+			link_file("$src$_", "$dst$crosslib/$crosstype/$2") or goto fail;
+		} elsif (m:^(/usr)?/lib/$crosstype/([^/]+\.so[^/]*)$:) {
+			# regular .so* file under /lib/TRIPLET or /usr/lib/TRIPLET 
+			if (is_ldscript("$src$_")) {
+				fix_ldscript("$src$_", "$dst$crosslib/$crosstype/$2") or goto fail;
+			} else {
+				link_file("$src$_", "$dst$crosslib/$crosstype/$2") or goto fail;
+			}
 		} elsif (m:^(/usr(/X11R6)?)?/lib/([^/]+\.so[^/]*)$:) {
 			# regular .so* file under /lib, /usr/lib or /usr/X11R6/lib
 			if (is_ldscript("$src$_")) {
@@ -914,7 +924,18 @@
 		# useful or packaged in the -cross package, basically anything
 		# in a directory beneath /usr/lib/. See #499292
 		# except pkgconfig symlinks, see #506956
-		next if (($lv =~ m:$crosslib/.*/:) and ($lv !~ m:$crosslib/pkgconfig/:));
+		# also handle multiarch packages with /usr/lib/TRIPLET/ directory
+		next if (
+		    (
+			($lv =~ m:$crosslib/$crosstype/.*/:) and 
+			($lv !~ m:$crosslib/$crosstype/pkgconfig/:)
+		    ) or
+		    (
+			($lv =~ m:$crosslib/.*/:) and 
+			($lv !~ m:$crosslib/pkgconfig/:) and
+			($lv !~ m:$crosslib/$crosstype/:) 
+		    )
+		);
 		$lv =~ m:$crosslib/(.*)$:;
 		# Translators, retain the -> to indicate the direction of the link.
 		printf (_g("Creating symlink %s -> %s\n"), $_, $1) if ($verbose >= 2);

--- End Message ---
--- Begin Message ---
Source: dpkg-cross
Source-Version: 2.6.3

We believe that the bug you reported is fixed in the latest version of
dpkg-cross, which is due to be installed in the Debian FTP archive:

  to main/d/dpkg-cross/dpkg-cross_2.6.3.dsc
  to main/d/dpkg-cross/dpkg-cross_2.6.3.tar.gz
  to main/d/dpkg-cross/dpkg-cross_2.6.3_all.deb
  to main/d/dpkg-cross/libdebian-dpkgcross-perl_2.6.3_all.deb

A summary of the changes between this version and the previous one is

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 619400@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
Neil Williams <codehelp@debian.org> (supplier of updated dpkg-cross package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)

Hash: SHA1

Format: 1.8
Date: Fri, 01 Apr 2011 19:54:09 +0100
Source: dpkg-cross
Binary: dpkg-cross libdebian-dpkgcross-perl
Architecture: source all
Version: 2.6.3
Distribution: unstable
Urgency: low
Maintainer: Debian Embedded Group <debian-embedded@lists.debian.org>
Changed-By: Neil Williams <codehelp@debian.org>
 dpkg-cross - tools for cross compiling Debian packages
 libdebian-dpkgcross-perl - functions to aid cross-compiling Debian packages
Closes: 618488 618490 619400
 dpkg-cross (2.6.3) unstable; urgency=low
   [ Neil Williams ]
   * Drop old apt-cross multiarch behaviour - outdated.
   [ Wookey ]
   * Add (interim) --convert-multiarch behaviour to cross even
     multiarch packages (Closes: #619400)
   * Drop X11R6 lib/include dirs as they are no longer present
   [ Neil Williams ]
   * Drop unsupported variables from config file
   * Correct the value for libIDL_cv_long_long_format in /etc/dpkg-
     cross/cross-config.cache. (Closes: #618488)
   * Add tclconfig.sh to the list of interesting files for
     cross-building. (Closes: #618490)
   * Fix some unitialised variables in rarely used -Q option dpkg-cross
   * Fix handling of arch-dependent include headers under multi-arch only
 71f3be23798c7adda09762cab5dbfcc27eb9ee4b 1209 dpkg-cross_2.6.3.dsc
 ebb38972a7804d2a835840ce1afba1689b56be98 75766 dpkg-cross_2.6.3.tar.gz
 c5c8a1e8bd28cec8aa0e36f22b938595d3b50e4a 53116 dpkg-cross_2.6.3_all.deb
 954dd8f37d8c5e86abe2cd820ab1f4ca63502079 28976 libdebian-dpkgcross-perl_2.6.3_all.deb
 d512982fe4109d8f2d1625f185ad434f679cd6d62543c70c2bae5fc66ad84dad 1209 dpkg-cross_2.6.3.dsc
 72694dbd761ac0cce64c00a2cfe3a720f34060450b86303739dcea253f3f21f6 75766 dpkg-cross_2.6.3.tar.gz
 6f8a62ffeba1569abfa797fde759bac9472c3be48766e375af61c085795bc25f 53116 dpkg-cross_2.6.3_all.deb
 5cdc2e627cfc0f94287237ce21ca89573899cf80260e61193d06be1d7d393e57 28976 libdebian-dpkgcross-perl_2.6.3_all.deb
 47e9efeeaa780d70892d71e99758a645 1209 utils extra dpkg-cross_2.6.3.dsc
 97f6c922f09f10086a38ba8ff6967af0 75766 utils extra dpkg-cross_2.6.3.tar.gz
 4a0aed4bfaa9f969ae9c7ca5a5fe0197 53116 utils extra dpkg-cross_2.6.3_all.deb
 5cc039f8e0c2aa5e4dce61cc10cfbd76 28976 perl extra libdebian-dpkgcross-perl_2.6.3_all.deb

Version: GnuPG v1.4.11 (GNU/Linux)


--- End Message ---

Reply to: