Build Failure on OpenSUSE Tumbleweed after distro upgrade: `NSSUTIL_3.59' not found
Michael Stahl
mst at libreoffice.org
Thu Jun 17 09:41:07 UTC 2021
On 17/06/2021 11.24, Michael Stahl wrote:
> On 12/06/2021 13.49, Jan-Marek Glogowski wrote:
>> Hi Luke,
>>
>> Am 12.06.21 um 02:31 schrieb Luke Benes:
>>>
>>> Builds are now failing on the rolling distro OpenSUSE Tumbleweed
>>> After the latest update, both gcc and clang builds and both both
>>> x86-64 and i686 architectures fail.
>>>
>>> Seems to be caused by caused by:
>>> java.io.IOException: /core/instdir/program/libnssutil3.so:
>>> version `NSSUTIL_3.59' not found (required by /usr/lib64/libnss3.so)
>>>
>>> mozilla-nss should provide libnss3.so(NSS_3.59)
>>> https://opensuse.pkgs.org/tumbleweed/mozilla-x86_64/mozilla-nss-32bit-3.64-1.6.x86_64.rpm.html
>>>
>>>
>>> Here is my upgrade log: https://controlc.com/79ec2502
>>> Below is my build log.
>>>
>>> If I add, "--with-system-nss" to my autogen.input file, the build
>>> succeeds without any issue.
>>>
>>> Any thoughts has to how to fix this or ideas on the root cause?
>>
>> So the system lib /usr/lib64/libnss3.so, which is NSS 3.59, picks up
>> LO's own /core/instdir/program/libnssutil3.so, which is still at 3.55
>> for master...
>>
>> Debugging that without an openSUSE system was a bit hard... IMHO this
>> is a bug in their java-11-openjdk source / java-11-openjdk-headless.
>> They provide a patched nss.cfg, on your system in
>> /usr/lib64/jvm/java-11-openjdk-11/conf/security/nss.cfg, which sets:
>>
>> nssLibraryDirectory = /usr/lib64
>>
>> My one on Debian doesn't.
>>
>> The result is, that Java now always loads the libnss3.so from that
>> directory, instead of using the ld.so search order to find it (man
>> ld.so / man dlopen). But LO sets the LD_LIBRARY_PATH, so the ld.so
>> will first look for its libraries in /.../instdir/program. And there
>> it finds the libnssutil3.so from your build, which is too old and
>> misses the NSSUTIL_3.59 symbol, resulting in your error.
>>
>> I suggest you try, if removing that line helps and then report a bug
>> to openSUSE.
>
> uh... that sounds quite awful - did anybody report a bug about this?
actually i'm not sure how this can happen.
oosplash adds the output of "javaldx" to LD_LIBRARY_PATH but nothing
adds LO's program directory to it.
... perhaps like this: first JVM loads /usr/lib64/libnss3.so via
nssLibraryDirectory, then some LO library is loaded that is linked to
libnss3util.so and finds program/libnssutil3.so via RPATH, then JVM
loads libnss3util.so but since a shared object with that name is already
loaded it's a no-op.
> maybe we should think about defaulting to --with-system-nss on Linux,
> particularly for release builds; there hasn't been a reason to bundle it
> in 5 years or so.
More information about the LibreOffice
mailing list