protonscr

Missing symbol for libgdk_pixbuf-2.0.so.0 due to pinned libglib

steamclosed runtimeDistro Family: Debian
ValveSoftware/steam-for-linux#5151 · opened 2017-08-30 by czarnyckm · updated 2019-07-18 · 10 comments · github
Cczarnyckm 2017-08-30 github

Your system information

  • Steam client version (build number or date): 1503954609
  • Distribution (e.g. Ubuntu): Debian Sid
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

After the last update the steam client fail to start:
Failed to load steamui.so - dlerror(): /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0: undefined symbol: g_variant_new_from_bytes

~/.steam$ LC_ALL=C ./steam.sh
./steam.sh: line 154: VERSION_ID: unbound variable
rm: cannot remove '/home/arta/.steam/steam': Is a directory
rm: cannot remove '/home/arta/.steam/bin': Is a directory
./steam.sh: line 154: VERSION_ID: unbound variable
Running Steam on debian 64-bit
./steam.sh: line 154: VERSION_ID: unbound variable
STEAM_RUNTIME is enabled automatically
Pins up-to-date!
[2017-08-30 12:46:48] Startup - updater built Aug 28 2017 11:50:29
Installing breakpad exception handler for appid(steam)/version(1503954609)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
Installing breakpad exception handler for appid(steam)/version(1503954609)
[2017-08-30 12:46:49] Checking for update on startup
[2017-08-30 12:46:49] Suche nach verfügbaren Updates...
Installing breakpad exception handler for appid(steam)/version(1503954609)
[2017-08-30 12:46:49] Download skipped: /client/steam_client_ubuntu12 version 1503954609, installed version 1503954609
[2017-08-30 12:46:49] Nothing to do
[2017-08-30 12:46:49] Installation wird überprüft...
[2017-08-30 12:46:49] Performing checksum verification of executable files
[2017-08-30 12:46:50] Verification complete
Failed to load steamui.so - dlerror(): /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0: undefined symbol: g_variant_new_from_bytes
[2017-08-30 12:46:54] Shutdown
Installing breakpad exception handler for appid(steam)/version(1503954609)
Installing breakpad exception handler for appid(steam)/version(1503954609)

LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH ldd ./steamui.so
libtier0_s.so => /home/arta/.steam/bin32/libtier0_s.so (0xf6390000)
libvstdlib_s.so => /home/arta/.steam/bin32/libvstdlib_s.so (0xf6330000)
libv8.so => /home/arta/.steam/bin32/libv8.so (0xf5a40000)
libvideo.so => /home/arta/.steam/bin32/libvideo.so (0xf5628000)
libSDL2-2.0.so.0 => /home/arta/.steam/bin32/libSDL2-2.0.so.0 (0xf5530000)
libXtst.so.6 => /usr/lib/i386-linux-gnu/libXtst.so.6 (0xf54c0000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf54b8000)
libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf54a8000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf5490000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf5340000)
libGL.so.1 => /usr/lib/i386-linux-gnu/libGL.so.1 (0xf52b8000)
libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf5258000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf5128000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xf4f40000)
libgtk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 (0xf4a48000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf4a38000)
libpulse.so.0 => /usr/lib/i386-linux-gnu/libpulse.so.0 (0xf49d8000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xf49a8000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf49a0000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf4820000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf4800000)
/lib/ld-linux.so.2 (0xf77c8000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf47a8000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf45f0000)
libicui18n.so => /home/arta/.steam/bin32/libicui18n.so (0xf43d0000)
libicuuc.so => /home/arta/.steam/bin32/libicuuc.so (0xf3850000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf3830000)
libavcodec.so.56 => /home/arta/.steam/bin32/libavcodec.so.56 (0xf34a0000)
libavformat.so.56 => /home/arta/.steam/bin32/libavformat.so.56 (0xf3458000)
libavresample.so.2 => /home/arta/.steam/bin32/libavresample.so.2 (0xf3430000)
libavutil.so.54 => /home/arta/.steam/bin32/libavutil.so.54 (0xf3400000)
libswscale.so.3 => /home/arta/.steam/bin32/libswscale.so.3 (0xf33a8000)
libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xf3390000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf3380000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf3350000)
libGLX.so.0 => /usr/lib/i386-linux-gnu/libGLX.so.0 (0xf3330000)
libGLdispatch.so.0 => /usr/lib/i386-linux-gnu/libGLdispatch.so.0 (0xf32b0000)
libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xf32a0000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf3220000)
libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xf3218000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf31f8000)
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf31c8000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf31b0000)
libmount.so.1 => /lib/i386-linux-gnu/libmount.so.1 (0xf3150000)
libgdk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 (0xf3088000)
libpangocairo-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xf3078000)
libXcomposite.so.1 => /usr/lib/i386-linux-gnu/libXcomposite.so.1 (0xf3070000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf3068000)
libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xf3040000)
libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xf2ef8000)
libpangoft2-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xf2ee0000)
libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xf2e88000)
libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf2e38000)
libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf2d78000)
libpulsecommon-10.0.so => /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-10.0.so (0xf2ce8000)
libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xf2c88000)
libcap.so.2 => /lib/i386-linux-gnu/libcap.so.2 (0xf2c80000)
libpng16.so.16 => /usr/lib/i386-linux-gnu/libpng16.so.16 (0xf2c40000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf2c38000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf2c30000)
libblkid.so.1 => /lib/i386-linux-gnu/libblkid.so.1 (0xf2be0000)
libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xf2bd8000)
libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xf2bc8000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf2bc0000)
libpixman-1.so.0 => /usr/lib/i386-linux-gnu/libpixman-1.so.0 (0xf2b10000)
libxcb-shm.so.0 => /usr/lib/i386-linux-gnu/libxcb-shm.so.0 (0xf2b08000)
libxcb-render.so.0 => /usr/lib/i386-linux-gnu/libxcb-render.so.0 (0xf2af8000)
libharfbuzz.so.0 => /usr/lib/i386-linux-gnu/libharfbuzz.so.0 (0xf2a58000)
libthai.so.0 => /usr/lib/i386-linux-gnu/libthai.so.0 (0xf2a48000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf2a18000)
libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf2a10000)
libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xf29f0000)
libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xf29e0000)
libsystemd.so.0 => /lib/i386-linux-gnu/libsystemd.so.0 (0xf2948000)
libwrap.so.0 => /lib/i386-linux-gnu/libwrap.so.0 (0xf2938000)
libsndfile.so.1 => /usr/lib/i386-linux-gnu/libsndfile.so.1 (0xf28a8000)
libasyncns.so.0 => /usr/lib/i386-linux-gnu/libasyncns.so.0 (0xf28a0000)
libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf2880000)
libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf2878000)
libgraphite2.so.3 => /usr/lib/i386-linux-gnu/libgraphite2.so.3 (0xf2848000)
libdatrie.so.1 => /usr/lib/i386-linux-gnu/libdatrie.so.1 (0xf2838000)
libgcrypt.so.20 => /lib/i386-linux-gnu/libgcrypt.so.20 (0xf2768000)
liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xf2738000)
liblz4.so.1 => /usr/lib/i386-linux-gnu/liblz4.so.1 (0xf2720000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xf2700000)
libFLAC.so.8 => /usr/lib/i386-linux-gnu/libFLAC.so.8 (0xf26a0000)
libogg.so.0 => /usr/lib/i386-linux-gnu/libogg.so.0 (0xf2690000)
libvorbis.so.0 => /usr/lib/i386-linux-gnu/libvorbis.so.0 (0xf2660000)
libvorbisenc.so.2 => /usr/lib/i386-linux-gnu/libvorbisenc.so.2 (0xf25d0000)
libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0xf25b8000)

dpkg -l|grep libgdk-pixbuf
ii libgdk-pixbuf2.0-0:amd64 2.36.5-2 amd64 GDK Pixbuf library
ii libgdk-pixbuf2.0-0:i386 2.36.5-2 i386 GDK Pixbuf library
ii libgdk-pixbuf2.0-common 2.36.5-2 all GDK Pixbuf library - data files

Steps for reproducing this issue:

Kkisak-valve maintainer 2017-08-30 github

Hello @czarnyckm, can you try pinning the steam runtime variant of libgdk_pixbuf-2.0.so.0 with ln -s /home/arta/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 /home/arta/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libgdk_pixbuf-2.0.so.0.

Cczarnyckm 2017-08-30 github

Thanks you for the suggestion but it doesn't help.. I got SEGFAULT:

$STEAM_DEBUGGER "$STEAMROOT/$STEAMEXEPATH" "$@"
arta@czarnyckm:~/.steam$ assert_20170830150108_1.dmp[18684]: Finished uploading minidump (out-of-process): success = yes
assert_20170830150108_1.dmp[18684]: response: CrashID=bp-84b15cd7-4aab-4482-b8ac-761b12170830
assert_20170830150108_1.dmp[18684]: file ''/tmp/dumps/assert_20170830150108_1.dmp'', upload yes: ''CrashID=bp-84b15cd7-4aab-4482-b8ac-761b12170830''

After I took look in the pinned libs directory i found that the libglib-2.0.so.0 is present.. which should have the method g_variant_new_from_bytes public.

After I removed libglib-2.0.so.0 from the pinned libs steam is working again.

Thanks

dpkg -l |grep libglib
ii libglib2.0-0:amd64 2.53.6-1 amd64 GLib library of C routines
ii libglib2.0-0:i386 2.53.6-1 i386 GLib library of C routines

Cczarnyckm 2017-08-30 github

Resolved after remove libglib-2.0.so.0 from the steam pinned libs

Cczarnyckm 2017-08-30 github

@kisak-valve i think should be libglib instead of libdbus

Kkisak-valve maintainer 2017-08-30 github

Thanks. For easy reference, https://packages.debian.org/sid/i386/libglib2.0-0/filelist lists /lib/i386-linux-gnu/libglib-2.0.so.0.5200.3 while the steam runtime has libglib-2.0.so.0.3200.3.

This should be reproducible with sudo apt install libglib-2.0-0:i386 followed by regenerating the pinned libraries, however, I was unable to reproduce the issue on my Debian 9 test box.

What is the contents of ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/system_libglib-2.0.so.0?

Cczarnyckm 2017-08-30 github

I think you can reproduce it if you add to /etc/apt/preferences
cat /etc/apt/preferences
Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=sid
Pin-Priority: 800

after that you can update your system

apt-get update

maybe is enough to execute:

apt-get install libglib-2.0-0:i386 -t sid

but I think you need to update everything:

apt-get dselect-upgrade -t sid

cat ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/system_libglib-2.0.so.0
/lib32/libglib-2.0.so.0
/lib32/libglib-2.0.so.0.2400.0

cat /etc/issue
Debian GNU/Linux buster/sid \n \l

Cczarnyckm 2017-08-30 github

Maybe problem is on my side.. My system has been initially installed in 2006. Debian had a lot of ideas on the way to multiarch. I have quite old lib in /lib32 which reference system_libglib-2.0.so.0:

ls -al /lib32/libglib*
lrwxrwxrwx 1 root root 23 Nov 7 2015 /lib32/libglib-2.0.so.0 -> libglib-2.0.so.0.2400.0
-rw-r--r-- 1 root root 822344 Apr 4 2010 /lib32/libglib-2.0.so.0.2400.0

I think I will remove those files. Its look like, that I have no package installed which has libglib in lib32 directory:

/var/lib/dpkg/info$ grep "libglib-2.0" ./*.list
./libglib2.0-0:amd64.list:/lib/x86_64-linux-gnu/libglib-2.0.so.0.5306.0
./libglib2.0-0:amd64.list:/lib/x86_64-linux-gnu/libglib-2.0.so.0
./libglib2.0-0:i386.list:/lib/i386-linux-gnu/libglib-2.0.so.0.5306.0
./libglib2.0-0:i386.list:/lib/i386-linux-gnu/libglib-2.0.so.0
./libglib2.0-dev:amd64.list:/usr/lib/x86_64-linux-gnu/libglib-2.0.a
./libglib2.0-dev:amd64.list:/usr/share/gdb/auto-load/lib/x86_64-linux-gnu/libglib-2.0.so.0.5306.0-gdb.py
./libglib2.0-dev:amd64.list:/usr/lib/x86_64-linux-gnu/libglib-2.0.so

Cczarnyckm 2017-08-30 github

I removed /lib32/libglib* and restored the libglib-2.0.so.0 in the pinned libs as well as I put the correct libglib in the system_libglib-2.0.so.0 but the problem remains. To be able to start steam I must still remove libglib-2.0.so.0 from the pinned libs

Kkisak-valve maintainer 2017-08-30 github

Steam shouldn't be trying to pin this library unless the startup script thinks the steam runtime variant is newer than the system variant. You can get the startup script to regenerate the pinned libraries folder by removing pinned_libs_32 and pinned_libs_64, then re-running steam.

Cczarnyckm 2017-08-30 github

I regenerated my pinned libs and now the startup script doesn't put the libglib. So the problem was obsolete library on my system. Steam started without problems now
Thanks

Nothing extracted yet.