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

[SCM] Debian package checker branch, master, updated. 2.5.10-199-ga81a3b0



The following commit has been merged in the master branch:
commit ab72fad9176c95f2897b6bf3f4afb98584bff24c
Author: Bernhard R. Link <brlink@debian.org>
Date:   Mon Jul 16 13:20:24 2012 +0200

    c/fields: check vcs URLs for old URLs
    
    warn if a URL would cause redirections or port forwards or is
    otherwise uncanonical or outdated.
    
    Signed-off-by: Bernhard R. Link <brlink@debian.org>
    Signed-off-by: Niels Thykier <niels@thykier.net>

diff --git a/checks/fields b/checks/fields
index 9905465..476a21d 100644
--- a/checks/fields
+++ b/checks/fields
@@ -118,6 +118,40 @@ my %VCS_EXTRACT = (
     # that's a hostname followed by a module name:
     mtn     => sub { return shift =~ /^(.+?)\s+(\S+)$/;},
 );
+my %VCS_CANONIFY = (
+    browser => sub {
+        $_[0] =~ s{https?://svn.debian.org/wsvn/}{http://anonscm.debian.org/viewvc/};
+        $_[0] =~ s{http://git.debian.org/\?p=}{http://anonscm.debian.org/gitweb/?p=};
+        $_[0] =~ s{http://bzr.debian.org/loggerhead/}{http://anonscm.debian.org/loggerhead/};
+    },
+    cvs      => sub {
+	$_[0] =~ s{\@cvs.alioth.debian.org:/cvsroot/}{\@anonscm.debian.org:/cvs/};
+	$_[0] =~ s{\@cvs.alioth.debian.org:/cvs/}{\@anonscm.debian.org:/cvs/};
+	$_[0] =~ s{\@anonscm.debian.org:/cvsroot/}{\@anonscm.debian.org:/cvs/};
+    },
+    arch     => sub {
+        $_[0] =~ s{http://arch.debian.org/arch/}{http://anonscm.debian.org/arch/};
+    },
+    bzr     => sub {
+        $_[0] =~ s{http://bzr.debian.org/}{http://anonscm.debian.org/bzr/};
+        $_[0] =~ s{http://anonscm.debian.org/bzr/bzr/}{http://anonscm.debian.org/bzr/};
+    },
+    git     => sub {
+        $_[0] =~ s{http://git.debian.org/}{http://anonscm.debian.org/git/};
+        $_[0] =~ s{http://anonscm.debian.org/git/git/}{http://anonscm.debian.org/git/};
+        $_[0] =~ s{git://git.debian.org/}{git://anonscm.debian.org/};
+        $_[0] =~ s{git://anonscm.debian.org/git/}{git://anonscm.debian.org/};
+    },
+    hg      => sub {
+        $_[0] =~ s{http://hg.debian.org/}{http://anonscm.debian.org/hg/};
+        $_[0] =~ s{http://anonscm.debian.org/hg/hg/}{http://anonscm.debian.org/hg/};
+    },
+    svn     => sub {
+        $_[0] =~ s{svn://cvs.alioth.debian.org/}{svn://anonscm.debian.org/};
+        $_[0] =~ s{svn://svn.debian.org/}{svn://anonscm.debian.org/};
+        $_[0] =~ s{svn://anonscm.debian.org/svn/}{svn://anonscm.debian.org/};
+    },
+);
 # Valid URI formats for the Vcs-* fields
 # currently only checks the protocol, not the actual format of the URI
 my %VCS_RECOMMENDED_URIS = (
@@ -977,6 +1011,15 @@ while (my ($vcs, $splitter) = each %VCS_EXTRACT) {
                 tag 'vcs-field-has-unexpected-spaces', "vcs-$vcs", $uri;
             }
         }
+        if ($VCS_CANONIFY{$vcs}) {
+            my $canonicalized = $parts[0];
+            foreach my $canonify ($VCS_CANONIFY{$vcs}) {
+                &$canonify($canonicalized);
+            }
+            if ($canonicalized ne $parts[0]) {
+                tag 'vcs-field-not-canonical', $parts[0], $canonicalized;
+            }
+        }
     }
 }
 
diff --git a/checks/fields.desc b/checks/fields.desc
index 6795f2e..ef0a7fe 100644
--- a/checks/fields.desc
+++ b/checks/fields.desc
@@ -987,6 +987,14 @@ Info: The VCS-* field contains more spaces than expected or spaces at
  in URIs to avoid any ambiguity with respect to possible future additional
  optional fields.
 
+Tag: vcs-field-not-canonical
+Severity: minor
+Certainty: possible
+Info: The VCS-* field contains an uncanonical URI. Please update to use
+ the current canonical URI instead. This reduces the network bandwidth used
+ and makes debcheckout work independent of the port forwarding and
+ redirections properly working.
+
 Tag: lib-recommends-documentation
 Severity: normal
 Certainty: possible
diff --git a/t/tests/fields-vcs-fields/debian/debian/control.in b/t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in
similarity index 84%
copy from t/tests/fields-vcs-fields/debian/debian/control.in
copy to t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in
index d942450..c37d538 100644
--- a/t/tests/fields-vcs-fields/debian/debian/control.in
+++ b/t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in
@@ -8,8 +8,8 @@ Vcs-Browser: https://svn.debian.org/wsvn/foobar/trunk
 Vcs-Svn: svn://svn.debian.org/svn/foobar/trunk
 Vcs-Mtn: www.example.org org.debian.foobar
 Vcs-Hg: http://hg.debian.org/hg/foobar/pkg/foobar
-Vcs-Git: git://anonscm.debian.org/users/djpig/foobar.git -b master
-Vcs-Cvs: :pserver:anonymous@anonscm.debian.org:/cvs/foobar module
+Vcs-Git: git://git.debian.org/git/users/djpig/foobar.git -b master
+Vcs-Cvs: :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/foobar module
 Vcs-Bzr: nosmart+http://bzr.debian.org/bzr/collab-maint/foobar
 
 Package: {$srcpkg}
diff --git a/t/tests/fields-uncanonical-vcs-fields/desc b/t/tests/fields-uncanonical-vcs-fields/desc
new file mode 100644
index 0000000..c55751a
--- /dev/null
+++ b/t/tests/fields-uncanonical-vcs-fields/desc
@@ -0,0 +1,6 @@
+Testname: fields-uncanonical-vcs-fields
+Sequence: 6000
+Description: Test for vcs fields needing canonication
+Version: 1.0
+Test-For:
+ vcs-field-not-canonical
diff --git a/t/tests/fields-uncanonical-vcs-fields/tags b/t/tests/fields-uncanonical-vcs-fields/tags
new file mode 100644
index 0000000..5631249
--- /dev/null
+++ b/t/tests/fields-uncanonical-vcs-fields/tags
@@ -0,0 +1,6 @@
+I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical :pserver:anonymous@cvs.alioth.debian.org:/cvsroot/foobar :pserver:anonymous@anonscm.debian.org:/cvs/foobar
+I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical git://git.debian.org/git/users/djpig/foobar.git git://anonscm.debian.org/users/djpig/foobar.git
+I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical http://hg.debian.org/hg/foobar/pkg/foobar http://anonscm.debian.org/hg/foobar/pkg/foobar
+I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical https://svn.debian.org/wsvn/foobar/trunk http://anonscm.debian.org/viewvc/foobar/trunk
+I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical nosmart+http://bzr.debian.org/bzr/collab-maint/foobar nosmart+http://anonscm.debian.org/bzr/collab-maint/foobar
+I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical svn://svn.debian.org/svn/foobar/trunk svn://anonscm.debian.org/foobar/trunk
diff --git a/t/tests/fields-vcs-fields/debian/debian/control.in b/t/tests/fields-vcs-fields/debian/debian/control.in
index d942450..692b807 100644
--- a/t/tests/fields-vcs-fields/debian/debian/control.in
+++ b/t/tests/fields-vcs-fields/debian/debian/control.in
@@ -4,13 +4,13 @@ Section: {$section}
 Maintainer: {$author}
 Standards-Version: {$standards_version}
 Build-Depends: debhelper (>= 9)
-Vcs-Browser: https://svn.debian.org/wsvn/foobar/trunk
-Vcs-Svn: svn://svn.debian.org/svn/foobar/trunk
+Vcs-Browser: https://anonscm.debian.org/viewvc/foobar/trunk
+Vcs-Svn: svn://anonscm.debian.org/foobar/trunk
 Vcs-Mtn: www.example.org org.debian.foobar
-Vcs-Hg: http://hg.debian.org/hg/foobar/pkg/foobar
+Vcs-Hg: http://anonscm.debian.org/hg/foobar/pkg/foobar
 Vcs-Git: git://anonscm.debian.org/users/djpig/foobar.git -b master
 Vcs-Cvs: :pserver:anonymous@anonscm.debian.org:/cvs/foobar module
-Vcs-Bzr: nosmart+http://bzr.debian.org/bzr/collab-maint/foobar
+Vcs-Bzr: nosmart+http://anonscm.debian.org/bzr/collab-maint/foobar
 
 Package: {$srcpkg}
 Architecture: {$architecture}
diff --git a/t/tests/fields-vcs-fields/desc b/t/tests/fields-vcs-fields/desc
index d112e3a..171f8bd 100644
--- a/t/tests/fields-vcs-fields/desc
+++ b/t/tests/fields-vcs-fields/desc
@@ -6,3 +6,4 @@ Test-Against:
  vcs-field-uses-not-recommended-uri-format
  vcs-field-uses-unknown-uri-format
  vcs-field-has-unexpected-spaces
+ vcs-field-not-canonical

-- 
Debian package checker


Reply to: