Skip to content
Snippets Groups Projects
Simon McVittie's avatar
Simon McVittie authored
These arguments take a G_OPTION_ARG_DOUBLE, which is documented to be
parsed using either the user's locale or the C locale (in fact they
use g_strtod(), which parses it both ways and takes the longer match).
The locale matters in locales like de_DE that use a decimal comma
instead of a decimal point: we can always parse 2.000000 in the C
locale, but we can only parse 2,000000 if we are in a correctly-set-up
locale that uses the decimal comma.

If we needed to generate new locale files inside the container, then
pv-adverb needs to be able to parse its command-line before we have
generated those locale files. This means that
--terminate-idle-timeout=2,000000 won't work reliably, so we need to
use the C locale format, --terminate-idle-timeout=2.000000.

Using g_ascii_dtostr() has the side benefit that it uses the shortest
possible representation that does not lose precision; in the common case
that the timeout is an integer number of seconds, we'll just print it
as an integer.

Helps: https://github.com/ValveSoftware/steam-runtime/issues/381


Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
39600d93
History

steam-runtime-tools — Steam Runtime integration for the Steam client

The steam-runtime-tools library provides low-level Unix-specific tools and functionality for the Steam client, including the pressure-vessel tool that runs Steam games in containers.

To support multiple architectures (currently only i386 and x86_64 are supported), you will need to build it once for each architecture and install at least the helper tools in /usr/libexec/steam-runtime-tools-0 (the libsteam-runtime-tools-0-helpers package) for every architecture in parallel.

The helper tools are located relative to the shared library, so it's OK to bundle steam-runtime-tools alongside some other stack in this layout:

anything/
    lib/
        x86_64-linux-gnu/
            libsteam-runtime-tools-0.so.0
    libexec/
        steam-runtime-tools-0/
            i386-linux-gnu-*
            x86_64-linux-gnu-*

as long as the program that is linked to libsteam-runtime-tools-0.so.0 can find it (via a RPATH or RUNPATH or by setting the LD_LIBRARY_PATH environment variable).

pressure-vessel — putting Steam in containers

The pressure-vessel/ subdirectory of this project contains the pressure-vessel utilities, which are used by Steam's Steam Linux Runtime compatibility tool to run games in individual game-specific containers. For background on pressure-vessel and SteamLinuxRuntime, please see: