aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2021-11-13 18:19:34 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2021-11-13 18:19:34 +0000
commitc8fa510269fd8739e87703632b626dc0bccfe2ce (patch)
treea2409b00a03e43e65a08962b532b6d1cb03694e7
parentf25bb5dc813304822ec6bb9811f4d4165240b065 (diff)
downloadports-c8fa510269fd8739e87703632b626dc0bccfe2ce.tar.gz
ports-c8fa510269fd8739e87703632b626dc0bccfe2ce.zip
ports-mgmt/portlint: Update to 2.19.9
* Update CONFLICTS check to cover all variables and checks performed by bsd.port.mk [1] * Add some other allowed fully-qualified paths [2] * Don't consider variable substitution when checking DEPENDS [3] PR: 259813 [2] 259244 [3] Sybmitted by: se [1] gerald [2] Differential Revision: https://reviews.freebsd.org/D32733 [1]
-rw-r--r--ports-mgmt/portlint/Makefile2
-rw-r--r--ports-mgmt/portlint/src/portlint.pl51
2 files changed, 37 insertions, 16 deletions
diff --git a/ports-mgmt/portlint/Makefile b/ports-mgmt/portlint/Makefile
index 41bec3134480..3149b7c9a1cd 100644
--- a/ports-mgmt/portlint/Makefile
+++ b/ports-mgmt/portlint/Makefile
@@ -1,7 +1,7 @@
# Created by: Jun-ichiro itojun Hagino <itojun@itojun.org>
PORTNAME= portlint
-PORTVERSION= 2.19.8
+PORTVERSION= 2.19.9
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 1c5b7da8fa7b..87777de21918 100644
--- a/ports-mgmt/portlint/src/portlint.pl
+++ b/ports-mgmt/portlint/src/portlint.pl
@@ -44,12 +44,12 @@ $checkmfiles = 0;
$contblank = 1;
$portdir = '.';
-@ALLOWED_FULL_PATHS = qw(/boot/loader.conf /compat/ /dev/null /etc/inetd.conf);
+@ALLOWED_FULL_PATHS = qw(/boot/loader.conf /compat/ /dev/null /etc/fstab /etc/inetd.conf /proc);
# version variables
my $major = 2;
my $minor = 19;
-my $micro = 8;
+my $micro = 9;
# default setting - for FreeBSD
my $portsdir = '/usr/ports';
@@ -154,13 +154,14 @@ chdir "$portdir" || die "$portdir: $!";
# get make vars
my @varlist = qw(
- PORTNAME PORTVERSION PORTREVISION PORTEPOCH PKGNAME PKGNAMEPREFIX
- PKGNAMESUFFIX DISTVERSIONPREFIX DISTVERSION DISTVERSIONSUFFIX
- DISTNAME DISTFILES CATEGORIES MASTERDIR MAINTAINER MASTER_SITES
- WRKDIR WRKSRC NO_WRKSUBDIR SCRIPTDIR FILESDIR
+ PORTNAME PORTVERSION PORTREVISION PORTEPOCH PKGNAME PKGBASE
+ PKGNAMEPREFIX PKGNAMESUFFIX DISTVERSIONPREFIX DISTVERSION
+ DISTVERSIONSUFFIX DISTNAME DISTFILES CATEGORIES MASTERDIR MAINTAINER
+ MASTER_SITES WRKDIR WRKSRC NO_WRKSUBDIR SCRIPTDIR FILESDIR
PKGDIR COMMENT DESCR PLIST PKGCATEGORY PKGINSTALL PKGDEINSTALL
PKGREQ PKGMESSAGE DISTINFO_FILE .CURDIR USE_LDCONFIG USE_AUTOTOOLS
- USE_GNOME USE_PERL5 USE_QT USE_QT5 INDEXFILE PKGORIGIN CONFLICTS PKG_VERSION
+ USE_GNOME USE_PERL5 USE_QT USE_QT5 INDEXFILE PKGORIGIN
+ CONFLICTS CONFLICTS_BUILD CONFLICTS_INSTALL PKG_VERSION
PLIST_FILES PLIST_DIRS PORTDOCS PORTEXAMPLES
OPTIONS_DEFINE OPTIONS_RADIO OPTIONS_SINGLE OPTIONS_MULTI
OPTIONS_GROUP OPTIONS_SUB INSTALLS_OMF USE_RC_SUBR USES DIST_SUBDIR
@@ -1161,7 +1162,9 @@ sub check_depends_syntax {
if ($k eq '') {
next;
}
- my @l = split(':', $k);
+ my $tmp_depends = $k;
+ $tmp_depends =~ s/\$\{[^}]+}//g;
+ my @l = split(':', $tmp_depends);
print "OK: checking dependency value for $j.\n"
if ($verbose);
@@ -1378,6 +1381,7 @@ sub checkmakefile {
my $docsused = 0;
my $optused = 0;
my $desktop_entries = '';
+ my $conflicts = "";
my $masterdir = $makevar{MASTERDIR};
if ($masterdir ne '' && $masterdir ne $makevar{'.CURDIR'}) {
@@ -2989,14 +2993,31 @@ DIST_SUBDIR EXTRACT_ONLY
$pkg_version = $makevar{PKG_VERSION};
- if ($makevar{CONFLICTS}) {
+ $conflicts = $makevar{CONFLICTS};
+ if ($makevar{CONFLICTS_BUILD}) {
+ $conflicts .= " " if $conflicts;
+ $conflicts .= $makevar{CONFLICTS_BUILD};
+ }
+ if ($makevar{CONFLICTS_INSTALL}) {
+ $conflicts .= " " if $conflicts;
+ $conflicts .= $makevar{CONFLICTS_INSTALL};
+ }
+ if ($conflicts) {
print "OK: checking CONFLICTS.\n" if ($verbose);
- foreach my $conflict (split ' ', $makevar{CONFLICTS}) {
- `$pkg_version -T '$makevar{PKGNAME}' '$conflict'`;
- my $selfconflict = !$?;
- if ($selfconflict) {
- &perror("FATAL", "", -1, "Package conflicts with itself. ".
- "You should remove \"$conflict\" from CONFLICTS.");
+ my %seen;
+ foreach my $conflict (split ' ', $conflicts) {
+ if (not $seen{$conflict}) {
+ `$pkg_version -T '$makevar{PKGBASE}' '$conflict' || $pkg_version -T '$makevar{PKGNAME}' '$conflict'`;
+ my $selfconflict = !$?;
+ if ($selfconflict) {
+ &perror("FATAL", "", -1, "Package conflicts with itself. ".
+ "You should remove \"$conflict\" from CONFLICTS.");
+ } elsif ($conflict =~ m/-\[0-9\]\*$/) {
+ &perror("WARN", $file, -1, "CONFLICTS definition \"$conflict\" ".
+ "ends in redundant version pattern. ".
+ "You should remove \"-[0-9]*\" from that pattern.");
+ }
+ $seen{$conflict} = 1;
}
}
}