sr.ht-docs/builds.sr.ht/compatibility.md

24 KiB

title
builds.sr.ht compatibility matrix

Available Build Images

If you have any special requests, please send an email. Only architectures supported by each Linux distribution upstream are listed, and named after the upstream port (e.g. Debian uses "amd64" while Alpine uses "x86_64").

Note: support for multi-arch builds is underway, but not yet available.

The "native" column is checked if these builds run on native hardware for that architecture, if unchecked the builds are run on emulated hardware and may suffer from poor performance.

Support lifecycle

The support lifecycle for each build image follows the upstream support cycle. Each supported upstream release is generally offered on sr.ht, as well as the bleeding edge or development releases if applicable. No sooner than two weeks after a release becomes unsupported upstream, it will be unsupported on builds.sr.ht - and anyone who's submitted recent builds using those images will get an email warning them of the impending breakage.

It's recommended that you use aliases like "alpine/latest" or "debian/testing" rather than using a specific release in your build manifests.

Alpine Linux

Alpine Edge image: alpine/edge
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) daily
arch: x86
Alpine 3.9 image: alpine/latest or image: alpine/3.9
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) weekly
arch: x86
Alpine 3.8 image: alpine/3.8
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) monthly
arch: x86

packages

The packages array is installed with apk add.

repositories

To add custom apk repositories, use repo-url key-url key-name (separated with spaces), where repo-url is the URL of the package repository and key-url is a URL from where the signing key may be downloaded, and key-name is the name of the file written to /etc/apk/keys/. If the name of the repo is prefixed with an @, it will use that prefix in apk.

Example:

repositories:
  sr.ht: >
    https://mirror.sr.ht/alpine/sr.ht/
    https://mirror.sr.ht/alpine/sr.ht/alpine%40sr.ht.rsa.pub
    alpine@sr.ht.rsa.pub    

Arch Linux

Arch Linux image: archlinux
arch supported native updated
arch: x86_64 (default) daily

packages

The package array is installed with yay -Syu (AUR packages are transparently installed).

repositories

To add custom pacman repositories, use url#key-id, where url is the URL of the package repository and key-id is the ID of the published PGP key the packages are signed with.

Debian

Debian Stretch (stable) image: debian/stable or image: debian/stretch
arch supported native updated
arch: arm64
arch: amd64 (default) weekly
arch: armel
arch: armhl
arch: i386
arch: mips
arch: mips64el
arch: mipsel
arch: ppc64el
arch: s390x
Debian Buster (testing) image: debian/testing or image: debian/buster
arch supported native updated
arch: arm64
arch: amd64 (default) daily
arch: armel
arch: armhl
arch: i386
arch: mips
arch: mips64el
arch: mipsel
arch: ppc64el
arch: s390x
Debian Sid (unstable) image: debian/unstable or image: debian/sid
arch supported native updated
arch: arm64 (experimental) manually
arch: amd64 (default) daily
arch: armel
arch: armhl
arch: i386
arch: mips
arch: mips64el
arch: mipsel
arch: ppc64el
arch: s390x

packages

The packages array is installed with apt-get install.

repositories

To add custom repositories, specify url distro component key-id (separated by spaces), where url is the URL of the package repository, distro is e.g. jessie or stretch, component is e.g. main or non-free, and key-id is an optional PGP key ID to add to apt-key. Example:

repositories:
  sr.ht: https://mirror.sr.ht/debian/sr.ht/ stretch main DEADBEEFCAFEF00D

Fedora

Fedora 29 image: fedora/latest
arch supported native updated
arch: aarch64
arch: armhfp
arch: x86_64 (default) weekly

Note: Fedora support is a work-in-progress. As such, both Fedora 28 and Rawhide are currently unavailable.

packages

The packages array is installed with dnf install.

repositories

Given the following list of repositories in your manifest:

repositories:
  example: https://example.org

The following commands will be used to configure it:

dnf config-manager --add-repo https://example.org
dnf config-manager --set-enabled example

FreeBSD

FreeBSD 12.x image: freebsd/latest or image: freebsd/12.x
arch supported native updated
arch: aarch64
arch: amd64 (default) monthly
arch: i386
arch: powerpc
arch: powerpc64
arch: sparc64
FreeBSD 11.x image: freebsd/11.x
arch supported native updated
arch: aarch64
arch: amd64 (default) monthly
arch: i386
arch: powerpc
arch: powerpc64
arch: sparc64
FreeBSD CURRENT image: freebsd/current
arch supported native updated
arch: aarch64
arch: amd64 (default) weekly
arch: i386
arch: powerpc
arch: powerpc64
arch: sparc64

packages

The packages array is installed with pkg install.

repositories

Custom package repositories are not supported on FreeBSD builds.

NixOS

NixOS 18.09 image: nixos/latest or image: nixos/18.09
arch supported native updated
arch: aarch64
arch: armv6
arch: armv7
arch: x86_64 (default) weekly
NixOS unstable image: nixos/unstable
arch supported native updated
arch: aarch64
arch: armv6
arch: armv7
arch: x86_64 (default) daily

packages

The packages array is installed with nix-env -iA. Since it's possible to specify multiple channels, you must provide the full selection path, for example nixpkgs.hello. Note that the nixpkgs channel is not added by default.

repositories

To add custom channels, use repo-name: channel-url. The repo name is relevant, since repo-name: repo-url will execute the commands nix-channel --add repo-url repo-name and nix-channel --update repo-name. Given the nature of nix, no channels are added by default.

Ubuntu

Ubuntu Disco (19.04) image: ubuntu/next or image: ubuntu/disco or image: ubuntu/19.04
arch supported native updated
arch: arm64
arch: amd64 (default) daily
arch: i386
arch: ppc64el
arch: s390x
Ubuntu Cosmic (18.10) image: ubuntu/latest or image: ubuntu/cosmic or image: ubuntu/18.10
arch supported native updated
arch: arm64
arch: amd64 (default) weekly
arch: i386
arch: ppc64el
arch: s390x
Ubuntu Bionic (18.04) image: ubuntu/lts or image: ubuntu/bionic or image: ubuntu/18.04
arch supported native updated
arch: arm64
arch: amd64 (default) weekly
arch: i386
arch: ppc64el
arch: s390x
Ubuntu Xenial (16.04) image: ubuntu/xenial or image: ubuntu/16.04
arch supported native updated
arch: arm64
arch: amd64 (default) monthly
arch: i386
arch: ppc64el
arch: s390x

packages

The packages array is installed with apt-get install.

repositories

To add custom repositories, specify url distro component key-id (separated by spaces), where url is the URL of the package repository, distro is e.g. bionic or cosmic, component is e.g. main or non-free, and key-id is an optional PGP key ID to add to apt-key. Example:

repositories:
  sr.ht: https://mirror.sr.ht/debian/sr.ht/ cosmic main DEADBEEFCAFEF00D