#!/bin/bash # ============================================================================= # packages/netavark/netavark.SlackBuild # # Builds the netavark .txz package from upstream source (Rust). netavark is # this project's container networking backend (see docs/ARCHITECTURE.md # section 8) — it is installed as a libexec helper binary, not a $PATH tool, # matching upstream's own layout so podman finds it via # `netavark_binary_dir` in containers.conf. # # Requires (in the build environment): rustc, cargo (a recent stable # toolchain — check upstream's Cargo.toml `rust-version` for the current # minimum). # ============================================================================= set -eu REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" # shellcheck source=/dev/null . "$REPO_ROOT/scripts/lib/slackbuild-common.sh" # shellcheck source=/dev/null . "$REPO_ROOT/versions.env" VERSION="$NETAVARK_VERSION" ARCH="$PKG_ARCH" BUILD="$PKG_BUILD" TAG="$PKG_TAG" sb_init "netavark" tarball=$(sb_fetch_and_verify "$NETAVARK_SRC_URL" "$NETAVARK_SRC_SHA256" "netavark-$VERSION.tar.gz") srcdir=$(sb_extract "$tarball") for patch in "$CWD"/patches/*.patch; do [ -e "$patch" ] || continue echo "==> [netavark] applying $(basename "$patch")" patch -d "$srcdir" -p1 < "$patch" done cd "$srcdir" echo "==> [netavark] cargo build --release" cargo build --release --locked echo "==> [netavark] install into \$PKG" install -D -m 0755 target/release/netavark "$PKG/usr/libexec/podman/netavark" sb_install_docs "$srcdir/LICENSE" "$srcdir/README.md" sb_make_package "$VERSION" "$ARCH" "$BUILD" "$TAG"