Subject: Shared object handling in pkgsrc
To: None <tech-pkg@NetBSD.ORG>
From: Alistair Crooks <azcb0@amdahl.com>
List: tech-pkg
Date: 07/14/1998 04:48:02
[Cross posted to current-users for the last time. From now on, all
package and pkgsrc related issues will be dealt with on tech-pkg. Please
respect this if following up.]

I've just added some logic to bsd.pkg.mk so that shared objects
are created and handled properly in pkgsrc, both on ELF and a.out
platforms. I've tested it as much as possible, but, as everyone knows,
I'm not infallible, so if you see anything untoward, please send-pr it.

The logic scans the work/.PLIST file (the generated one) for any shared
objects.  If none is found, then nothing further happens.

If there are any shared objects found (say lib/libfoo.so.x.y), then

(1) on ELF platforms, the ${PLIST} file will be scanned for a
lib/libfoo.so.x symbolic link. If none is there, it will be created and
added to the ${PLIST}, just after libfoo.so.x.y. The same happens for
libfoo.so. Whilst this does not cure all the problems with shared libs
on ELF platforms, it should go a long way to ironing out some of the
problems that have arisen.

(2) on a.out platforms, the @exec ${LDCONFIG} and @unexec ${LDCONFIG}
lines will automatically be added to the ${PLIST} file, if they're not
already there, and an ${LDCONFIG} command will also be issued.

Package maintainers - no modifications are necessary to current
pkg/PLIST files - the symbolic links are created (on ELF platforms) if
they are not already made by the package in its installation, and, if
they are, they will not be created.

Package installers - you should see nothing different, apart from the
[Automatic shared object handling] message.


Alistair