1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
7 inherit eutils fcaps git-r3 golang-build systemd user
9 GO_PN="github.com/hashicorp/${PN}"
11 DESCRIPTION="A tool for managing secrets"
12 HOMEPAGE="https://vaultproject.io/"
14 EGIT_REPO_URI="git://${GO_PN}.git"
23 DEPEND="dev-go/go-oauth2:="
28 S="${WORKDIR}/src/${GO_PN}"
30 EGIT_CHECKOUT_DIR="${S}"
33 -m 755 'cap_ipc_lock=+ei' usr/bin/${PN}
38 enewuser ${PN} -1 -1 -1 ${PN}
46 # Create a writable GOROOT in order to avoid sandbox violations.
47 export GOROOT="${WORKDIR}/goroot"
48 cp -sR "${EPREFIX}"/usr/lib/go "${GOROOT}" || die
49 rm -rf "${GOROOT}/src/${GO_PN}" || die
51 export GOPATH=${WORKDIR}:${WORKDIR}/src/github.com/hashicorp/vault/Godeps/_workspace:$(get_golibdir_gopath)
53 while read -r -d '' x; do
54 rm -rf "${GOROOT}/src/${x}" "${GOROOT}/pkg/$(go env GOOS)_$(go env GOARCH)/${x}"{,.a} || die
55 done < <(find "${WORKDIR}/src/github.com/hashicorp/vault/Godeps/_workspace/src" -maxdepth 3 -mindepth 3 -type d -print0)
57 rm -rf "${WORKDIR}/src/github.com/hashicorp/vault/Godeps/_workspace/src/github.com/awslabs"
58 go get -d -v -x github.com/awslabs/aws-sdk-go || die
60 if ! type -P gox >/dev/null; then
61 pushd "${S}" >/dev/null || die
62 go get -d -v -x github.com/mitchellh/gox || die
67 go install -v -x github.com/awslabs/aws-sdk-go || die
68 if ! type -P gox >/dev/null; then
69 go install -v -x github.com/mitchellh/gox || die
71 PATH=${WORKDIR}/bin:${GOROOT}/bin:${PATH} emake dev
77 newinitd "${FILESDIR}/${PN}.initd" "${PN}"
78 newconfd "${FILESDIR}/${PN}.confd" "${PN}"
79 systemd_dounit "${FILESDIR}/${PN}.service"
83 doins "${FILESDIR}/"*.json.example
85 keepdir /var/log/${PN}
86 fowners ${PN}:${PN} /var/log/${PN}
90 egit_clean "${WORKDIR}"/{pkg,src}
92 find "${WORKDIR}"/src/${GO_PN} -mindepth 1 -maxdepth 1 -type f -delete || die
94 while read -r -d '' x; do
96 [[ -d ${WORKDIR}/pkg/$(go env GOOS)_$(go env GOARCH)/${x} ||
97 -f ${WORKDIR}/pkg/$(go env GOOS)_$(go env GOARCH)/${x}.a ]] && continue
98 rm -rf "${WORKDIR}"/src/${x}
99 done < <(find "${WORKDIR}"/src/${GO_PN} -mindepth 1 -maxdepth 1 -type d -print0)
100 insopts -m0644 -p # preserve timestamps for bug 551486
101 insinto "$(get_golibdir)/pkg/$(go env GOOS)_$(go env GOARCH)/${GO_PN%/*}"
102 doins -r "${WORKDIR}"/pkg/$(go env GOOS)_$(go env GOARCH)/${GO_PN}
103 insinto "$(get_golibdir)/src/${GO_PN%/*}"
104 doins -r "${WORKDIR}"/src/${GO_PN}