Significant rototill of lintpkgsrc.pl, converting to a rather twisted
hierarchy of PkgVer Pkgs and PkgList objects with assorted arbitrary
methods, all based on existing usage rather than ideal design.
Actual fixes found along the way:
- Handle := in makefiles
- Better handle parenthesis and "" in make conditionals
- parse bsd.pkg.mk to extract _REQD values (hence the previous line)
- Add missing 'key' in hash iteration
- Do not repeat includes (evolution longer depends on jpeg 45 times)
Still have to handle such delightful constructs as
DEPENDS += {qt2-designer>=2.2.4,qt2-designer-kde>=2.3.1nb1} in a sane way
references of the pkglint package.
_PKGSRCDIR is an internal definition in bsd.pkg.mk, and a few packages
which would like to refer to other packages in the build tree. It should
not be set by users, but neither should it stop a user from building a
package if it is defined, so make it obvious that this is the case.
but "lintpkgsrc -d" output reduced from >7000 lines to ~700.
First part of diff fixes most ruby* complaints, second part the general
"Unknown package: 'UNDEFINED' version missing" message.
- lintpkgsrc: Set BSD_PKG_MK, and ensure .CURDIR is correct when running
with -D. Also remove an articulated lorry load of single quotes.
Many thanks to wiz who added PKGREVISION before I lamely managed to get
around to it :)
Nearly a complete rewrite in order to deal with the following situation:
a package's Makefile include a Makefile fragment (like a buildlink.mk file)
which does not exist, so `$MAKE show-depends-dirs' cannot be run. To resolve
this pkgcvsupdate now try to figure out which package provide the missing file
and update it first (and its dependencies), it will update a second time
the crippled package in case the fragment - hopefully now in place - brings
along new dependencies.
Thanks to zuntum for this interesting case I overlooked!
Thanks to wiz for the manpage!
Pkgcvsupdate is a tool to ease updating package source files from CVS.
It can update a single package and its dependencies or a whole category of
packages and their dependencies.
Handle -r and -a on the same line (remove mismatched packages, then add)
In the -B case avoid an extra 'make' invocation - reduces time taken on
my system by 45%
miyu% grep nb Makefile
DISTNAME= xfsprogs-1.2.8.srcnb1
miyu% /tmp/pkglint
OK: checking Makefile.
====> WARN: is 'nb1' really ok on DISTNAME, or is it intended for PKGNAME?
OK: checking pkg/PLIST.
OK: checking pkg/DESCR.
OK: checking distinfo.
0 fatal errors and 1 warnings found.
Suggested by Tomasz Luchowski.
New version includes the NetBSD patches. Other changes...
0.51:
* Applied another patch from Ben Collver:
. minor logic problem with verifying INDEX file
. compare and upgrade now work even if INDEX doesn't exist (very nice for
me because INDEX takes >12 hours to generate on my box)
0.50:
* Applied a patch to make this work with NetBSD ports.
* Cleaned up the entire dist a little bit..
Changes from Stoned Elipot to permit setting additional tags in mk.conf
or similar, plus handling and tags (eg: 'x11/acroread x11+i386').
Also expand the manpage slightly and give some examples.