On Wed 02 Apr 2025 at 13:03:32 +0000, Taylor R Campbell wrote: > What seems to have happened is: > > 1. lang/jimtcl brought in pkgsrc libz.so for some reason, say at > /usr/pkg/lib/libz.so.1. > > 2. databases/sqlite3 built itself with _base_ libz (buildlink3 blocked > it from finding pkgsrc libz), but _also_ added the pkgsrc rpath, so > the elf object /usr/pkg/bin/sqlite3 has: > > NEEDED libz.so.1 > RPATH /usr/pkg/lib > > Thus, when the loader opens /usr/pkg/bin/sqlite3, it will look for > /usr/pkg/lib/libz.so.1 before /usr/lib/whatever/libz.so.1, and when > it finds /usr/pkg/lib/libz.so.1, that's what will go in the > REQUIRES line. > > This is really a bug in the REQUIRES generation (though it's not wrong > that the loader will find /usr/pkg/lib/libz.so.1 _if it's there_) but > it was provoked by pulling in lang/jimtcl which pulls in devel/zlib. This seems to have happened to me too, because I was experimenting with some package and the pkgsrc libz got installed. After that, lots of further packages thought they required pkgsrc libz (and pkg_add complained when it wasn't installed). ELF files *do* support having the full path name of the required .so files, it's in the spec and the dynamic linker seems to support it already. (I've been ranting about that before, I think). I'd say this is another argument to actually start doing that. -Olaf. -- ___ Olaf 'Rhialto' Seibert <rhialto/at/falu.nl> \X/ There is no AI. There is just someone else's work. --I. Rose
Attachment:
signature.asc
Description: PGP signature