Skip to content
Snippets Groups Projects
Commit 7559d732 authored by Simon McVittie's avatar Simon McVittie
Browse files

README.md: Describe how this repo fits into the Runtime ecosystem

parent 8c70e3d7
Branches
Tags
No related merge requests found
Checking pipeline status
SteamLinuxRuntime depot
=======================
This repository contains entry-point scripts and other integration glue
to pull together the Steam container runtime into a depot, ready for
deployment via Steampipe onto users' systems.
Latest development: <https://gitlab.steamos.cloud/steamrt/steamlinuxruntime>
How this fits into the overall Steam Runtime project
----------------------------------------------------
1. Build .deb packages for the content of the Steam Runtime, from
the source code in e.g.
<https://repo.steampowered.com/steamrt-images-scout/snapshots/latest-container-runtime-depot/sources/>.
This is not part of this git repository.
2. For `scout` and `heavy` only: Put together the .deb packages into the
`LD_LIBRARY_PATH`-based Steam Runtime.
This git repository is not relevant for this step.
3. Put together the .deb packages into a Flatpak-style container runtime.
This is done by
[flatdeb-steam](https://gitlab.steamos.cloud/steamrt/flatdeb-steam).
4. To make the runtime suitable for running Steam games and Proton on
(almost) any GNU/Linux machine, turn it into a Steampipe depot
with the runtime itself, the pressure-vessel container runtime tool,
all of the pressure-vessel tool's dependencies except glibc, and some
scripts and Steam manifests to hold the whole thing together.
That's what this git repository is for.
What goes into the depot
------------------------
In a complete depot build, the components are listed in `VERSIONS.txt`,
which is generated as a side-effect of running `populate-depot.py`.
* `SteamLinuxRuntime`: Entry-point scripts, from this repository.
See `depot/` for most of the source files. A few files are
autogenerated by `populate-depot.py` instead.
* `scout`, `soldier`, etc.: A Steam Runtime build, normally
`*-runtime.tar.gz` and `*-buildid.txt`.
This is produced by
[flatdeb-steam](https://gitlab.steamos.cloud/steamrt/flatdeb-steam)
by assembling .deb packages into a complete runtime environment.
Technically you can have more than one runtime in a depot and use
`pressure-vessel-test-ui` to switch between them, but the official
releases only contain one runtime each.
These are downloaded by `populate-depot.py` during build.
* `presure-vessel`: A bundled, relocatable pressure-vessel binary build.
This is produced by the `pressure-vessel/build-relocatable-install.py`
script in
[steam-runtime-tools](https://gitlab.steamos.cloud/steamrt/steam-runtime-tools),
which collects up the following packages from a
Steam Runtime 1 'scout' SDK build:
* pressure-vessel itself
* Its executable dependencies, especially `bwrap` and `capsule-capture-libs`
* Some diagnostic tools
* Their dependency libraries (all except glibc)
and arranges them in the `pressure-vessel/` directory.
These are special because they run directly on the host system, without
either a container or the complete `LD_LIBRARY_PATH` Steam Runtime.
We take these libraries from `scout`, bundle them in a directory and
use `RPATH` to set the search path. This is done to ensure that their
glibc dependency is as old as possible (so that they will run on any
GNU/Linux machine that is capable of running Steam itself) and
everything else that is required is included.
This is downloaded by `populate-depot.py` during build.
......@@ -3,6 +3,8 @@ Section: misc
Priority: extra
Maintainer: SteamOS Maintainers <steamos@valvesoftware.com>
Standards-Version: 4.3.0
Vcs-Git: https://gitlab.steamos.cloud/steamrt/steamlinuxruntime.git
Vcs-Browser: https://gitlab.steamos.cloud/steamrt/steamlinuxruntime
Package: steam-container-runtime
Architecture: all
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment