I'm slowly amassing a list of things that should really be picked up by portlint. Here's what I have noted so far: unnecessary double tab indentation plist entries ending in / ${INSTALL}, ${MKDIR}, etc ending in / @${INSTALL} (install getting silenced) ${PREFIX}/man/man# should be ${MAN#PREFIX} (maybe not; seems broken since STAGE) USES superceding old declaration. ex: USES= perl5 vs USE_PERL5=yes pkg-descr whitespace at EOL -ACNC is not the default, but should be PTHREAD_CFLAGS and PTHREAD_LIBS should be flagged OPTIONS_DEFINE that aren't used or OPTIONS_DEFAULT that don't exist should error
Responsible Changed From-To: freebsd-bugs->freebsd-ports-bugs ports PR.
Responsible Changed From-To: freebsd-ports-bugs->marcus Over to maintainer (via the GNATS Auto Assign Tool)
State Changed From-To: open->feedback Hey, Mark. I'm trying to get a handle on these specific requests. What would really help are some example ports that exhibit the problems you're describing so I can see the issues myself and/or test possible solutions. In particular, the MAN comment is a bit nebulous. And what do you mean by unnecessary double-tab indention? Thanks.
Hi Marcus, I=92ll try to explain these: > unnecessary double tab indentation The Makefile should not have multiple tabs after a variable. example: USES=3D perl5 There should only ever be one tab after the =3D > plist entries ending in / There is never a reason for entries in the pkg-plist to end with a /. = This mostly applies to @dirrm or @dirrmtry entries. There are ports in = the tree that do have this. You can find them with this:=20 find /usr/ports -name pkg-plist -exec egrep "@dir.*/$" {} \; > ${INSTALL}, ${MKDIR}, etc ending in / Same idea as above. These entries in Makefiles should not end in / > @${INSTALL} (install getting silenced) INSTALL should never be silenced; these actions should always be shown = to the user. > ${PREFIX}/man/man# should be ${MAN#PREFIX} (maybe not; seems broken = since STAGE) ${MAN#PREFIX} was the correct way to handle man pages so someone could = actually define a different PREFIX for all man pages. Last I checked it = doesn=92t work with STAGE, which is probably a bug that I need to = report. > USES superceding old declaration. ex: USES=3D perl5 vs USE_PERL5=3Dyes Fairly self explanatory. We should update portlint to identify these old = USE_* when we migration things to USES > pkg-descr whitespace at EOL Whitespace characters at end of lines in pkg-descr should be detected > -ACNC is not the default, but should be Default portlint operation should invoke -ACNC which is much more useful = than the default operation > PTHREAD_CFLAGS and PTHREAD_LIBS should be flagged These have been dead since FreeBSD 6 I believe. They should not be = permitted in Makefiles. > OPTIONS_DEFINE that aren't used or OPTIONS_DEFAULT that don't exist = should error If OPTIONS_DEFINE or OPTIONS_DEFAULT declares things that aren=92t used = it should throw an error. It could be due to a spelling error or perhaps = the person working on the port forgot to actually add its functionality = in the form of: .if ${PORT_OPTIONS:MFOO} or FOO_USES=3D, FOO_BUILD_DEPENDS=3D, FOO_LIB_DEPENDS, etc. hope that helps
Request for support for understanding @sample in pkg-plist Thanks :-)
(In reply to Mark Felder from comment #5) > Request for support for understanding @sample in pkg-plist > > > Thanks :-) Can you point me to a "sample" port :-) ?
I can do you one better -- http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/plist-config.html That has the syntax. We should probably throw an error if @sample is used but the config file referenced doesn't end in .sample
(In reply to Mark Felder from comment #7) > I can do you one better -- > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/plist- > config.html > > That has the syntax. We should probably throw an error if @sample is used > but the config file referenced doesn't end in .sample Thanks, but a sample port will help me test the code. I can find one, but if you have one in mind it saves me time.
I just committed sysutils/clsync which you can test it on
Have a look at http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi/portlint/portlint.pl.diff?r1=1.315&r2=1.316&f=h . Seems to be working.
Another feature request: "Never use INSTALL_LIB to install static .a files, INSTALL_LIB is only for dynamic .so libraries. Use INSTALL_DATA in this case."
Is this still relevant?
ping!
I cannot check if all of these things are fixed. But this PR is very old and a lot of things had changed. I close here with overcome by events. If there is somethings left, please reopen a new PR (with a new "wishlist").