Re: Questions about /usr/local/lib/compat/pkg

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Mon, 08 Nov 2021 07:54:38 UTC
On Sun, Nov 07, 2021 at 08:36:54PM +0100, freebsd@ohreally.nl wrote:
> Hello list,
> 
> I have some questions about /usr/local/lib/compat/pkg. I can find very
> little documentation about that directory.

/usr/local/lib/compat/pkg is mecanism to save old libraries, during upgrade,
ensure programs still linked to those old libs continues to run

It only happens if BACKUP_LIBRARIES is set to true (which is not the default).
> 
> My current problem is that devel/boost-libs won't upgrade, with the
> following message:
> 
> No such file or directory @ rb_check_realpath_internal -
> /usr/local/lib/compat/pkg/libboost_atomic.so.1
> 
> Actually, the mentioned file does exist. But it is a symlink to
> libboost_atomic.so.1.72.0 which does not exist.

So the file pointed does not exist
> 
> So my first question is if I can just delete this dead symlink, in the hopes
> that the upgrade will then succeed?

Yes you can
> 
> But I have some more questions.
> 
> What exactly is this directory for?
> The pkg.conf(5) man page states that libraries are backed up to this
> directory (BACKUP_LIBRARY_PATH), but it doesn't say what these backups are
> used for. Or when the backups should be restored. And when they can be
> deleted.

Pkg do not use them.
> 
> Also, just above that line in the pkg.conf man page, it says that
> BACKUP_LIBRARIES should be set to true to have libraries backed up. However,
> it also says that this variable defaults to NO, and I never edited pkg.conf
> (and I just checked: this var is not set in the default file).
> So why does pkg back up these libraries anyway?
> In my case, this directory contains about 30 libraries, and over twice that
> amount in symlinks.

What does pkg -vv shows you ?
> 
> Thanks to anyone who can shine a light on this for me.
> 
> Best,
>   Rob
> 
> -- 
> :wq
> 
>