Steam doesn't do any such symlinking, can you point out what you're referring to?
When not using the Steam runtime these sorts of workarounds are the user's/system's responsibility.
@TruboXL, shouldn't the symlinks be already created by bzip2 library? Steam should be able to find the library by itself if it is already under /usr/lib64/. It is under Arch.
Also, you can't expect to have a symlink between libudev.so.1 (the one you installed) and libudev.so.0 (the version Steam is looking for). What you are actually doing is to cross your fingers and hope the API hasn't changed in a way that would be incompaticle between the two versions (1 and 0). When forcing it like you do, you are taking the whole responsability if anything goes wrong. You could have installed libudev0 alongside libudev1, so Steam would be able to find libudev0 directly.
Well, I didn't technically cross my fingers if the Valve guys (think its ok to) do so...
I was checking around /usr/bin/steam and found this block, obviously its Steam's own hack (for 32bit libs)...
if [ "$STEAM_RUNTIME" == "0" ]; then
if [ ! -h $LAUNCHSTEAMPLATFORM/libudev.so.0 ] || [ ! -h $LAUNCHSTEAMPLATFORM/libbz2.so.1.0 ]; then
ln -sf /usr/lib/libudev.so.1 $LAUNCHSTEAMPLATFORM/libudev.so.0
ln -sf /usr/lib/libbz2.so.1 $LAUNCHSTEAMPLATFORM/libbz2.so.1.0
fi
rm -fr $LAUNCHSTEAMPLATFORM/steam-runtime
# Workaround for bug 3697: https://github.com/ValveSoftware/steam-for-linux/issues/3697
LD_LIBRARY_PATH="${LD_LIBRARY_PATH-}"
else
if [ -h $LAUNCHSTEAMPLATFORM/libudev.so.0 ] || [ ! -h $LAUNCHSTEAMPLATFORM/libbz2.so.1.0 ]; then
rm -f $LAUNCHSTEAMPLATFORM/libudev.so.0
rm -f $LAUNCHSTEAMPLATFORM/libbz2.so.1.0
fi
# Workaround for bug 3273: https://github.com/ValveSoftware/steam-for-linux/issues/3273
rm -f $LAUNCHSTEAMPLATFORM/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6*
rm -f $LAUNCHSTEAMPLATFORM/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6*
fi
EDIT: Correcting script name...
The bits you've included are not from Valve, they're edits that were done by various distros for compatibility. You didn't include any distro info but you should be able to find who's doing it.
Oh... Ok, I am using Fedora 23 - so maybe its either RPM Fusion or negativo17 added this...
I guess I am closing it now...
I noticed that Steam did a "good" job trying to load/link native 32bit libs however it doesn't do it automatically for 64bit libs, causing Dota 2 (and other 64bit games) to fail when STEAM_RUNTIME=0...
I normally do this for Dota 2 to work (of course with all the other libs installed) which based off your own Steam script as well as https://github.com/ValveSoftware/Dota-2/issues/387#issuecomment-139075766
ln -s /usr/lib64/libudev.so.1 ~/.steam/bin64/libudev.so.0ln -s /usr/lib64/libbz2.so.1 ~/.steam/bin64/libbz2.so.1.0