From 55d93fd6e9734f1834f1bda6a305fcd7fd164d26 Mon Sep 17 00:00:00 2001 From: Joe Marcus Clarke Date: Mon, 2 Mar 2020 22:23:10 +0000 Subject: [PATCH] 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] --- ports-mgmt/portlint/Makefile | 2 +- ports-mgmt/portlint/src/portlint.pl | 50 ++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/ports-mgmt/portlint/Makefile b/ports-mgmt/portlint/Makefile index bcbdb8db1868..73637629a953 100644 --- a/ports-mgmt/portlint/Makefile +++ b/ports-mgmt/portlint/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= portlint -PORTVERSION= 2.18.10 +PORTVERSION= 2.18.11 CATEGORIES= ports-mgmt MASTER_SITES= # none DISTFILES= # none diff --git a/ports-mgmt/portlint/src/portlint.pl b/ports-mgmt/portlint/src/portlint.pl index 3081ac345bb5..ea5b141e2762 100644 --- a/ports-mgmt/portlint/src/portlint.pl +++ b/ports-mgmt/portlint/src/portlint.pl @@ -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 () { + 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;}