[SCM] Debian package checker branch, master, updated. 2.5.11-66-g44d3313
The following commit has been merged in the master branch:
commit 44d33139a2f2b25dff8ef75cc4ff69b42121f4db
Author: Niels Thykier <niels@thykier.net>
Date: Tue Aug 7 13:13:43 2012 +0200
c/fields: Make _split_dep aware of <pkg>:<arch> relations
Make _split_dep return the <arch> part of <pkg>:<arch> as a separate
element, which is ignored/unused for now.
Signed-off-by: Niels Thykier <niels@thykier.net>
diff --git a/checks/fields b/checks/fields
index 59882ba..c8f3d29 100644
--- a/checks/fields
+++ b/checks/fields
@@ -637,7 +637,7 @@ if (($type eq 'binary') || ($type eq 'udeb')) {
if (&$is_dep_field($field) && $known_obsolete_emacs{$alternatives[0]->[0]});
for my $part_d (@alternatives) {
- my ($d_pkg, $d_version, $d_arch, $rest, $part_d_orig) = @$part_d;
+ my ($d_pkg, $d_march, $d_version, $d_arch, $rest, $part_d_orig) = @$part_d;
tag 'versioned-provides', $part_d_orig
if ($field eq 'provides' && $d_version->[0]);
@@ -815,7 +815,7 @@ if ($type eq 'source') {
if ($VIRTUAL_PACKAGES->known($alternatives[0]->[0]) && &$is_dep_field($field));
for my $part_d (@alternatives) {
- my ($d_pkg, $d_version, $d_arch, $rest, $part_d_orig) = @$part_d;
+ my ($d_pkg, $d_march, $d_version, $d_arch, $rest, $part_d_orig) = @$part_d;
my $negated = 0;
for my $arch (@{$d_arch->[0]}) {
@@ -1041,16 +1041,20 @@ for my $field (keys %{$info->field}) {
}
-# splits "foo (>= 1.2.3) [!i386 ia64]" into
-# ( "foo", [ ">=", "1.2.3" ], [ [ "i386", "ia64" ], 1 ], "" )
-# ^^^ ^^
-# count of negated arches, if ! was given ||
-# rest (should always be "" for valid dependencies)
+# splits "foo:bar (>= 1.2.3) [!i386 ia64]" into
+# ( "foo", "bar", [ ">=", "1.2.3" ], [ [ "i386", "ia64" ], 1 ], "" )
+# ^^^ ^^
+# count of negated arches, if ! was given ||
+# rest (should always be "" for valid dependencies)
sub _split_dep {
my $dep = shift;
- my ($pkg, $version, $darch) = ('', ['',''], [[], 0]);
+ my ($pkg, $dmarch, $version, $darch) = ('', '', ['',''], [[], 0]);
- $pkg = $1 if $dep =~ s/^\s*([^\s\[\(]+)\s*//;
+ my $pkgname = $1 if $dep =~ s/^\s*([^\s\[\(]+)\s*//;
+ if (defined $pkgname) {
+ ($pkg, $dmarch) = split /:/, $pkgname, 2;
+ $dmarch //= ''; # Ensure it is defined (in case there is no ":")
+ }
if (length $dep) {
if ($dep =~ s/\s* \( \s* (<<|<=|<|=|>=|>>|>) \s* ([^\s(]+) \s* \) \s*//x) {
@@ -1067,7 +1071,7 @@ sub _split_dep {
}
}
- return ($pkg, $version, $darch, $dep);
+ return ($pkg, $dmarch, $version, $darch, $dep);
}
sub perl_core_has_version {
diff --git a/t/tests/fields-depends-general/debian/debian/control.in b/t/tests/fields-depends-general/debian/debian/control.in
index 08e7507..b4aedf7 100644
--- a/t/tests/fields-depends-general/debian/debian/control.in
+++ b/t/tests/fields-depends-general/debian/debian/control.in
@@ -10,7 +10,7 @@ Architecture: {$architecture}
Depends: $\{shlibs:Depends\}, $\{misc:Depends\}, xorg, bash,
conflict-dep, gawk | awk, new-package | xbase-clients, {$srcpkg},
gaim, emacs21, emacs22, makedev, libfile-temp-perl (>= 0.18),
- packaging-dev, xfont-a
+ packaging-dev, xfont-a, libdigest-sha1-perl:i386
Breaks: package-without-version, {$srcpkg} (<< 0.1),
replaced-wo-version
Replaces: replaced-wo-version
diff --git a/t/tests/fields-depends-general/tags b/t/tests/fields-depends-general/tags
index fedbc28..f7b381b 100644
--- a/t/tests/fields-depends-general/tags
+++ b/t/tests/fields-depends-general/tags
@@ -2,6 +2,7 @@ E: fields-depends-general: conflicts-with-dependency depends conflict-dep
E: fields-depends-general: depends-on-essential-package-without-using-version depends: bash
E: fields-depends-general: depends-on-metapackage depends: xorg
E: fields-depends-general: depends-on-obsolete-package depends: gaim
+E: fields-depends-general: depends-on-obsolete-package depends: libdigest-sha1-perl:i386
E: fields-depends-general: needlessly-depends-on-awk depends
E: fields-depends-general: package-depends-on-an-x-font-package depends: xfont-a
E: libfields-depends-general: depends-on-libdb1-compat depends
--
Debian package checker
Reply to: