Libreoffice library caching [was Re: Yet another pkg bug?]

Bryan Drewery bdrewery at FreeBSD.org
Tue Aug 5 19:32:23 UTC 2014


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 at 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.

-- 
Regards,
Bryan Drewery


More information about the freebsd-office mailing list