public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/drbd-utils/
Date: Mon,  1 Jan 2024 00:12:30 +0000 (UTC)	[thread overview]
Message-ID: <1704067933.eef9b30fdc46e9a0b86fe32d8293564dbfc10f01.sam@gentoo> (raw)

commit:     eef9b30fdc46e9a0b86fe32d8293564dbfc10f01
Author:     Eli Schwartz <eschwartz93 <AT> gmail <DOT> com>
AuthorDate: Sun Dec 31 20:59:38 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jan  1 00:12:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eef9b30f

sys-cluster/drbd-utils: avoid the necessity of USE=split-usr

It was added in commit 02512e1d120272ad4e035959fa4014a8df7a28fc without
any explanation. Comparing builds, it does matter, though -- because on
split-usr systems, it uses and needs the udevdir to be /lib/udev.

Upstream detects this via pkg-config automagic with no way to override
it. But the ebuild never actually depended on virtual/pkgconfig
anyway... the good news is it only uses it for two things.

The other thing it uses it for is for detecting systemd to set the
default systemd unit directory when the configure option is not passed.
We want to install it unconditionally though, which means we cannot rely
on pkg-config for this either. That means we are using it for nothing.

Instead, explicitly set PKG_CONFIG=/bin/false to ensure it gets detected
as missing/broken, which means we fall back to the default udev
directory value, which is safe for split-usr systems.

While we are at it:

- ensure the systemdunitdir setting actually does something by declaring
  the init type as systemd. The openrc files come from gentoo anyway and
  are overwritten after emake install.
- avoid reinstalling the tmpfiles, which was originally added in commit
  85d6acdce7c5e60c5dfe768d1b3514e2c962c2ea specifically to work around
  the "only on systemd" issue.

Signed-off-by: Eli Schwartz <eschwartz93 <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-cluster/drbd-utils/drbd-utils-9.25.0-r1.ebuild | 134 +++++++++++++++++++++
 1 file changed, 134 insertions(+)

