#!/usr/bin/bash set -e # Install build dependencies dnf makecache && dnf install -y \ unzip \ libtool \ autoconf \ automake \ gcc \ make \ git \ go \ cowsql-devel \ libacl-devel \ libcap-devel \ libseccomp-devel \ libuv-devel \ raft-devel \ libudev-devel \ lxc-devel \ libsqlite3x-devel \ sqlite-devel \ systemd-rpm-macros \ bash-completion \ gettext \ help2man \ curl-minimal # Download and extract incus source curl -L -o /app/incus.tar.gz https://github.com/lxc/incus/archive/refs/tags/v${PACKAGE_VERSION}.tar.gz tar -C /app -xf incus.tar.gz # Install specific Go version curl -L -O https://go.dev/dl/go1.24.1.linux-amd64.tar.gz rm -rf /usr/local/go tar -C /usr/local -xzf go1.24.1.linux-amd64.tar.gz # Set up Go environment and build incus export PATH=/usr/local/go/bin:$PATH pushd /app/incus-${PACKAGE_VERSION} make deps export CGO_CFLAGS="-I/root/go/deps/raft/include/ -I/root/go/deps/cowsql/include/" export CGO_LDFLAGS="-L/root/go/deps/raft/.libs -L/root/go/deps/cowsql/.libs/" export LD_LIBRARY_PATH="/root/go/deps/raft/.libs/:/root/go/deps/cowsql/.libs/" export CGO_LDFLAGS_ALLOW="(-Wl,-wrap,pthread_create)|(-Wl,-z,now)" make build popd # Build the RPMs nfpm pkg --config /app/resources/nfpm_incus.yaml --target /app/dist --packager rpm nfpm pkg --config /app/resources/nfpm_incus-client.yaml --target /app/dist --packager rpm nfpm pkg --config /app/resources/nfpm_incus-tools.yaml --target /app/dist --packager rpm