Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 536558 - app-office/libreoffice-4.3.5.2 - libreoffice: /usr/lib64/libreoffice/program/oosplash: error while loading shared libraries: libuno_sal.so.3: cannot open shared object file: No such file or directory
Summary: app-office/libreoffice-4.3.5.2 - libreoffice: /usr/lib64/libreoffice/program/...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Gentoo Office Team
URL: https://forums.gentoo.org/viewtopic-p...
Whiteboard: not a regression in 4.3
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-14 07:23 UTC by Massimo Burcheri
Modified: 2016-03-25 20:29 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Massimo Burcheri 2015-01-14 07:23:58 UTC
I tried both 4.3.5.2 (~amd64) and also 4.2.8.2 (amd64).
I tried rebuilding and also revdep-rebuild.

Using ~amd64 globally the binary version app-office/libreoffice-bin is not possible.

$ libreoffice 
/usr/lib64/libreoffice/program/oosplash: error while loading shared libraries: libuno_sal.so.3: cannot open shared object file: No such file or directory

$ equery f libreoffice | grep libuno_
/usr/lib64/libreoffice/ure/lib/libuno_cppu.so.3
/usr/lib64/libreoffice/ure/lib/libuno_cppuhelpergcc3.so.3
/usr/lib64/libreoffice/ure/lib/libuno_purpenvhelpergcc3.so.3
/usr/lib64/libreoffice/ure/lib/libuno_sal.so.3
/usr/lib64/libreoffice/ure/lib/libuno_salhelpergcc3.so.3

$ emerge -pv libreoffice

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] app-office/libreoffice-4.3.5.2  USE="bluetooth branding cups dbus gtk gtk3 opengl (-aqua) -coinmp -collada -debug -eds (-firebird) -gltf -gnome -gstreamer -java -jemalloc -kde -mysql -odk -postgres -telepathy {-test} -vlc" LIBREOFFICE_EXTENSIONS="-nlpsolver -scripting-beanshell -scripting-javascript -wiki-publisher" PYTHON_SINGLE_TARGET="python2_7 -python3_3 -python3_4" PYTHON_TARGETS="python2_7 python3_3 -python3_4" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

$ ldd /usr/lib64/libreoffice/program/oosplash
   linux-vdso.so.1 (0x00007fffa0e9a000)
   libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007ff44528d000)
   libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007ff444f53000)
   libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007ff444d1e000)
   libuno_sal.so.3 => not found
   libc.so.6 => /lib64/libc.so.6 (0x00007ff444989000)
   libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007ff444777000)
   libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007ff444557000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007ff444353000)
   libz.so.1 => /lib64/libz.so.1 (0x00007ff44413d000)
   libm.so.6 => /lib64/libm.so.6 (0x00007ff443e3d000)
   /lib64/ld-linux-x86-64.so.2 (0x00007ff445490000)
   libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007ff443c39000)
   libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007ff443a33000)

$ equery f libreoffice | grep libuno_
/usr/lib64/libreoffice/ure/lib/libuno_cppu.so.3
/usr/lib64/libreoffice/ure/lib/libuno_cppuhelpergcc3.so.3
/usr/lib64/libreoffice/ure/lib/libuno_purpenvhelpergcc3.so.3
/usr/lib64/libreoffice/ure/lib/libuno_sal.so.3
/usr/lib64/libreoffice/ure/lib/libuno_salhelpergcc3.so.3

$ ls -l /usr/lib64/libreoffice/ure-link
lrwxrwxrwx 1 root root 3 Jan 12 03:25 /usr/lib64/libreoffice/ure-link -> ure/

$ ls -l /usr/lib64/libreoffice/ure
total 0
drwxrwxr-x 2 root root  90 Jan 12 03:25 bin/
drwxrwxr-x 2 root root 695 Jan 12 03:25 lib/
drwxrwxr-x 3 root root  27 Jan 12 03:25 share/

Reproducible: Always




$ emerge --info
Portage 2.2.15 (python 2.7.9-final-0, default/linux/amd64/13.0/desktop, gcc-4.8.4, glibc-2.20-r1, 3.18.0-ck x86_64)
=================================================================
System uname: Linux-3.18.0-ck-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q8200_@_2.33GHz-with-gentoo-2.2
KiB Mem:     8170196 total,   5520528 free
KiB Swap:    8297468 total,   8297468 free
Timestamp of tree: Mon, 12 Jan 2015 17:15:01 +0000
sh bash 4.3_p33
ld GNU ld (Gentoo 2.24 p1.4) 2.24
distcc 3.2rc1 x86_64-pc-linux-gnu [disabled]
ccache version 3.2.1 [enabled]
app-shells/bash:          4.3_p33
dev-java/java-config:     2.2.0
dev-lang/perl:            5.20.1-r4
dev-lang/python:          2.7.9-r1, 3.3.5-r1, 3.4.2
dev-util/ccache:          3.2.1-r1
dev-util/cmake:           3.0.2
dev-util/pkgconfig:       0.28-r2
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.6
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.13.4, 1.14.1, 1.15
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.7.3-r1, 4.8.4
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.4
sys-devel/make:           4.1-r1
sys-kernel/linux-headers: 3.18 (virtual/os-headers)
sys-libs/glibc:           2.20-r1
Repositories: gentoo portage_mobalindesk mv bar lorelei-overlay
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/iproute2 /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer -fvisibility-inlines-hidden"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask-write"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildsyspkg ccache clean-logs compress-build-logs config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://ftp.halifax.rwth-aachen.de/gentoo/ http://ftp.halifax.rwth-aachen.de/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://de-mirror.org/gentoo/ http://de-mirror.org/gentoo/ ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ "
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8 -l2"
PKGDIR="/var/cache/portage/packages/amd64_core2"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="--x86"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /var/lib/layman/mv /var/lib/layman/bar-overlay /var/lib/layman/lorelei"
USE="X a52 aac acl acpi alsa amd64 bash-completion berkdb bluetooth bluray branding bzip2 cairo cdda cddb cdio cdr cli conntrack consolekit cracklib crossdev crypt cryptsetup cscope cups cxx dbus dri dts dvd dvdr emboss encode exif fam fat firefox flac fortran gdbm gif gimp git glamor gpm gtk gtk3 hddtemp iconv id3 jpeg lcms ldap libnotify lm_sensors lz4 lzo mad mercurial mmx mng modules mp3 mp4 mpeg multilib ncurses nfs nls nptl nsplugin ocr ogg opengl openmp optimization pam pango pcre pdf png policykit ppds qt3support qt4 rar readline sdl session smp spell sse sse2 sse3 sse4_1 ssl ssse3 startup-notification strong-optimization svg tcpd tiff truetype udev udisks unicode upnp upower usb vim vim-pager vim-syntax vorbis wxwidgets x264 xa xcb xml xmp xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" SANE_BACKENDS="pixma" USERLAND="GNU" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 1 Andreas K. Hüttel gentoo-dev 2015-02-08 22:14:01 UTC
What's the output of 
file /usr/lib64/libreoffice/ure/lib/libuno_sal.so.3
?
Comment 2 Andreas K. Hüttel gentoo-dev 2015-02-08 22:50:53 UTC
... and what's the otuput of 

objdump -x /usr/lib64/libreoffice/program/oosplash | grep RUNPATH
Comment 3 Massimo Burcheri 2015-02-09 16:52:26 UTC
$ file /usr/lib64/libreoffice/ure/lib/libuno_sal.so.3
/usr/lib64/libreoffice/ure/lib/libuno_sal.so.3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

$ objdump -x /usr/lib64/libreoffice/program/oosplash | grep RUNPATH
  RUNPATH              $ORIGIN:$ORIGIN/../ure-link/lib
