Skip to content

Add steam-runtime-tools-bin, make follow-up fixes

Simon McVittie requested to merge wip/smcv/add-system-info into steamrt/scout

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

Edited by Simon McVittie

Merge request reports