Skip to content

Fix listing overrides in system-info with recent pressure-vessel

Simon McVittie requested to merge wip/smcv/fix-listing-overrides into master
  • 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.

Edited by Simon McVittie

Merge request reports