Add steam-runtime-tools-bin, make follow-up fixes
With these changes and steam-runtime!6, you can run:
$ cd .../ubuntu12_32
$ steam-runtime/setup.sh
$ steam-runtime/run.sh steam-runtime/amd64/usr/bin/steam-runtime-system-info --expectations steam-runtime/usr/lib/steamrt/expectations
and get a report on whether the libraries we can see meet our expectations.
Obviously the actual Steam client would not need to run steam-runtime/setup.sh
or steam-runtime/run.sh
because they were run during its startup, it would be able to find steam-runtime-system-info
in its PATH
rather than having to use its absolute path, and it might prefer to be linked directly to libsteam-runtime-tools-0.so.0
and use the C ABI instead of running the tool and parsing its JSON output.
-
steamrt-container, steamrt-legacy: Add steam-runtime-tools-bin
This provides the steam-runtime-system-info CLI driver for libsteam-runtime-tools, which is hopefully a useful diagnostic tool.
-
generate-expectations: Be more Python-3.2-friendly
The default python3 on scout doesn't have FileNotFoundError.
-
abi: Add the concept of libraries whose ABI we don't check
-
abi: Don't check libtheoraenc.so.1
libtheoraenc.so.1 has an undefined symbol th_comment_query_count which appears to be provided by libtheoradec.so.1, so in principle it ought to be linked to (have a DT_NEEDED dependency on) libtheoradec.so.1, but this doesn't seem particularly important for the Steam Runtime's purposes.
-
abi: Don't check libthread_db.so.1
libthread_db.so.1 is used by debuggers like gdb, and expects the debugger to export some magic symbols. The generic check for shared library functionality in steam-runtime-tools can't be expected to do this; if we want to verify that this library is working as intended, the way to do that would be to test that gdb is working, which we already do in tests/sdk/gdb.t. (A useful reference: http://timetobleed.com/notes-about-an-odd-esoteric-yet-incredibly-useful-library-libthread_db/)
-
abi: Don't check libCgGL.so
libCgGL.so has an undefined reference to glTexCoordPointer that is not satisfied by any of its DT_NEEDED dependencies, and we cannot relink it against libGL because it is a binary-only library from NVIDIA.
-
abi: Combine libc6 symbols files into one big file as intended