Currently, disallow any values for 'arch' besides the special value 'any'. This should only be relaxed once we have a policy for cross-arch dependencies (probably after the squeeze release) --- scripts/Dpkg/Deps.pm | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/Dpkg/Deps.pm b/scripts/Dpkg/Deps.pm index e4afd88..c610e88 100644 --- a/scripts/Dpkg/Deps.pm +++ b/scripts/Dpkg/Deps.pm @@ -544,6 +544,10 @@ sub parse { /^\s* # skip leading whitespace ([a-zA-Z0-9][a-zA-Z0-9+.-]*) # package name (?: # start of optional part + : # colon for architecture + (any) # architecture name + )? # end of optional part + (?: # start of optional part \s* \( # open parenthesis for version part \s* (<<|<=|=|>=|>>|<|>) # relation part \s* (.*?) # do not attempt to parse version @@ -557,10 +561,11 @@ sub parse { \s*$ # trailing spaces at end /x; $self->{package} = $1; - $self->{relation} = $2; - $self->{version} = $3; - if (defined($4)) { - $self->{arches} = [ split(/\s+/, $4) ]; + $self->{arch} = $2; + $self->{relation} = $3; + $self->{version} = $4; + if (defined($5)) { + $self->{arches} = [ split(/\s+/, $5) ]; } # Standardize relation field if (defined($self->{relation})) { @@ -572,6 +577,9 @@ sub parse { sub dump { my $self = shift; my $res = $self->{package}; + if (defined($self->{arch})) { + $res .= ":" . $self->{arch}; + } if (defined($self->{relation})) { $res .= " (" . $self->{relation} . " " . $self->{version} . ")"; } -- 1.6.3.3 -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ slangasek@ubuntu.com vorlon@debian.org
Attachment:
signature.asc
Description: Digital signature