From 17ba79b85c40c3e76f0f020e12834572ee7a374c Mon Sep 17 00:00:00 2001 From: Robert-André Mauchin Date: Apr 05 2020 14:18:20 +0000 Subject: Update to 3.4.7 Signed-off-by: Robert-André Mauchin --- diff --git a/.gitignore b/.gitignore index 40facd9..c96a402 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,7 @@ /etcd-cca0d5c1bed134ac30e1354241f7655d2a118db4.tar.gz /etcd-3.3.13.tar.gz /man-3.3.13.tar.gz +/etcd-3.4.3.tar.gz +/man-3.4.3.tar.gz +/etcd-3.4.7.tar.gz +/man-3.4.7.tar.gz diff --git a/0001-Eliminate-direct-use-of-gRPC-transport-pkg.patch b/0001-Eliminate-direct-use-of-gRPC-transport-pkg.patch deleted file mode 100644 index f54af4b..0000000 --- a/0001-Eliminate-direct-use-of-gRPC-transport-pkg.patch +++ /dev/null @@ -1,139 +0,0 @@ -From 520bd5084e3120e0eb45963446e798b1f3211d2f Mon Sep 17 00:00:00 2001 -From: Matt Brannock -Date: Wed, 18 Jul 2018 13:09:27 -0700 -Subject: [PATCH] integration, functional: Eliminate direct use of gRPC - transport pkg - -gRPC has moved the transport package to an internal-only directory. This -eliminates direct use of the transport package in the stress test in -favor of the error code from gRPC that represents a connection problem. - -https://godoc.org/google.golang.org/grpc/internal/transport is the new -location for the package, which says it's not intended to be imported -directly. Instead, the maintainers suggested to use the code Unavailable -to detect a connection problem. - -This change slightly reorganizes the stresser test error handling. ---- - functional/tester/stresser_key.go | 97 +++++++++++++++++----------- - 2 files changed, 63 insertions(+), 42 deletions(-) - -diff --git a/functional/tester/stresser_key.go b/functional/tester/stresser_key.go -index 54efddb28a..b3e46cc0e7 100644 ---- a/functional/tester/stresser_key.go -+++ b/functional/tester/stresser_key.go -@@ -31,7 +31,8 @@ import ( - "go.uber.org/zap" - "golang.org/x/time/rate" - "google.golang.org/grpc" -- "google.golang.org/grpc/transport" -+ "google.golang.org/grpc/codes" -+ "google.golang.org/grpc/status" - ) - - type keyStresser struct { -@@ -130,41 +131,7 @@ func (s *keyStresser) run() { - continue - } - -- switch rpctypes.ErrorDesc(err) { -- case context.DeadlineExceeded.Error(): -- // This retries when request is triggered at the same time as -- // leader failure. When we terminate the leader, the request to -- // that leader cannot be processed, and times out. Also requests -- // to followers cannot be forwarded to the old leader, so timing out -- // as well. We want to keep stressing until the cluster elects a -- // new leader and start processing requests again. -- case etcdserver.ErrTimeoutDueToLeaderFail.Error(), etcdserver.ErrTimeout.Error(): -- // This retries when request is triggered at the same time as -- // leader failure and follower nodes receive time out errors -- // from losing their leader. Followers should retry to connect -- // to the new leader. -- case etcdserver.ErrStopped.Error(): -- // one of the etcd nodes stopped from failure injection -- case transport.ErrConnClosing.Desc: -- // server closed the transport (failure injected node) -- case rpctypes.ErrNotCapable.Error(): -- // capability check has not been done (in the beginning) -- case rpctypes.ErrTooManyRequests.Error(): -- // hitting the recovering member. -- case context.Canceled.Error(): -- // from stresser.Cancel method: -- return -- case grpc.ErrClientConnClosing.Error(): -- // from stresser.Cancel method: -- return -- default: -- s.lg.Warn( -- "stress run exiting", -- zap.String("stress-type", s.stype.String()), -- zap.String("endpoint", s.m.EtcdClientEndpoint), -- zap.String("error-type", reflect.TypeOf(err).String()), -- zap.Error(err), -- ) -+ if !s.isRetryableError(err) { - return - } - -@@ -177,6 +144,61 @@ func (s *keyStresser) run() { - } - } - -+func (s *keyStresser) isRetryableError(err error) bool { -+ switch rpctypes.ErrorDesc(err) { -+ // retryable -+ case context.DeadlineExceeded.Error(): -+ // This retries when request is triggered at the same time as -+ // leader failure. When we terminate the leader, the request to -+ // that leader cannot be processed, and times out. Also requests -+ // to followers cannot be forwarded to the old leader, so timing out -+ // as well. We want to keep stressing until the cluster elects a -+ // new leader and start processing requests again. -+ return true -+ case etcdserver.ErrTimeoutDueToLeaderFail.Error(), etcdserver.ErrTimeout.Error(): -+ // This retries when request is triggered at the same time as -+ // leader failure and follower nodes receive time out errors -+ // from losing their leader. Followers should retry to connect -+ // to the new leader. -+ return true -+ case etcdserver.ErrStopped.Error(): -+ // one of the etcd nodes stopped from failure injection -+ return true -+ case rpctypes.ErrNotCapable.Error(): -+ // capability check has not been done (in the beginning) -+ return true -+ case rpctypes.ErrTooManyRequests.Error(): -+ // hitting the recovering member. -+ return true -+ case raft.ErrProposalDropped.Error(): -+ // removed member, or leadership has changed (old leader got raftpb.MsgProp) -+ return true -+ -+ // not retryable. -+ case context.Canceled.Error(): -+ // from stresser.Cancel method: -+ return false -+ case grpc.ErrClientConnClosing.Error(): -+ // from stresser.Cancel method: -+ return false -+ } -+ -+ if status.Convert(err).Code() == codes.Unavailable { -+ // gRPC connection errors are translated to status.Unavailable -+ return true -+ } -+ -+ s.lg.Warn( -+ "stress run exiting", -+ zap.String("stress-type", "KV"), -+ zap.String("endpoint", s.m.EtcdClientEndpoint), -+ zap.String("error-type", reflect.TypeOf(err).String()), -+ zap.String("error-desc", rpctypes.ErrorDesc(err)), -+ zap.Error(err), -+ ) -+ return false -+} -+ - func (s *keyStresser) Pause() map[string]int { - return s.Close() - } diff --git a/0001-hack-etcdmain-to-generate-etcd.1.patch b/0001-hack-etcdmain-to-generate-etcd.1.patch index 4476430..8f55e50 100644 --- a/0001-hack-etcdmain-to-generate-etcd.1.patch +++ b/0001-hack-etcdmain-to-generate-etcd.1.patch @@ -1,7 +1,7 @@ -diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go ---- etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 2019-03-14 20:11:28.569755622 +0100 -+++ etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go 2019-03-14 20:23:17.601851367 +0100 -@@ -122,14 +122,14 @@ func newConfig() *config { +diff -up etcd-3.4.3/etcdmain/config.go.orig etcd-3.4.3/etcdmain/config.go +--- etcd-3.4.3/etcdmain/config.go.orig 2019-10-23 19:11:46.000000000 +0200 ++++ etcd-3.4.3/etcdmain/config.go 2020-02-06 01:16:58.443641282 +0100 +@@ -123,14 +123,15 @@ func newConfig() *config { ), } @@ -12,14 +12,14 @@ diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 fmt.Fprintln(os.Stderr, usageline) } - fs.StringVar(&cfg.configFile, "config-file", "", "Path to the server configuration file") + fs.StringVar(&cfg.configFile, "config-file", "", "Path to the server configuration file. Note that if a configuration file is provided, other command line flags and environment variables will be ignored.") -- // member + // member + fs.AddGroup("member") fs.StringVar(&cfg.ec.Dir, "data-dir", cfg.ec.Dir, "Path to the data directory.") fs.StringVar(&cfg.ec.WalDir, "wal-dir", cfg.ec.WalDir, "Path to the dedicated wal directory.") fs.Var( -@@ -162,7 +162,7 @@ func newConfig() *config { +@@ -163,7 +164,7 @@ func newConfig() *config { fs.DurationVar(&cfg.ec.GRPCKeepAliveInterval, "grpc-keepalive-interval", cfg.ec.GRPCKeepAliveInterval, "Frequency duration of server-to-client ping to check if a connection is alive (0 to disable).") fs.DurationVar(&cfg.ec.GRPCKeepAliveTimeout, "grpc-keepalive-timeout", cfg.ec.GRPCKeepAliveTimeout, "Additional duration of wait before closing a non-responsive connection (0 to disable).") @@ -28,7 +28,7 @@ diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 fs.Var( flags.NewUniqueURLsWithExceptions(embed.DefaultInitialAdvertisePeerURLs, ""), "initial-advertise-peer-urls", -@@ -187,7 +187,7 @@ func newConfig() *config { +@@ -188,7 +189,7 @@ func newConfig() *config { fs.BoolVar(&cfg.ec.EnableV2, "enable-v2", cfg.ec.EnableV2, "Accept etcd V2 client requests.") fs.BoolVar(&cfg.ec.PreVote, "pre-vote", cfg.ec.PreVote, "Enable to run an additional Raft election phase.") @@ -37,7 +37,7 @@ diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 fs.Var(cfg.cf.proxy, "proxy", fmt.Sprintf("Valid values include %q", cfg.cf.proxy.Valids())) fs.UintVar(&cfg.cp.ProxyFailureWaitMs, "proxy-failure-wait", cfg.cp.ProxyFailureWaitMs, "Time (in milliseconds) an endpoint will be held in a failed state.") fs.UintVar(&cfg.cp.ProxyRefreshIntervalMs, "proxy-refresh-interval", cfg.cp.ProxyRefreshIntervalMs, "Time (in milliseconds) of the endpoints refresh interval.") -@@ -195,7 +195,7 @@ func newConfig() *config { +@@ -196,7 +197,7 @@ func newConfig() *config { fs.UintVar(&cfg.cp.ProxyWriteTimeoutMs, "proxy-write-timeout", cfg.cp.ProxyWriteTimeoutMs, "Time (in milliseconds) for a write to timeout.") fs.UintVar(&cfg.cp.ProxyReadTimeoutMs, "proxy-read-timeout", cfg.cp.ProxyReadTimeoutMs, "Time (in milliseconds) for a read to timeout.") @@ -46,17 +46,18 @@ diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 fs.StringVar(&cfg.ec.ClientTLSInfo.CertFile, "cert-file", "", "Path to the client server TLS cert file.") fs.StringVar(&cfg.ec.ClientTLSInfo.KeyFile, "key-file", "", "Path to the client server TLS key file.") fs.BoolVar(&cfg.ec.ClientTLSInfo.ClientCertAuth, "client-cert-auth", false, "Enable client cert authentication.") -@@ -218,41 +218,44 @@ func newConfig() *config { +@@ -222,7 +223,7 @@ func newConfig() *config { ) fs.Var(flags.NewUniqueStringsValue("*"), "host-whitelist", "Comma-separated acceptable hostnames from HTTP client requests, if server is not secure (empty means allow all).") - // logging + fs.AddGroup("logging") - fs.StringVar(&cfg.ec.Logger, "logger", "capnslog", "Specify 'zap' for structured logging or 'capnslog'.") - fs.Var(flags.NewUniqueStringsValue(embed.DefaultLogOutput), "log-output", "DEPRECATED: use '--log-outputs'.") + fs.StringVar(&cfg.ec.Logger, "logger", "capnslog", "Specify 'zap' for structured logging or 'capnslog'. WARN: 'capnslog' is being deprecated in v3.5.") + fs.Var(flags.NewUniqueStringsValue(embed.DefaultLogOutput), "log-output", "[TO BE DEPRECATED IN v3.5] use '--log-outputs'.") fs.Var(flags.NewUniqueStringsValue(embed.DefaultLogOutput), "log-outputs", "Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd, or list of comma separated output targets.") - fs.BoolVar(&cfg.ec.Debug, "debug", false, "Enable debug-level logging for etcd.") - fs.StringVar(&cfg.ec.LogPkgLevels, "log-package-levels", "", "(To be deprecated) Specify a particular log level for each etcd package (eg: 'etcdmain=CRITICAL,etcdserver=DEBUG').") +@@ -230,26 +231,26 @@ func newConfig() *config { + fs.StringVar(&cfg.ec.LogLevel, "log-level", logutil.DefaultLogLevel, "Configures log level. Only supports debug, info, warn, error, panic, or fatal. Default 'info'.") + fs.StringVar(&cfg.ec.LogPkgLevels, "log-package-levels", "", "[TO BE DEPRECATED IN v3.5] Specify a particular log level for each etcd package (eg: 'etcdmain=CRITICAL,etcdserver=DEBUG').") - // version + fs.AddGroup("version") @@ -86,7 +87,9 @@ diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 fs.BoolVar(&cfg.ec.ExperimentalInitialCorruptCheck, "experimental-initial-corrupt-check", cfg.ec.ExperimentalInitialCorruptCheck, "Enable to check data corruption before serving any client/peer traffic.") fs.DurationVar(&cfg.ec.ExperimentalCorruptCheckTime, "experimental-corrupt-check-time", cfg.ec.ExperimentalCorruptCheckTime, "Duration of time between cluster corruption check passes.") fs.StringVar(&cfg.ec.ExperimentalEnableV2V3, "experimental-enable-v2v3", cfg.ec.ExperimentalEnableV2V3, "v3 prefix for serving emulated v2 state.") - fs.StringVar(&cfg.ec.ExperimentalBackendFreelistType, "experimental-backend-bbolt-freelist-type", cfg.ec.ExperimentalBackendFreelistType, "ExperimentalBackendFreelistType specifies the type of freelist that boltdb backend uses(array and map are supported types)") +@@ -257,9 +258,12 @@ func newConfig() *config { + fs.BoolVar(&cfg.ec.ExperimentalEnableLeaseCheckpoint, "experimental-enable-lease-checkpoint", false, "Enable to persist lease remaining TTL to prevent indefinite auto-renewal of long lived leases.") + fs.IntVar(&cfg.ec.ExperimentalCompactionBatchLimit, "experimental-compaction-batch-limit", cfg.ec.ExperimentalCompactionBatchLimit, "Sets the maximum revisions deleted in each compaction batch.") - // unsafe + fs.AddGroup("unsafe") @@ -94,13 +97,13 @@ diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/config.go.hack1 + fs.GenMan() + os.Exit(0) -+ ++ // ignored for _, f := range cfg.ignored { fs.Var(&flags.IgnoredFlag{Name: f}, f, "") -diff -up etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/fake_flagset.go.hack1 etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/fake_flagset.go ---- etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/fake_flagset.go.hack1 2019-03-14 20:11:28.570755620 +0100 -+++ etcd-e1ca3b4434945e57e8e3a451cdbde74a903cc8e1/etcdmain/fake_flagset.go 2019-03-14 20:11:28.570755620 +0100 +diff -up etcd-3.4.3/etcdmain/fake_flagset.go.orig etcd-3.4.3/etcdmain/fake_flagset.go +--- etcd-3.4.3/etcdmain/fake_flagset.go.orig 2020-02-06 01:14:12.639989665 +0100 ++++ etcd-3.4.3/etcdmain/fake_flagset.go 2020-02-06 01:14:12.639989665 +0100 @@ -0,0 +1,157 @@ +package etcdmain + diff --git a/0001-remove-unknown-field-Etcd.Debug.patch b/0001-remove-unknown-field-Etcd.Debug.patch new file mode 100644 index 0000000..76ec821 --- /dev/null +++ b/0001-remove-unknown-field-Etcd.Debug.patch @@ -0,0 +1,37 @@ +From 2c95b49b63651ae3e0a3f63c45c05295d1af2c42 Mon Sep 17 00:00:00 2001 +From: lsytj0413 <511121939@qq.com> +Date: Thu, 19 Sep 2019 09:51:51 +0800 +Subject: [PATCH] test(functional): remove unknown field Etcd.Debug + +--- + functional/tester/cluster_test.go | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/functional/tester/cluster_test.go b/functional/tester/cluster_test.go +index 7c7b25f2ad..2948c00e7f 100644 +--- a/functional/tester/cluster_test.go ++++ b/functional/tester/cluster_test.go +@@ -64,7 +64,6 @@ func Test_read(t *testing.T) { + InitialCorruptCheck: true, + Logger: "zap", + LogOutputs: []string{"/tmp/etcd-functional-1/etcd.log"}, +- Debug: true, + }, + ClientCertData: "", + ClientCertPath: "", +@@ -117,7 +116,6 @@ func Test_read(t *testing.T) { + InitialCorruptCheck: true, + Logger: "zap", + LogOutputs: []string{"/tmp/etcd-functional-2/etcd.log"}, +- Debug: true, + }, + ClientCertData: "", + ClientCertPath: "", +@@ -170,7 +168,6 @@ func Test_read(t *testing.T) { + InitialCorruptCheck: true, + Logger: "zap", + LogOutputs: []string{"/tmp/etcd-functional-3/etcd.log"}, +- Debug: true, + }, + ClientCertData: "", + ClientCertPath: "", diff --git a/etcd.spec b/etcd.spec index ca09384..772dcea 100644 --- a/etcd.spec +++ b/etcd.spec @@ -4,7 +4,7 @@ # https://github.com/etcd-io/etcd %global goipath go.etcd.io/etcd %global forgeurl https://github.com/etcd-io/etcd -Version: 3.3.13 +Version: 3.4.7 %gometa @@ -14,21 +14,20 @@ Obsoletes: etcd-devel < 3.3.12-5 } %global goaltipaths github.com/coreos/etcd -%global man_version 3.3.13 +%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 CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md\\\ - README.md ROADMAP.md Documentation\\\ +%global godocs CONTRIBUTING.md README.md Documentation\\\ README-*.md READMEv2-etcdctl.md %global gosupfiles integration/fixtures/* etcdserver/api/v2http/testdata/* Name: etcd -Release: 5%{?dist} +Release: 1%{?dist} Summary: Distributed reliable key-value store for the most critical data of a distributed system # Upstream license specification: Apache-2.0 @@ -43,31 +42,30 @@ 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 -# Needed to use newer gRPC -# https://github.com/etcd-io/etcd/commit/520bd5084e3120e0eb45963446e798b1f3211d2f -Patch0: https://github.com/etcd-io/etcd/commit/520bd5084e3120e0eb45963446e798b1f3211d2f.patch#/0001-Eliminate-direct-use-of-gRPC-transport-pkg.patch +# Fix a test +Patch0: https://github.com/etcd-io/etcd/commit/2c95b49b63651ae3e0a3f63c45c05295d1af2c42.patch#/0001-remove-unknown-field-Etcd.Debug.patch BuildRequires: golang(github.com/bgentry/speakeasy) -BuildRequires: golang(github.com/coreos/bbolt) +# 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/util) +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/ghodss/yaml) 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/kr/pty) BuildRequires: golang(github.com/modern-go/reflect2) BuildRequires: golang(github.com/olekukonko/tablewriter) BuildRequires: golang(github.com/prometheus/client_golang/prometheus) @@ -78,14 +76,18 @@ 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) @@ -94,12 +96,16 @@ 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) -# in 3.4 -# BuildRequires: python3-devel -# BuildRequires: %%{py3_dist sphinx sphinx-autobuild sphinx-rtd-theme} +BuildRequires: golang(sigs.k8s.io/yaml) + +BuildRequires: python3-devel +# BuildRequires: %%{py3_dist sphinx sphinx-rtd-theme} %{?systemd_requires} BuildRequires: systemd Requires(pre): shadow-utils @@ -119,7 +125,11 @@ BuildRequires: golang(github.com/prometheus/client_model/go) %goprep %patch0 -p1 rm -rf cmd/vendor -find . -name "*.go" -exec sed -i "s|github.com/coreos/etcd|go.etcd.io/etcd|" "{}" +; +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 @@ -135,7 +145,6 @@ for cmd in etcdctl; do %gobuild -o %{gobuilddir}/bin/$(basename $cmd) %{goipath}/$cmd done -# in 3.4 # make -C docs help # make -C docs html @@ -160,15 +169,19 @@ install -dm 0755 %{buildroot}%{_sharedstatedir}/%{name} %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/tlsutil \ -d pkg/transport \ - -d raft + -t raft \ + -t tests/e2e %endif %pre @@ -187,7 +200,7 @@ getent passwd %{name} >/dev/null || useradd -r -g %{name} -d %{_sharedstatedir}/ %files %license LICENSE NOTICE -%doc CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md README.md ROADMAP.md +%doc CONTRIBUTING.md README.md %doc Documentation README-*.md READMEv2-etcdctl.md %{_bindir}/* %config(noreplace) %{_sysconfdir}/%{name} @@ -198,6 +211,9 @@ getent passwd %{name} >/dev/null || useradd -r -g %{name} -d %{_sharedstatedir}/ %gopkgfiles %changelog +* Sun Apr 05 15:36:23 CEST 2020 Robert-André Mauchin - 3.4.7-1 +- Update to 3.4.7 + * Mon Feb 17 2020 Elliott Sales de Andrade - 3.3.13-5 - Rebuilt for GHSA-jf24-p9p9-4rjh diff --git a/etcdctl.1 b/etcdctl.1 new file mode 100644 index 0000000..bec2361 --- /dev/null +++ b/etcdctl.1 @@ -0,0 +1,25 @@ +.TH "ETCD" "1" " etcd User Manuals" "Jan Chaloupka" "Oct 2017" "" + + +.SH NAME +.PP +etcdctl \- A simple command line client for etcd + + +.SH SYNOPSIS +.PP +\fB[ETCDCTL_API=3] etctctl\fP [OPTIONS] + + +.SH DESCRIPTION +.PP +Command line client for etcd. +Queries to v2 data model are available through \fBetcdtl\fP command (see \fBetcdctl2(1)\fP). +Queries to v3 data model are available through \fBETCDCTL=3 etcdtl\fP command (see \fBetcdctl3(1)\fP). + +.PP +Find more information at +\[la]https://github.com/coreos/etcd\[ra]. + +.SH SEE ALSO +\fBetcd(1)\fP, \fBetcdctl2(1)\fP, \fBetcdctl3(1)\fP diff --git a/genmanpages.sh b/genmanpages.sh index 821818f..a933c40 100755 --- a/genmanpages.sh +++ b/genmanpages.sh @@ -23,7 +23,7 @@ for cmd in $(cat etcdctl.1 | grep "\fBetcdctl\\\-" | cut -d'-' -f2-3 | cut -d'(' for line in $(ls *.1); do mv $line $(echo $line | sed "s/etcdctl/etcdctl2/"); done # rename refs -sed -i "s/\\\fBetcdctl-/\\\fBetcdctl2-/g" *.1 +sed -i "s/\\\fBetcdctl\\\-/\\\fBetcdctl2\\\-/g" *.1 cd .. mv etcdctl2/* . diff --git a/sources b/sources index 36a1566..b459fad 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (etcd-3.3.13.tar.gz) = 5b8cf9d8d8b0afd1551f414480f04837668729c10d5d81c5e9ffba3392bd2567f3798267c5e4dbe60f49dbdd859f668c6fe0d7924e0fd65f918ab3bd01d5751a -SHA512 (man-3.3.13.tar.gz) = 28a7ca63c2221c6867f8110668fbcb88b44d80650d0dba60668935b8d6fd097f40d2bbb9f26ac0a75514fe239b535a3d750aa03ffc0b37b0a29a28b14d2a72bd +SHA512 (etcd-3.4.7.tar.gz) = 18851be0cbe8dabc6be8ba0c61d783f21b1fb9403256166016767926c731f1d95a1adebad9f36d43c57a424a7ac88c49b1d1ce01c2aa065e5bbbff847eb9234a +SHA512 (man-3.4.7.tar.gz) = 702297c4bffcd27e73e2c9056761b1fc06892697805a9601c35ddc2ed553ef49bb4f75e943df21ecb246467050f4f814e0f85e9b62a115a04614819fec9709df