- Mar 30, 2021
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
steam-remote: Add a stub steam executable See merge request !280
-
Ludovico de Nittis authored
This stub steam executable tries to directly pass the given commands, e.g. "steam://nav/downloads ", to the running Steam client, if any. This helps games that tries to run "steam ${command}" because when we are in a LD_LIBRARY_PATH runtime, "steam" might not be pointing to the same version that is currently running. Or if we are in a container, there is no "steam" executable in the PATH at all. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 25, 2021
-
-
Ludovico de Nittis authored
pressure-vessel: Document how to test multi-GPU scenarios See merge request !282
-
Simon McVittie authored
Helps: T27110 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
CONTRIBUTING: Add issue tracking and code contribution details See merge request !281
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 23, 2021
-
-
Ludovico de Nittis authored
Cope better with non-ASCII library names See merge request !279
-
Simon McVittie authored
wrap: Use a tmpfs home as a fallback when unsharing the home dir Closes #66 See merge request !277
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
JSON strings must be valid Unicode, so use the lossy transformation in g_utf8_make_valid() to replace non-UTF-8 (if found) with U+FFFD REPLACEMENT CHARACTER. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This means we can cope with filenames in their filesystem encoding, which are arbitrary bytestrings (not necessarily UTF-8). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Instead of trying to format JSON using only glibc, this just prints key=value lines, some of which can be repeated. The values always have control characters and backslashes escaped as C-style octal sequences such as \040 for space, similar to the encoding of /etc/fstab. This allows non-UTF-8 bytestrings to be represented. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
If we don't want to share the host home directory we expect to have either --home, --freedesktop-app-id, --steam-app-id or $SteamAppId. There are cases where this might not happen. For example if Steam has been launched with the PRESSURE_VESSEL_SHARE_HOME=0 env variable and we try to run "Help->System Information", the variable $SteamAppId will not be set and the container creation will fail. To avoid this issue we can use a tmpfs for the home directory when we are in batch mode. In this way the tmpfs will not be used if we need to run an actual game, because we want to retain the home directory on exit. Fixes: #66 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
inspect-library: Don't print non-ASCII as nonsense codepoints See merge request !278
-
Simon McVittie authored
If we pass a (signed) char to a varargs function, it's promoted to (signed) int by the default argument promotions (resulting in padding on the left by copying the sign bit); but then %x interprets it as an unsigned int. The practical result is that for anything over 0x7f, for example 0xAB, we interpret the high bit as the sign bit and pad with "1" bits, turning 0xAB into 0xFFFFFFAB. \uFFFFFFAB is not allowed as an escaped JSON character (because Unicode stops at U+10FFFF) so parsing fails. Note that this change does not result in strings with non-ASCII content being interpreted *correctly*: we are effectively taking the bytestring from the OS and decoding it as though it was ISO-8859-1, so if a file's path includes U+00C7 LATIN CAPITAL_LETTER C WITH CEDILLA (`Ç`), encoded as 0xC3 0x87 on disk (assuming a UTF-8 environment), it will go into the JSON document as \u00C3\u0087 instead of the correct \u00C7. Fixing this would require either a considerably more complex implementation of inspect-library, or an output format that is based on bytestrings rather than JSON. Partially addresses https://github.com/ValveSoftware/steam-runtime/issues/385 and #69 . Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 17, 2021
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
pv-wrap: Automatically copy runtime when running under Flatpak, again See merge request !276
-
Ludovico de Nittis authored
Fix PulseAudio-related regressions See merge request !275
-
Simon McVittie authored
runtime: Try Exherbo's locale dirs as a fallback See merge request !274
-
Simon McVittie authored
This regressed in steamlinuxruntime!32 when we stopped setting the deprecated PRESSURE_VESSEL_COPY_RUNTIME_INTO environment variable. If getenv() returns NULL, we need to keep the previous setting - TRUE in a Flatpak app or FALSE otherwise - instead of overriding it to FALSE. Fixes: steamlinuxruntime!32 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
runtime: Create variable directory before trying to GC it See merge request !273
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
When using Exherbo as the host system, the locales are located in "/usr/${gnu_tuple}/lib/locale". For this reason if we notice that the canonical "/usr/lib/locale" is missing, we also try the Exherbo's paths before skipping it. Partially addresses: #67 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Simon McVittie authored
This fixes two separate issues: * It's parsed by all known versions of libasound.so.2, so it will work for both Steam Runtime 1 'scout' and Steam Runtime 2 'soldier', as well as future runtimes. Previously, we were using a path that only works in runtimes newer than scout. * It's a direct child of /etc, which in our case is a tmpfs, so we don't need to worry about whether we will be able to create a mount point in a subdirectory. Fixes: 1b720eb7 "wrap: Set PulseAudio as the default ALSA driver if available" Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Fixes: 1b720eb7 "wrap: Set PulseAudio as the default ALSA driver if available" Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Otherwise, the first time we use a particular runtime, GC will fail with a user-visible warning. We're going to create the variable directory moments later anyway, so this should be no big deal. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
runtime: Use "/usr/share" as a fallback lib data directory Closes #68 See merge request !272
-
Ludovico de Nittis authored
If the host system stores the shared libraries in a directory that is not what we expect, we try as a last resort `/usr/share`, in an effort to increase the number of OSs that we are able to cover. For example this should help Exherbo to find the right libdrm and drirc.d directories. Fixes: #68 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
pv-wrap: Don't force PulseAudio to be default when not using a runtime See merge request !271
-
Simon McVittie authored
When we're not using a runtime, we don't know for sure whether PulseAudio is even available, and we also won't be able to create a mount point in /etc because we're using the host's /etc as-is. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 16, 2021
-
-
Simon McVittie authored
wrap: Set PulseAudio as the default ALSA driver if available See merge request !269
-
Ludovico de Nittis authored
pv-wrap: Communicate timeouts to pv-adverb as locale-independent ASCII See merge request !270
-
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:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
To avoid audio issues, if we have successfully bound a PulseAudio socket, we should also set it as the default driver in ALSA. Addresses: #65 Partially addresses: https://github.com/ValveSoftware/steam-runtime/issues/371 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-