Steam Runtime 1½ 'heavy'
========================

heavy is a miniature Steam Runtime used to run Steam's embedded web
browser (`steamwebhelper`). It is not intended to be used by games, or
by untrusted web content.

It's based on Debian 8 'jessie' so that it can (just about) still work with
the version of glibc used in the oldest platforms we still try to support
(SteamOS 2, Debian 8 and Ubuntu 14.04).

Wait, did you say 1½?
---------------------

Yes. Version 2 of the Steam Runtime 2 was already under development at
the time we discovered we needed some newer libraries for `steamwebhelper`.

It's also not a complete runtime (it doesn't have all the libraries
you would need for games), so "... and a half" seems appropriate.

How this fits into the overall Steam Runtime project
----------------------------------------------------

1. Build .deb packages for the content of the Steam Runtime.
    `steamrt` is one of these packages.

2. For `scout` and `heavy` only: Put together the .deb packages into the
    `LD_LIBRARY_PATH`-based Steam Runtime.
    This step is done by the scripts in
    [steam-runtime](https://github.com/ValveSoftware/steam-runtime),
    but the choice of the actual packages to include is mostly delegated to
    `steamrt`.

3. Put together the .deb packages into a Flatpak-style container runtime.
    We don't use this to run games, only to produce a SDK environment.
    This step is done by
    [flatdeb-steam](https://gitlab.steamos.cloud/steamrt/flatdeb-steam),
    but the choice of the actual packages to include is mostly delegated to
    `steamrt`.

In theory `heavy` could be used as a container runtime to run games, but
`soldier` is a better thing to use for that.

Where can I get it?
-------------------

<https://repo.steampowered.com/steamrt-images-heavy/snapshots/> contains
several versions of heavy. Each version's subdirectory contains:

* source code in the `sources` subdirectory
* container images that can run games
  (`*.Platform-*-runtime.tar.gz`, which can also be converted into Flatpak
  runtimes)
* container images that can run games with debugging tools available
  (`*.Sdk-*-runtime.tar.gz` and `*.Sdk-*-debug.tar.gz`,
  which can also be converted into Flatpak runtimes)
* container images for compiling your own software
  (`*.Sdk-*-sysroot.tar.gz`, and `*.Sdk-*-sysroot.Dockerfile`, which can
  also be converted into a Docker image)

What's in this repository?
--------------------------

This repository mostly provides "metapackages". This is Debian jargon for
a package that is (almost) empty, and pulls in desired packages by having
dependencies on them.

Developing software that runs in heavy
--------------------------------------

Please don't.
