This is an automated email from the git hooks/post-receive script. lamby pushed a commit to branch master in repository lintian.
commit 5987bf72b658df48004d3cfaefc4774ee670abd4 Author: Chris Lamb <[email protected]> Date: Thu Mar 1 09:13:19 2018 +0000 Warn about packages that are missing a Vcs-Browser header when we know that they have at least one Vcs-* header that has has a browser-based interface. (Closes: #891688) --- checks/fields.desc | 11 ++++++++ checks/fields.pm | 13 +++++++++ data/fields/vcs-browsers | 31 ++++++++++++++++++++++ debian/changelog | 6 +++++ .../debian/debian/control.in | 18 +++++++++++++ t/tests/fields-missing-vcs-browser/desc | 5 ++++ t/tests/fields-missing-vcs-browser/tags | 1 + 7 files changed, 85 insertions(+) diff --git a/checks/fields.desc b/checks/fields.desc index a455caa..60181ab 100644 --- a/checks/fields.desc +++ b/checks/fields.desc @@ -1435,3 +1435,14 @@ Info: The specified package appears to be a documentation package . Please remove the superfluous trailing "s" from the package name. Ref: policy 12.3 + +Tag: missing-vcs-browser-field +Severity: wishlist +Certainty: certain +Info: A Vcs-* field in this package is pointing to a repository that + supports browsing of the repository via a web browser. + . + This is typically a nicer user-experience for developers and avoids + unnecessary and time-consuming clones of the repository. + . + Please add a suitable Vcs-Browser field to the package. diff --git a/checks/fields.pm b/checks/fields.pm index 2ef0d47..7d71082 100644 --- a/checks/fields.pm +++ b/checks/fields.pm @@ -52,6 +52,8 @@ our $known_build_essential our $KNOWN_BINARY_FIELDS = Lintian::Data->new('fields/binary-fields'); our $KNOWN_UDEB_FIELDS = Lintian::Data->new('fields/udeb-fields'); our $KNOWN_BUILD_PROFILES = Lintian::Data->new('fields/build-profiles'); +our $KNOWN_VCS_BROWSERS + = Lintian::Data->new('fields/vcs-browsers', qr/\s*~~\s*/, sub { $_[1]; }); our %KNOWN_ARCHIVE_PARTS = map { $_ => 1 } ('non-free', 'contrib'); @@ -1392,6 +1394,17 @@ sub run { and $is_comaintained and not %seen_vcs; + # Check for missing Vcs-Browser headers + if (!defined $info->field('vcs-browser')) { + foreach my $regex ($KNOWN_VCS_BROWSERS->all) { + my $vcs = $KNOWN_VCS_BROWSERS->value($regex); + if ($info->field("vcs-$vcs", '') =~ m/^$regex/xi) { + tag 'missing-vcs-browser-field', "vcs-$vcs"; + last; # Only warn once + } + } + } + #---- Checksums tag 'no-strong-digests-in-dsc' diff --git a/data/fields/vcs-browsers b/data/fields/vcs-browsers new file mode 100644 index 0000000..bb3e0fb --- /dev/null +++ b/data/fields/vcs-browsers @@ -0,0 +1,31 @@ +# List of Vcs-* fields that should have a Vcs-Browser equivalent +# +# Format: +# ^regex \x\s) ~~ vcs + +git://anonscm.debian.org/ ~~ git +https?://anonscm.debian.org/git/ ~~ git +https?://anonscm.debian.org/cgit/ ~~ git +git://git.debian.org/ ~~ git +https?://git.debian.org/ ~~ git +git://alioth.debian.org/ ~~ git +https?://alioth.debian.org/anonscm/git/ ~~ git +git://anongit.debian.org/ ~~ git +https?://git.dgit.debian.org/ ~~ git +git://anongit.freedesktop.org/ ~~ git +git://anongit.kde.org/ ~~ git +git://git.code.sf.net/ ~~ git +https?://git.code.sf.net/p/ ~~ git +git://*.git.sourceforge.net/ ~~ git +git://[email protected]: ~~ git +git://github.com/ ~~ git +https?://github.com/ ~~ git [email protected]: ~~ git +https?://gitlab.*/ ~~ git +https?://salsa.debian.org/ ~~ git +git://git.kernel.org/ ~~ git +git://gitorious.org/ ~~ git +git://*.branchable.com/ ~~ git +git://repo.or.cz/ ~~ git +https?://repo.or.cz/ ~~ git +https?://bitbucket.org/ ~~ git diff --git a/debian/changelog b/debian/changelog index 5536766..2a139d0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,12 @@ lintian (2.5.78) UNRELEASED; urgency=medium XXX: generate tag summary + * checks/fields.{desc,pm}: + + [CL] Warn about packages that are missing a Vcs-Browser header when + we know that they have at least one Vcs-* header that has has a + browser-based interface. Thanks to Paul Wise for the report. + (Closes: #891688) + -- Chris Lamb <[email protected]> Tue, 27 Feb 2018 14:04:15 +0000 lintian (2.5.77) unstable; urgency=medium diff --git a/t/tests/fields-missing-vcs-browser/debian/debian/control.in b/t/tests/fields-missing-vcs-browser/debian/debian/control.in new file mode 100644 index 0000000..23fc0c1 --- /dev/null +++ b/t/tests/fields-missing-vcs-browser/debian/debian/control.in @@ -0,0 +1,18 @@ +Source: {$source} +Priority: optional +Section: {$section} +Maintainer: {$author} +Standards-Version: {$standards_version} +Build-Depends: {$build_depends} +Rules-Requires-Root: no +Homepage: https://lintian.debian.org/ +Vcs-Git: https://salsa.debian.org/project/repo.git + +Package: {$source} +Architecture: {$architecture} +Depends: $\{misc:Depends\} +Description: {$description} + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. diff --git a/t/tests/fields-missing-vcs-browser/desc b/t/tests/fields-missing-vcs-browser/desc new file mode 100644 index 0000000..0cd59c8 --- /dev/null +++ b/t/tests/fields-missing-vcs-browser/desc @@ -0,0 +1,5 @@ +Testname: fields-missing-vcs-browser +Version: 1.0 +Description: Check for packages missing Vcs-Browser +Test-For: + missing-vcs-browser-field diff --git a/t/tests/fields-missing-vcs-browser/tags b/t/tests/fields-missing-vcs-browser/tags new file mode 100644 index 0000000..1901a32 --- /dev/null +++ b/t/tests/fields-missing-vcs-browser/tags @@ -0,0 +1 @@ +I: fields-missing-vcs-browser source: missing-vcs-browser-field vcs-git -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git