Comment 4 Andreas K. Hüttel gentoo-dev 2015-02-12 23:09:41 UTC
(In reply to Massimo Burcheri from comment #3)
> $ file /usr/lib64/libreoffice/ure/lib/libuno_sal.so.3
> /usr/lib64/libreoffice/ure/lib/libuno_sal.so.3: ELF 64-bit LSB shared
> object, x86-64, version 1 (SYSV), dynamically linked, stripped
> 
> $ objdump -x /usr/lib64/libreoffice/program/oosplash | grep RUNPATH
>   RUNPATH              $ORIGIN:$ORIGIN/../ure-link/lib

That looks both normal. :(
Comment 5 Massimo Burcheri 2015-03-01 10:28:53 UTC
For now this quick bugfix from Hotblack in the forums solves the issue, but eventually is not the cleanest way:

# echo 'LDPATH="/usr/lib/libreoffice/ure/lib/:/usr/lib/libreoffice/program/"' >> /etc/env.d/99libreoffice_bug536558
# env-update
Comment 6 Andreas K. Hüttel gentoo-dev 2015-04-11 20:47:56 UTC
Do you still have this problem with 4.4.x.y?
Comment 7 Manuel Mommertz 2015-07-24 09:13:08 UTC
I was hit by the same symptoms and investigated. I am using squashmount which offers to put libreoffice files in a squashfs allowing write access by overlayfs. But overlayfs alters /proc/self/exe which is used by libreoffice to find its libraries. See https://bugs.launchpad.net/ubuntu/+source/linux-lowlatency/+bug/1007089
Comment 8 Martin Väth 2015-07-24 12:00:30 UTC
(In reply to Manuel Mommertz from comment #7)
> But overlayfs alters /proc/self/exe which is used by libreoffice
> to find its libraries.

Interesting. However, I use libreoffice since quite a while with squashmount and overlay (previously overlayfs) and so far have never run into this problem.
Could it be that it only occurs after emerging and before resquashing (i.e. when the binary does actually lie in the CHANGES directory instead of the compressed squashfs file)?
Comment 9 Manuel Mommertz 2015-08-22 18:52:59 UTC
(In reply to Martin Väth from comment #8)
> Could it be that it only occurs after emerging and before resquashing (i.e.
> when the binary does actually lie in the CHANGES directory instead of the
> compressed squashfs file)?

$ ls -a /usr/lib64/libreoffice.mount/changes/
.  ..
$ soffice 
/usr/lib64/libreoffice/program/oosplash: error while loading shared libraries: libuno_sal.so.3: cannot open shared object file: No such file or directory

You can test this (modified version from launchpad):
( set -e; mkdir -p /mnt/test /tmp/usr /tmp/usr.work; mount none /mnt/test -t overlay -o lowerdir=/usr,upperdir=/tmp/usr,workdir=/tmp/usr.work; /mnt/test/bin/tail -f /dev/null& readlink /proc/$!/exe; kill $!; umount /mnt/test; rmdir /mnt/test /tmp/usr /tmp/usr.work/work /tmp/usr.work; )

If you see /bin/tail, your kernel has the bug, if you see /mnt/test/bin/tail your kernel is ok. As you say that you can run libreoffice from overlayfs, you should get /mnt/test/bin/tail, in which case the next question is: Why? Do you have an older kernel? Or maybe is the bug fixed in newer kernels?

My kernel is: 4.0.5-gentoo
Comment 10 Massimo Burcheri 2015-08-24 07:52:54 UTC
I'm trying to run that test but it fails:

# set -e; mkdir -p /mnt/test /tmp/usr /tmp/usr.work; mount none /mnt/test -t; overlay -o lowerdir=/usr,upperdir=/tmp/usr,workdir=/tmp/usr.work; /mnt/test/bin/tail -f /dev/null& readlink /proc/$!/exe; kill $!; umount; /mnt/test; rmdir /mnt/test /tmp/usr /tmp/usr.work/work /tmp/usr.work;

mount: option requires an argument -- 't'
Comment 11 Manuel Mommertz 2015-09-08 18:36:22 UTC
(In reply to Massimo Burcheri from comment #10)
> I'm trying to run that test but it fails:
> 
> # set -e; mkdir -p /mnt/test /tmp/usr /tmp/usr.work; mount none /mnt/test
> -t; overlay -o lowerdir=/usr,upperdir=/tmp/usr,workdir=/tmp/usr.work;
> /mnt/test/bin/tail -f /dev/null& readlink /proc/$!/exe; kill $!; umount;
> /mnt/test; rmdir /mnt/test /tmp/usr /tmp/usr.work/work /tmp/usr.work;
> 
> mount: option requires an argument -- 't'

Please put the complete command in one line. It should work then.
Comment 12 Andreas K. Hüttel gentoo-dev 2016-03-25 20:29:41 UTC
Haven't heard anything about this for a long time. Please reopen if it still occurs.