Subject: Re: /var/db/pkg/*/+CONTENTS registers wrong symlinks for shared libs
To: Jeremy C. Reed <reed@reedmedia.net>
From: Rhialto <rhialto@azenomei.knuffel.net>
List: tech-pkg
Date: 10/10/2004 01:34:12
On Sat 09 Oct 2004 at 16:07:21 -0700, Jeremy C. Reed wrote:
> On Sun, 10 Oct 2004, Rhialto wrote:
> 
> > $ cat /var/db/pkg/Xrender-0.8.4nb1/+CONTENTS
> > @name Xrender-0.8.4nb1
> > @cwd /usr/pkg
> > include/X11/extensions/Xrender.h
> > @comment MD5:d1dd458bedb66fc59da412ce3868086f
> > lib/libXrender.a
> > @comment MD5:b9b888abc486832d1bac0274c5fcd2a1
> > lib/libXrender.la
> > @comment MD5:376b68b72526fa563dc91caa083d9a64
> > lib/libXrender.so
> > @comment Symlink:libXrender.so.1.2.2
> > lib/libXrender.so.1
> > @comment Symlink:libXrender.so.1.2.2
> > lib/libXrender.so.1.2.2
> > @comment MD5:68b6c55bd230ecc611f76bef1c57e458
> > lib/pkgconfig/xrender.pc
> > @comment MD5:444f6b7bdc91cf5e51b54cf2ab18e3e4
> 
> > Pkg_delete will complain about this and not remove them. I suppose an
> > install of an upgraded version will then fail.
> 
> I don't understand. Are you saying that
> /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so,
> /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so.1, and
> /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so.1.2.2 do not exist?

Yes, they do exist. And now I see that the +CONTENTS above IS correct
for the files in /usr/pkg/packages/Xrender-0.8.4nb1/lib but not
/usr/pkg/lib. 

$ l /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so*
lrwxr-xr-x  1 root  wheel     19 Oct 10 00:54 /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so@ -> libXrender.so.1.2.2
lrwxr-xr-x  1 root  wheel     19 Oct 10 00:54 /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so.1@ -> libXrender.so.1.2.2
-rwxr-xr-x  1 root  wheel  32585 Oct 10 00:54 /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so.1.2.2*

Apparently /usr/pkg/packages/Xrender-0.8.4nb1/+CONTENTS and
/usr/pkg/packages/Xrender-0.8.4nb1/+CONTENTS are identical, even though
the symlinks as set in the two locations they apply to are not equivalent.

$ diff /usr/pkg/packages/Xrender-0.8.4nb1/+CONTENTS /var/db/pkg/Xrender-0.8.4nb1/+CONTENTS 
2c2
< @cwd /usr/pkg/packages/Xrender-0.8.4nb1
---
> @cwd /usr/pkg

Look at the final pathname components in all names:

$ l /usr/pkg/lib/libXrender.so*
lrwxr-xr-x  1 root  wheel  52 Oct 10 00:54 /usr/pkg/lib/libXrender.so@ -> /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so
lrwxr-xr-x  1 root  wheel  54 Oct 10 00:54 /usr/pkg/lib/libXrender.so.1@ -> /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so.1
lrwxr-xr-x  1 root  wheel  58 Oct 10 00:54 /usr/pkg/lib/libXrender.so.1.2.2@ -> /usr/pkg/packages/Xrender-0.8.4nb1/lib/libXrender.so.1.2.2

I'm recompiling a couple of dozens of packages to try the latest
nautilus, and I see this problem with just about any package that I'm
re-installing (if it's a pkgviews package).

>  Jeremy C. Reed
-Olaf.
-- 
                           -- Ceterum censeo "authored[1]" delendum esse.
___ Olaf 'Rhialto' Seibert -- [1] Ugly English neologism[2].
\X/ rhialto/at/xs4all.nl   -- [2] For lawyers whose English/Latin is below par.