repo/gentoo:master commit in: dev-db/etcd/files/, dev-db/etcd/

"James Le Cuirot" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1787006851.b6729ab03bb45b2e78209fb13df19a77eb8e2f06.chewi@gentoo>
commit:     b6729ab03bb45b2e78209fb13df19a77eb8e2f06
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 17 22:42:50 2026 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Mon Aug 17 22:47:31 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6729ab0

dev-db/etcd: Version bump to 3.7.1

The tests pass. The dependency tarball had exploded by 10x. I was able to avoid
this by excluding some (unbuilt) tools, but I also figured out how to make a
vendor tarball work, which is much smaller still.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 dev-db/etcd/Manifest                      |  2 +
 dev-db/etcd/etcd-3.7.1.ebuild             | 92 +++++++++++++++++++++++++++++++
 dev-db/etcd/files/etcd-3.7.1-vendor.patch | 10 ++++
 3 files changed, 104 insertions(+)

diff --git a/dev-db/etcd/Manifest b/dev-db/etcd/Manifest
index 86a7dfe428d9..16bac1b68be9 100644
--- a/dev-db/etcd/Manifest
+++ b/dev-db/etcd/Manifest
@@ -8,3 +8,5 @@ DIST etcd-3.6.11-deps.tar.xz 111959652 BLAKE2B bfe2bb60c5a0a428401333f5ee9f33c1c
 DIST etcd-3.6.11.tar.gz 7384738 BLAKE2B ba4730a1cdf31ae94365124a48aeb222a91b1df835e5b919dac15c3eceecf1165ac92ab2a19e70067be7ba8f42df59100e1679c5cee423fe86cd4aeea7d3efbd SHA512 56423c42443d9d1d2d06ff28aff389a381ed9b726cbee0d3523ac34fe2a8e22029377a42aa808077bb985f524a153c5fe63fd6166857749e8217b705fdf41910
 DIST etcd-3.6.14-deps.tar.xz 111593632 BLAKE2B cfc9e3474c75f2ba6b8f1601f6f2427a0542429cb495196915adbb79b0c5762ffcb5608965821d6cc5b12e7f8e08c249b70ceea61969b7422ffe3f2fad9faf6b SHA512 3cb35f8ac8d7c6c041f8951fd89ae415b256a940e818d3f8e713ffbcf19f85a09823d394d8f67fd6357c12ed3e117d713101c5d68fb167b7c9de975978256642
 DIST etcd-3.6.14.tar.gz 7389983 BLAKE2B 322637f55a33f103dde18ed35f0f9dd4176ecc31130c6860fef6260a70cee72cec6cb51fad2c7484449a04819e42413a23c46f0bf89801ef984ce476b9e6524c SHA512 4fa9ad2c3c06ef6364f040aad00aad5022f7a9cae8afc291c62b609a2dad27c57d8b7f8540ffd2e7d25638da8346ac7fa30e09ca681f1de280fa2b9a0064a3f4
+DIST etcd-3.7.1-vendor.tar.xz 3079016 BLAKE2B c75ca547d09d85a883a1480678ce2b73a5b1299084b979fa4c4f3e69117f49a407e3c993bc35be76bf508ee1e62ef5355e001300bfbc43d3eb56f2006703078d SHA512 ada23dcfffa32ecfeddf77de59eb63323f336e349a558703b101b934d00d99d9387b9830c9ad978b615a1f84bd56f2c2570c04f19492cc6765aecf04f8014923
+DIST etcd-3.7.1.tar.gz 7463252 BLAKE2B 7ed466a35b7a34860953f3fc0b18c6d202c8b01181b42b3bb483c8b6d4c044f163d7dc640f828f98a5d50ac3093f50497ec7342241a0ff2cd31dba4b7fe4945f SHA512 28cb8a5c29f81335de95946a2f974384b3b63f491601ebac67980ccef3a5acabc383c5027b0eed858b8fcddfe719c192086de48805d3e721e3d32f7b8cec85fd

