#!/bin/bash # ============================================================================= # packages/crun/crun.SlackBuild # # Builds the crun .txz package from upstream source (C, autotools). crun is # the OCI runtime this project uses (preferred over runc — lighter, cgroup # v2-friendly, see docs/ARCHITECTURE.md section 5.1). # # Requires (in the build environment): gcc, make, autoconf, automake, # libtool, pkg-config, libcap-dev, libseccomp-dev, libyajl-dev, python3 # (used by crun's build-time code generator). # ============================================================================= 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="$CRUN_VERSION" ARCH="$PKG_ARCH" BUILD="$PKG_BUILD" TAG="$PKG_TAG" sb_init "crun" tarball=$(sb_fetch_and_verify "$CRUN_SRC_URL" "$CRUN_SRC_SHA256" "crun-$VERSION.tar.gz") srcdir=$(sb_extract "$tarball") for patch in "$CWD"/patches/*.patch; do [ -e "$patch" ] || continue echo "==> [crun] applying $(basename "$patch")" patch -d "$srcdir" -p1 < "$patch" done cd "$srcdir" # GitHub's source archive does not include vendored git submodules # (libocispec) that crun's release tarballs normally bundle; init/update # them explicitly. if [ -f .gitmodules ]; then echo "==> [crun] fetching submodules" git -c protocol.file.allow=always submodule update --init --recursive || true fi echo "==> [crun] autogen + configure" ./autogen.sh ./configure --prefix=/usr --disable-systemd echo "==> [crun] make" make echo "==> [crun] make install into \$PKG" make install DESTDIR="$PKG" sb_install_docs "$srcdir/COPYING" "$srcdir/README.md" sb_make_package "$VERSION" "$ARCH" "$BUILD" "$TAG"