Bug#676232: dpkg: Please add support for specific arch qualifiers (cross-dependencies)

June 05th, 2012 - 10:30 am ET by Thibaut Girka | Report spam
This is a multi-part MIME message sent by reportbug.



Package: dpkg
Version: 1.16.3+nmu1
Severity: wishlist
Tags: patch

Hi,

I'm currently working on multiarch-friendly cross-toolchains.
Such packages would greatly benefit from specific arch qualifiers in both
binary package field “Depends” and source package field “Build-
Depends”.
The latter is already handled in apt-get's “build-dep” command.

Having such a feature in Wheezy would be great, as it would enable third-
parties to provide cross-compilers depending on the target arch's packages.
Plus, such a feature shouldn't change anything to how existing packages are
handled.
Thus, I think this is a useful and safe feature to add, suitable for Wheezy.

The attached patch applies on top of the patch provided in #558095, although I
haven't set it as a blocker, since those are two separate issues.



Debian Release: wheezy/sid
APT prefers testing
APT policy: (990, 'testing'), (120, 'unstable'), (105, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-2-686-pae (SMP w/2 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages dpkg depends on:
ii libbz2-1.0 1.0.6-1
ii libc6 2.13-33
ii libselinux1 2.1.9-2
ii tar 1.26-4
ii xz-utils 5.1.1alpha+20110809-3
ii zlib1g 1:1.2.7.dfsg-11

dpkg recommends no packages.

Versions of packages dpkg suggests:
ii apt 0.9.5.1+nmu2


MIME-Version: 1.0
filename="0002-Add-support-for-specific-arch-qualifiers-and-cross-a.patch"


From a74262dfa5d9f1b437d66bf1cc969bf3dcc52117 Mon Sep 17 00:00:00 2001


From: Thibaut Girka <thib@sitedethib.com>
Date: Thu, 26 Apr 2012 23:08:14 +0200
Subject: [PATCH 2/2] Add support for specific arch qualifiers and cross-arch
dependencies


lib/dpkg/fields.c | 2 --
scripts/Dpkg/Deps.pm | 5 ++++-
2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/dpkg/fields.c b/lib/dpkg/fields.c
index ed655f9..07091d2 100644
a/lib/dpkg/fields.c
+++ b/lib/dpkg/fields.c
@@ -448,8 +448,6 @@ f_dependency(struct pkginfo *pkg, struct pkgbin *pkgbin,

if (dop->arch->type == arch_illegal)
emsg = dpkg_arch_name_is_illegal(arch.buf);
- else if (dop->arch->type != arch_wildcard)
- emsg = _("a value different from 'any' is currently not allowed");
if (emsg)
parse_error(ps, _("'%s' field, reference to '%.255s': "
"invalid architecture name '%.255s': %s"),
diff --git a/scripts/Dpkg/Deps.pm b/scripts/Dpkg/Deps.pm
index d85ad5f..89cbbfa 100644
a/scripts/Dpkg/Deps.pm
+++ b/scripts/Dpkg/Deps.pm
@@ -575,7 +575,7 @@ sub parse_string {
([a-zA-Z0-9][a-zA-Z0-9+.-]*) # package name
(?: # start of optional part
: # colon for architecture
- (any|native) # architecture name
+ ([a-zA-Z0-9][a-zA-Z0-9-]*) # architecture name
)? # end of optional part
(?: # start of optional part
\s* \( # open parenthesis for version part
@@ -1275,6 +1275,9 @@ sub _find_package {
return $p if $ma eq "allowed";
} elsif ($archqual eq "native") {
return $p if $a eq $build_arch and $ma ne "foreign";
+ } else
+ {
+ return $p if $a eq $archqual;
}
}
return undef;
1.7.10





To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
email Follow the discussionReplies 1 replyReplies Make a reply

Replies

#1 Guillem Jover
June 05th, 2012 - 02:40 pm ET | Report spam
Hi!

On Tue, 2012-06-05 at 16:26:20 +0200, Thibaut Girka wrote:
Package: dpkg
Version: 1.16.3+nmu1
Severity: wishlist
Tags: patch

I'm currently working on multiarch-friendly cross-toolchains.
Such packages would greatly benefit from specific arch qualifiers in both
binary package field “Depends” and source package field “Build-
Depends”.
The latter is already handled in apt-get's “build-dep” command.

Having such a feature in Wheezy would be great, as it would enable third-
parties to provide cross-compilers depending on the target arch's packages.
Plus, such a feature shouldn't change anything to how existing packages are
handled.
Thus, I think this is a useful and safe feature to add, suitable for Wheezy.

The attached patch applies on top of the patch provided in #558095, although I
haven't set it as a blocker, since those are two separate issues.



Thanks for the patches, I'll take a proper look into them (this one and
the one in #558095) either for 1.16.4 or most probably for 1.16.5.

thanks,
guillem



To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact

Similar topics