From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4E2E6158040 for ; Mon, 1 Jan 2024 00:12:34 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0398E2BC039; Mon, 1 Jan 2024 00:12:33 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id D990F2BC039 for ; Mon, 1 Jan 2024 00:12:32 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id EDFED33D3CF for ; Mon, 1 Jan 2024 00:12:31 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 262AB12BB for ; Mon, 1 Jan 2024 00:12:30 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1704067933.eef9b30fdc46e9a0b86fe32d8293564dbfc10f01.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/drbd-utils/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-cluster/drbd-utils/drbd-utils-9.25.0-r1.ebuild X-VCS-Directories: sys-cluster/drbd-utils/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: eef9b30fdc46e9a0b86fe32d8293564dbfc10f01 X-VCS-Branch: master Date: Mon, 1 Jan 2024 00:12:30 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 029bc15c-533f-47e2-ab43-8c830cb3ff2e X-Archives-Hash: c78adb4c3af66c8faf2330659c41e203 commit: eef9b30fdc46e9a0b86fe32d8293564dbfc10f01 Author: Eli Schwartz gmail com> AuthorDate: Sun Dec 31 20:59:38 2023 +0000 Commit: Sam James gentoo 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 gmail.com> Signed-off-by: Sam James 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 +}