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

43 KiB

title
builds.sr.ht compatibility matrix

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

Maintainer: Drew DeVault sir@cmpwn.com

Support policy: upstream

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.15 image: alpine/latest or image: alpine/3.14
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) weekly
arch: x86
Alpine 3.14 image: alpine/old or image: alpine/3.13
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) weekly
arch: x86
Alpine 3.13 image: alpine/3.12 or image: alpine/older
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) weekly
arch: x86
Alpine 3.12 image: alpine/3.11 or image: alpine/oldest
arch supported native updated
arch: aarch64
arch: armhf
arch: ppc64el
arch: s390x
arch: x86_64 (default) weekly
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

Maintainer: Drew DeVault sir@cmpwn.com

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

Maintainer: Drew DeVault sir@cmpwn.com

Support policy: stable, testing, unstable, and oldstable are supported. See also: upstream releases

Debian Bullseye (stable) image: debian/stable or image: debian/bullseye
arch supported native updated
arch: arm64
arch: amd64 (default) weekly
arch: armel
arch: armhf
arch: i386
arch: mips
arch: mips64el
arch: mipsel
arch: ppc64el
arch: s390x
Debian Bookworm (testing) image: debian/testing or image: debian/bookworm
arch supported native updated
arch: arm64
arch: amd64 (default) daily
arch: armel
arch: armhf
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: armhf
arch: i386
arch: mips
arch: mips64el
arch: mipsel
arch: ppc64el
arch: s390x
Debian Buster (oldstable) image: debian/oldstable or image: debian/buster
arch supported native updated
arch: arm64
arch: amd64 (default) manually
arch: armel
arch: armhf
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 release component key-id (separated by spaces), where url is the URL of the package repository, release is e.g. buster or bullseye, component is e.g. main, contrib or non-free, and key-id is an optional PGP key ID to add to the system keyring. Example:

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

Fedora

Maintainer: Haowen Liu lhw@lunacd.com

Fedora Rawhide image: fedora/rawhide or image: fedora/36
arch supported native updated
arch: aarch64
arch: x86_64 (default) daily
Fedora 35 image: fedora/latest or image: fedora/35
arch supported native updated
arch: aarch64
arch: x86_64 (default) weekly
Fedora 34 image: fedora/34
arch supported native updated
arch: aarch64
arch: x86_64 (default) monthly

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

Maintainer: Simon Ser contact@emersion.fr

Support policy: Upstream production releases are supported.

FreeBSD 13.x image: freebsd/latest or image: freebsd/13.x
arch supported native updated
arch: aarch64
arch: amd64 (default) weekly
arch: i386
arch: powerpc
arch: powerpc64
arch: sparc64
FreeBSD 12.x image: freebsd/12.x
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.

A snapshot of the ports collection is available at /usr/ports. Git can be used to update it to the latest commit.

repositories

Custom package repositories are not supported on FreeBSD builds.

Guix System

Maintainer: Dhruvin Gandhi contact@dhruvin.dev

Guix System support for builds.sr.ht is actively being maintained here. There is a cookbook to get started.

Guix System image: guix
arch supported native updated
arch: aarch64
arch: armhf
arch: i686
arch: powerpc64le
arch: x86_64 (default) daily

packages

The packages are installed with guix install.

repositories

Specifying additional channels via build manifest is not supported.

NetBSD

Maintainer: Michael Forney mforney@mforney.org

Support policy: the most recent release and the version prior are supported. See also: upstream release cycle

NetBSD 9.2 image: netbsd/latest or image: netbsd/9.x
arch supported native updated
arch: aarch64
arch: amd64 (default) as required
arch: armv6hf
arch: armv7hf
arch: armv7hfeb
arch: i386
arch: mipseb
arch: mipsel
arch: mips64eb
arch: mips64el
arch: ppc
arch: sparc64
NetBSD 8.2 image: netbsd/8.x
arch supported native updated
arch: amd64 (default) as required
arch: armv6hf
arch: armv7hf
arch: armv7hfeb
arch: i386
arch: mipseb
arch: mipsel
arch: mips64eb
arch: mips64el
arch: ppc
arch: sparc64

packages

The packages array is installed with pkgin.

repositories

Custom package repositories are not supported on NetBSD builds.

NixOS

Maintainer: Francesco Gazzetta fgaz@fgaz.me

Support policy: NixOS upstream does not have a clear support policy, but usually old releases continue to get security fixes for a short amount of time after they are superseded. We ship the latest stable version (channel nixos-YY.MM) and the latest bleeding edge (channel nixos-unstable). We remove old versions after they are marked as "End of life" at status.nixos.org.

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

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 nixos.hello.

repositories

To add custom channels, use channel-name: channel-url. The channel name is relevant, since channel-name: channel-url will execute the commands nix-channel --add channel-url channel-name and nix-channel --update channel-name.

Example:

repositories:
  nixpkgs: https://nixos.org/channels/nixpkgs-unstable

By default, no user channels are present. However, like in a fresh NixOS installation, there is a root channel named nixos set to

  • https://nixos.org/channels/nixos-XX.YY in nixos/latest and nixos/XX.YY
  • https://nixos.org/channels/nixos-unstable in nixos/unstable

which is the channel the image was built from.

OpenBSD

Maintainer: Jarkko Oranen oranenj@iki.fi

Support policy: the most recent release and the version prior are supported. See also: upstream release cycle

OpenBSD 7.0 image: openbsd/latest or image: openbsd/7.0
arch supported native updated
arch: alpha
arch: amd64 (default) as required
arch: arm64
arch: armv7
arch: hppa
arch: i386
arch: landisk
arch: loongson
arch: luna88k
arch: macppc
arch: octeon
arch: power64
arch: sparc64
OpenBSD 6.9 image: openbsd/6.9
arch supported native updated
arch: alpha
arch: amd64 (default) as required
arch: arm64
arch: armv7
arch: hppa
arch: i386
arch: landisk
arch: loongson
arch: luna88k
arch: macppc
arch: octeon
arch: sgi
arch: sparc64

notes

Binary patches are applied to the base system using syspatch.

packages

The packages array is installed with pkg_add.

repositories

Custom package repositories are not supported on OpenBSD builds.

Rocky Linux

Maintainer: Haowen Liu lhw@lunacd.com

Rocky Linux 8 image: rockylinux/latest or image: rockylinux/8
arch supported native updated
arch: aarch64
arch: x86_64 (default) weekly

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

Ubuntu

Maintainer: Haowen Liu lhw@lunacd.com

Support cycle: the latest LTS, previous LTS, and the next normal release of Ubuntu are all supported. See the upstream support schedule for more information.

Ubuntu Focal (20.04) image: ubuntu/lts or image: ubuntu/focal or image: ubuntu/20.04
arch supported native updated
arch: arm64
arch: amd64 (default) weekly
arch: i386
arch: ppc64el
arch: s390x
Ubuntu Jammy (22.04) image: ubuntu/next or image: ubuntu/jammy or image: ubuntu/22.04
arch supported native updated
arch: arm64
arch: amd64 (default) daily
arch: i386
arch: ppc64el
arch: s390x
Ubuntu Impish (21.10) image: ubuntu/impish or image: ubuntu/21.10
arch supported native updated
arch: arm64
arch: amd64 (default) weekly
arch: i386
arch: ppc64el
arch: s390x
Ubuntu Bionic (18.04) image: ubuntu/oldlts or image: ubuntu/bionic or image: ubuntu/18.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 release component key-id (separated by spaces), where url is the URL of the package repository, release is e.g. bionic or cosmic, component is e.g. main, contrib or non-free, and key-id is an optional PGP key ID to add to the system keyring. Example:

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

9front

Maintainer: Drew DeVault sir@cmpwn.com

Support cycle: no support guarantees are made for 9front

9front "NO THINKPAD" image: 9front
arch supported native updated
arch: pc64 (default) manually

Caveats

  • Git submodules are not supported by git9
  • 9front ships a dated Mercurial version which is not compatible with hg.sr.ht's wire protocol
  • Custom packages and custom repositories are not supported
  • Shell access is not supported