diff --git a/dev-db/etcd/etcd-3.7.1.ebuild b/dev-db/etcd/etcd-3.7.1.ebuild
new file mode 100644
index 000000000000..05b0d0f01a42
--- /dev/null
+++ b/dev-db/etcd/etcd-3.7.1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module systemd tmpfiles
+GIT_COMMIT=5e7fd0de9
+
+DESCRIPTION="Highly-available key value store for shared configuration and service discovery"
+HOMEPAGE="https://github.com/etcd-io/etcd"
+SRC_URI="https://github.com/etcd-io/etcd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~chewi/distfiles/${P}-vendor.tar.xz"
+
+# `go mod vendor` doesn't work but `go work vendor` does. Additional steps can
+# make the vendor tarball a bit smaller.
+#
+# P=etcd-3.X.Y
+# cd /var/tmp/portage/dev-db/${P}/work/${P}
+# sed -i "/\.\/tools\//d" go.work
+# go work vendor
+# tar --owner root --group root -Jcf /var/cache/distfiles/${P}-vendor.tar.xz -C .. ${P}/vendor ${P}/go.work
+
+LICENSE="Apache-2.0"
+LICENSE+=" BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~loong ~riscv"
+IUSE="doc +server"
+
+COMMON_DEPEND="server? (
+	acct-group/etcd
+	acct-user/etcd
+	)"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+BDEPEND=">=dev-lang/go-1.26"
+
+# Unit tests attempt to download go modules.
+PROPERTIES="test_network"
+RESTRICT="test"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.7.1-vendor.patch
+)
+
+src_prepare() {
+	default
+	sed -i "s|GIT_SHA=.*|GIT_SHA=${GIT_COMMIT}|" scripts/build_lib.sh || die
+
+	# Don't test these as they are not built.
+	find tools/ -name "*_test.go" -delete || die
+}
+
+src_configure() {
+	export FORCE_HOST_GO=1 GO_BUILD_FLAGS="-v -x"
+}
+
+src_compile() {
+	scripts/build.sh || die
+}
+
+src_test() {
+	# -buildmode=pie is incompatible with -race used by the tests.
+	GOFLAGS=${GOFLAGS//-buildmode=pie} PASSES="unit" scripts/test.sh -v || die
+}
+
+src_install() {
+	dobin bin/etcdctl
+	dobin bin/etcdutl
+	use doc && dodoc -r Documentation
+	if use server; then
+		insinto /etc/${PN}
+		sed -e 's|^data-dir:|\0 /var/lib/etcd|' -i etcd.conf.yml.sample || die
+		newins etcd.conf.yml.sample etcd.conf.yml
+		dobin bin/etcd
+		dodoc README.md
+		systemd_newunit "${FILESDIR}/${PN}.service-r1" "${PN}.service"
+		newtmpfiles "${FILESDIR}/${PN}.tmpfiles.d.conf" ${PN}.conf
+		newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
+		newconfd "${FILESDIR}"/${PN}.confd-r1 ${PN}
+		insinto /etc/logrotate.d
+		newins "${FILESDIR}/${PN}.logrotated" "${PN}"
+		keepdir /var/lib/${PN} /var/log/${PN}
+		fowners ${PN}:${PN} /var/lib/${PN} /var/log/${PN}
+		fperms 0700 /var/lib/${PN}
+		fperms 0755 /var/log/${PN}
+	fi
+}
+
+pkg_postinst() {
+	if use server; then
+		tmpfiles_process ${PN}.conf
+	fi
+}

diff --git a/dev-db/etcd/files/etcd-3.7.1-vendor.patch b/dev-db/etcd/files/etcd-3.7.1-vendor.patch
new file mode 100644
index 000000000000..9c61db96f585
--- /dev/null
+++ b/dev-db/etcd/files/etcd-3.7.1-vendor.patch
@@ -0,0 +1,10 @@
+--- a/scripts/test.sh
++++ b/scripts/test.sh
+@@ -57,7 +57,6 @@
+ # The test script is not supposed to make any changes to the files
+ # e.g. add/update missing dependencies. Such divergences should be 
+ # detected and trigger a failure that needs explicit developer's action.
+-export GOFLAGS=-mod=readonly
+ export ETCD_VERIFY=all
+ 
+ source ./scripts/test_lib.sh
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.