You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-db/etcd/etcd-3.4.14.ebuild

316 lines
13 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit go-module systemd tmpfiles
GIT_COMMIT=8a03d2e96
MY_PV="${PV/_rc/-rc.}"
DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
HOMEPAGE="https://github.com/etcd-io/etcd"
EGO_SUM=(
"cloud.google.com/go v0.26.0/go.mod"
"github.com/BurntSushi/toml v0.3.1/go.mod"
"github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod"
"github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod"
"github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973"
"github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod"
"github.com/beorn7/perks v1.0.0"
"github.com/beorn7/perks v1.0.0/go.mod"
"github.com/bgentry/speakeasy v0.1.0"
"github.com/bgentry/speakeasy v0.1.0/go.mod"
"github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod"
"github.com/client9/misspell v0.3.4/go.mod"
"github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa"
"github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod"
"github.com/coreos/go-semver v0.2.0"
"github.com/coreos/go-semver v0.2.0/go.mod"
"github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7"
"github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod"
"github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf"
"github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod"
"github.com/creack/pty v1.1.7"
"github.com/creack/pty v1.1.7/go.mod"
"github.com/davecgh/go-spew v1.1.0/go.mod"
"github.com/davecgh/go-spew v1.1.1"
"github.com/davecgh/go-spew v1.1.1/go.mod"
"github.com/dgrijalva/jwt-go v3.2.0+incompatible"
"github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod"
"github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4"
"github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod"
"github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod"
"github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod"
"github.com/fatih/color v1.7.0"
"github.com/fatih/color v1.7.0/go.mod"
"github.com/ghodss/yaml v1.0.0/go.mod"
"github.com/go-kit/kit v0.8.0/go.mod"
"github.com/go-logfmt/logfmt v0.3.0/go.mod"
"github.com/go-stack/stack v1.8.0/go.mod"
"github.com/gogo/protobuf v1.1.1"
"github.com/gogo/protobuf v1.1.1/go.mod"
"github.com/gogo/protobuf v1.2.1"
"github.com/gogo/protobuf v1.2.1/go.mod"
"github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b"
"github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod"
"github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903"
"github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod"
"github.com/golang/mock v1.1.1/go.mod"
"github.com/golang/protobuf v1.2.0"
"github.com/golang/protobuf v1.2.0/go.mod"
"github.com/golang/protobuf v1.3.1"
"github.com/golang/protobuf v1.3.1/go.mod"
"github.com/golang/protobuf v1.3.2"
"github.com/golang/protobuf v1.3.2/go.mod"
"github.com/google/btree v1.0.0"
"github.com/google/btree v1.0.0/go.mod"
"github.com/google/go-cmp v0.2.0"
"github.com/google/go-cmp v0.2.0/go.mod"
"github.com/google/gofuzz v1.0.0/go.mod"
"github.com/google/uuid v1.0.0"
"github.com/google/uuid v1.0.0/go.mod"
"github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c"
"github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod"
"github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4"
"github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod"
"github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0"
"github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod"
"github.com/grpc-ecosystem/grpc-gateway v1.9.5"
"github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod"
"github.com/inconshreveable/mousetrap v1.0.0"
"github.com/inconshreveable/mousetrap v1.0.0/go.mod"
"github.com/jonboulle/clockwork v0.1.0"
"github.com/jonboulle/clockwork v0.1.0/go.mod"
"github.com/json-iterator/go v1.1.6"
"github.com/json-iterator/go v1.1.6/go.mod"
"github.com/json-iterator/go v1.1.7"
"github.com/json-iterator/go v1.1.7/go.mod"
"github.com/julienschmidt/httprouter v1.2.0/go.mod"
"github.com/kisielk/errcheck v1.1.0/go.mod"
"github.com/kisielk/gotool v1.0.0/go.mod"
"github.com/konsorten/go-windows-terminal-sequences v1.0.1"
"github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod"
"github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod"
"github.com/kr/pretty v0.1.0"
"github.com/kr/pretty v0.1.0/go.mod"
"github.com/kr/pty v1.1.1/go.mod"
"github.com/kr/text v0.1.0"
"github.com/kr/text v0.1.0/go.mod"
"github.com/mattn/go-colorable v0.0.9"
"github.com/mattn/go-colorable v0.0.9/go.mod"
"github.com/mattn/go-isatty v0.0.4"
"github.com/mattn/go-isatty v0.0.4/go.mod"
"github.com/mattn/go-runewidth v0.0.2"
"github.com/mattn/go-runewidth v0.0.2/go.mod"
"github.com/matttproud/golang_protobuf_extensions v1.0.1"
"github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod"
"github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod"
"github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd"
"github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod"
"github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod"
"github.com/modern-go/reflect2 v1.0.1"
"github.com/modern-go/reflect2 v1.0.1/go.mod"
"github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod"
"github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5"
"github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod"
"github.com/pkg/errors v0.8.0"
"github.com/pkg/errors v0.8.0/go.mod"
"github.com/pmezard/go-difflib v1.0.0"
"github.com/pmezard/go-difflib v1.0.0/go.mod"
"github.com/prometheus/client_golang v0.9.1/go.mod"
"github.com/prometheus/client_golang v1.0.0"
"github.com/prometheus/client_golang v1.0.0/go.mod"
"github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod"
"github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90"
"github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod"
"github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4"
"github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod"
"github.com/prometheus/common v0.4.1"
"github.com/prometheus/common v0.4.1/go.mod"
"github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod"
"github.com/prometheus/procfs v0.0.2"
"github.com/prometheus/procfs v0.0.2/go.mod"
"github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod"
"github.com/sirupsen/logrus v1.2.0"
"github.com/sirupsen/logrus v1.2.0/go.mod"
"github.com/sirupsen/logrus v1.4.2"
"github.com/sirupsen/logrus v1.4.2/go.mod"
"github.com/soheilhy/cmux v0.1.4"
"github.com/soheilhy/cmux v0.1.4/go.mod"
"github.com/spf13/cobra v0.0.3"
"github.com/spf13/cobra v0.0.3/go.mod"
"github.com/spf13/pflag v1.0.1"
"github.com/spf13/pflag v1.0.1/go.mod"
"github.com/stretchr/objx v0.1.0/go.mod"
"github.com/stretchr/objx v0.1.1/go.mod"
"github.com/stretchr/testify v1.2.2"
"github.com/stretchr/testify v1.2.2/go.mod"
"github.com/stretchr/testify v1.3.0"
"github.com/stretchr/testify v1.3.0/go.mod"
"github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8"
"github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod"
"github.com/urfave/cli v1.20.0"
"github.com/urfave/cli v1.20.0/go.mod"
"github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2"
"github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod"
"go.etcd.io/bbolt v1.3.3"
"go.etcd.io/bbolt v1.3.3/go.mod"
"go.uber.org/atomic v1.3.2"
"go.uber.org/atomic v1.3.2/go.mod"
"go.uber.org/multierr v1.1.0"
"go.uber.org/multierr v1.1.0/go.mod"
"go.uber.org/zap v1.10.0"
"go.uber.org/zap v1.10.0/go.mod"
"golang.org/x/crypto v0.0.0-20180904163835-0709b304e793"
"golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod"
"golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2"
"golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod"
"golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod"
"golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod"
"golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod"
"golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod"
"golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod"
"golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod"
"golang.org/x/net v0.0.0-20181114220301-adae6a3d119a"
"golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod"
"golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod"
"golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod"
"golang.org/x/net v0.0.0-20190311183353-d8887717615a"
"golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod"
"golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7"
"golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod"
"golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod"
"golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod"
"golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod"
"golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod"
"golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod"
"golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod"
"golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod"
"golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod"
"golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5"
"golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod"
"golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a"
"golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod"
"golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod"
"golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456"
"golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod"
"golang.org/x/text v0.3.0"
"golang.org/x/text v0.3.0/go.mod"
"golang.org/x/text v0.3.3"
"golang.org/x/text v0.3.3/go.mod"
"golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2"
"golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod"
"golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod"
"golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod"
"golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod"
"golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod"
"golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod"
"golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod"
"google.golang.org/appengine v1.1.0/go.mod"
"google.golang.org/appengine v1.4.0/go.mod"
"google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8"
"google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod"
"google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55"
"google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod"
"google.golang.org/grpc v1.19.0/go.mod"
"google.golang.org/grpc v1.23.0/go.mod"
"google.golang.org/grpc v1.26.0"
"google.golang.org/grpc v1.26.0/go.mod"
"gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod"
"gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405"
"gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod"
"gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127"
"gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod"
"gopkg.in/cheggaaa/pb.v1 v1.0.25"
"gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod"
"gopkg.in/resty.v1 v1.12.0/go.mod"
"gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod"
"gopkg.in/yaml.v2 v2.2.1/go.mod"
"gopkg.in/yaml.v2 v2.2.2"
"gopkg.in/yaml.v2 v2.2.2/go.mod"
"honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod"
"honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod"
"sigs.k8s.io/yaml v1.1.0"
"sigs.k8s.io/yaml v1.1.0/go.mod"
)
go-module_set_globals
SRC_URI="https://github.com/etcd-io/etcd/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz
${EGO_SUM_SRC_URI}"
LICENSE="Apache-2.0 BSD BSD-2 MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="doc +server"
COMMON_DEPEND="server? (
acct-group/etcd
acct-user/etcd
)"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}
!dev-db/etcdctl"
# Tests fail with this error:
# fatal error: checkptr: unsafe pointer conversion
RESTRICT+=" test "
PATCHES=(
"${FILESDIR}/${P}-modules.patch"
)
src_prepare() {
export GO_BUILD_FLAGS="-v -x"
default
sed -e "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|"\
-i "${S}"/build || die
sed -e 's:\(for p in \)shellcheck :\1 :' \
-e 's:^ gofmt \\$:\\:' \
-e 's:^ govet \\$:\\:' \
-e 's:^ govet_shadow \\$:\\:' \
-i "${S}"/test || die
sed -e "s|GO_BUILD_FLAGS=\"[^\"]*\"|GO_BUILD_FLAGS=\"${GO_BUILD_FLAGS}\"|" \
-e "s|go test |go test ${GO_BUILD_FLAGS} |" \
-i ./test || die
# mkdir -p vendor/github.com/coreos || die
# ln -s ../../.. vendor/github.com/coreos/etcd || die
}
src_compile() {
./build || die
}
src_test() {
./test || die
}
src_install() {
dobin bin/etcdctl
use doc && dodoc -r Documentation
if use server; then
insinto /etc/${PN}
doins "${FILESDIR}/${PN}.conf"
dobin bin/etcd
dodoc README.md
systemd_dounit "${FILESDIR}/${PN}.service"
newtmpfiles "${FILESDIR}/${PN}.tmpfiles.d.conf" ${PN}.conf
newinitd "${FILESDIR}"/${PN}.initd ${PN}
newconfd "${FILESDIR}"/${PN}.confd ${PN}
insinto /etc/logrotate.d
newins "${FILESDIR}/${PN}.logrotated" "${PN}"
keepdir /var/lib/${PN}
fowners ${PN}:${PN} /var/lib/${PN}
fperms 0700 /var/lib/${PN}
keepdir /var/log/${PN}
fowners ${PN}:${PN} /var/log/${PN}
fperms 755 /var/log/${PN}
fi
}
pkg_postinst() {
if use server; then
tmpfiles_process ${PN}.conf
fi
}