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

Bug#771497: marked as done (file conflict between converted and unconverted libc6 package)



Your message dated Sun, 17 Jul 2016 16:00:10 +0000
with message-id <E1bOoUE-0006kT-3w@franck.debian.org>
and subject line Bug#771497: fixed in dpkg-cross 2.6.14
has caused the Debian Bug report #771497,
regarding file conflict between converted and unconverted libc6 package
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
immediately.)


-- 
771497: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771497
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Source: dpkg-cross
Version: 2.6.11
Severity: important
Tags: patch
User: helmutg@debian.org
Usertags: rebootstrap

When converting libc6:x32 using dpkg-cross, the symlink to the linker
does not get translated. In libc6:x32 it looks like:

lrwxrwxrwx root/root         0 2014-11-30 00:08 ./libx32/ld-linux-x32.so.2 -> /lib/x86_64-linux-gnux32/ld-2.19.so

In libc6-x32-cross:all it looks like:

lrwxrwxrwx root/root         0 2014-11-30 00:10 ./libx32/ld-linux-x32.so.2 -> ../usr/x86_64-linux-gnux32/lib/ld-2.19.so

When installing both libc6:x32 and libc6-x32-cross:all, an undeclared
file conflict occurs.

Note that x32 is only an example here. The same issue happens for arm's
libsf and libhf as well as mips' libn32.

This causes bootstrapping of new architectures to fail. This is also why
I marked this bug with severity important.

The attached patch simply applies the existing logic for lib32 and lib64
to libhf, libn32, libsf and libx32 as well and thereby solves the issue
at hand.

Helmut
diff -Nru dpkg-cross-2.6.11/Debian/DpkgCross.pm dpkg-cross-2.6.11+nmu1/Debian/DpkgCross.pm
--- dpkg-cross-2.6.11/Debian/DpkgCross.pm	2011-03-25 22:17:47.000000000 +0100
+++ dpkg-cross-2.6.11+nmu1/Debian/DpkgCross.pm	2014-11-30 08:46:18.000000000 +0100
@@ -16,7 +16,8 @@
 $progname %archtable %std_tools
 %pkgvars %allcrossroots $arch $default_arch $deb_host_gnu_type
 $crossbase $crossprefix $crossdir $crossbin $crosslib $crossroot
-$crossinc $crosslib64 $crosslib32 $package $mode $tool_ %config
+$crossinc $crosslib64 $crosslib32 $crosslibhf $crosslibn32
+$crosslibsf $crosslibx32 $package $mode $tool_ %config
 @keepdeps %allcrossroots @removedeps $maintainer $arch_dir
 $compilerpath %debug_data);
 @ISA       = qw(Exporter);
@@ -171,6 +172,10 @@
 	$crosslib = $conf->{'crosslib'};
 	$crosslib64 = $conf->{'crosslib64'};
 	$crosslib32 = $conf->{'crosslib32'};
+	$crosslibhf = $conf->{'crosslibhf'};
+	$crosslibn32 = $conf->{'crosslibn32'};
+	$crosslibsf = $conf->{'crosslibsf'};
+	$crosslibx32 = $conf->{'crosslibx32'};
 	$crossinc = $conf->{'crossinc'};
 	$maintainer = $conf->{'maintainer'};
 	$compilerpath = $conf->{'compilerpath'};
@@ -204,6 +209,10 @@
 		$crosslib ||= $conf->{'crosslib'};
 		$crosslib64 ||= $conf->{'crosslib64'};
 		$crosslib32 ||= $conf->{'crosslib32'};
+		$crosslibhf ||= $conf->{'crosslibhf'};
+		$crosslibn32 ||= $conf->{'crosslibn32'};
+		$crosslibsf ||= $conf->{'crosslibsf'};
+		$crosslibx32 ||= $conf->{'crosslibx32'};
 		$crossinc ||= $conf->{'crossinc'};
 		$maintainer ||= $conf->{'maintainer'};
 		$compilerpath ||= $conf->{'compilerpath'};
@@ -383,6 +392,10 @@
 
 	$crosslib64 ||= $crosslib . "64";
 	$crosslib32 ||= $crosslib . "32";
+	$crosslibhf ||= $crosslib . "hf";
+	$crosslibn32 ||= $crosslib . "n32";
+	$crosslibsf ||= $crosslib . "sf";
+	$crosslibx32 ||= $crosslib . "x32";
 	$config{'crossbase'} = $crossbase;
 	$config{'crossprefix'} = $crossprefix;
 	$config{'crossdir'} = $crossdir;
