app-admin/vault: LICENSE: account for vendored software
[gentoo.git] / app-admin / vault / vault-1.2.2.ebuild
1 # Copyright 1999-2019 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit fcaps golang-base golang-vcs-snapshot systemd user
7
8 EGO_PN="github.com/hashicorp/${PN}"
9 VAULT_WEBUI_ARCHIVE="${P}-webui.tar.xz"
10 DESCRIPTION="A tool for managing secrets"
11 HOMEPAGE="https://vaultproject.io/"
12 SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
13         webui? (
14                 mirror://gentoo/${VAULT_WEBUI_ARCHIVE}
15                 https://dev.gentoo.org/~zmedico/dist/${VAULT_WEBUI_ARCHIVE}
16         )"
17 SLOT="0"
18 LICENSE="MPL-2.0 Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
19 KEYWORDS="~amd64"
20 IUSE="+webui"
21
22 RESTRICT="test"
23
24 DEPEND=">=dev-lang/go-1.11:=
25         dev-go/gox"
26
27 FILECAPS=(
28         -m 755 'cap_ipc_lock=+ep' usr/bin/${PN}
29 )
30
31 src_unpack() {
32         golang-vcs-snapshot_src_unpack
33         if use webui; then
34                 # The webui assets build has numerous nodejs dependencies,
35                 # see https://github.com/hashicorp/vault/blob/master/ui/README.md
36                 pushd "${S}/src/${EGO_PN}" >/dev/null || die
37                 unpack "${VAULT_WEBUI_ARCHIVE}"
38                 popd >/dev/null
39         fi
40 }
41
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                 -i src/${EGO_PN}/scripts/build.sh || die
49         sed -e "/hooks/d" \
50                 -e 's|^\([[:space:]]*\)goimports .*)|\1true|' \
51                 -i src/${EGO_PN}/Makefile || die
52
53         # Avoid network-sandbox violations since go-1.13
54         rm src/${EGO_PN}/go.mod || die
55 }
56
57 pkg_setup() {
58         enewgroup ${PN}
59         enewuser ${PN} -1 -1 -1 ${PN}
60 }
61
62 src_compile() {
63         mkdir bin || die
64         export -n GOCACHE XDG_CACHE_HOME #678970
65         export GOBIN=${S}/bin GOPATH=${S}
66         cd src/${EGO_PN} || die
67         # The fmt target may need to be executed if it was previously
68         # executed by an older version of go (bug 665438).
69         emake fmt
70         BUILD_TAGS="$(usex webui ui '')" \
71         XC_ARCH=$(go env GOARCH) \
72         XC_OS=$(go env GOOS) \
73         XC_OSARCH=$(go env GOOS)/$(go env GOARCH) \
74         emake
75 }
76
77 src_install() {
78         dodoc src/${EGO_PN}/{CHANGELOG.md,CONTRIBUTING.md,README.md}
79         newinitd "${FILESDIR}/${PN}.initd" "${PN}"
80         newconfd "${FILESDIR}/${PN}.confd" "${PN}"
81         insinto /etc/logrotate.d
82         newins "${FILESDIR}/${PN}.logrotated" "${PN}"
83         systemd_dounit "${FILESDIR}/${PN}.service"
84
85         keepdir /etc/${PN}.d
86         insinto /etc/${PN}.d
87         doins "${FILESDIR}/"*.json.example
88
89         keepdir /var/log/${PN}
90         fowners ${PN}:${PN} /var/log/${PN}
91
92         dobin bin/${PN}
93 }