On Thu, 11 Aug 2016 11:43:41 +0200
Ulrich Mueller <u...@gentoo.org> wrote:

> >>>>> On Thu, 11 Aug 2016, James Le Cuirot wrote:  
> 
> > We, like almost everyone else and presumably upstream, install PCRE
> > 8 as libpcre.so.1. Debian, for reasons best known to themselves,
> > install it as libpcre.so.3. With Ubuntu still being the most widely
> > accepted "standard" Linux desktop, this presents a problem when
> > dealing with pre-compiled binaries.  
> 
> Have you asked Debian why they are doing that?

I did find out but had since forgotten. Here it is:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380725#10

On that basis, this is a safe thing to do. They are indeed the same
version and there is no incompatibility.

> > [...]  
> 
> > I have found that creating a symlink in /usr/lib that points
> > to /lib/libpcre.so.1 works, except that when you run ldconfig, it
> > automatically creates another symlink from /usr/lib/libpcre.so.1 to
> > libpcre.so.3. If you create the first symlink in /lib instead then
> > the existing /lib/libpcre.so.1 holds after running ldconfig. The
> > latter location is therefore probably preferable.  
> 
> > Would anyone have any issue with adding this to our libpcre
> > package? I don't foresee any problems. libpcre.so would obviously
> > still point to libpcre.so.1. I'm pretty sure there will never be
> > another libpcre.so.3 as upstream have released PCRE2 as libpcre2,
> > effectively an entirely separate library.  
> 
> This looks like a bad hack. As you said above, it will confuse
> ldconfig, unless some trickery with /lib vs /usr/lib is used.

I wouldn't call it trickery. Here's what happens when you put it
in /lib. I can't see anything wrong here?

# cd /lib
# ls -l libpcre.*
lrwxrwxrwx 1 root root     16 Jul 12 23:29 libpcre.so.1 -> libpcre.so.1.2.7
-rwxr-xr-x 1 root root 464960 Jul 12 23:29 libpcre.so.1.2.7
# ln -s libpcre.so.1 libpcre.so.3
# ls -l libpcre.*
lrwxrwxrwx 1 root root     16 Jul 12 23:29 libpcre.so.1 -> libpcre.so.1.2.7
-rwxr-xr-x 1 root root 464960 Jul 12 23:29 libpcre.so.1.2.7
lrwxrwxrwx 1 root root     12 Aug 11 11:01 libpcre.so.3 -> libpcre.so.1
# ldconfig
# ls -l libpcre.*
lrwxrwxrwx 1 root root     16 Jul 12 23:29 libpcre.so.1 -> libpcre.so.1.2.7
-rwxr-xr-x 1 root root 464960 Jul 12 23:29 libpcre.so.1.2.7
lrwxrwxrwx 1 root root     12 Aug 11 11:01 libpcre.so.3 -> libpcre.so.1

> IMHO providing compatibility symlinks for proprietary binary-only
> programs isn't the task of the libpcre package.

I'm fine with putting it in libpcre-debian package as kentnl suggested.

> I remember that long time ago we had a similar issue with motif and
> icaclient (motif installing .so.4 but icaclient linking to .so.3).
> See: https://bugs.gentoo.org/show_bug.cgi?id=204264#c4

I've read through that and but I don't believe this is falling foul in
the same way. The icaclient package should not have installed a
potentially conflicting libXm symlink; libpcre-debian would be an
appropriate package. It also pointed libXm.so.3 to a different
underlying version, which may have caused breakage in other situations;
the libpcre symlink would point to the same version.

-- 
James Le Cuirot (chewi)
Gentoo Linux Developer

Reply via email to