@@ -390,6 +403,10 @@
 	$config{'crosslib'} = $crosslib;
 	$config{'crosslib64'} = $crosslib64;
 	$config{'crosslib32'} = $crosslib32;
+	$config{'crosslibhf'} = $crosslibhf;
+	$config{'crosslibn32'} = $crosslibn32;
+	$config{'crosslibsf'} = $crosslibsf;
+	$config{'crosslibx32'} = $crosslibx32;
 	$config{'crossinc'} = $crossinc;
 	$config{'crossroot'} = $crossroot;
 
@@ -410,6 +427,10 @@
 	$crosslib = $config{'crosslib'};
 	$crosslib64 = $config{'crosslib64'};
 	$crosslib32 = $config{'crosslib32'};
+	$crosslibhf = $config{'crosslibhf'};
+	$crosslibn32 = $config{'crosslibn32'};
+	$crosslibsf = $config{'crosslibsf'};
+	$crosslibx32 = $config{'crosslibx32'};
 	$crossinc = $config{'crossinc'};
 }
 
@@ -463,6 +484,14 @@
 		$path = "$crosslib32/$'";
 	} elsif ($path =~ m:^(/emul/ia32-linux/(usr/)?lib/($multiarch)?):) {
 		$path = "$crosslib32/$'";
+	} elsif ($path =~ /^(\/usr)?\/libhf\/($multiarch)?/) {
+		$path = "$crosslibhf/$'";
+	} elsif ($path =~ /^(\/usr)?\/libn32\/($multiarch)?/) {
+		$path = "$crosslibn32/$'";
+	} elsif ($path =~ /^(\/usr)?\/libsf\/($multiarch)?/) {
+		$path = "$crosslibsf/$'";
+	} elsif ($path =~ /^(\/usr)?\/libx32\/($multiarch)?/) {
+		$path = "$crosslibx32/$'";
 	} elsif ($path =~ /^\/usr\/\w+-\w+(-\w+(-\w+)?)?\//) {
 		# leave alone
 	} else {
diff -Nru dpkg-cross-2.6.11/debian/changelog dpkg-cross-2.6.11+nmu1/debian/changelog
--- dpkg-cross-2.6.11/debian/changelog	2013-05-24 21:28:56.000000000 +0200
+++ dpkg-cross-2.6.11+nmu1/debian/changelog	2014-11-30 08:49:56.000000000 +0100
@@ -1,3 +1,10 @@
+dpkg-cross (2.6.11+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Support lib{hf,n32,sf,x32}. (Closes: #-1)
+
+ -- Helmut Grohne <helmut@subdivi.de>  Sun, 30 Nov 2014 08:49:39 +0100
+
 dpkg-cross (2.6.11) unstable; urgency=low
 
   * Upload changes from experimental to unstable.
diff -Nru dpkg-cross-2.6.11/dpkg-cross dpkg-cross-2.6.11+nmu1/dpkg-cross
--- dpkg-cross-2.6.11/dpkg-cross	2013-05-24 21:28:22.000000000 +0200
+++ dpkg-cross-2.6.11+nmu1/dpkg-cross	2014-11-30 08:53:56.000000000 +0100
@@ -12,7 +12,8 @@
 use warnings;
 use vars qw($verbose $str @removedeps $package %builds $arch $exclude
 @keepdeps $dpkg_statfile $progname $debname $anyway $cross2cross $crosstype
-$crossdir $crosslib $crosslib64 $crosslib32 $crossinc $data $len
+$crossdir $crosslib $crosslib64 $crosslib32 $crosslibhf $crosslibn32
+$crosslibsf $crosslibx32 $crossinc $data $len
 $retval $dpkg_cmd $mode $pkg @exlist $conffile $removedeps $keepdeps
 $DPKGCROSSVERSION $keep_temp $msg $multiarchpackage $multiarch $multiarchconv);
 
@@ -728,6 +729,10 @@
 	$crosslib = $$config{'crosslib'};
 	$crosslib64 = $$config{'crosslib64'};
 	$crosslib32 = $$config{'crosslib32'};
+	$crosslibhf = $$config{'crosslibhf'};
+	$crosslibn32 = $$config{'crosslibn32'};
+	$crosslibsf = $$config{'crosslibsf'};
+	$crosslibx32 = $$config{'crosslibx32'};
 	# add extra regexp component for multiarch packages
 	if ($multiarchpackage) { $multiarch="\Q$crosstype/\E" } else {$multiarch=""};
 
@@ -796,6 +801,18 @@
 		} 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/libhf/([^/]+\.[ao])$:) {
+			# regular .a or .o file under /usr/libhf
+			link_file("$src$_", "$dst$crosslibhf/$1") or goto fail;
+		} elsif (m:^/usr/libn32/([^/]+\.[ao])$:) {
+			# regular .a or .o file under /usr/libn32
+			link_file("$src$_", "$dst$crosslibn32/$1") or goto fail;
+		} elsif (m:^/usr/libsf/([^/]+\.[ao])$:) {
+			# regular .a or .o file under /usr/libsf
+			link_file("$src$_", "$dst$crosslibsf/$1") or goto fail;
+		} elsif (m:^/usr/libx32/([^/]+\.[ao])$:) {
+			# regular .a or .o file under /usr/libx32
+			link_file("$src$_", "$dst$crosslibx32/$1") or goto fail;
 		} elsif (m:^(/usr)?/lib/($multiarch)?([^/]+\.so[^/]*)$:) {
 			# regular .so* file under /lib, /usr/lib, /lib/<triplet>, /usr/lib/<triplet>
 			if (is_ldscript("$src$_")) {
@@ -831,6 +848,34 @@
 			} else {
 				link_file("$src$_", "$dst$crosslib32/$1") or goto fail;
 			}
+		} elsif (m:^(/usr)?/libhf/([^/]+\.so[^/]*)$:) {
+			# regular .so* file under /libhf, /usr/libhf
+			if (is_ldscript("$src$_")) {
+				fix_ldscript("$src$_", "$dst$crosslibhf/$2") or goto fail;
+			} else {
+				link_file("$src$_", "$dst$crosslibhf/$2") or goto fail;
+			}
+		} elsif (m:^(/usr)?/libn32/([^/]+\.so[^/]*)$:) {
+			# regular .so* file under /libn32, /usr/libn32
+			if (is_ldscript("$src$_")) {
+				fix_ldscript("$src$_", "$dst$crosslibn32/$2") or goto fail;
+			} else {
+				link_file("$src$_", "$dst$crosslibn32/$2") or goto fail;
+			}
+		} elsif (m:^(/usr)?/libsf/([^/]+\.so[^/]*)$:) {
+			# regular .so* file under /libsf, /usr/libsf
+			if (is_ldscript("$src$_")) {
+				fix_ldscript("$src$_", "$dst$crosslibsf/$2") or goto fail;
+			} else {
+				link_file("$src$_", "$dst$crosslibsf/$2") or goto fail;
+			}
+		} elsif (m:^(/usr)?/libx32/([^/]+\.so[^/]*)$:) {
+			# regular .so* file under /libx32, /usr/libx32
+			if (is_ldscript("$src$_")) {
+				fix_ldscript("$src$_", "$dst$crosslibx32/$2") or goto fail;
+			} else {
+				link_file("$src$_", "$dst$crosslibx32/$2") or goto fail;
+			}
 		} elsif (m:^/usr/lib/$multiarch([^/]+\.la)$:) {
 			# regular .la file under /usr/lib
 			fix_la_file("$src$_", "$dst$crosslib/$1", $crosslib) or goto fail;

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

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.

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

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

Debian distribution maintenance software
pp.
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@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Tue, 12 Jul 2016 19:09:54 +0100
Source: dpkg-cross
Binary: cross-config dpkg-cross libdebian-dpkgcross-perl
Architecture: source all
Version: 2.6.14
Distribution: unstable
Urgency: medium
Maintainer: Debian Embedded Group <debian-embedded@lists.debian.org>
Changed-By: Neil Williams <codehelp@debian.org>
Description:
 cross-config - autotools support for cross-compilation
 dpkg-cross - tools for cross compiling Debian packages
 libdebian-dpkgcross-perl - functions to aid cross-compiling Debian packages
Closes: 649094 741476 771496 771497 772045 773266 776010
Changes:
 dpkg-cross (2.6.14) unstable; urgency=medium
 .
   * Create cross-config package which will remain after the
     deprecated dpkg-cross and libdebian-dpkgcross-perl binares
     are removed from this package in time for the Stretch release.
   * In light of deprecation of the dpkg-cross binary, drop the
     default_arch support and associated debconf support.
     (Closes: #771496)
 .
 dpkg-cross (2.6.13) experimental; urgency=medium
 .
   * Fix behaviour where DEB_HOST_GNU_TYPE != DEB_HOST_MULTIARCH (e.g. i386)
     (Closes: 773266)
   * Merge Ubuntu dpkg-cross fixes:
     Handle datarootdir specially in .pc files: keep the original prefix
     Assume multiarch if encoutering a /usr/include/$crosstype/ file too.
     This fixes issues with arch-qualified include files being moved
     to doubly-qualified paths.
     Handle lines containing '${exec_prefix}/bin' specially in .pc files;
     these are normally development tools, so should keep the original
     (build arch) prefix.  (For example, orbit_idl in ORBit-2.0.pc.)
 .
 dpkg-cross (2.6.12) experimental; urgency=medium
 .
   * Remove ac_cv_sizeof_off_t as supreceded by AC_SYS_LARGEFILE (Closes: 776010)
   * Support lib{hf,n32,sf,x32}. (Closes: 771497)
   * Ensure multilib ldscripts are fixed up. (Closes: 772045,649094)
   * Update uploaders list (Closes: 741476)
   * Include support for libo32 multilibs
Checksums-Sha1:
 6c8b2e81a914f2d2441b1bd9500179eb0134f43f 1824 dpkg-cross_2.6.14.dsc
 a0a06de27f3264463d945253389ac6fc90a6a380 75966 dpkg-cross_2.6.14.tar.gz
 96103f78001c0796db3f47253336bd59c572b114 30834 cross-config_2.6.14_all.deb
 7e4fad8254a0995023fe763a06dac0e802708fb7 40456 dpkg-cross_2.6.14_all.deb
 8736b59c4c2f5b0b24035bcd6147f3330537d5df 29716 libdebian-dpkgcross-perl_2.6.14_all.deb
Checksums-Sha256:
 696654b3ede2af83a86ff82391fc64fa92d6cb6e5381e335bb15619cf1d0c924 1824 dpkg-cross_2.6.14.dsc
 4462857c0a689a81b44258ae386a8efc467edafbbfd2baa5279ecdce47f4d96a 75966 dpkg-cross_2.6.14.tar.gz
 3da7fd39eb72aa3dc200c877bf798d4f82400f3cf84ed40505e71bbd33f006fc 30834 cross-config_2.6.14_all.deb
 032ddecd99f1939d5900b9134020c257ee6b5fe09d3ab8221389f6942c80c428 40456 dpkg-cross_2.6.14_all.deb
 035c50ffe9c5e5b6b8a0dd887eea8d1630067521084692d5a1ec143385acab2c 29716 libdebian-dpkgcross-perl_2.6.14_all.deb
Files:
 a88bb5231cde4a61cebc5ccd3d07b252 1824 utils extra dpkg-cross_2.6.14.dsc
 5da420bab771ea830ca286864db3a3e1 75966 utils extra dpkg-cross_2.6.14.tar.gz
 33566acb78733785c999de6d6281b39d 30834 utils extra cross-config_2.6.14_all.deb
 4a591c1fd28a903c7489e4c089613198 40456 utils extra dpkg-cross_2.6.14_all.deb
 8d5b19da6b0f213943648d351d12645d 29716 perl extra libdebian-dpkgcross-perl_2.6.14_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJXi1XRAAoJEPFn5DyBQ7aC5/gP/2DMk9CMuZ8GSxkF5cwd16dt
osee6CvbmA2Yx//QJym7lbyUhPsogJn5bNkaz4Sh4QKlcH9YKPFZdJg5YF6MWNsh
QQ8wfAWp2WQ6Lkwz7MsvZPO5sEynSg2vceEnUjjj/BM4YyhdRxjTlfEvxnt8AgT1
LdbTEo0u3UZaM/bR/nQAnlaZvuN4Qv/CrYQvYrvtPFwJvpj2skZhtCga8fxlvbrN
ZwCps2ORfliDm2rzG1YtpBsf9/n/QwIX7OTGItKv/asi6sBv9uOpUfPmTW5fFw59
QqevmpZh/SIufwThTXDEYBEx92g8XHveFGk2no5t1xNQTC8HeAUKIHGxKMBLuYx2
3aji09PZnocE+3B+rXU9/az/uIprZ2iePiD0CptmHO2dFau8plAMzOPHUX2uVUah
taGJ2RofwLIX5pJFjXiUQyZ9nz35YGXQ3shgWmPJMUSFx+xg59W6vX+mE2YSmDKa
7W+SsQlKVT7WmsxKglVMJ2THGEbxGiEtjxSinxBiLBcvfctz2Lm5JD3THMbZ0ECq
ULZbtXg+8EIhLYKhN0PXTqyTRND3dSylJRShuEK3fiivBGoPANtqippP68Fbb2K+
CHrUdPKHVBC8GjoH21QlNNSli6UITfAwpM083cIedIDLX/5ezk1xK2lavx3GfSwW
ROjDtphsTvBJeHpNIUBm
=Cwff
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: