Fix listing overrides in system-info with recent pressure-vessel
-
resolve-in-sysroot: Correct misleading error messages
At this point, current_path is everything up to but not including fd. For example, if we are traversing "x/y/z/w" with current_path = "x/y", then the fds array contains { x, y } and fd is the result of opening z. We're looking at the result of calling fstatat() on z, so we need to see "x/y/z" in the error messages, for example if z is a regular file (therefore "x/y/z/w" cannot possibly exist).
-
resolve-in-sysroot: Correctly bail out if a non-directory is found
Previously, this would have incorrectly returned success with the error set, breaking the usual GError invariants.
-
tests: Exercise trailing slash in _srt_resolve_in_sysroot
"foo/bar/" is meant to be exactly equivalent to "foo/bar/.", and almost equivalent to "foo/bar" (with the important difference that it fails if bar is a non-directory).
-
system-info: List /overrides/ correctly in recent SteamLinuxRuntime
When pressure-vessel operates in --copy-runtime mode, /overrides is a symlink to /usr/lib/pressure-vessel/overrides. "find /overrides -ls" is useless here: it just lists the symlink, rather than traversing the directory hierarchy.
Eventually we should traverse /overrides/
ourselves instead of using find -ls
, in order to suppress information we don't care about (date, permissions, uid...) while showing directory vs. symlink vs. regular file... but this will do for now.