diff options
author | marcus <marcus@FreeBSD.org> | 2005-04-02 09:01:47 +0000 |
---|---|---|
committer | marcus <marcus@FreeBSD.org> | 2005-04-02 09:01:47 +0000 |
commit | 79f2598f2d978820e47aa0fc09fb9dfb7d31d709 (patch) | |
tree | f42dbe04e2334bb58cefaf4806ff8af7e866a3ae /devel/portlint | |
parent | 310d092a50b25e9b54893140675c686cc609bccd (diff) | |
download | FreeBSD-ports-79f2598f2d978820e47aa0fc09fb9dfb7d31d709.zip FreeBSD-ports-79f2598f2d978820e47aa0fc09fb9dfb7d31d709.tar.gz |
Update to 2.7.0.
* Add a check to make sure a WWW is defined in pkg-descr (this is a nice
thing to have) [1]
* Add a slew of Java-related checks (see
http://wikitest.freebsd.org/moin.cgi/JavaPortlint for more details) [2]
* Add @mode to the list of plist directives to warn about [3]
PR: 78126 [1]
78947 [3]
Requested by: hq [2]
Submitted by: leeym [1]
Renato Botelho <renato@galle.com.br> [3]
Diffstat (limited to 'devel/portlint')
-rw-r--r-- | devel/portlint/Makefile | 2 | ||||
-rw-r--r-- | devel/portlint/src/portlint.pl | 118 |
2 files changed, 115 insertions, 5 deletions
diff --git a/devel/portlint/Makefile b/devel/portlint/Makefile index 1789705..1496474 100644 --- a/devel/portlint/Makefile +++ b/devel/portlint/Makefile @@ -8,7 +8,7 @@ # PORTNAME= portlint -PORTVERSION= 2.6.11 +PORTVERSION= 2.7.0 CATEGORIES= devel MASTER_SITES= # none DISTFILES= # none diff --git a/devel/portlint/src/portlint.pl b/devel/portlint/src/portlint.pl index f82a97a..f906f23 100644 --- a/devel/portlint/src/portlint.pl +++ b/devel/portlint/src/portlint.pl @@ -17,7 +17,7 @@ # OpenBSD and NetBSD will be accepted. # # $FreeBSD$ -# $Id: portlint.pl,v 1.73 2005/02/14 08:17:17 marcus Exp $ +# $Id: portlint.pl,v 1.74 2005/03/21 19:50:06 marcus Exp $ # use vars qw/ $opt_a $opt_A $opt_b $opt_C $opt_c $opt_h $opt_t $opt_v $opt_M $opt_N $opt_B $opt_V /; @@ -39,8 +39,8 @@ $portdir = '.'; # version variables my $major = 2; -my $minor = 6; -my $micro = 11; +my $minor = 7; +my $micro = 0; sub l { '[{(]'; } sub r { '[)}]'; } @@ -538,6 +538,10 @@ sub checkdescr { } } + if (!$has_url) { + &perror("WARN: $file: add \"WWW: UR:\" for this port if possible"); + } + if ($has_url && ! $has_www) { &perror("FATAL: $file: contains a URL but no \"WWW:\""); } @@ -635,7 +639,7 @@ sub checkplist { } } elsif ($_ =~ /^\@(comment)/) { $rcsidseen++ if (/\$$rcsidstr[:\$]/); - } elsif ($_ =~ /^\@(owner|group)\s/) { + } elsif ($_ =~ /^\@(owner|group|mode)\s/) { &perror("WARN: $file [$.]: \@$1 should not be needed"); } elsif ($_ =~ /^\@(dirrm|option)/) { ; # no check made @@ -891,6 +895,13 @@ sub checkpatch { $1 eq $rcsidstr; } + if ($committer && $whole =~ /\wjavavm\w/) { + my $lineno = &linenumber($`); + &perror("WARN: $file [$lineno]: since javavmwrapper 2.0, the ". + "``javavm'' command to invoke a JVM is deprecated. Use ". + "``java'' instead"); + } + close(IN); } @@ -911,6 +922,8 @@ sub checkmakefile { my $masterport = 0; my $slaveport = 0; my $use_gnome_hack = 0; + my $use_java = 0; + my $use_ant = 0; my($realwrksrc, $wrksrc, $nowrksubdir) = ('', '', ''); my(@mman, @pman); my(@mopt, @oopt); @@ -1181,6 +1194,13 @@ sub checkmakefile { } } + if ($whole =~ /\n(_USE_BSD_JAVA_MK_1_0)[+?:!]?=/) { + &perror("WARN: $file: This port uses bsd.java.mk 1.0 syntax. ". + "You should consider updating it to 2.0 syntax. ". + "Please refer to the Porter's Handbook for further ". + "information"); + } + # # whole file: direct use of command names # @@ -1263,6 +1283,22 @@ pax perl printf rm rmdir ruby sed sh sort touch tr which xargs xmkmf } # + # while file: check for use of paths that have macro replacements + # + my %pathnames = (); + print "OK: checking for paths that have macro replacements.\n" + if ($verbose); + $pathnames{'${PREFIX}/share/java/classes'} = 'JAVADIR'; + $pathnames{'${PREFIX}/share/java'} = 'JAVASHAREDIR'; + foreach my $i (keys %pathnames) { + my $lineno = &linenumber($`); + if ($j =~ m|$i|gm) { + &perror("FATAL: $file [$lineno]: you should use ". + "$pathnames{$i} rather than $i"); + } + } + + # # whole file: ldconfig must come with "true" command # if ($ldconfigwithtrue @@ -1336,6 +1372,50 @@ pax perl printf rm rmdir ruby sed sh sort touch tr which xargs xmkmf } # + # whole file: USE_JAVA check + # + if ($whole =~ /^USE_JAVA[?:]?=\s*(.*)$/m) { + $use_java = 1; + } + + # + # whole file: USE_ANT check + # + if ($whole =~ /^USE_ANT[?:]?=\s*(.*)$/m) { + $use_ant = 1; + } + + # + # whole file: USE_JAVA not defined, but other Java components are requested + # + if (!$use_java && ($use_ant || $whole =~ /^JAVA_VERSION[?:]?=\s*(.*)$/m || + $whole =~ /^JAVA_OS[?:]?=\s*(.*)$/m || + $whole =~ /^JAVA_VENDOR[?:]?=\s*(.*)$/m || + $whole =~ /^JAVA_RUN[?:]?=\s*(.*)$/m || + $whole =~ /^JAVA_BUILD[?:]?=\s*(.*)$/m || + $whole =~ /^USE_JIKES[?:]?=\s*(.*)$/m)) { + &perror("FATAL: $file: the port uses Java features, but USE_JAVA ". + "is not defined"); + } + + # + # whole file: check for USE_ANT and USE_GMAKE both defined + # + if ($use_ant && $whole =~ /^USE_GMAKE[?:]?=\s*(.*)$/m) { + &perror("WARN: $file: a port shall not define both USE_ANT ". + "and USE_GMAKE"); + } + + # + # whole file: check for JAVA_BUILD and NO_BUILD + # + if ($whole =~ /^NO_BUILD[?:]?=\s*(.*)$/m && + $whole =~ /^JAVA_BUILD[?:]?=\s*(.*)$/m) { + &perror("FATAL: $file: JAVA_BUILD and NO_BUILD cannot be set ". + "at the same time"); + } + + # # slave port check # my $masterdir = $makevar{MASTERDIR}; @@ -1520,6 +1600,22 @@ DIST_SUBDIR EXTRACT_ONLY " if nothing seems apropriate."); } + if ($use_java && !grep /^java$/, @cat) { + &perror("WARN: $file: the port uses Java but is not part of the ". + "``java'' category"); + } + + if (scalar(@cat) == 1 && $cat[0] eq "java") { + &perror("FATAL: $file: the ``java'' category shall not be the only ". + "one for a port"); + } + + if ($newport && scalar(@cat) > 0 && $cat[0] eq "java") { + &perror("WARN: $file: save for ports directly related to the Java ". + "language, porters are encouraged not to use ``java'' as ". + "the main category for a port"); + } + if ($committer && $makevar{'.CURDIR'} =~ m'${portsdir}/([^/]+)/[^/]+/?$') { if ($cat[0] ne $1 && $makevar{PKGCATEGORY} ne $1 ) { &perror("FATAL: $file: category \"$1\" must be listed first"); @@ -2012,6 +2108,14 @@ FETCH_DEPENDS DEPENDS DEPENDS_TARGET "USE_LIBLTDL."); } + # check JAVALIBDIR + if ($m{'dep'} =~ m|share/java/classes|) { + &perror("FATAL: $file: you should use \${JAVALIBDIR} ". + "in BUILD_DEPENDS/RUN_DEPENDS to define ". + "dependencies on JAR files installed in ". + "\${JAVAJARDIR}"); + } + # check backslash in LIB_DEPENDS if ($osname eq 'NetBSD' && $j eq 'LIB_DEPENDS' && $m{'dep'} =~ /\\\\./) { @@ -2250,6 +2354,12 @@ FETCH_DEPENDS DEPENDS DEPENDS_TARGET "use post-patch instead."); } + if ($tmp =~ /^do-build:/m && $use_ant) { + &perror("FATAL: $file: USE_ANT is intended only for ports that ". + "build with Ant. You should not override ``do-build'' when ". + "defining USE_ANT"); + } + # check OPTIONS print "OK: checking OPTIONS.\n" if ($verbose); @oopt = ($makevar{OPTIONS} =~ /(\w+)\s+\".*?\"\s+\w+/sg); |