| Server IP : 185.11.201.71 / Your IP : 192.168.7.18 Web Server : Apache/2.4.29 (Ubuntu) System : Linux tech-virtual-machine 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 User : tech ( 1000) PHP Version : 7.4.28 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/lintian/checks/ |
Upload File : |
# application-not-library -- find applications packaged like a library -*- perl -*-
#
# Copyright © 2014-2015 Axel Beckert <abe@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);
use List::MoreUtils qw(any);
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/ or # cpan related tools
$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 helpers
any { $pkg eq $_ } qw(
rake
bundler
coderay
kdelibs-bin
libapp-options-perl
); # 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;