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