- Mar 23, 2021
-
-
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>
-
Simon McVittie authored
runtime: Create libraries aliases in overrides See merge request !267
-
Ludovico de Nittis authored
If a library has different SONAMEs, called aliases in "steam-runtime-abi.json", it might lead to errors when a game tries to load a SONAME that is not the "real" library SONAME (the DT_SONAME that objdump shows). Because `ld.so.cache` will not consider the aliases when searching for the right match. To workaround this problem we create a directory called "aliases" that contains symlinks of the libraries aliases that we know about. By adding these directories, one for every multiarch, in the `LD_LIBRARY_PATH`, we ensure that even games that were linked to an alias will be able to find the library they were looking for. Helps: https://github.com/ValveSoftware/steam-runtime/issues/246 Fixes: T26816 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Simon McVittie authored
tests: Check the correctness of unsharing the home directory See merge request !268
-
Ludovico de Nittis authored
Features without tests can easily regress. For this reason we added a check about the directories that we expect to have inside the container when we don't share the home directory. And we also compare the "steam-installation" issues of the container srsi with the one on the host. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 12, 2021
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
wrap: Put game-specific $HOME on bwrap command-line before exports Closes #63 See merge request !266
-
Simon McVittie authored
This is how Flatpak behaves, and it's necessary to prevent the game-specific $HOME from being mounted over the top of some of the exports, preventing (for example) ~/.steam from being exposed to the container. We only do this for $HOME rather than completely reverting 3a8e939d, so that it won't be a regression for a symlink at /var/tmp. If the logical and physical paths to the real $HOME differ, we now also mount the game-specific $HOME onto the real $HOME's physical path, and replicate the logical path's symlinks in the container. This matches how Flatpak works, and avoids a similar regression. Fixes: 3a8e939d "pv-wrap: Delay --dir, etc. until after FlatpakExports are processed" Resolves: #63 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Ludovico de Nittis authored
pv-wrap: Only bind-mount systemd-resolved socket if using a runtime See merge request !265
-
- Mar 11, 2021
-
-
Simon McVittie authored
If we're not using a runtime, then all of /run/systemd is shared between host and container anyway. Mounting a socket over the top of an existing socket fails with "No such device or address" due to a bubblewrap bug (fixed in <https://github.com/containers/bubblewrap/pull/409 >). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 05, 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
debian: Make symlinks in RPATH point to libraries by SONAME See merge request !263
-
Ludovico de Nittis authored
runtime: Make bumblebee.socket visible in container See merge request !262
-
- Mar 04, 2021
-
-
Simon McVittie authored
This means they don't stop working when the real path to a library happens to have changed, for example upgrading GLib 2.32.3 to 2.32.4, which changes the real file implementing the library from libglib-2.0.so.0.3200.3 to libglib-2.0.so.0.3200.4. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
When using Primus/Bumblebee, having this available is apparently enough for at least some games to work, and having this not available will result in the driver failing to load. Note that Primus/Bumblebee is not really supported by any of the GPU or driver vendors. Using PRIME render offloading (DRI_PRIME=1 for open-source Mesa drivers, __NV_PRIME_RENDER_OFFLOAD=1 for the proprietary NVIDIA drivers) is likely to work more reliably. Helps: https://github.com/ValveSoftware/steam-runtime/issues/372 Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
build-relocatable-install: Include Vulkan shaders Closes #62 See merge request !261
-
Ludovico de Nittis authored
Previously we were missing to include the Vulkan shaders in the relocatable pressure-vessel tarball. This leaded to `check-vulkan` to fail because it didn't find the required shaders. Fixes: #62 Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-