summaryrefslogtreecommitdiff
path: root/app-containers/buildah/buildah-9999.ebuild
blob: 8ca21b070f70f7c3c3bf46738d7e84eb3df81fd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit go-module linux-info

DESCRIPTION="A tool that facilitates building OCI images"
HOMEPAGE="https://github.com/containers/buildah"
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"

SLOT="0"
IUSE="apparmor btrfs +seccomp systemd doc test"
RESTRICT="test"
EXTRA_DOCS=(
	"CHANGELOG.md"
	"CONTRIBUTING.md"
	"README.md"
	"install.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"
	GIT_COMMIT=2326d49
	KEYWORDS="~amd64 ~arm64"
fi

DEPEND="
	systemd? ( sys-apps/systemd )
	btrfs? ( sys-fs/btrfs-progs )
	seccomp? ( sys-libs/libseccomp:= )
	apparmor? ( sys-libs/libapparmor:= )
	app-crypt/gpgme:=
	dev-libs/libgpg-error:=
	dev-libs/libassuan:=
	sys-apps/shadow:=
"
RDEPEND="${DEPEND}"

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() {
	default

	sed -i -e "s|/usr/local|${EPREFIX}/usr|g" Makefile docs/Makefile || die

	[[ -f hack/libsubid_tag.sh ]] && echo -e '#!/usr/bin/env bash\necho libsubid' > hack/libsubid_tag.sh || die

	[[ -f hack/apparmor_tag.sh ]] || die
	if use apparmor; then
		echo -e '#!/usr/bin/env bash\necho apparmor' > hack/apparmor_tag.sh || die
	else
		echo -e '#!/usr/bin/env bash\necho' > hack/apparmor_tag.sh || die
	fi

	use seccomp || {
		 cat << 'EOF' > "${T}/disable_seccomp.patch"
--- Makefile
+++ Makefile
@@ -5 +5 @@
-SECURITYTAGS ?= seccomp $(APPARMORTAG)
+SECURITYTAGS ?= $(APPARMORTAG)
EOF
		 eapply -p0 "${T}/disable_seccomp.patch" || die
	}

	[[ -f hack/systemd_tag.sh ]] || die
	if use systemd; then
		echo -e '#!/usr/bin/env bash\necho systemd' > hack/systemd_tag.sh || die
	else
		echo -e '#!/usr/bin/env bash\necho' > hack/systemd_tag.sh || die
	fi

	[[ -f btrfs_installed_tag.sh && -f btrfs_tag.sh ]] || die
	if use btrfs; then
		echo -e '#!/usr/bin/env bash\necho btrfs_noversion' > btrfs_tag.sh || die
		echo -e '#!/usr/bin/env bash\necho' > btrfs_installed_tag.sh || die
	else
		echo -e '#!/usr/bin/env bash\necho exclude_graphdriver_btrfs' > btrfs_installed_tag.sh || die
		echo -e '#!/usr/bin/env bash\necho' > btrfs_tag.sh || die
	fi

	use test || {
		cat << 'EOF' > "${T}/disable_tests.patch"
--- Makefile
+++ Makefile
@@ -54 +54 @@
-all: bin/buildah bin/imgtype bin/copy bin/tutorial docs
+all: bin/buildah docs
EOF
		eapply -p0 "${T}/disable_tests.patch" || die
	}

}

src_compile() {
	if [[ ${PV} == *9999* ]]; then
		emake all
	else
		emake GIT_COMMIT=${GIT_COMMIT} all
	fi
}

src_test() {
	emake test-unit
}

src_install() {
	default
	emake DESTDIR="${D}" install.completions
	use doc && dodoc -r "${EXTRA_DOCS[@]}"
}