summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-containers/buildah/buildah-1.34.3.ebuild')
-rw-r--r--app-containers/buildah/buildah-1.34.3.ebuild161
1 files changed, 161 insertions, 0 deletions
diff --git a/app-containers/buildah/buildah-1.34.3.ebuild b/app-containers/buildah/buildah-1.34.3.ebuild
new file mode 100644
index 000000000000..cc06bf2ff42d
--- /dev/null
+++ b/app-containers/buildah/buildah-1.34.3.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module linux-info toolchain-funcs
+
+DESCRIPTION="A tool that facilitates building OCI images"
+HOMEPAGE="https://github.com/containers/buildah"
+
+# main pkg
+LICENSE="Apache-2.0"
+# deps
+LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
+
+SLOT="0"
+IUSE="apparmor btrfs +seccomp systemd test"
+RESTRICT="test"
+DOCS=(
+ "CHANGELOG.md"
+ "troubleshooting.md"
+ "docs/tutorials"
+)
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/containers/buildah.git"
+else
+ SRC_URI="https://github.com/containers/buildah/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm64"
+fi
+
+RDEPEND="
+ systemd? ( sys-apps/systemd )
+ btrfs? ( sys-fs/btrfs-progs )
+ seccomp? ( sys-libs/libseccomp:= )
+ apparmor? ( sys-libs/libapparmor:= )
+ app-containers/containers-common
+ app-crypt/gpgme:=
+ dev-libs/libgpg-error:=
+ dev-libs/libassuan:=
+ sys-apps/shadow:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-go/go-md2man"
+
+PATCHES=(
+ "${T}"/dont-call-as-directly-upstream-pr-5436.patch
+)
+
+pkg_pretend() {
+ local CONFIG_CHECK=""
+ use btrfs && CONFIG_CHECK+=" ~BTRFS_FS"
+ check_extra_config
+
+ linux_config_exists || ewarn "Cannot determine configuration of your kernel."
+}
+
+src_prepare() {
+ cat <<'EOF' > "${T}/dont-call-as-directly-upstream-pr-5436.patch"
+--- a/Makefile
++++ b/Makefile
+@@ -14,6 +14,8 @@
+ BASHINSTALLDIR = $(PREFIX)/share/bash-completion/completions
+ BUILDFLAGS := -tags "$(BUILDTAGS)"
+ BUILDAH := buildah
++AS ?= as
++STRIP ?= strip
+
+ GO := go
+ GO_LDFLAGS := $(shell if $(GO) version|grep -q gccgo; then echo "-gccgoflags"; else echo "-ldflags"; fi)
+@@ -76,14 +78,14 @@
+ bin/buildah: $(SOURCES) cmd/buildah/*.go internal/mkcw/embed/entrypoint_amd64.gz
+ $(GO_BUILD) $(BUILDAH_LDFLAGS) $(GO_GCFLAGS) "$(GOGCFLAGS)" -o $@ $(BUILDFLAGS) ./cmd/buildah
+
+-ifneq ($(shell as --version | grep x86_64),)
++ifneq ($(shell $(AS) --version | grep x86_64),)
+ internal/mkcw/embed/entrypoint_amd64.gz: internal/mkcw/embed/entrypoint_amd64
+ gzip -k9nf $^
+
+ internal/mkcw/embed/entrypoint_amd64: internal/mkcw/embed/entrypoint_amd64.s
+ $(AS) -o $(patsubst %.s,%.o,$^) $^
+ $(LD) -o $@ $(patsubst %.s,%.o,$^)
+- strip $@
++ $(STRIP) $@
+ endif
+EOF
+
+ default
+
+ # ensure all necessary files are there
+ local file
+ for file in docs/Makefile hack/libsubid_tag.sh hack/apparmor_tag.sh \
+ hack/systemd_tag.sh btrfs_installed_tag.sh btrfs_tag.sh; do
+ [[ -f "${file}" ]] || die
+ done
+
+ sed -i -e "s|/usr/local|/usr|g" Makefile docs/Makefile || die
+ echo -e '#!/usr/bin/env bash\necho libsubid' > hack/libsubid_tag.sh || die
+
+ cat <<-EOF > hack/apparmor_tag.sh || die
+ #!/usr/bin/env bash
+ $(usex apparmor 'echo apparmor' echo)
+ EOF
+
+ use seccomp || {
+ cat <<-'EOF' > "${T}/disable_seccomp.patch"
+ --- a/Makefile
+ +++ b/Makefile
+ @@ -5 +5 @@
+ -SECURITYTAGS ?= seccomp $(APPARMORTAG)
+ +SECURITYTAGS ?= $(APPARMORTAG)
+ EOF
+ eapply "${T}/disable_seccomp.patch" || die
+ }
+
+ cat <<-EOF > hack/systemd_tag.sh || die
+ #!/usr/bin/env bash
+ $(usex systemd 'echo systemd' echo)
+ EOF
+
+ echo -e "#!/usr/bin/env bash\n echo" > btrfs_installed_tag.sh || die
+ cat <<-EOF > btrfs_tag.sh || die
+ #!/usr/bin/env bash
+ $(usex btrfs echo 'echo exclude_graphdriver_btrfs btrfs_noversion')
+ EOF
+
+ use test || {
+ cat <<-'EOF' > "${T}/disable_tests.patch"
+ --- a/Makefile
+ +++ b/Makefile
+ @@ -54 +54 @@
+ -all: bin/buildah bin/imgtype bin/copy bin/tutorial docs
+ +all: bin/buildah docs
+ @@ -123 +123 @@
+ -docs: install.tools ## build the docs on the host
+ +docs: ## build the docs on the host
+ EOF
+ eapply "${T}/disable_tests.patch" || die
+ }
+
+}
+
+src_compile() {
+ # For non-live versions, prevent git operations which causes sandbox violations
+ # https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493
+ [[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT=""
+
+ tc-export AS LD STRIP
+ export GOMD2MAN="$(command -v go-md2man)"
+ default
+}
+
+src_test() {
+ emake test-unit
+}
+
+src_install() {
+ emake DESTDIR="${ED}" install install.completions
+ einstalldocs
+}