Subject: Re: pkg/32471: Modulization of PLIST handling in bsd.pkg.mk
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Johnny C. Lam <jlam@pkgsrc.org>
List: pkgsrc-bugs
Date: 01/10/2006 20:40:02
The following reply was made to PR pkg/32471; it has been noted by GNATS.
From: "Johnny C. Lam" <jlam@pkgsrc.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/32471: Modulization of PLIST handling in bsd.pkg.mk
Date: Tue, 10 Jan 2006 20:37:37 +0000
I have a newer version of these changes. The full summary is that:
(1) Splits out the PLIST-handling code from bsd.pkg.mk into a
separate "plist" module.
(2) Splits out the awk scriptlets into separate awk scripts that
may be joined together to post-process PLISTs. Each of these
awk scripts consolidates the processing for one set of files,
e.g., man pages, info pages, etc., and is more easily commented
than a make variable.
(3) Splits out the print-PLIST code from the regular PLIST code
since they have no common pieces (print-plist.mk vs. plist.mk).
(4) Completely re-implements the shared-library handling to be
more efficient. Along the way, this also fixes a problem for
Mac OS X users where the PLISTs sometimes incorrectly contained
absolute paths.
(5) Completely re-implements the info-file handling so that we
can migrate from INFO_FILES definitions to just adding
info/foo.info entries in the static PLISTs.
(6) Adds commented-out support for automatically compressed or
decompressed info page entries based on the value of MANZ.
These changes will be activated after texinfo.mk has been
replaced by something that is built using the more modern
primitives now available in pkgsrc.
(7) Move the file compression logic into a separate script
"doc-compress" that compresses or decompresses files while
minding symlinks. This script is now called by bsd.pkg.mk to
do the "autmoatic man page handling". In the future, it will
also handle the "automatic info page handling" and possible
others.
In general, the idea is to move stuff out of the Makefiles and into
separate files where we don't need to worry about quoting rules and
where each file can have a separate history of commits. This simplifies
the makefile logic (especially in terms of readability) and also
simplifies maintenance of the code.
The code is at:
http://www.NetBSD.org/~jlam/plist.diff
http://www.NetBSD.org/~jlam/plist.tar.gz
They should be applied/extracted within pkgsrc/mk. I don't have time
to deal with this patch. If this works, someone please commit this.
Cheers,
-- Johnny Lam <jlam@pkgsrc.org>