populate-depot: Write out mtree(5) manifests for unpacked directories
-
tests: Always generate the tool manifest
-
populate-depot: Write out mtree(5) manifests for unpacked directories
This can be used to reconstitute the metadata or permissions of an unpacked directory, even if they are lost in transmission through the Steam CDN (which assumes all files are executable and does not track modification dates).
-
populate-depot: Log files whose names differ only by case in manifest
If any such files exist, they will need special treatment, because the Steam CDN assumes Windows filesystem semantics (case-insensitive, case-preserving).
-
populate-depot: Check whether filenames are Windows-friendly
Anything that isn't Unicode or contains reserved characters is not going to be distributable through Steam's CDN. For the moment we just check for this and don't do anything about it, but pressure-vessel changes that are currently under development will let us provide these files with more Windows-friendly aliases.
-
populate-depot: Allow unpacking runtimes into a versioned directory
This allows multiple versions to coexist for local testing, and is also a step towards avoiding the double disk space consumption of deploying the runtime from an archive.
The runtime is now unpacked into a versioned directory by default: the Steam CDN now knows how to handle this efficiently, moving unmodified files from one runtime to the next. Using a versioned name ensures that any locally-added files applied by a user will stay where they're put instead of propagating into updated runtimes.
The versioned directory name contains
_platform_
, for examplesoldier_platform_0.20210428.0
, both for symmetry with the SDK and so that it will not be deleted by pv-wrap --gc-legacy-runtimes. -
populate-depot: Add support for omitting archives from the depot
This can be used to avoid the double disk space consumption of combining the runtime archive with the deployment.
-
CI: Expand test coverage to include unpacked runtimes
These are what we'll use after T27130 lands in pressure-vessel.
Part of T27130.
To test:
-
make check
(you might want to setIMAGES_SSH_HOST
andIMAGES_SSH_PATH
so that you get the latest builds - replace your
SteamLinuxRuntime
withdepots/test-scout-unpacked
- replace your
SteamLinuxRuntime_soldier
withdepots/test-soldier-unpacked
- replace your
SteamLinuxRuntime/pressure-vessel
andSteamLinuxRuntime_soldier/pressure-vessel
with steam-runtime-tools!295 (merged)