Software Requirements

The principal release engineer runs Fedora (on this hardware), community-contributed instructions for other platforms are listed here.

* `@development-tools`
* `@fedora-packager`
* `binutils-aarch64-linux-gnu`
* `binutils-arm-linux-gnu`
* `binutils-x86_64-linux-gnu`
* `brotli`
* `cargo`
* `ccache`
* `java`
* `java-devel`
* `java-17-openjdk-devel`
* `gcc-c++`
* `git-filter-repo`
* `glibc.i686`
* `gperf`
* `libstdc++.i686`
* `libxcrypt-compat`
* `ncurses-compat-libs-6.4`
* `ninja`
* `java-1.8.0-openjdk-headless`
* `java-17-openjdk-headless`
* `java-21-openjdk-headless`
* `openssl-devel`
* `openssl-engine-devel`
* `p7zip`
* `parallel`
* `perl-FindBin`
* `python2.7`
* `python3.12`
* `repo`
* `secilc`
* `zlib.i686`
* `zlib-ng-compat.i686`
* `zopfli`

To do this in one fell swoop:

$ sudo dnf -y install \
    @development-tools \
    @fedora-packager \
    binutils-aarch64-linux-gnu \
    binutils-arm-linux-gnu \
    binutils-x86_64-linux-gnu \
    brotli \
    cargo \
    ccache \
    java \
    java-devel \
    java-17-openjdk-devel \
    gcc-c++ \
    git-filter-repo \
    glibc.i686 \
    gperf \
    libstdc++.i686 \
    libxcrypt-compat \
    ncurses-compat-libs-6.4 \
    ninja \
    java-1.8.0-openjdk-headless \
    java-17-openjdk-headless \
    java-21-openjdk-headless \
    openssl-devel \
    openssl-devel-engine \
    p7zip \
    parallel \
    perl-FindBin \
    python2.7 \
    python3.12 \
    repo \
    secilc \
    zlib.i686 \
    zlib-ng-compat.i686 \
    zopfli

Further, you may wish to wrap the repo command like so:

$ cat ~/bin/repo
#!/bin/bash

if [ -x "$PWD/.repo/repo/repo" ]; then
    repo_cmd="$PWD/.repo/repo/repo"
else
    repo_cmd=/bin/repo
fi

if [ -z "${repo_cmd}" ]; then
    echo "No such command repo"
    exit 1
fi

${repo_cmd} $@

Other Platforms