This is an automated email from the git hooks/post-receive script. abe pushed a commit to branch ppt-lc-mover in repository lintian.
commit 544462e8b76ce20f97f5a65bc3ae2345e9f2a379 Author: Axel Beckert <a...@deuxchevaux.org> Date: Tue Aug 11 13:57:56 2015 +0200 Import application-not-library check from pkg-perl-tools Changes compared to what was in pkg-perl-tools: * Prefix "pkg-perl" respectively "pkg_perl" removed. * Added check to debian main profile. --- checks/application-not-library.desc | 51 ++++++++++++++++++++++++ checks/application-not-library.pm | 79 +++++++++++++++++++++++++++++++++++++ profiles/debian/main.profile | 16 ++++---- 3 files changed, 138 insertions(+), 8 deletions(-) diff --git a/checks/application-not-library.desc b/checks/application-not-library.desc new file mode 100644 index 0000000..8cbabf8 --- /dev/null +++ b/checks/application-not-library.desc @@ -0,0 +1,51 @@ +Check-Script: application-not-library +Author: Axel Beckert <a...@debian.org> +Type: binary +Info: application packaged like a library + +Tag: libapp-perl-package-name +Severity: important +Certainty: certain +Info: This package contains a program in $PATH and is named + libapp-*-perl which usually implies that the upstream project on CPAN + is under the App:: hierachy for applications. Instead of + libfoo-bar-perl it should be named foo-bar. + . + People tend to skip library-like named packages when looking for + applications in the package list and hence wouldn't notice this + package. See + http://pkg-perl.alioth.debian.org/policy.html#package_naming_policy + for some more reasoning and details. + +Tag: library-package-name-for-application +Severity: normal +Certainty: possible +Experimental: yes +Info: This package contains a program in $PATH but is named like a + library. E.g. instead of libfoo-bar-perl it should be named just + foo-bar. + . + People tend to skip library-like named packages when looking for + applications in the package list and hence wouldn't notice this + package. See + http://pkg-perl.alioth.debian.org/policy.html#package_naming_policy + for some (not perl-specific) reasoning. + . + In case the program in $PATH is only a helper tool and the package is + primarily a library, please add a lintian override for this tag. + +Tag: application-in-library-section +Severity: normal +Certainty: possible +Experimental: yes +Info: This package contains a binary in $PATH but is in a section just + thought for libraries. It likely should be in another section like + e.g. utils, text, devel, misc, etc., but not in e.g. perl, ruby or + python. + . + People tend to skip these package sections when looking for + applications in the package list and hence wouldn't notice this + package. + . + In case the program in $PATH is only a helper tool and the package is + primarily a library, please add a lintian override for this tag. diff --git a/checks/application-not-library.pm b/checks/application-not-library.pm new file mode 100644 index 0000000..01dbaa7 --- /dev/null +++ b/checks/application-not-library.pm @@ -0,0 +1,79 @@ +# application-not-library -- find applications packaged like a library -*- perl -*- +# +# Copyright © 2014 Axel Beckert <a...@debian.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, you can find it on the World Wide +# Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. + +package Lintian::application_not_library; + +use strict; +use warnings; + +use Lintian::Tags qw(tag); + +sub run { + my ( $pkg, $type, $info, $proc, $group ) = @_; + + return if # Big exception list for all tags + $pkg =~ /^perl(-base)?$/ or # perl itself + $pkg =~ /^ruby[\d.]*$/ or # ruby itself + $pkg =~ /^python[\d.]*(-dev|-minimal)?$/ or # python itself + $pkg =~ /^cpan(plus|minus)$/ or # cpan package managers + $pkg =~ /^libmodule-.*-perl$/ or # perl module tools + $pkg =~ /^libdevel-.*-perl$/ or # perl debugging tools + $pkg =~ /^libperl.*-perl$/ or # perl-handling tools + $pkg =~ /^libtest-.*-perl$/ or # perl testing tools + $pkg =~ /^python[\d.]*-(stdeb|setuptools)$/ or # python packaging stuff + $pkg =~ /^gem2deb/ or # ruby packaging stuff + $pkg =~ /^xulrunner/ or # rendering engine + $pkg =~ /^lib.*-(utils|tools|bin|dev)/ or # generic library helpers + grep { $pkg eq $_ } qw(rake bundler coderay kdelibs-bin); # whitelist + + my @programs = (); + foreach my $binpath (qw(bin sbin usr/bin usr/sbin usr/games)) { + my $bindir = $info->index("$binpath/"); + next unless $bindir; + + push(@programs, + grep { !/update$/ } # ignore library maintenance tools + grep { !/properties$/ } # ignore library configuration tools + map { $_->name; } + grep { $_->basename !~ /^dh_/ } # ignore debhelper plugins + $bindir->children); + } + + return unless @programs; + + # Check for library style package names + if ($pkg =~ /^lib(.+)-perl$|^ruby-|^python[\d.]*-/) { + if ($pkg =~ /^libapp(.+)-perl$/) { + tag('libapp-perl-package-name', @programs); + } else { + tag('library-package-name-for-application', @programs); + } + } + + # Check for wrong section + my $section = $info->field('section'); + if ($section =~ /perl|python|ruby|^libs/) { # oldlibs is ok + tag('application-in-library-section', "$section", @programs); + } + + return; +} + +1; diff --git a/profiles/debian/main.profile b/profiles/debian/main.profile index 7c27ff3..42617fd 100644 --- a/profiles/debian/main.profile +++ b/profiles/debian/main.profile @@ -1,13 +1,13 @@ # This profile is auto-generated Profile: debian/main Extends: debian/ftp-master-auto-reject -Enable-Tags-From-Check: apache2, automake, binaries, changelog-file, changes-file, - conffiles, control-file, control-files, copyright-file, cruft, dbus, deb-format, - debconf, debhelper, debian-readme, debian-source-dir, description, - duplicate-files, fields, filename-length, files, group-checks, huge-usr-share, - infofiles, init.d, java, lintian, manpages, md5sums, menu-format, menus, nmu, - ocaml, patch-systems, phppear, po-debconf, rules, scripts, shared-libs, - source-copyright, standards-version, symlinks, systemd, testsuite, - version-substvars, watch-file +Enable-Tags-From-Check: apache2, application-not-library, automake, binaries, + changelog-file, changes-file, conffiles, control-file, control-files, + copyright-file, cruft, dbus, deb-format, debconf, debhelper, debian-readme, + debian-source-dir, description, duplicate-files, fields, filename-length, files, + group-checks, huge-usr-share, infofiles, init.d, java, lintian, manpages, + md5sums, menu-format, menus, nmu, ocaml, patch-systems, phppear, po-debconf, + rules, scripts, shared-libs, source-copyright, standards-version, symlinks, + systemd, testsuite, version-substvars, watch-file Disable-Tags: hardening-no-stackprotector -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git -- To UNSUBSCRIBE, email to debian-lint-maint-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1zp8qb-0005o1...@moszumanska.debian.org