Hi,
On Tue, 2007-09-25 at 01:05:47 +0200, Frank Lichtenheld wrote:
> On Sat, Jun 02, 2007 at 01:43:21PM +0200, Bernhard R. Link wrote:
> > dpkg-gencontol does:
> >
> > grep(debarch_is($host_arch, $_), @archlist) ||
> > &error(sprintf(_g("current build architecture %s does not".
> > " appear in package's list (%s)"),
> > $host_arch, "@archlist"));
> >
> > which in current unstable results in a confusing error message like:
> > dpkg-gencontrol: error: current build architecture abacus does not appear
> > in package's list (abacus)
>
> I suggest this patch to fix the issue:
>
> >From 16a119732007d5922f383a144c0d9137008aeedd Mon Sep 17 00:00:00 2001
> From: Frank Lichtenheld <[EMAIL PROTECTED]>
> Date: Tue, 25 Sep 2007 01:01:30 +0200
> Subject: [PATCH] controllib.pl: debarch_is(foo, 'any') should always be true
>
> Currently this will not return true if foo has no defined
> triplet.
>
> Signed-off-by: Frank Lichtenheld <[EMAIL PROTECTED]>
> ---
> scripts/controllib.pl | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/scripts/controllib.pl b/scripts/controllib.pl
> index 1b7c52d..d5d1716 100755
> --- a/scripts/controllib.pl
> +++ b/scripts/controllib.pl
> @@ -299,6 +299,9 @@ sub debarch_eq($$)
> sub debarch_is($$)
> {
> my ($real, $alias) = @_;
> +
> + return 1 if $alias eq 'any';
> +
> my @real = debarch_to_debtriplet($real);
> my @alias = debwildcard_to_debtriplet($alias);
I don't think this fixes the problem, as the host arch would be 'abacus'
and the one listed in the Architecture field as well. Something like
this should:
diff --git a/scripts/controllib.pl b/scripts/controllib.pl
index 1b7c52d..e7ef8ab 100755
--- a/scripts/controllib.pl
+++ b/scripts/controllib.pl
@@ -249,10 +249,7 @@ sub debarch_to_debtriplet($)
local ($_) = @_;
my $arch;
- # FIXME: 'any' is handled here, to be able to do debarch_eq('any', foo).
- if (/^any$/ || /^all$/) {
- return ($_, $_, $_);
- } elsif (/^linux-([^-]*)/) {
+ if (/^linux-([^-]*)/) {
# XXX: Might disappear in the future, not sure yet.
$arch = $1;
} else {
@@ -288,6 +285,9 @@ sub debwildcard_to_debtriplet($)
sub debarch_eq($$)
{
my ($a, $b) = @_;
+
+ return 1 if ($a eq $b);
+
my @a = debarch_to_debtriplet($a);
my @b = debarch_to_debtriplet($b);
@@ -299,6 +299,9 @@ sub debarch_eq($$)
sub debarch_is($$)
{
my ($real, $alias) = @_;
+
+ return 1 if ($alias eq $real or $alias eq 'any');
+
my @real = debarch_to_debtriplet($real);
my @alias = debwildcard_to_debtriplet($alias);
At the time of writting those functions, I made them more strict, and
not allowing unknown architectures was on purpose. But I suppose I
don't have such a strong position on this, and could just apply this
patch... what do you think, Frank?
regards,
guillem
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]