Update to 2.18.11

* No longer warn for manpages installed under share/man [1]
* Remove code to combine comments and blank lines in a section [2]
* Remove code to combine comments and blank lines [3]
* USE_PYQT sets the necessary QT USES [4]
* Only warn on lack of INSTALLS_ICONS when USES=gnome is set [5]
* Check for files that have been patched multiple times [6]

PR:		240359 [2]
		244480 [3]
		240445 [4]
		244039 [5]
		243600 [6]
Submitted by:	0mp [1] [5]
		vladimir.chukharev@gmail.com [4]
		swills [6]
Differential Revision:	D23896 [1]
This commit is contained in:
Joe Marcus Clarke 2020-03-02 22:23:10 +00:00
parent 92334fac0b
commit 55d93fd6e9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=527653
2 changed files with 39 additions and 13 deletions

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= portlint
PORTVERSION= 2.18.10
PORTVERSION= 2.18.11
CATEGORIES= ports-mgmt
MASTER_SITES= # none
DISTFILES= # none

View File

@ -15,7 +15,7 @@
# was removed.
#
# $FreeBSD$
# $MCom: portlint/portlint.pl,v 1.498 2019/09/04 15:03:38 jclarke Exp $
# $MCom: portlint/portlint.pl,v 1.505 2020/03/02 22:19:11 jclarke Exp $
#
use strict;
@ -50,7 +50,7 @@ $portdir = '.';
# version variables
my $major = 2;
my $minor = 18;
my $micro = 10;
my $micro = 11;
# default setting - for FreeBSD
my $portsdir = '/usr/ports';
@ -160,7 +160,7 @@ my @varlist = qw(
ALLFILES CHECKSUM_ALGORITHMS INSTALLS_ICONS GNU_CONFIGURE
CONFIGURE_ARGS MASTER_SITE_SUBDIR LICENSE LICENSE_COMB NO_STAGE
DEVELOPER SUB_FILES SHEBANG_LANG MASTER_SITES_SUBDIRS FLAVORS
USE_PYTHON LICENSE_PERMS
USE_PYTHON LICENSE_PERMS USE_PYQT
);
my %makevar;
@ -307,6 +307,8 @@ foreach my $i (@checker) {
}
}
checkpatches(<$makevar{FILESDIR}/patch-*>);
if ($committer) {
sub find_proc {
return if /^\.\.?$/;
@ -895,10 +897,11 @@ sub checkplist {
"accordingly.") unless ($check_xxxdir_ok{$3} eq $1);
}
if ($_ =~ m#share/man/#) {
&perror("FATAL", $file, $., "Man pages must be installed into ".
"``man'' not ``share/man''.");
}
# It is now recommended for manpages to be installed under share/man.
#if ($_ =~ m#share/man/#) {
# &perror("FATAL", $file, $., "Man pages must be installed into ".
# "``man'' not ``share/man''.");
#}
if ($_ =~ m#man/([^/]+/)?man[1-9ln]/([^\.]+\.[1-9ln])(\.gz)?$#) {
if (!$3) {
@ -1035,6 +1038,26 @@ sub checklastline {
close(IN);
}
sub checkpatches {
my (@patchfiles) = @_;
my @patched_files;
foreach my $file (@patchfiles) {
open(IN, "< $file") || return 0;
while (<IN>) {
if ($_ =~ /^\+\+\+\s(.*?)\s.*/) {
#if($1 ~~ @patched_files) {
if (grep {$_ eq $1} @patched_files) {
&perror("WARN", $file, -1, "$1 patched multiple times");
}
else {
push(@patched_files, $1);
}
}
}
}
}
sub checkpatch {
my($file) = @_;
my($whole);
@ -1741,6 +1764,10 @@ sub checkmakefile {
foreach my $i ((@opt, @aopt, @aropt)) {
# skip global options
next if ($i eq 'DOCS' or $i eq 'NLS' or $i eq 'EXAMPLES' or $i eq 'IPV6' or $i eq 'X11' or $i eq 'DEBUG');
my $odescr = &get_makevar("${i}_DESC");
if (!$odescr) {
&perror("FATAL", $file, -1, "OPTION $i does not have a description (${i}_DESC).");
}
if (!grep(/^$i$/, (@mopt, @popt))) {
if ($whole !~ /\n${i}_($m)(_\w+)?(.)?=[^\n]+/ and $whole !~ /\n[-\w]+-${i}-(on|off):\n/) {
if (!$slaveport) {
@ -2332,7 +2359,7 @@ xargs xmkmf
#
# whole file: USES=pyqt:5
#
if ($makevar{USES} =~ /\bpyqt:5/ && $whole !~ /^USE_PYQT[?:]?=\s(.*)$/m) {
if ($makevar{USES} =~ /\bpyqt:5/ && $whole !~ /^USE_PYQT[?:]?=\s(.*)$/m && $makevar{USE_PYQT} eq '') {
&perror("WARN", $file, -1, "When USES=pyqt:5 is defined, you must also define ".
"USE_PYQT=xxxx");
}
@ -2591,7 +2618,8 @@ xargs xmkmf
$tmp = $rawwhole;
$tmp =~ s/\\\n/ /g;
# keep comment, blank line, comment in the same section
$tmp =~ s/(#.*\n)\n+(#.*)/$1$2/g;
# XXX: Take this out since it breaks some commenting; see PR240359.
#$tmp =~ s/(#.*\n)\n+(#.*)/$1$2/g;
@sections = split(/\n\n+/, $tmp);
for ($i = 0; $i <= $#sections; $i++) {
if ($sections[$i] !~ /\n$/) {
@ -3855,10 +3883,8 @@ sub urlcheck {
}
}
# GNOME wants INSTALL_ICONS, but Qt-based applications, including KDE, don't.
# Be pessimistic: everything needs it unless we know it doesn't.
sub needs_installs_icons {
return $makevar{USE_QT5} eq '' && $makevar{USE_QT} eq ''
return $makevar{USES} =~ /gnome/
}
sub TRUE {1;}