Package: lintian Version: 2.5.4 Severity: wishlist The way Alioth is setup, using ~user/project.git as the path for the git:// URI accesses wagner.d.o:~user/public_git/project.git. This directory isn't automatically updated by pushes (which go to vasks.d.o:~user/public_git/project.git and are synchronized to wagner:/srv/git.debian.org/users/user/project.git). The URI has to be git://anonscm.debian.org/users/user/project.git. Attached patch adds a check for this, in a way that could potentially be expanded to add other checks for valid URIs, as well as a test for the addition. Thanks for your consideration. James -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.1.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages lintian depends on: ii binutils 2.22-2 ii bzip2 1.0.6-1 ii diffstat 1.54-1 ii file 5.09-2 ii gettext 0.18.1.1-5 ii intltool-debian 0.35.0+20060710.1 ii libapt-pkg-perl 0.1.25+b1 ii libclass-accessor-perl 0.34-1 ii libclone-perl 0.31-1+b2 ii libdpkg-perl 1.16.1.2 ii libemail-valid-perl 0.185-1 ii libipc-run-perl 0.90-1 ii libparse-debianchangelog-perl 1.2.0-1 ii libtimedate-perl 1.2000-1 ii liburi-perl 1.59-1 ii locales 2.13-23 ii man-db 2.6.0.2-3 ii patchutils 0.3.2-1 ii perl [libdigest-sha-perl] 5.14.2-6 ii unzip 6.0-5 lintian recommends no packages. Versions of packages lintian suggests: ii binutils-multiarch <none> ii dpkg-dev 1.16.1.2 ii libhtml-parser-perl 3.69-1+b1 ii libtext-template-perl <none> ii man-db 2.6.0.2-3 ii xz-utils 5.1.1alpha+20110809-3 -- no debconf information -- James GPG Key: 4096R/331BA3DB 2011-12-05 James McCoy <jamessan@debian.org>
From 417ca4a0c297685c87ed33e7ed22bac3f6884e7b Mon Sep 17 00:00:00 2001 From: James McCoy <jamessan@debian.org> Date: Sun, 18 Dec 2011 18:50:02 -0500 Subject: [PATCH] Added check for ~user/project.git Alioth Vcs-Git URIs git:// URIs for Alioth repositories need to use users/user/project.git. ~user/project.git accesses the user's public_git repository on wagner instead of the directory that's synchronized from vasks (git.d.o). Unless the user goes through extra steps, ~user/project.git will not contain current information. Signed-off-by: James McCoy <jamessan@debian.org> --- checks/fields | 13 +++++++++++++ checks/fields.desc | 9 +++++++++ testset/fields/debian/control | 1 + testset/tags.fields | 1 + 4 files changed, 24 insertions(+), 0 deletions(-) diff --git a/checks/fields b/checks/fields index 882e5e2..a0bb58f 100644 --- a/checks/fields +++ b/checks/fields @@ -145,6 +145,12 @@ my %VCS_VALID_URIS = ( svn => qr;^(?:svn\+)?ssh://;, ); +# Checks for invalid Vcs-* formats. Key must start with ${vcs}_ and Value is +# [ regex, tag ]. +my %VCS_INVALID_URIS = ( + git_alioth_user => [ qr;^git://(?:git|anonscm).debian.org/~;, 'vcs-git-uses-invalid-user-uri' ], +); + # Python development packages that are used almost always just for building # architecture-dependent modules. Used to check for unnecessary build # dependencies for architecture-independent source packages. @@ -958,6 +964,13 @@ while (my ($vcs, $regex) = each %VCS_RECOMMENDED_URIS) { if (defined $info->field("vcs-$vcs")) { my $uri = $info->field("vcs-$vcs"); unfold("vcs-$vcs", \$uri); + for my $vcs_check (grep { /^${vcs}_/ } keys %VCS_INVALID_URIS) { + if (my $invalid = $VCS_INVALID_URIS{$vcs_check}) { + if ($uri =~ $invalid->[0]) { + tag $invalid->[1], "vcs-$vcs", $uri; + } + } + } if ($uri !~ $regex) { if ($VCS_VALID_URIS{$vcs} and $uri =~ $VCS_VALID_URIS{$vcs}) { tag 'vcs-field-uses-not-recommended-uri-format', "vcs-$vcs", $uri; diff --git a/checks/fields.desc b/checks/fields.desc index 6b503c9..5ca1a72 100644 --- a/checks/fields.desc +++ b/checks/fields.desc @@ -1007,6 +1007,15 @@ Certainty: possible Info: The VCS-* field uses an URI which doesn't match any known format. You might have forgotten the protocol before the hostname. +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/testset/fields/debian/control b/testset/fields/debian/control index d980a6e..ad4f6a7 100644 --- a/testset/fields/debian/control +++ b/testset/fields/debian/control @@ -3,6 +3,7 @@ Section: does-not-exist Priority: standard Maintainer: Lintian Maintainers <lintian-maint@debian.org> Standards-Version: 3.9.2 +Vcs-Git: git://git.debian.org/~user/project.git Package: fields Essential: no diff --git a/testset/tags.fields b/testset/tags.fields index 1c5a102..78f77cc 100644 --- a/testset/tags.fields +++ b/testset/tags.fields @@ -15,6 +15,7 @@ W: fields source: native-package-with-dash-version W: fields source: no-debian-copyright W: fields source: package-uses-deprecated-debhelper-compat-version 1 W: fields source: source-nmu-has-incorrect-version-number 1.5-.3 +W: fields source: vcs-git-uses-invalid-user-uri vcs-git git://git.debian.org/~user/project.git W: fields: debian-revision-not-well-formed 1.5-.3 W: fields: essential-no-not-needed W: fields: unknown-section does-not-exist -- 1.7.7.3
Attachment:
signature.asc
Description: Digital signature