- Jul 21, 2020
-
-
Ludovico de Nittis authored
pressure-vessel-with-lock has been renamed to pressure-vessel-adverb because now it has more capabilities than just taking a lock. This change should help the environments that are not able to normally run `bwrap`, like if we are in a Docker container or in a Flatpak app. Signed-off-by:
Ludovico de Nittis <ludovico.denittis@collabora.com>
-
- Jul 09, 2020
-
-
Simon McVittie authored
This is included in prerelease versions of SteamRT 2 'soldier', but because it uses the post-gcc-5 C++ ABI of libLLVM-7.so.1, it's incompatible with versions of libLLVM-7.so.1 that were compiled to be compatible with the gcc 4 C++ ABI, and in particular the one in SteamOS 2 'brewmaster'. This and the previous commit are sufficient to make tests/containers.py pass on SteamOS 2 'brewmaster', if we also configure libxcb.so.1 to be chosen by counting symbols (T22538) and libgcc_s.so.1 to be chosen by counting verdefs (T16561). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we allow lazy binding, we can succeed in loading a GIO module from the host (which depends on a newer GObject than the one bundled with pressure-vessel), then find that a symbol reference fails at the time that we try to actually use it. Make it fail early, instead. In particular, this is helpful on SteamOS 2 'brewmaster'. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
For the moment, this is basically scout with fewer guarantees: we can't assume whether the host glibc is newer (like Arch Linux or Ubuntu 20.04) or older (like SteamOS 2 'brewmaster'). Only tested successfully on Debian testing/unstable, for now. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 23, 2020
-
-
Simon McVittie authored
This log file contains pressure-vessel's debug messages (which happen outside the scout container), not just the output of inside-scout.py, so calling it inside-scout.log is misleading. If we're running pressure-vessel-wrap --only-prepare, then we never actually get as far as running inside-scout.py or entering the container, so the log file name is doubly misleading. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 17, 2020
-
-
Simon McVittie authored
Flatpak is not going to give us control over the root directory when using sub-sandboxing - the most we're likely to get is control over which directory is chosen to be /usr. Prepare for this by using /usr/lib/pressure-vessel/overrides instead of /overrides for the things we overwrite. To be nice to developers and steam-runtime-tools, put a symlink overrides -> usr/lib/pressure-vessel/overrides at the root, as a hint for where to look. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
A possible future enhancement would be to have an option to mount some of these (those that live in the mutable sysroot) read/write, but for now any ad-hoc developer modifications will have to happen outside the container. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The host system is assumed to be at least as new as scout (otherwise nothing will work, least of all pressure-vessel-wrap), so we can assume that the host glibc will be used. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
For gconv we only make the assertion for a Debian host for now, because non-Debian hosts put their gconv libraries in different places. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
To make this a little faster, we only generate locales in two of the six tests (combining them asymmetrically so that we generate locales once with and once without --copy-runtime-into, and once for each runtime we are running from), and skip checking that locales were generated correctly in the other tests. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 16, 2020
-
-
Simon McVittie authored
SteamOS 2 'brewmaster' only has this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This will be used to delete libraries from the runtime if their SONAME is the same as a library that we brought in from outside, to avoid conflicts when precedence gets mixed up. A manual test is included. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Workaround for T21931. Fully fixing this is low-priority, because we have been removing libldap dependencies anyway. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 12, 2020
-
-
Simon McVittie authored
This requires resources external to pressure-vessel, and makes some assumptions about the container - but that's OK, because the first significant user of pressure-vessel is Steam Runtime 1 'scout', which is not exactly a moving target. We also do some of these checks in various OSs' virtual machines when we build Steam Runtime releases, but having this in-tree with the pressure-vessel source should shorten the testing cycle. See the doc-comment in tests/containers.py for usage. At the moment all tests require a working version of bubblewrap, but current/future work in the direction of pre-preparing a modified runtime on disk should mean that we can do a subset of these tests even if we cannot run bubblewrap. In particular, if we can do that inside a Docker container, that will make it a lot easier for CI to validate our assumptions on non-Debian-derived host operating systems. Attentive reviewers will notice that there's infrastructure here to be able to skip generating locales, but it isn't yet used. It will be used when we have more variations on the theme of "enter a scout container and run inside-scout.py", to avoid the time cost of generating locales every time - but at the moment we only have two runs, so the time taken to generate locales is not problematic. This test is a bit slow, and it's going to get slower as we add more thorough testing, so increase its timeout away from the Meson default. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
The result of this setup will be the same every time, so there isn't much point in repeating it. When we add tests with time-consuming setup like running steam-runtime-system-info, we'll only want to do that once. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we're passing it across a container boundary, relative paths are going to get error-prone. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
At the moment the Python-based tests rely on being run under prove(1) so that their TAP output is parsed, but I'm about to add a test that enters a container and runs another test script inside the container, and using TAP for that is less obvious. Don't rely on our stdout being parsed as TAP. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
In particular this detects the mishandling of an invalid --env-if-host option. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
BaseTest and test_main are factored out from cheap-copy.py. MyCompletedProcess and run_subprocess are taken from the SteamLinuxRuntime unit tests, and will be used in later test additions. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
As we move towards using dirfds for path resolution inside runtimes, the risk of leaking a significant number of fds increases, so we should make sure our tests check for that. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If we try to redefine g_test_skip(), and so does libglnx, then we fight. Including libglnx first worked, because our redefinition was conditional on it not already having been redefined; but including our redefinition first didn't work, because libglnx's redefinition is only conditional on the GLib version number. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
This lets us hold a fd to the parent directory open and resolve paths relative to it (see openat(2)). Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
If /tmp and /var/tmp are in fact both on the root filesystem, then this test will still pass but will not be particularly meaningful. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- Jun 01, 2020
-
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Now that G_TEST_SRCDIR is what Autotools would call "${top_srcdir}/tests/", we need to look one level up for the root of the source tree. Fixes: 09925ab2 "build: Split into subdirectories" Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
- May 21, 2020
-
-
Simon McVittie authored
At the moment it writes to the current working directory, and we invoke it via `bwrap ... --chdir DIRECTORY`; but we want to make it possible to use this code from inside a Flatpak runtime (at least in the case where we're using the host system's glibc), which means we won't be allowed to run bwrap and must do this some other way. Rather than using `env --chdir=...` (which isn't supported in scout anyway), let's teach this script to output to an explicitly specified directory. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Previously we were missing coverage for this. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Now that it's in a static library, we can have some test coverage. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-
Simon McVittie authored
Unlike Autotools, in Meson this doesn't have the problems caused by recursive make: ninja always has an overview of the whole source tree. With this change, test-locale-gen.sh needs minor adjustments, because G_TEST_SRCDIR, G_TEST_BUILDDIR now point into tests/ instead of the root directory of the source tree. Signed-off-by:
Simon McVittie <smcv@collabora.com>
-