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

[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: