Description of problem: I've found, that native version of Half-Life now works without sound. I run it from the console, and as I see from output, the game cannot connect to the pulseaudio server, because pulseaudio cannot find some symbol. I found, that it is from liborc version 0.17 (http://upstream-tracker.org/compat_reports/liborc/0.4.16_to_0.4.17/abi_compat_report.html) that is installed. I suppose, that pulseaudio may be incorrectly linked. Version-Release number of selected component (if applicable): 4.0-2.mga4 Here is the program's output: Platform config directory: platform/config 0:Initializing platform... /usr/bin/pulseaudio: symbol lookup error: /lib/libpulsecore-4.0.so: undefined symbol: orc_program_new_from_static_bytecode ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: ÐÑказ в подклÑÑении S_Startup: SNDDMA_Init failed. AL lib: pulseaudio.c:612: Context did not connect: ÐÐµÑ Ð´Ð¾ÑÑÑпа /usr/bin/pulseaudio: symbol lookup error: /lib/libpulsecore-4.0.so: undefined symbol: orc_program_new_from_static_bytecode ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: ÐÑказ в подклÑÑении AL lib: alsa.c:512: Could not open playback device 'default': Ð Ñоединении оÑказано AL lib: oss.c:169: Could not open /dev/dsp: ÐÐµÑ Ñакого Ñайла или каÑалога /usr/bin/pulseaudio: symbol lookup error: /lib/libpulsecore-4.0.so: undefined symbol: orc_program_new_from_static_bytecode /usr/bin/pulseaudio: symbol lookup error: /lib/libpulsecore-4.0.so: undefined symbol: orc_program_new_from_static_bytecode /usr/bin/pulseaudio: symbol lookup error: /lib/libpulsecore-4.0.so: undefined symbol: orc_program_new_from_static_bytecode /usr/bin/pulseaudio: symbol lookup error: /lib/libpulsecore-4.0.so: undefined symbol: orc_program_new_from_static_bytecode Could not open component .so '/usr/lib/jack/jack_firewire.so': /lib/libglibmm-2.4.so.1: undefined symbol: g_regex_get_has_cr_or_lf Could not open component .so '/usr/lib/jack/jack_firewire.so': /lib/libglibmm-2.4.so.1: undefined symbol: g_regex_get_has_cr_or_lf jack_get_descriptor : dll jack_firewire.so is not a driver Server module initialized. World module initialized. STEAM Auth Server AppActive: active AppActive: active Installing breakpad exception handler for appid(steam)/version(1372892800_client) World module shutdown. Server module shutdown. SDL_InitSubSystem(SDL_INIT_AUDIO) failed. Game removed: AppID 70 "Half-Life", ProcID 6479 Reproducible: Steps to Reproduce:
Summary: pulseaudio canot fin symbol orc_program_new_from_static_bytecode => pulseaudio canot find symbol orc_program_new_from_static_bytecode
Seems that not only Half-Life, but all games from Steam has no sound.
Severity: normal => major
@ Colin Sorry, I didn't do any attempt to reproduce this issue (I even never played any Steam game)
CC: (none) => marja11Assignee: bugsquad => mageia
Interesting Nikita. Thanks for the report. Seems quite strange actually as pulseaudio package in cauldron was build after the latest orc package, so I don't think it's incorrectly linked specifically. That said, on my 64-bit machine, the symbols appear to be there just fine: [colin@jimmy ~]$ strings /usr/lib64/libpulsecore-4.0.so | grep orc_program_new_from_static_bytecode orc_program_new_from_static_bytecode [colin@jimmy ~]$ strings /usr/lib64/liborc-0.4.so.0 | grep orc_program_new_from_static_bytecode orc_program_new_from_static_bytecode So both pulse and liborc seem to have the relevant symbols. A more thorough check of liborc itself: [colin@jimmy ~]$ readelf -Ws /usr/lib64/liborc-0.4.so.0 | grep orc_program_new_from_static_bytecode 220: 00000037c6814290 54 FUNC GLOBAL DEFAULT 11 orc_program_new_from_static_bytecode And the 32-bit versions: [colin@jimmy ~]$ readelf -Ws /usr/lib/liborc-0.4.so.0 | grep orc_program_new_from_static_bytecode 219: 00010490 59 FUNC GLOBAL DEFAULT 11 orc_program_new_from_static_bytecode So for me both the 64 and 32 bit versions are OK. I'm wondering if perhaps you have a 64 bit system, but somehow have outdated 32bit libs? Can you show the result of rpm -qf /usr/lib/liborc-0.4.so.0? It should say: liborc0.4_0-0.4.17-1.mga4 Cheers
No, I have pure 32bit system. The result of `rpm -qf /usr/lib/liborc-0.4.so.0`: liborc0.4_0-0.4.17-1.mga4 Calling readelf on liborc also finds this symbol. libpusecore linked with liborc: [nekit@localhost ~]$ ldd /usr/lib/libpulsecore-4.0.so | grep liborc liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0xb725f000) and I have only one version of that library: [nekit@localhost ~]$ ls -l /usr/lib/liborc-0.4* -rw-r--r-- 1 root root 2490756 ÐÑн 23 05:56 /usr/lib/liborc-0.4.a -rwxr-xr-x 1 root root 976 ÐÑн 23 05:56 /usr/lib/liborc-0.4.la* lrwxrwxrwx 1 root root 20 ÐÑл 15 20:02 /usr/lib/liborc-0.4.so -> liborc-0.4.so.0.17.0* lrwxrwxrwx 1 root root 20 ÐÑл 15 20:02 /usr/lib/liborc-0.4.so.0 -> liborc-0.4.so.0.17.0* -rwxr-xr-x 1 root root 614852 ÐÑн 23 05:56 /usr/lib/liborc-0.4.so.0.17.0*
I'm at a bit of a loss to explain this... Can you do an "rpm -qa | grep -E '(pulse|orc)'" I just want to see if any stale binaries are involved. I presume PulseAudio runs OK for other apps? In which case it could just be a certain sample spec (i.e. freq) triggers the re-sampling code that causes this symbol lookup error. Can you perhaps try putting "export PULSE_NO_SIMD=1" into your ~/.bashrc and doing a reboot to see if this helps. It should avoid any resampling code that is ASM/orc based IIRC which may help isolate the problem.
Other PulseAudio applications and non-Steam games are OK. I added export to the .bashrc and after reboot result is the same. [nekit@localhost ~]$ rpm -qa | grep -E '(pulse|orc)' pulseaudio-module-bluetooth-4.0-2.mga4 pulseaudio-client-config-4.0-2.mga4 libpulsecommon4.0-4.0-2.mga4 pulseaudio-utils-4.0-2.mga4 gstreamer1.0-pulse-1.0.9-1.mga4 libpulsecore4.0-4.0-2.mga4 orc-0.4.17-1.mga4 kcolorchooser-4.10.97-1.mga4 liborc-devel-0.4.17-1.mga4 pulseaudio-module-gconf-4.0-2.mga4 liborcus0.6_0-0.5.1-8.mga4 alsa-plugins-pulse-config-1.0.27-2.mga4 libpulsecore2.99-2.99.3-1.mga3 task-pulseaudio-2011.0-3.mga3 pulseaudio-4.0-2.mga4 libpulseaudio0-4.0-2.mga4 libpulseaudio-devel-4.0-2.mga4 pulseaudio-module-x11-4.0-2.mga4 libpulseglib20-4.0-2.mga4 libalsa-plugins-pulseaudio-1.0.27-2.mga4 gstreamer0.10-pulse-0.10.31-5.mga4 libpulsecore3.0-3.0-7.mga3 libpulsecommon3.0-3.0-7.mga3 libpulsecommon2.99-2.99.3-1.mga3 liborc0.4_0-0.4.17-1.mga4 vlc-plugin-pulse-2.1.0-0.pre3.4.mga4.tainted
Had this happen on my Fedora 19 system today. It has been working and I have absolutely no idea what changed. I had a few Steam games that were working, but most were not, and it still works on my laptop. I'd love to know what the difference is, but I honestly have no idea. Anyway, what I found is that it's not your system liborc that's the problem, it's the steam runtime version. This was my workaround: rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/liborc-0.4.so.0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/liborc-0.4.so.0.16.0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/liborc-0.4.so.0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/liborc-0.4.so.0.16.0 Hope it helps you.
CC: (none) => monty19
Ahh thanks j m, yes that does explain it. Seems they are shipping an old liborc. It might also be possible to do LD_PRELOAD=/usr/lib64/liborc-0.4.so.0 (or perhaps the 32 bit path) before running steam. Either way we cannot really fix it (in any way I can think off). It's perhaps worth reporting to the guys upstream tho' to see if they'll ship a newer liborc officially which shouldn't hurt anyone.
URL: (none) => https://github.com/ValveSoftware/steam-for-linux/issues/2834
Thanks for the upstream report+link. I think we should probably close this bug report here as there is likely little we can do at our end (if you find a way in which we can do something clever to work around this, then please feel free to reopen!) Sadly we don't have a "Resolved, Upstream" resolution so I'll use "moved" for want of something better :) I'm watching the github issue also.
Status: NEW => RESOLVEDResolution: (none) => MOVED
No problem. You could also try to export 'STEAM_RUNTIME=0 steam' or export it in your .bashrc or somewhere. That worked for me for some things But the problem with that is you will need to make sure you have every dependency installed by hand. And then they have things like libssl.so.1.0.0 in the runtime that games are linked against whereas on my distro I have libssl.so.1.0.1e, so you end up in the create links and pray scenario, which doesn't seem any more ideal. Valve updating the version they provide is probably the right answer in the end.