Here's an new patch that outputs both paths, puts its tests in the *new* testsuite, and also upgrades some (5?) problematic instances of 'vcs-field-not-canonical' to a new 'vcs-field-bitrotted' warning.
You can probably get the same code from: https://github.com/SamB/lintian.git -b vcs-bad-uri
>From 8de410a27b953e07dd76f3c1ecf7cd39f3a64b37 Mon Sep 17 00:00:00 2001 From: Samuel Bronson <naes...@gmail.com> Date: Wed, 16 Jan 2013 22:50:24 -0500 Subject: [PATCH] c/fields: Warn on some broken alioth paths in Vcs-Cvs and Vcs-Git Involves a slight generalization of VCS_CANONIFY to allow custom tags. Also includes tests. Closes: #652595 Signed-off-by: Samuel Bronson <naes...@gmail.com> --- checks/fields | 13 +++++++++---- checks/fields.desc | 15 +++++++++++++++ .../debian/debian/control.in | 2 +- t/tests/fields-uncanonical-vcs-fields/desc | 2 ++ t/tests/fields-uncanonical-vcs-fields/tags | 4 ++-- t/tests/fields-vcs-fields/desc | 2 ++ 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/checks/fields b/checks/fields index c8f3d29..88352ed 100644 --- a/checks/fields +++ b/checks/fields @@ -125,9 +125,10 @@ my %VCS_CANONIFY = ( $_[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/}; + if ($_[0] =~ s{\@(?:cvs.alioth|anonscm).debian.org:/cvsroot/}{\@anonscm.debian.org:/cvs/}) { + $_[1] = 'vcs-field-bitrotted'; + } $_[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/}; @@ -137,6 +138,9 @@ my %VCS_CANONIFY = ( $_[0] =~ s{http://anonscm.debian.org/bzr/bzr/}{http://anonscm.debian.org/bzr/}; }, git => sub { + if ($_[0] =~ s{git://(?:git|anonscm).debian.org/~}{git://anonscm.debian.org/users/}) { + $_[1] = 'vcs-git-uses-invalid-user-uri'; + } $_[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/}; @@ -1014,11 +1018,12 @@ while (my ($vcs, $splitter) = each %VCS_EXTRACT) { } if ($VCS_CANONIFY{$vcs}) { my $canonicalized = $parts[0]; + my $tag = 'vcs-field-not-canonical'; foreach my $canonify ($VCS_CANONIFY{$vcs}) { - &$canonify($canonicalized); + &$canonify($canonicalized, $tag); } if ($canonicalized ne $parts[0]) { - tag 'vcs-field-not-canonical', $parts[0], $canonicalized; + tag $tag, $parts[0], $canonicalized; } } } diff --git a/checks/fields.desc b/checks/fields.desc index ef0a7fe..978a7e2 100644 --- a/checks/fields.desc +++ b/checks/fields.desc @@ -995,6 +995,21 @@ Info: The VCS-* field contains an uncanonical URI. Please update to use and makes debcheckout work independent of the port forwarding and redirections properly working. +Tag: vcs-field-bitrotted +Severity: normal +Certainty: certain +Info: The VCS-* field uses a form which no longer works. Update it to use + the current canonical URI instead, or <tt>debcheckout</tt> will <i>not</i> work. + +Tag: vcs-git-uses-invalid-user-uri +Severity: normal +Certainty: certain +Info: The Vcs-Git field is pointing to a personal repository using + a git://(git|anonscm).debian.org/~$login/$PRJ.git style URI. This is not + recommended since the repository this points is not automatically updated + when pushing to the personal repository. The recommended URI for anonymous + access is git://anonscm.debian.org/users/$login/$PRJ.git. + Tag: lib-recommends-documentation Severity: normal Certainty: possible diff --git a/t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in b/t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in index c37d538..2c53535 100644 --- a/t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in +++ b/t/tests/fields-uncanonical-vcs-fields/debian/debian/control.in @@ -8,7 +8,7 @@ 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://git.debian.org/git/users/djpig/foobar.git -b master +Vcs-Git: git://git.debian.org/~djpig/foobar.git -b master Vcs-Cvs: :pserver:anonym...@cvs.alioth.debian.org:/cvsroot/foobar module Vcs-Bzr: nosmart+http://bzr.debian.org/bzr/collab-maint/foobar diff --git a/t/tests/fields-uncanonical-vcs-fields/desc b/t/tests/fields-uncanonical-vcs-fields/desc index c55751a..8ca8aaf 100644 --- a/t/tests/fields-uncanonical-vcs-fields/desc +++ b/t/tests/fields-uncanonical-vcs-fields/desc @@ -4,3 +4,5 @@ Description: Test for vcs fields needing canonication Version: 1.0 Test-For: vcs-field-not-canonical + vcs-field-bitrotted + vcs-git-uses-invalid-user-uri diff --git a/t/tests/fields-uncanonical-vcs-fields/tags b/t/tests/fields-uncanonical-vcs-fields/tags index 5631249..05df936 100644 --- a/t/tests/fields-uncanonical-vcs-fields/tags +++ b/t/tests/fields-uncanonical-vcs-fields/tags @@ -1,6 +1,6 @@ -I: fields-uncanonical-vcs-fields source: vcs-field-not-canonical :pserver:anonym...@cvs.alioth.debian.org:/cvsroot/foobar :pserver:anonym...@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 +W: fields-uncanonical-vcs-fields source: vcs-field-bitrotted :pserver:anonym...@cvs.alioth.debian.org:/cvsroot/foobar :pserver:anonym...@anonscm.debian.org:/cvs/foobar +W: fields-uncanonical-vcs-fields source: vcs-git-uses-invalid-user-uri git://git.debian.org/~djpig/foobar.git git://anonscm.debian.org/users/djpig/foobar.git diff --git a/t/tests/fields-vcs-fields/desc b/t/tests/fields-vcs-fields/desc index 171f8bd..3f3d19a 100644 --- a/t/tests/fields-vcs-fields/desc +++ b/t/tests/fields-vcs-fields/desc @@ -7,3 +7,5 @@ Test-Against: vcs-field-uses-unknown-uri-format vcs-field-has-unexpected-spaces vcs-field-not-canonical + vcs-field-bitrotted + vcs-git-uses-invalid-user-uri -- 1.7.10.4
-- Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!