# Generated by go2rpm %bcond_without check %bcond_without bootstrap # https://github.com/etcd-io/etcd %global goipath go.etcd.io/etcd %global forgeurl https://github.com/etcd-io/etcd Version: 3.4.14 %gometa %global goipaths0 go.etcd.io/etcd %global goipathsex0 go.etcd.io/etcd/etcdserver/api/v3rpc/ %if %{without bootstrap} %global goipaths1 go.etcd.io/etcd/etcdserver/api/v3rpc/ %endif %global goaltipaths github.com/coreos/etcd go.etcd.io/etcd/v3 %global man_version 3.4.14 %global common_description %{expand: Distributed reliable key-value store for the most critical data of a distributed system.} %global golicenses LICENSE NOTICE %global godocs CONTRIBUTING.md README.md Documentation\\\ README-*.md READMEv2-etcdctl.md %global gosupfiles integration/fixtures/* etcdserver/api/v2http/testdata/* Name: etcd Release: 1%{?dist} Summary: Distributed reliable key-value store for the most critical data of a distributed system Group: Development/Other %if %{with bootstrap} BuildArch: noarch %endif # Upstream license specification: Apache-2.0 License: ASL 2.0 URL: %{gourl} Source0: %{gosource} Source1: %{name}.service Source2: %{name}.conf Source3: man-%{man_version}.tar.gz # sh genmanpages.sh path_to_built_source Source10: genmanpages.sh # Not patches to apply here, but used on the source to generate man pages Source11: 0001-hack-etcdmain-to-generate-etcd.1.patch Source12: 0001-hack-to-generate-man-pages.patch # update grpc-go version to v1.32.0 Patch0: 0001-update-grpc-go-version-to-v1.32.0.patch Patch1: 0001-Convert-int-to-string-using-strconv.Itoa.patch BuildRequires: golang(github.com/bgentry/speakeasy) # BuildRequires: golang(github.com/cockroachdb/datadriven) BuildRequires: golang(github.com/coreos/go-semver/semver) BuildRequires: golang(github.com/coreos/go-systemd/daemon) BuildRequires: golang(github.com/coreos/go-systemd/journal) BuildRequires: golang(github.com/coreos/pkg/capnslog) BuildRequires: golang(github.com/creack/pty) BuildRequires: golang(github.com/dgrijalva/jwt-go) BuildRequires: golang(github.com/dustin/go-humanize) BuildRequires: golang(github.com/gogo/protobuf/gogoproto) BuildRequires: golang(github.com/gogo/protobuf/proto) BuildRequires: golang(github.com/golang/groupcache/lru) BuildRequires: golang(github.com/golang/protobuf/proto) BuildRequires: golang(github.com/google/btree) BuildRequires: golang(github.com/google/uuid) %if %{without bootstrap} BuildRequires: golang(github.com/grpc-ecosystem/go-grpc-middleware) %endif BuildRequires: golang(github.com/grpc-ecosystem/go-grpc-prometheus) BuildRequires: golang(github.com/grpc-ecosystem/grpc-gateway/runtime) BuildRequires: golang(github.com/grpc-ecosystem/grpc-gateway/utilities) BuildRequires: golang(github.com/jonboulle/clockwork) BuildRequires: golang(github.com/json-iterator/go) BuildRequires: golang(github.com/modern-go/reflect2) BuildRequires: golang(github.com/olekukonko/tablewriter) BuildRequires: golang(github.com/prometheus/client_golang/prometheus) BuildRequires: golang(github.com/prometheus/client_golang/prometheus/promhttp) BuildRequires: golang(github.com/soheilhy/cmux) BuildRequires: golang(github.com/spf13/cobra) BuildRequires: golang(github.com/spf13/pflag) BuildRequires: golang(github.com/tmc/grpc-websocket-proxy/wsproxy) BuildRequires: golang(github.com/urfave/cli) BuildRequires: golang(github.com/xiang90/probing) BuildRequires: golang(go.etcd.io/bbolt) BuildRequires: golang(go.uber.org/zap) BuildRequires: golang(go.uber.org/zap/zapcore) BuildRequires: golang(golang.org/x/crypto/bcrypt) BuildRequires: golang(golang.org/x/net/context) BuildRequires: golang(golang.org/x/net/http2) BuildRequires: golang(golang.org/x/net/trace) BuildRequires: golang(golang.org/x/time/rate) BuildRequires: golang(google.golang.org/grpc) BuildRequires: golang(google.golang.org/grpc/balancer) BuildRequires: golang(google.golang.org/grpc/codes) BuildRequires: golang(google.golang.org/grpc/connectivity) BuildRequires: golang(google.golang.org/grpc/credentials) BuildRequires: golang(google.golang.org/grpc/grpclog) BuildRequires: golang(google.golang.org/grpc/health) BuildRequires: golang(google.golang.org/grpc/health/grpc_health_v1) BuildRequires: golang(google.golang.org/grpc/keepalive) BuildRequires: golang(google.golang.org/grpc/metadata) # BuildRequires: golang(google.golang.org/grpc/naming) BuildRequires: golang(google.golang.org/grpc/peer) BuildRequires: golang(google.golang.org/grpc/resolver) BuildRequires: golang(google.golang.org/grpc/resolver/dns) BuildRequires: golang(google.golang.org/grpc/resolver/passthrough) BuildRequires: golang(google.golang.org/grpc/status) BuildRequires: golang(gopkg.in/cheggaaa/pb.v1) BuildRequires: golang(gopkg.in/yaml.v2) BuildRequires: golang(sigs.k8s.io/yaml) BuildRequires: python3-devel # BuildRequires: %%{py3_dist sphinx sphinx-rtd-theme} %{?systemd_requires} BuildRequires: systemd Requires(pre): shadow-utils %if %{with check} # Tests BuildRequires: golang(github.com/prometheus/client_model/go) %endif %description %{common_description} %gopkg %prep %setup -q -n man-%{man_version} -T -b 3 %goprep -k %patch0 -p1 %patch1 -p1 rm -rf vendor/ rm -rf cmd/vendor rm -rf raft/rafttest # For compatibility cp -aR etcdserver/api/snap snap cp -aR etcdserver/api/membership etcdserver/membership cp -aR etcdserver/api/v2store store for d in client clientv3 contrib etcdctl functional hack; do mv $d/README.md README-$d.md done mv etcdctl/READMEv2.md READMEv2-etcdctl.md mkdir -p man/man1 cp ../man-%{man_version}/*.1 man/man1/. %if %{without bootstrap} %build %gobuild -o %{gobuilddir}/bin/etcd %{goipath} for cmd in etcdctl; do %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd done %endif # make -C docs help # make -C docs html %install %gopkginstall %if %{without bootstrap} install -m 0755 -vd %{buildroot}%{_bindir} install -m 0755 -vp %{gobuilddir}/bin/* %{buildroot}%{_bindir}/ install -Dpm 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service install -dm 0755 %{buildroot}%{_sysconfdir}/%{name} install -pm 644 -t %{buildroot}%{_sysconfdir}/%{name} %{SOURCE2} # install manpages install -d %{buildroot}%{_mandir}/man1 install -pm 644 man/man1/* %{buildroot}%{_mandir}/man1 # And create /var/lib/etcd install -dm 0755 %{buildroot}%{_sharedstatedir}/%{name} %endif %if %{without bootstrap} %if %{with check} %check %gocheck -d clientv3 \ -d e2e \ -d functional/rpcpb \ -d functional/tester \ -d tools/functional-tester/etcd-agent \ -d integration \ -d clientv3/integration \ -d clientv3/balancer \ -d clientv3/naming \ -d clientv3/snapshot \ -d clientv3/ordering \ -d pkg/expect \ -d pkg/flags \ -d pkg/proxy \ -d pkg/tlsutil \ -d pkg/transport \ -d proxy/grpcproxy \ -t raft \ -t tests/e2e %endif %endif %if %{without bootstrap} %pre getent group %{name} >/dev/null || groupadd -r %{name} getent passwd %{name} >/dev/null || useradd -r -g %{name} -d %{_sharedstatedir}/%{name} \ -s /sbin/nologin -c "etcd user" %{name} %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun %{name}.service %files %license LICENSE NOTICE %doc CONTRIBUTING.md README.md %doc Documentation README-*.md READMEv2-etcdctl.md %{_bindir}/* %config(noreplace) %{_sysconfdir}/%{name} %dir %attr(-,%{name},%{name}) %{_sharedstatedir}/%{name} %{_unitdir}/%{name}.service %{_mandir}/man1/*.1* %endif %gopkgfiles %changelog * Wed Dec 30 2020 pterjan <pterjan> 3.4.14-1.mga8 + Revision: 1666260 - This is noarch when bootstraping - Enable bootstrap - Mageiaize - imported package etcd