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

Re: Bug#982868: dpkg-cross generates erronous conflicts on like libc6-amd64:x32-i386-cross



Control: tags -1 + patch
Control: severity -1 serious
Control: clone -1 -2
Control: reassign -2 src:cross-toolchain-base

On Mon, Feb 15, 2021 at 06:01:45PM +0100, Julian Andres Klode wrote:
> Package: libc6-amd64-i386-cross
> Conflicts: libc0.1-i386-i386-cross, libc6-amd64:x32-i386-cross,
> 
> The second one is wrong.

Yes, the mangling of arch qualified dependencies is wrong. The cross
suffix is appended to the architecture rather than the package name. I'm
attaching a patch that makes it correctly process arch qualified
dependencies.

> Would be good to get fixed, is RC if those conflicts are really
> needed, but otherwise marking it as important, since not sure.

I concur that it should be fixed for bullseye and thus raise the
severity to serious. Wookey, please downgrade if you disagree.

I'm also cloning a bug for c-t-b as it vendors dpkg-cross including this
bug.

Helmut
diff --minimal -Nru dpkg-cross-2.6.15/debian/changelog dpkg-cross-2.6.15/debian/changelog
--- dpkg-cross-2.6.15/debian/changelog	2020-06-22 05:55:01.000000000 +0200
+++ dpkg-cross-2.6.15/debian/changelog	2021-02-15 17:36:34.000000000 +0100
@@ -1,3 +1,9 @@
+dpkg-cross (2.6.15-3.2) UNRELEASED; urgency=medium
+
+  * Fix converstion of arch qualified relations. (Closes: #-1)
+
+ -- Helmut Grohne <helmut@subdivi.de>  Mon, 15 Feb 2021 17:36:34 +0100
+
 dpkg-cross (2.6.15-3.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --minimal -Nru dpkg-cross-2.6.15/dpkg-cross dpkg-cross-2.6.15/dpkg-cross
--- dpkg-cross-2.6.15/dpkg-cross	2020-06-21 21:28:46.000000000 +0200
+++ dpkg-cross-2.6.15/dpkg-cross	2021-02-15 17:36:34.000000000 +0100
@@ -1358,7 +1358,12 @@
 	my $name = $1;
 	return () if grep { $_ eq $name } @removedeps;
 	return $str if grep { $_ eq $name } @keepdeps;
-	$str =~ s/^([^ (]+)/$name-$arch-cross/;
+	if ($name =~ /^([^:]*):(.*)/) {
+		my $replacement = "$1-$2-cross";
+		$str =~ s/^[^ (]+/$replacement/;
+	} else {
+		$str =~ s/^([^ (]+)/$name-$arch-cross/;
+	}
 	return $str;
 }
 

Reply to: