- Oct 07, 2020
-
-
Ludovico de Nittis authored
These two environment variables can be useful for inferring how and which version of the Steam bootstrapper have been used. For example if the reported version is something like "1.0.0.63-1/Debian", we are quite sure that Steam has been installed using the package from Debian's non-free archive area. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 28, 2020
-
-
Simon McVittie authored
This avoids duplicating it in the command-line tools. The test is still in tests/pressure-vessel/ for now, because it needs testutils.py, which uses its own location to find G_TEST_SRCDIR. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jul 09, 2020
-
-
Simon McVittie authored
In s-r-system-info, we show libraries whose SONAME is not the same as the name we asked for, even in non-verbose mode. For example, if the expectations have not been updated to list libldap_r-2.4.so.2 yet, Debian systems will show: "libldap-2.4.so.2" : { "soname" : "libldap_r-2.4.so.2", "path" : "/usr/lib/x86_64-linux-gnu/libldap-2.4.so.2" }, Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
In rare cases, like libldap-2.4 and libcurl in scout, they can differ. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 10, 2020
-
-
Ludovico de Nittis authored
The new srt_system_info_new_from_json() allows to create a new JSON. (Fixes: T16565) Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 24, 2020
-
-
Ludovico de Nittis authored
We already stored the path to "ubuntu12_32" but this information was kept private. Now we give a public function to access it and we also show this information in the JSON output. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 20, 2020
-
-
Ludovico de Nittis authored
Add a check similarly to the VDPAU one that we already have. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
We use the automated VDPAU check to add an entry in the steam-runtime-system-info report. Also `check-vdpau` has a new option `--verbose` that prints additional info about the driver in use. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 14, 2020
-
-
Ludovico de Nittis authored
With check-requirements we can do a preflight check and ensure that the Steam client requirements are met. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
Check if the CPU supports the features we are interested in. Right now they are: SSE3 (pni), x86_64 (lm) and CMPXCHG16B (cx16). Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Apr 01, 2020
-
-
Ludovico de Nittis authored
Now we are able to diagnose if there are problems with how we handle the `steam://` URLs. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 10, 2020
-
-
Ludovico de Nittis authored
"srt_dri_driver_get_library_path" might return a relative path. Instead with this new function we will be sure to receive an absolute path to the driver. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
"srt_va_api_driver_get_library_path" might return a relative path. Instead with this new function we will be sure to receive an absolute path to the driver. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Ludovico de Nittis authored
"srt_vdpau_driver_get_library_path" might return a relative path. Instead with this new function we will be sure to receive an absolute path to the driver. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Mar 06, 2020
-
-
Ludovico de Nittis authored
When listing graphics drivers now we also list GLX ICDs, such as libGLX_mesa.so.0 and libGLX_nvidia.so.0. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
Simon McVittie authored
This only detects the container technologies we are most interested in right now: pressure-vessel, Flatpak and Docker. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 05, 2020
-
-
Simon McVittie authored
It's feeling increasingly odd to manipulate this via environment variables, so make it its own struct member. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Mar 04, 2020
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Feb 12, 2020
-
-
Ludovico de Nittis authored
Similarly to the already present Mesa DRI and VA-API drivers, now we are listing also VDPAU modules. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Feb 10, 2020
-
-
Ludovico de Nittis authored
Some drivers have an environment variable that overrides the automatic detection of which driver should be used. For example Mesa has `MESA_LOADER_DRIVER_OVERRIDE`, VA-API has `LIBVA_DRIVER_NAME` and so on. We now log these environment variables in the s-r-s-i output to have a move complete view about the state of the running system. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jan 17, 2020
-
-
Simon McVittie authored
This is basically never going to be useful, except to test the previous commit, so I haven't bothered to include it in the man page. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 09, 2020
-
-
Simon McVittie authored
It's slightly preferable to list linker and compiler flags in stack order, with the lowest in the stack first. This allows use of a higher-level library from a non-standard prefix without also necessarily picking up lower-level libraries from the same non-standard-prefix. For example, if /path/to/json-glib also includes a copy of GLib, then -L/path/to/glib -lglib-2.0 -L/path/to/json-glib -ljson-glib-1.0 will link the GLib from /path/to/glib, but -L/path/to/json-glib -ljson-glib-1.0 -L/path/to/glib -lglib-2.0 will link both the GLib and the json-glib from /path/to/json-glib. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Previously we were listing only ICDs (graphics drivers). With this commit we are now able to get a more complete vision of the running system listing also Mesa DRI and VA-API drivers. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jan 08, 2020
-
-
Simon McVittie authored
This avoids a coreutils limitation in versions [8.27, 8.29), which unfortunately includes Ubuntu 18.04: timeout(1) relied on SIGCHLD not being blocked, but did not unblock it themselves. The Steam client runs s-r-s-i from a thread that has SIGCHLD blocked, and SIGALRM, SIGPIPE and SIGTRAP ignored. This is contrary to frequent expectations of general-purpose libraries and command-line utilities: in particular, SIGPIPE is used by processes writing to a pipe to detect that the read end has died, SIGTRAP is frequently used to terminate processes on an assertion failure, and SIGCHLD is often necessary for subprocess management. Games (whether Steam or non-Steam) appear to be run with only SIGPIPE and SIGTRAP ignored, so strictly speaking, unignoring those two makes the behaviour of s-r-s-i unlike the behaviour of actual games. However, the effect of unblocking SIGPIPE and SIGTRAP is to make s-r-s-i more likely to crash (the default disposition of both those signals is process termination), which is probably what we want: if there is any difference, we want s-r-s-i's helpers to be more strict than games (crash more often), so that they can act as an early-warning system for issues that could manifest in games. In s-r-s-i, don't unblock signals until after we have finished command-line parsing and redirected stdout to print to the original stderr. Otherwise, g_debug() would go to the original stdout, resulting in it being invalid JSON. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jan 07, 2020
-
-
Simon McVittie authored
This was half-implemented in commit ed218ced. Fixes: ed218ced "Add --version argument to most executables" Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Dec 09, 2019
-
-
Jeremy Whiting authored
-
- Dec 05, 2019
-
-
Jeremy Whiting authored
If helper times out or is killed we report the exit_status of the helper and terminating_signal if it was terminated. Tested locally by making wflinfo symlink point to hanging mock test. Will add unit tests in next commit. Also added SRT_LIBRARY_ISSUES_TIMEOUT for timeout result.
-
- Nov 18, 2019
-
-
Jeremy Whiting authored
-
- Nov 15, 2019
-
-
Simon McVittie authored
This ensures that they can find the non-ubiquitous json-glib library, and the steam-runtime-tools library, even if relocated into a non-standard prefix like the LD_LIBRARY_PATH Steam Runtime. We can't just use a relative version of the standard library directory as our RPATH, because if we did that, we would load glibc from the same place. This causes crashes in pressure-vessel, where ld.so and the rest of glibc are often taken from the host system via /overrides/lib, and the glibc in /lib and /usr/lib is incompatible with ld.so. Instead, use a private library directory and populate it with relative symlinks to our non-glibc dependencies; we assume the host version of glibc is new enough that this is OK. Using DT_RPATH in preference to DT_RUNPATH means we take all our direct and indirect dependencies from the same place. This is important when libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in GIO as an indirect dependency of check-locale, which doesn't directly depend on GIO. The GIO library we get must match the versions of GLib and GObject we're using. This also bypasses LD_LIBRARY_PATH. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 13, 2019
-
-
Simon McVittie authored
This made them usable from outside the LD_LIBRARY_PATH runtime, but breaks their use inside a pressure-vessel container. In pressure-vessel, the glibc family of libraries are typically taken from outside the container (for example /overrides/lib/x86_64-linux-gnu/libc.so.6), and the dynamic linker ld.so is replaced with one that is suitable for the libraries in /overrides. In general, these versions will be incompatible with the ones in /usr/lib/x86_64-linux-gnu, which unfortunately are the ones that get pulled in via the DT_RPATH. This reverts commit 91478a07. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 08, 2019
-
-
Simon McVittie authored
This ensures that they can find the non-ubiquitous json-glib library, and the steam-runtime-tools library, even if relocated into a non-standard prefix like the LD_LIBRARY_PATH Steam Runtime. Using DT_RPATH in preference to DT_RUNPATH means we take all our direct and indirect dependencies from the same place. This is important when libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in GIO as an indirect dependency of check-locale, which doesn't directly depend on GIO. The GIO library we get must match the versions of GLib and GObject we're using. This also bypasses LD_LIBRARY_PATH. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Nov 07, 2019
-
-
Ludovico de Nittis authored
With this change we are now able to check if the used driver is GLVND or non-GLVND. This information is useful for example when steam-runtime-system-info is failing to find GLX ICDs. When this will happens we will be able to know if this is due to the use of non-GLVND driver or if there is something unexpected. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Oct 31, 2019
-
-
Simon McVittie authored
This makes it easier to tell which version we are dealing with. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Oct 11, 2019
-
-
Ludovico de Nittis authored
When we are in a steamrt container we log the content of the "/overrides" folder. Otherwise, if we are not in a container, we log the content of both "pinned_libs_32" and "pinned_libs_64". Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Sep 26, 2019
-
-
Simon McVittie authored
This one is a bit different because the raw field is a space-separated list. For convenience, srt_system_info_dup_os_id_like() can be asked to include the OS itself, for use in logic like this pseudocode: for id in info.dup_os_id_like(True): if id in special_cases: special_cases[id].run() break else: do_generic_behaviour() Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This doesn't include information about similar OSs (ID_LIKE), and also does not include a fallback to lsb_release or OS-specific files. However, it's enough to detect Steam Runtime containers. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 25, 2019
-
-
Simon McVittie authored
Until now we've been conflating these two, but Timothee Besset recently clarified their status for me. ~/.steam/steam is maintained by bin_steam.sh, aka /usr/bin/steam, in which it is referred to as STEAMDATALINK. It is the data directory containing user data (cloud-synced configuration and saves), the download cache, and the default Steam Library directory. ~/.steam/root is maintained by steam.sh, in which it is referred to as STEAMROOTLINK. It is the installation directory, containing Steam executables and libraries. As a result, they are normally the same, but can differ, in particular in two situations: * When testing a new Steam client build by running client/steam.sh, client/ gets used as the installation directory, in conjunction with the existing data directory pointed to by ~/.steam/steam. This avoids having to re-login or re-download your library of games for the new test installation. * When Debian bug #916303 was present during the initial Steam installation, the Steam client was unpacked into ~/.steam, resulting in creation of ~/.steam/steam as a real directory that cannot be replaced with a symbolic link. We effectively ended up using ~/.steam as the installation path, but with ~/.steam/steam as the data path. (The Debian steam package has since been fixed, but we cannot easily disentangle existing installations.) Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 24, 2019
-
-
Simon McVittie authored
This is necessary for pressure-vessel containers to support Vulkan: to be able to make the Vulkan ICDs available in the container, we have to be able to find them, bind-mount them into a suitable location, and provide corresponding ICD JSON metadata to the contained game. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Sep 11, 2019
-
-
Simon McVittie authored
pressure-vessel will use these when it generates any missing locales. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-