221 lines
7.4 KiB
RPMSpec
221 lines
7.4 KiB
RPMSpec
# Generated by go2rpm
|
|
%bcond_without check
|
|
|
|
# https://github.com/etcd-io/etcd
|
|
%global goipath go.etcd.io/etcd
|
|
%global forgeurl https://github.com/etcd-io/etcd
|
|
Version: 3.4.7
|
|
|
|
%gometa
|
|
|
|
# Remove in F33
|
|
%global godevelheader %{expand:
|
|
Obsoletes: etcd-devel < 3.3.12-5
|
|
}
|
|
|
|
%global goaltipaths github.com/coreos/etcd
|
|
%global man_version 3.4.7
|
|
|
|
%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/*
|
|
|
|
%define debug_package %{nil}
|
|
|
|
Name: etcd
|
|
Release: 1%{?dist}
|
|
Summary: Distributed reliable key-value store for the most critical data of a distributed system
|
|
|
|
# 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
|
|
# Fix a test
|
|
Patch0: 0001-remove-unknown-field-Etcd.Debug.patch
|
|
|
|
BuildRequires: compiler(go-compiler)
|
|
# 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)
|
|
# BuildRequires: golang(github.com/grpc-ecosystem/go-grpc-middleware)
|
|
# 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
|
|
%forgesetup
|
|
%patch0 -p1
|
|
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/.
|
|
|
|
%build
|
|
GO111MODULE=on GOFLAGS=-mod=vendor go build -o %{gobuilddir}/bin/etcd %{goipath}
|
|
for cmd in etcdctl; do
|
|
GO111MODULE=on GOFLAGS=-mod=vendor go build -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd
|
|
done
|
|
|
|
# make -C docs help
|
|
# make -C docs html
|
|
|
|
%install
|
|
#%gopkginstall
|
|
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}
|
|
|
|
#%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/snapshot \
|
|
# -d clientv3/ordering \
|
|
# -d pkg/expect \
|
|
# -d pkg/flags \
|
|
# -d pkg/proxy \
|
|
# -d pkg/tlsutil \
|
|
# -d pkg/transport \
|
|
# -t raft \
|
|
# -t tests/e2e
|
|
#%endif
|
|
|
|
%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*
|
|
|
|
#%gopkgfiles
|
|
|
|
%changelog
|
|
* Thu Aug 13 2020 jiangxinyu <jiangxinyu@kylinos.cn> - 3.4.7-1
|
|
- Init etcd project
|