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/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