app-admin/vault: stabilize 1.18.3 for amd64
[gentoo/gentoo.git] / app-admin / vault / vault-1.18.3.ebuild
blob8d7997070c9d28ef0af75789bef373fed512787f
1 # Copyright 1999-2025 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
4 EAPI=8
6 inherit fcaps go-module systemd
8 DESCRIPTION="A tool for managing secrets"
9 HOMEPAGE="https://vaultproject.io/"
11 VAULT_WEBUI_ARCHIVE="${P}-webui.tar.xz"
12 SRC_URI="https://github.com/hashicorp/vault/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
13 SRC_URI+=" webui? ( https://dev.gentoo.org/~zmedico/dist/${VAULT_WEBUI_ARCHIVE} )"
14 SRC_URI+=" https://dev.gentoo.org/~zmedico/dist/${P}-deps.tar.xz"
16 LICENSE="BUSL-1.1 MPL-2.0"
17 LICENSE+=" Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
18 SLOT="0"
19 KEYWORDS="amd64 ~arm64 ~riscv"
20 IUSE="+webui"
22 BDEPEND="
23         app-arch/zip
24         dev-go/enumer
25         dev-go/gox
26         >=dev-lang/go-1.21"
27 COMMON_DEPEND="acct-group/vault
28         acct-user/vault"
29         DEPEND="${COMMON_DEPEND}"
30         RDEPEND="${COMMON_DEPEND}"
32 FILECAPS=(
33         -m 755 'cap_ipc_lock=+ep' usr/bin/${PN}
36 RESTRICT="test"
38 src_unpack() {
39         default
42 src_prepare() {
43         default
44         # Avoid the need to have a git checkout
45         sed -e 's:^\(GIT_COMMIT=\).*:\1:' \
46                 -e 's:^\(GIT_DIRTY=\).*:\1:' \
47                 -e s:\'\${GIT_COMMIT}\${GIT_DIRTY}\':: \
48                 -e "s|^BUILD_DATE=.*|BUILD_DATE=$(date +%Y-%m-%dT%H:%M:%SZ)|" \
49                 -i scripts/build.sh || die
50         sed -e "/hooks/d" \
51                 -e 's|^\([[:space:]]*\)goimports .*)|\1true|' \
52                 -e "s/gofumpt/gofmt/g" \
53                 -i Makefile || die
54         if [[ -d "${WORKDIR}/http/web_ui" ]]; then
55                 rm -rf "${S}/http/web_ui" || die
56                 mv "${WORKDIR}/http/web_ui" "${S}/http/web_ui" ||
57                         die "mv failed"
58         else
59                 mkdir -p "${S}/http/web_ui" || die
60                 touch "${S}/http/web_ui/no_web_ui" || die
61         fi
64 src_compile() {
65         mkdir "${T}"/bin || die
66         BUILD_TAGS="$(usex webui ui '')" \
67         GOPATH="${T}" \
68         XC_ARCH=$(go env GOARCH) \
69         XC_OS=$(go env GOOS) \
70         XC_OSARCH=$(go env GOOS)/$(go env GOARCH) \
71         emake bin
74 src_install() {
75         dobin bin/${PN}
76         dodoc CHANGELOG.md CONTRIBUTING.md README.md
77         insinto /etc/${PN}.d
78         doins "${FILESDIR}/"*.json.example
79         insinto /etc/logrotate.d
80         newins "${FILESDIR}/${PN}.logrotated" "${PN}"
81         newinitd "${FILESDIR}/${PN}.initd" "${PN}"
82         newconfd "${FILESDIR}/${PN}.confd" "${PN}"
83         systemd_dounit "${FILESDIR}/${PN}.service"
84         keepdir /var/log/${PN}
85         fowners ${PN}:${PN} /var/log/${PN}