From a0f6c8a85d86246d1f459d01bf1aa20803774bb3 Mon Sep 17 00:00:00 2001 From: Sam James Date: Sat, 28 May 2022 04:31:38 +0100 Subject: [PATCH] sys-apps/iproute2: fix automagic deps; fix merged /usr install Signed-off-by: Sam James --- ....18.0.ebuild => iproute2-5.18.0-r1.ebuild} | 52 ++++++++++++++++--- sys-apps/iproute2/iproute2-9999.ebuild | 52 ++++++++++++++++--- sys-apps/iproute2/metadata.xml | 1 + 3 files changed, 89 insertions(+), 16 deletions(-) rename sys-apps/iproute2/{iproute2-5.18.0.ebuild => iproute2-5.18.0-r1.ebuild} (79%) diff --git a/sys-apps/iproute2/iproute2-5.18.0.ebuild b/sys-apps/iproute2/iproute2-5.18.0-r1.ebuild similarity index 79% rename from sys-apps/iproute2/iproute2-5.18.0.ebuild rename to sys-apps/iproute2/iproute2-5.18.0-r1.ebuild index b2d044b4661d0..c0e45a9ec79e6 100644 --- a/sys-apps/iproute2/iproute2-5.18.0.ebuild +++ b/sys-apps/iproute2/iproute2-5.18.0-r1.ebuild @@ -18,7 +18,7 @@ HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2" LICENSE="GPL-2" SLOT="0" -IUSE="atm berkdb bpf caps elf +iptables libbsd minimal nis selinux" +IUSE="atm berkdb bpf caps elf +iptables libbsd minimal nfs selinux split-usr" # We could make libmnl optional, but it's tiny, so eh RDEPEND=" @@ -31,7 +31,7 @@ RDEPEND=" elf? ( virtual/libelf:= ) iptables? ( >=net-firewall/iptables-1.4.20:= ) libbsd? ( dev-libs/libbsd ) - nis? ( net-libs/libnsl:= ) + nfs? ( net-libs/libtirpc:= ) selinux? ( sys-libs/libselinux ) " # We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876) @@ -107,8 +107,42 @@ src_configure() { # Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242) edo ./configure --libbpf_force $(usex bpf on off) - # ...now switch on/off requested features via USE flags + # Remove the definitions made by configure and allow them to be overridden + # by USE flags below. + # We have to do the cheesy only-sed-if-disabled because otherwise + # the *_FLAGS etc stuff found by configure will be used but result + # in a broken build. + if ! use berkdb ; then + sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die + fi + + if ! use caps ; then + sed -i -e '/HAVE_CAP/d' config.mk || die + fi + + if use minimal ; then + sed -i -e '/HAVE_MNL/d' config.mk || die + fi + + if ! use elf ; then + sed -i -e '/HAVE_ELF/d' config.mk || die + fi + + if ! use nfs ; then + sed -i -e '/HAVE_RPC/d' config.mk || die + fi + + if ! use selinux ; then + sed -i -e '/HAVE_SELINUX/d' config.mk || die + fi + + if ! use libbsd ; then + sed -i -e '/HAVE_LIBBSD/d' config.mk || die + fi + + # ...Now switch on/off requested features via USE flags # this is only useful if the test did not set other things, per bug #643722 + # Keep in sync with ifs above, or refactor to be unified. cat <<-EOF >> config.mk TC_CONFIG_ATM := $(usex atm y n) TC_CONFIG_XT := $(usex iptables y n) @@ -119,7 +153,7 @@ src_configure() { HAVE_CAP := $(usex caps y n) HAVE_MNL := $(usex minimal n y) HAVE_ELF := $(usex elf y n) - HAVE_RPC := $(usex nis y n) + HAVE_RPC := $(usex nfs y n) HAVE_SELINUX := $(usex selinux y n) IP_CONFIG_SETNS := ${setns} # Use correct iptables dir, bug #144265, bug #293709 @@ -158,10 +192,12 @@ src_install() { insinto /usr/include doins include/libnetlink.h - # Can remove compatibility symlink in a year: 2023-05-28. - # bug #547264 - mv "${ED}"/sbin/ss "${ED}"/bin/ss || die - dosym8 -r /bin/ss /sbin/ss + if use split-usr ; then + # Can remove compatibility symlink in a year: 2023-05-28. + # bug #547264 + mv "${ED}"/sbin/ss "${ED}"/bin/ss || die + dosym8 -r /bin/ss /sbin/ss + fi if use berkdb ; then keepdir /var/lib/arpd diff --git a/sys-apps/iproute2/iproute2-9999.ebuild b/sys-apps/iproute2/iproute2-9999.ebuild index b2d044b4661d0..c0e45a9ec79e6 100644 --- a/sys-apps/iproute2/iproute2-9999.ebuild +++ b/sys-apps/iproute2/iproute2-9999.ebuild @@ -18,7 +18,7 @@ HOMEPAGE="https://wiki.linuxfoundation.org/networking/iproute2" LICENSE="GPL-2" SLOT="0" -IUSE="atm berkdb bpf caps elf +iptables libbsd minimal nis selinux" +IUSE="atm berkdb bpf caps elf +iptables libbsd minimal nfs selinux split-usr" # We could make libmnl optional, but it's tiny, so eh RDEPEND=" @@ -31,7 +31,7 @@ RDEPEND=" elf? ( virtual/libelf:= ) iptables? ( >=net-firewall/iptables-1.4.20:= ) libbsd? ( dev-libs/libbsd ) - nis? ( net-libs/libnsl:= ) + nfs? ( net-libs/libtirpc:= ) selinux? ( sys-libs/libselinux ) " # We require newer linux-headers for ipset support (bug #549948) and some defines (bug #553876) @@ -107,8 +107,42 @@ src_configure() { # Using econf breaks since 5.14.0 (a9c3d70d902a0473ee5c13336317006a52ce8242) edo ./configure --libbpf_force $(usex bpf on off) - # ...now switch on/off requested features via USE flags + # Remove the definitions made by configure and allow them to be overridden + # by USE flags below. + # We have to do the cheesy only-sed-if-disabled because otherwise + # the *_FLAGS etc stuff found by configure will be used but result + # in a broken build. + if ! use berkdb ; then + sed -i -e '/HAVE_BERKELEY_DB/d' config.mk || die + fi + + if ! use caps ; then + sed -i -e '/HAVE_CAP/d' config.mk || die + fi + + if use minimal ; then + sed -i -e '/HAVE_MNL/d' config.mk || die + fi + + if ! use elf ; then + sed -i -e '/HAVE_ELF/d' config.mk || die + fi + + if ! use nfs ; then + sed -i -e '/HAVE_RPC/d' config.mk || die + fi + + if ! use selinux ; then + sed -i -e '/HAVE_SELINUX/d' config.mk || die + fi + + if ! use libbsd ; then + sed -i -e '/HAVE_LIBBSD/d' config.mk || die + fi + + # ...Now switch on/off requested features via USE flags # this is only useful if the test did not set other things, per bug #643722 + # Keep in sync with ifs above, or refactor to be unified. cat <<-EOF >> config.mk TC_CONFIG_ATM := $(usex atm y n) TC_CONFIG_XT := $(usex iptables y n) @@ -119,7 +153,7 @@ src_configure() { HAVE_CAP := $(usex caps y n) HAVE_MNL := $(usex minimal n y) HAVE_ELF := $(usex elf y n) - HAVE_RPC := $(usex nis y n) + HAVE_RPC := $(usex nfs y n) HAVE_SELINUX := $(usex selinux y n) IP_CONFIG_SETNS := ${setns} # Use correct iptables dir, bug #144265, bug #293709 @@ -158,10 +192,12 @@ src_install() { insinto /usr/include doins include/libnetlink.h - # Can remove compatibility symlink in a year: 2023-05-28. - # bug #547264 - mv "${ED}"/sbin/ss "${ED}"/bin/ss || die - dosym8 -r /bin/ss /sbin/ss + if use split-usr ; then + # Can remove compatibility symlink in a year: 2023-05-28. + # bug #547264 + mv "${ED}"/sbin/ss "${ED}"/bin/ss || die + dosym8 -r /bin/ss /sbin/ss + fi if use berkdb ; then keepdir /var/lib/arpd diff --git a/sys-apps/iproute2/metadata.xml b/sys-apps/iproute2/metadata.xml index ab92eca64ca46..10e4c7acb786f 100644 --- a/sys-apps/iproute2/metadata.xml +++ b/sys-apps/iproute2/metadata.xml @@ -12,6 +12,7 @@ include support for iptables filtering Use dev-libs/libbsd instead of internal funcs only install ip and tc programs, without eBPF support + Support RPC lookups via net-libs/libtirpc in ss cpe:/a:iproute2_project:iproute2