Subject: Re: pkgsrc changes.
To: Alistair Crooks <azcb0@amdahl.com>
From: Todd Vierling <tv@pobox.com>
List: current-users
Date: 06/22/1998 13:18:30
On Mon, 22 Jun 1998, Alistair Crooks wrote:

: I have tested this across a lot of packages, but my test machine is a
: 486 DX2/66 - not the fastest beast on this Earth, so I could have missed
: something. If so, please use send-pr in the usual way.

There is a situation this does not handle:  where ${MAN?PREFIX} is not the
empty string, as it is for MAN3PREFIX in lang/perl5.  The automatic handling
cannot cope with a path that isn't of the form man/{man,cat}?/*.? (without
extra stuff at the front).

: 2. The various INFO_FILES files are in the same boat here - we should be
: able to get rid of the INFO_FILES definition in the package Makefiles by
: using the information in the PLIST.

Good.

: 3. I'd like to do much the same kind of thing for shared object
: configuration on a.out NetBSD ports, and symbolic link creation on ELF
: NetBSD ports. Once again, the information is in the PLIST, and the type
: of port can be ascertained from OBJECT_FMT in pkgsrc/mk/bsd.own.mk.
: This would mean that the ${LDCONFIG} || ${TRUE} statements could be
: deleted from the package Makefiles, and that some more packages would
: work on ELF.

This drops the need for a SHLIB_FILES, too.  I still have this on my todo
list, and will have some diffs this week based on methods you're using for
manpages.

ross said that he'll be loaning me an alpha soon to do ELF work on the
toolchain and pkgs and whatever else needs integrating still, so I'll have
an easy way to test all of it, too.

: There are no prizes for guessing where we're going in the long-term with
: this.

Right - and though I keep hearing the statement "But PLISTs are so much
work...", just remember, if it's just one source of information, then it
isn't so bad.  SVR4 packages have to have far more, but they have a PLIST
too; it's called "pkgmap".  The same goes for a lot of other packaging
systems.

In fact, if you want a script to compare your /usr/pkg tree against the
information contained in the PLISTs (this was what originally made me find
the unnecessary @exec/@unexec symlink stuff in several pkgs), try this.  Its
output looks startlingly like "checkflist".  :>

#!/bin/sh
PREFIX=/usr/pkg
find $PREFIX ! -type d | sort > /tmp/pkgchk_a$$
pkg_info -aLq | egrep "^$PREFIX" | sort > /tmp/pkgchk_b$$
diff /tmp/pkgchk_a$$ /tmp/pkgchk_b$$ | less
rm -f /tmp/pkgchk_?$$

-- 
-- Todd Vierling (Personal tv@pobox.com; Bus. todd_vierling@xn.xerox.com)