diff --git a/sys-cluster/drbd-utils/drbd-utils-9.25.0-r1.ebuild b/sys-cluster/drbd-utils/drbd-utils-9.25.0-r1.ebuild
new file mode 100644
index 000000000000..2b24560c3430
--- /dev/null
+++ b/sys-cluster/drbd-utils/drbd-utils-9.25.0-r1.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools bash-completion-r1 linux-info tmpfiles udev
+
+DESCRIPTION="mirror/replicate block-devices across a network-connection"
+HOMEPAGE="https://www.linbit.com/drbd"
+SRC_URI="https://pkg.linbit.com/downloads/drbd/utils/${P}.tar.gz"
+S="${WORKDIR}/${P/_/}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="pacemaker +udev xen"
+
+DEPEND="
+	pacemaker? ( sys-cluster/pacemaker )
+	udev? ( virtual/udev )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="sys-devel/flex"
+
+PATCHES=(
+	#"${FILESDIR}"/${PN}-9.15.1-run-lock.patch
+	"${FILESDIR}"/${PN}-9.23.1-respect-flags.patch
+	"${FILESDIR}"/${PN}-9.25.0-missing-stdint.patch
+)
+
+pkg_setup() {
+	# verify that CONFIG_BLK_DEV_DRBD is enabled in the kernel or
+	# warn otherwise
+	linux-info_pkg_setup
+	elog "Checking for suitable kernel configuration options..."
+	if linux_config_exists; then
+		if ! linux_chkconfig_present BLK_DEV_DRBD; then
+			ewarn "CONFIG_BLK_DEV_DRBD: is not set when it should be."
+			elog "Please check to make sure these options are set correctly."
+		fi
+	else
+		ewarn "Could not check if CONFIG_BLK_DEV_DRBD is enabled in your kernel."
+		elog "Please check to make sure these options are set correctly."
+	fi
+}
+
+src_prepare() {
+	# Respect LDFLAGS, bug #453442
+	sed -e "s/\$(CC) -o/\$(CC) \$(LDFLAGS) -o/" \
+		-e "/\$(DESTDIR)\$(localstatedir)\/lock/d" \
+		-i user/*/Makefile.in || die
+
+	# Respect multilib, bug #698304
+	sed -i -e "s:/lib/:/$(get_libdir)/:g" \
+		Makefile.in scripts/{Makefile.in,global_common.conf,drbd.conf.example} || die
+	sed -e "s:@prefix@/lib:@prefix@/$(get_libdir):" \
+		-e "s:(DESTDIR)/lib:(DESTDIR)/$(get_libdir):" \
+		-i user/*/Makefile.in || die
+	sed -i -e "s/lib/$(get_libdir)/" scripts/drbd.service || die
+
+	# Correct install paths (really correct this time)
+	sed -i -e "s:\$(sysconfdir)/bash_completion.d:$(get_bashcompdir):" \
+		scripts/Makefile.in || die
+
+	# Don't participate in user survey, bug #360483
+	sed -i -e '/usage-count/ s/yes/no/' scripts/global_common.conf || die
+	sed -i -e "s:\$(sysconfdir)/udev:$(get_udevdir):" scripts/Makefile.in || die
+
+	default
+	eautoreconf
+}
+
+src_configure() {
+	local myeconfargs=(
+		--localstatedir="${EPREFIX}"/var
+		# don't autodetect systemd/sysv; install systemd and use our own openrc
+		--with-initscripttype=systemd
+		# only used for systemdunitdir and for udevdir; the latter breaks
+		# merged-usr interop
+		PKG_CONFIG=/bin/false
+		--with-systemdunitdir="${EPREFIX}"/usr/lib/systemd/system
+		--with-bashcompletion
+		--with-distro=gentoo
+		--with-prebuiltman
+		--without-rgmanager
+		$(use_with pacemaker)
+		$(use_with udev)
+		$(use_with xen)
+	)
+
+	econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+	# Only compile the tools
+	emake CXXFLAGS="${CXXFLAGS}" OPTFLAGS="${CFLAGS}" tools doc
+}
+
+src_install() {
+	# Only install the tools
+	emake DESTDIR="${D}" install-tools install-doc
+
+	# Install our own init script
+	newinitd "${FILESDIR}"/${PN}-8.0.rc ${PN/-utils/}
+
+	dodoc scripts/drbd.conf.example
+
+	keepdir /var/lib/drbd
+	rm -r "${ED}"/var/run || die
+
+	# bug #698304
+	dodir /lib/drbd
+	local i
+	for i in drbdadm-83 drbdadm-84 drbdsetup-83 drbdsetup-84; do
+		dosym -r /$(get_libdir)/drbd/"${i}" /lib/drbd/"${i}"
+	done
+
+	einstalldocs
+}
+
+pkg_postinst() {
+	tmpfiles_process drbd.conf
+
+	einfo
+	einfo "Please copy and gunzip the configuration file:"
+	einfo "from ${EROOT}/usr/share/doc/${PF}/${PN/-utils/}.conf.example.bz2 to ${EROOT}/etc/${PN/-utils/}.conf"
+	einfo "and edit it to your needs. Helpful commands:"
+	einfo "man 5 drbd.conf"
+	einfo "man 8 drbdsetup"
+	einfo "man 8 drbdadm"
+	einfo "man 8 drbddisk"
+	einfo "man 8 drbdmeta"
+	einfo
+}


             reply	other threads:[~2024-01-01  0:12 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-01  0:12 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-04-24 20:15 [gentoo-commits] repo/gentoo:master commit in: sys-cluster/drbd-utils/ Sam James
2024-01-08 12:03 Sam James
2024-01-01  1:51 Sam James
2024-01-01  0:12 Sam James
2023-09-17 13:05 Arthur Zamarin
2023-06-15 22:03 Sam James
2023-06-13 18:05 Sam James
2023-06-13 18:03 Sam James
2023-06-13 17:29 Sam James
2021-09-06 14:13 Alexys Jacob
2021-03-17  2:13 Sam James
2021-03-08 10:25 Sam James
2021-03-06 15:37 Thomas Deutschmann
2021-02-18 18:57 David Seifert
2020-11-26 20:25 Aaron Bauman
2018-02-06 15:10 Thomas Deutschmann
2016-03-23 23:25 Zac Medico
2015-09-21  8:31 Alexys Jacob

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1704067933.eef9b30fdc46e9a0b86fe32d8293564dbfc10f01.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox