Date: Tue, 05 Aug 2014 15:19:24 -0500 From: Bryan Drewery <bdrewery@FreeBSD.org> To: Tijl Coosemans <tijl@FreeBSD.org> Cc: ports@freebsd.org, office@FreeBSD.org Subject: Re: Libreoffice library caching [was Re: Yet another pkg bug?] Message-ID: <53E13C4C.1020405@FreeBSD.org> In-Reply-To: <20140805220710.5ebaaf63@kalimero.tijl.coosemans.org> References: <53DB9BF4.5070208@netfence.it> <62714296e76c28f63d8b7ca430882a37@shatow.net> <53E10592.1000308@FreeBSD.org> <20140805212224.33dbbd7c@kalimero.tijl.coosemans.org> <53E1313F.4090106@FreeBSD.org> <20140805220710.5ebaaf63@kalimero.tijl.coosemans.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 8/5/2014 3:07 PM, Tijl Coosemans wrote: > On Tue, 05 Aug 2014 14:32:15 -0500 Bryan Drewery wrote: >> On 8/5/2014 2:22 PM, Tijl Coosemans wrote: >>> On Tue, 05 Aug 2014 11:25:54 -0500 Bryan Drewery wrote: >>>> Can office@ chime in on this? >>>> >>>> On 8/1/2014 7:27 PM, Bryan Drewery wrote: >>>>> On 2014-08-01 08:53, Andrea Venturoli wrote: >>>>>> On a 10.0/amd64 system: >>>>>> >>>>>>> # cat /usr/ports/UPDATING >>>>>>> ... >>>>>>> 20140730: >>>>>>> AFFECTS: users of security/libgcrypt >>>>>>> AUTHOR: pi@FreeBSD.org >>>>>>> >>>>>>> libgcrypt has been updated to 1.6.1 and all shared libraries >>>>>>> versions have >>>>>>> been bumped. So you need to rebuild all applications that depend on >>>>>>> libgcrypt. >>>>>>> >>>>>>> # portmaster -r libgcrypt >>>>>>> or >>>>>>> # portupgrade -fr security/libgcrypt >>>>>>> or >>>>>>> # pkg install -fR security/libgcrypt >>>>>>> ... >>>>>>> # pkg info -r libgcrypt|less >>>>>>> libgcrypt-1.6.1_1: >>>>>>> libgnome-keyring-2.32.0_8 >>>>>>> gnupg-2.0.25_1 >>>>>>> libxslt-1.1.28_4 >>>>>>> # pkg info -r libxslt | less >>>>>>> libxslt-1.1.28_4: >>>>>>> rarian-0.8.1_1 >>>>>>> gnome-doc-utils-0.20.10_2 >>>>>>> gtk-doc-1.18_1 >>>>>>> inkscape-0.48.4_4 >>>>>>> vala-0.20.1_1 >>>>>>> policykit-gnome-0.9.2_7 >>>>>>> raptor2-2.0.14 >>>>>>> xmlto-0.0.26_2 >>>>>>> shiboken-1.2.2 >>>>>>> apiextractor-0.10.10_2 >>>>>>> libreoffice-4.2.5_3 >>>>>>> # portupgrade -frn libgcrypt >>>>>>> ---> Listing the results (+:done / -:ignored / *:skipped / !:failed) >>>>>>> + security/libgcrypt (libgcrypt-1.6.1_1 -> libgcrypt-1.6.1_1) >>>>>>> + textproc/libxslt (libxslt-1.1.28_4 -> libxslt-1.1.28_4) >>>>>>> + security/gnupg (gnupg-2.0.25_1 -> gnupg-2.0.25_1) >>>>>>> + security/libgnome-keyring (libgnome-keyring-2.32.0_8 -> >>>>>>> libgnome-keyring-2.32.0_8) >>>>>> >>>>>> So, libreoffice is not rebuilt and after "portupgrade -fr libgcrypt"... >>>>>> >>>>>>> # libchk -v | less -S >>>>>>> ... >>>>>>> Binaries that are linked with: /usr/local/lib/compat/pkg/libgcrypt.so.19 >>>>>>> /usr/local/lib/compat/pkg/libsoup-gnome-2.4.so.1.5.0 >>>>>>> /usr/local/lib/libreoffice/program/libxsltfilterlo.so >>>>>> >>>>>> ... libreoffice is still using the old library. >>>>>> >>>>>> >>>>> >>>>> Agreed it is not a pkg problem, nor a portupgrade problem. >>>>> >>>>> libreoffice is not directly depending on libgcrypt so it was not >>>>> rebuilt. Only direct dependencies are rebuilt. But this is not really >>>>> the problem. The problem is that Libreoffice seems to be doing something >>>>> special by building its own libxsltfilterlo.so into its own directory. >>>>> So the libxslt rebuild had no idea about it. It's not a file actually >>>>> provided by libxslt. >>>>> >>>>> # pkg info -l libxslt|grep /usr/local/lib >>>>> /usr/local/lib/libexslt.a >>>>> /usr/local/lib/libexslt.la >>>>> /usr/local/lib/libexslt.so >>>>> /usr/local/lib/libexslt.so.8 >>>>> /usr/local/lib/libxslt.a >>>>> /usr/local/lib/libxslt.la >>>>> /usr/local/lib/libxslt.so >>>>> /usr/local/lib/libxslt.so.2 >>>>> >>>>> Note the lack of libxsltfilterlo.so. >>>>> >>>>> I'd say the instructions were lacking. My guess is a small handfull of >>>>> people realize what's going on here and none of the other committers do. >>>>> So it's very likely that many UPDATING entries need special libreoffice >>>>> care as well and have not had it documented. I.e., every dependency of >>>>> libreoffice would require rebuilding libreoffice. >>>>> >>>>> I'm not sure what this program/ dir is, perhaps some cache. It would be >>>>> safer to have it disabled so this special care is not needed. >>> >>> It's not a special cache. It's just a normal library that libreoffice >>> builds and installs. The library probably links to libexslt using >>> "pkgconf --libs libexslt" which include -lgcrypt. Libreoffice should >>> have had its PORTREVISION bumped as part of the libgcrypt update. There >>> are other ports that should have been bumped. I'll look into it. >> >> Hm, it seems to be building its own libxslt library though and placing >> it in its own directory. The rebuilding of libxslt did not update the >> one in the libreoffice dir. >> >> libreoffice->libxslt->libgcrypt >> >> Rebuilding libxslt should be enough to link against the newer libgcrypt >> and since libxslt has not change it should not require rebuilding >> libreoffice. > > Libreoffice links with libgcrypt directly. The reason it does so is > because the output of "pkgconf --libs libexslt" is this: > > -lexslt -lxslt -lz -lm -lgcrypt -lgpg-error -L/usr/local/lib -lxml2 > > It's an example of how pkgconfig files can cause overlinking. Got it. > > Libreoffice comes up in this list: > pkg rquery '%o %B' | grep libgcrypt.so | sort > > So it should have been bumped as part of the libgcrypt update. I had > actually specifically asked for that list of ports to be included. > Well the problem here was the instructions did not indicate to upgrade all ports so it would not have caught it anyhow. The instructions were to use portupgrade/portmaster to things depending on libgcrypt. Perhaps we need to change our instructions (or portupgrade/portmaster) to use registered library dependencies as well rather than just package deps. -- Regards, Bryan Drewery
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53E13C4C.1020405>