Initial package: etcd 3.7.1 from official upstream binaries
Fedora retired etcd in rawhide, so recreate it. Instead of building from
source with the Go packaging macros, repackage the official upstream
release tarballs (x86_64 and aarch64), fetched via spectool.
Stays drop-in compatible with the former Fedora package: same package
name, /usr/bin/{etcd,etcdctl,etcdutl}, /etc/etcd/etcd.conf, /var/lib/etcd,
etcd.service and the etcd system user (sysusers.d).
Differences from the Fedora package:
- no golang-go.etcd.io-etcd-devel subpackage
- etcd.service runs /usr/bin/etcd directly (no GOMAXPROCS bash wrapper)
- etcd.conf: drop options removed upstream (proxy, debug,
log-package-levels), add ETCD_LOG_LEVEL
- LICENSE taken from the upstream tag, release tarballs do not ship it
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
/etcd-v*-linux-*.tar.gz
|
||||
/LICENSE
|
||||
@@ -0,0 +1,42 @@
|
||||
# [member]
|
||||
ETCD_NAME=default
|
||||
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
|
||||
#ETCD_WAL_DIR=""
|
||||
#ETCD_SNAPSHOT_COUNT="10000"
|
||||
#ETCD_HEARTBEAT_INTERVAL="100"
|
||||
#ETCD_ELECTION_TIMEOUT="1000"
|
||||
#ETCD_LISTEN_PEER_URLS="http://localhost:2380"
|
||||
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"
|
||||
#ETCD_MAX_SNAPSHOTS="5"
|
||||
#ETCD_MAX_WALS="5"
|
||||
#ETCD_CORS=""
|
||||
#
|
||||
#[cluster]
|
||||
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
|
||||
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
|
||||
#ETCD_INITIAL_CLUSTER="default=http://localhost:2380"
|
||||
#ETCD_INITIAL_CLUSTER_STATE="new"
|
||||
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
|
||||
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
|
||||
#ETCD_DISCOVERY=""
|
||||
#ETCD_DISCOVERY_SRV=""
|
||||
#ETCD_DISCOVERY_FALLBACK="proxy"
|
||||
#ETCD_DISCOVERY_PROXY=""
|
||||
#ETCD_STRICT_RECONFIG_CHECK="false"
|
||||
#ETCD_AUTO_COMPACTION_RETENTION="0"
|
||||
#
|
||||
#[security]
|
||||
#ETCD_CERT_FILE=""
|
||||
#ETCD_KEY_FILE=""
|
||||
#ETCD_CLIENT_CERT_AUTH="false"
|
||||
#ETCD_TRUSTED_CA_FILE=""
|
||||
#ETCD_AUTO_TLS="false"
|
||||
#ETCD_PEER_CERT_FILE=""
|
||||
#ETCD_PEER_KEY_FILE=""
|
||||
#ETCD_PEER_CLIENT_CERT_AUTH="false"
|
||||
#ETCD_PEER_TRUSTED_CA_FILE=""
|
||||
#ETCD_PEER_AUTO_TLS="false"
|
||||
#
|
||||
#[logging]
|
||||
# debug, info, warn, error, panic or fatal
|
||||
#ETCD_LOG_LEVEL="info"
|
||||
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Etcd Server
|
||||
After=network.target
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
WorkingDirectory=/var/lib/etcd/
|
||||
EnvironmentFile=-/etc/etcd/etcd.conf
|
||||
User=etcd
|
||||
ExecStart=/usr/bin/etcd
|
||||
Restart=on-failure
|
||||
LimitNOFILE=65536
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,88 @@
|
||||
# Prebuilt upstream binaries: no debuginfo to extract
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: etcd
|
||||
Version: 3.7.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Distributed reliable key-value store for the most critical data of a distributed system
|
||||
License: Apache-2.0
|
||||
URL: https://etcd.io
|
||||
|
||||
Source0: https://github.com/etcd-io/etcd/releases/download/v%{version}/etcd-v%{version}-linux-amd64.tar.gz
|
||||
Source1: https://github.com/etcd-io/etcd/releases/download/v%{version}/etcd-v%{version}-linux-arm64.tar.gz
|
||||
# Release tarballs do not ship the license text
|
||||
Source2: https://raw.githubusercontent.com/etcd-io/etcd/v%{version}/LICENSE
|
||||
Source10: %{name}.service
|
||||
Source11: %{name}.conf
|
||||
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
|
||||
BuildRequires: systemd-rpm-macros
|
||||
%{?systemd_requires}
|
||||
|
||||
%description
|
||||
Distributed reliable key-value store for the most critical data of a distributed
|
||||
system.
|
||||
|
||||
This package ships the official upstream release binaries (etcd, etcdctl and
|
||||
etcdutl).
|
||||
|
||||
%prep
|
||||
%ifarch x86_64
|
||||
%setup -q -T -b 0 -n etcd-v%{version}-linux-amd64
|
||||
%endif
|
||||
%ifarch aarch64
|
||||
%setup -q -T -b 1 -n etcd-v%{version}-linux-arm64
|
||||
%endif
|
||||
cp -p %{SOURCE2} LICENSE
|
||||
|
||||
# Create a sysusers.d config file
|
||||
cat >etcd.sysusers.conf <<EOF
|
||||
u etcd - 'etcd user' %{_sharedstatedir}/%{name} -
|
||||
EOF
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
install -Dpm 0755 -t %{buildroot}%{_bindir} etcd etcdctl etcdutl
|
||||
|
||||
install -Dpm 0644 %{SOURCE10} %{buildroot}%{_unitdir}/%{name}.service
|
||||
install -dm 0755 %{buildroot}%{_sysconfdir}/%{name}
|
||||
install -pm 0644 -t %{buildroot}%{_sysconfdir}/%{name} %{SOURCE11}
|
||||
|
||||
# And create /var/lib/etcd
|
||||
install -dm 0755 %{buildroot}%{_sharedstatedir}/%{name}
|
||||
|
||||
install -Dpm 0644 etcd.sysusers.conf %{buildroot}%{_sysusersdir}/etcd.conf
|
||||
|
||||
%check
|
||||
%{buildroot}%{_bindir}/etcd --version
|
||||
%{buildroot}%{_bindir}/etcdctl version
|
||||
%{buildroot}%{_bindir}/etcdutl version
|
||||
|
||||
%post
|
||||
%systemd_post %{name}.service
|
||||
|
||||
%preun
|
||||
%systemd_preun %{name}.service
|
||||
|
||||
%postun
|
||||
%systemd_postun_with_restart %{name}.service
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md README-etcdctl.md README-etcdutl.md READMEv2-etcdctl.md
|
||||
%doc Documentation
|
||||
%{_bindir}/etcd
|
||||
%{_bindir}/etcdctl
|
||||
%{_bindir}/etcdutl
|
||||
%config(noreplace) %{_sysconfdir}/%{name}
|
||||
%dir %attr(-,%{name},%{name}) %{_sharedstatedir}/%{name}
|
||||
%{_unitdir}/%{name}.service
|
||||
%{_sysusersdir}/etcd.conf
|
||||
|
||||
%changelog
|
||||
* Fri Sep 18 2026 Zoran Pericic <zpericic@netst.org> - 3.7.1-1
|
||||
- Update to 3.7.1
|
||||
- Repackage official upstream release binaries instead of building from source
|
||||
- Drop golang devel subpackage
|
||||
@@ -0,0 +1,3 @@
|
||||
SHA512 (etcd-v3.7.1-linux-amd64.tar.gz) = ee1d8b79d6ac4713d2d84cf95255439eaef1d641d57d0ee510668599010aabe012a74fb027bc91fc52cf378505cb91713d399a6eebfb7b8f17755c399c94d536
|
||||
SHA512 (etcd-v3.7.1-linux-arm64.tar.gz) = d81a2047582df2569f74c304e5af1ea9cbfb47b4ca0ca607612dfec5d09613b764b2a6b8222dfb1d520bcc7b5715b16d197fede6f984265cb444ba70608230c5
|
||||
SHA512 (LICENSE) = 6bd02bb97b3976857ebc154d11f9869472328b6d7d650b9d088ed425d167391c1f5ac87b7633fd92988831d36ea0b3be8d5bb2425399dcf237a88ba14e5fe375
|
||||
Reference in New Issue
Block a user