James-E-A / squeegily

[DEAD] Gentoo ebuilds with aspirations of superlative quality
0 stars 0 forks source link

Steam: missing libvstdlib_s, libnm-glib, and libnm-util #18

Closed James-E-A closed 7 years ago

James-E-A commented 7 years ago

libvstdlib_s.so seems to just NOT EXIST.

This is a blocker for stabilizing Steam.

Additionally, acquiring libnm-glib.so.4 and libnm-util.so.2 currently requires pulling in NetworkManager.

As it stands, I had to copy the files from ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/ to /usr/local/lib32 to get STEAM_RUNTIME=0 working. (Pulling in the entirety of NetworkManager was NOT necessary; just the 2 files!)

James-E-A commented 7 years ago

Possibly feasible to extract these files from /usr/lib/steam/bootstraplinux_ubuntu12_32.tar.xz during src_unpack or src_prepare?

James-E-A commented 7 years ago

a HA!

“libvstdlib” = libValve standard [C] library

/usr/local/lib32/libvstdlib_s.so -> ../../lib32/libstdc++.so.5
☝️😆 this ACTUALLY WORKS—at least preliminarily…

But, now we know that, even if the GNU Standard C++ Library turns out not to be a drop-in replacement (I mean, Valve probably rolled their own for a reason…), we can at least confidently place libvstdlib_s.so into the global library namespace without stepping on any toes (it being a Valve library, rather than some obscure open-source library that might get packaged at some later date and then cause file conflicts).

Would it belong as dev-games/libvstdlib, though? games-util/? sys-libs/?

James-E-A commented 7 years ago

Well. There are a few issues with packaging this libvstdlib_s.so:

  1. It is NOT contained in bootstraplinux_ubuntu12_32.tar.xz
  2. My copy at ~/.local/share/Steam/ubuntu12_32/libvstdlib_s.so (~321KiB) may or may not be authoritative; I have no idea whether, or how often, this file changes. It is found nowhere online as far as I can tell.
  3. The only promising place to get authoritative copies of this file, ValveSoftware/source-sdk-2013, has two files sp/src/lib/public/linux32/libvstdlib.so and mp/src/lib/public/linux32/libvstdlib.so, which are both different from each other, and 4 to 5 times as large as my local copy

For now, I think that the best solution will be to provide a dev-libs/libvstdlib package that pulls in sys-libs/libstdc++-v3[abi_x86_32] and links it to /usr/lib32/libvstdlib_s.so; this will get everything fixed and functional and give some breathing room to figure out the "right" way to get this file in place.

Later on, after I've figured out how to get that file properly, I could possibly move the temporary behavior to a gnu-libstdcxx USE flag for those wanting to remain on it, as well, and the migration should be seamless and painless.

James-E-A commented 7 years ago

There are NO filenames even CONTAINING vstd in http://media.steampowered.com/client/runtime/steam-runtime-dev-release_latest.tar.xz

James-E-A commented 7 years ago

libvstdlib_s.so situation is under control for now: 19352d2461a54bf1af841ab443e46a47f5e3a44a

James-E-A commented 7 years ago

The notorious

Could not connect to Steam network. This could be due to a problem with your Internet connection, or with the Steam network. Please visit www.steampowered.com for more info.

message occurs without the libnm libraries…so just neglecting them is not an option

James-E-A commented 7 years ago

and WE DON IT 2c3782501163e567261b2b420c7f3b1d52226661 (the fix) 1d3ed2e744c43a1ac1b6076accffc04e223684fb (fixes to the fix) 2ab3c2adb47abe0603990bb610f13e157ff5b940 (the icing on top)

There's still a bunch of stuff to do, like finding a "real" copy of libvstdlib_s.so, and compiling actual properly licensed natives of libnm instead of this current situation, but for now it's functional.

James-E-A commented 7 years ago

The hunt for libnm continues in this thread

GH-20