net-misc/iputils: Sync with Gentoo

It's from Gentoo commit 4cd0fbd620b0f3210d047a5139bef8e866331c8f.
This commit is contained in:
Krzesimir Nowak 2022-10-19 10:21:37 +02:00
parent 08ece529ce
commit 748a5dbbab
8 changed files with 127 additions and 761 deletions

View File

@ -1,4 +1,2 @@
DIST iputils-20210202.tar.gz 513055 BLAKE2B 37f3c10ff3918d40fe2eae1e4b19ed711b97c30cd2d682e42f484a11a28ab7c93975a51fbb7a8b1c1d725fc9051ae773bc2e81b9d80a2dd0e6ff55867d54875d SHA512 af600fe74e1b78c0da66c378f55eb468d62206aaae1864693f7ec79833c9c0de95843573d1792627695f08ecfcdb4e79c354065daf178d393fcc6ef9a8a5d526 DIST iputils-20211215.tar.gz 524567 BLAKE2B b88ff84be1d4d6a741f8f3514739ceff45ea40c475b5d4c2df8571fe84d4f1af9bc3fdce29e9ff393417671c75204261c8d64dde00473caa314b0aeb1fbf74ce SHA512 191062e51f7c8e8b38e3e4a96845adb77cd69f487d548c7cc578fad544443b4bc0dbe965d8f8e6fbda0a2f5b2fe2829789c05f873190c53d773245959298f6e9
DIST iputils-20210722.tar.gz 530745 BLAKE2B 4d6a2afaea1027e7992d374bbaa300f952f56225c998ecc6c3d332fef046dd8032e5afaff1cdc916d048f9d84cc8a85736a26a3176e66e111e02c9dbfcb0f195 SHA512 8f85bf468f8ef1e2832e9bbf9009552df4a6d723dd130fa0d5b2aa3bae617c972f936143c2370c3b4ce2ba2499828c91a299ee42cf81fa81aabe10552db2b328 DIST iputils-manpages-20211215.tar.xz 17148 BLAKE2B 63a956805b01f57b070b6b4ceb32f6ddf4313c74203cde821fc2f6f16ab8de14861da31163adf496db555f1961592d4fbc2ba7a977ccb18773af3bdb8d3795c0 SHA512 eb8c8508221b06fc13bf196b01b11f3ec87cd77e25d89c088776e39d249e10a3915ebb39942805adee179b352543063ce3dac158d68783c68c23de550ec14eee
DIST iputils-manpages-20210202.tar.xz 19204 BLAKE2B b9d43962890ae5fe9e4c21fb23c8911c22cbfb35a28521a2f0611d7813e4c21979f6b309569cdb57dd9b3a30653278982194ca08a815cfb41566a379930d124b SHA512 d5cced9a5e4acffbe35d20a796d038336d06f512c3ee47bc6e37782b4645d5c35b16e18aaae298547b60fe644e5608efe7847f2de6175bfcd39128d230ee4cd1
DIST iputils-manpages-20210722.tar.xz 19208 BLAKE2B 7d6b126debeee2a4e5437b7d26a9fee5c759ae72fa9b7acb1a04bb673f14af742f5580aad6ae1c34048933d95d09c4adcf024fabdc20851297131877cbfa10d0 SHA512 c1521e76f5b8cb99d7226ca1bd916b1861b6c0f9655ad0e396dd8d997be6cdc37ee0e81ac325ea4ebb3b349b394e7f1c45081ddc25b778fd294928a7b2dc0415

View File

@ -1,47 +0,0 @@
https://github.com/iputils/iputils/commit/79d713eab6181e219bf932b404706f6f59ff2539.patch
https://bugs.gentoo.org/818022
From: Byron Stanoszek <gandalf@winds.org>
Date: Thu, 16 Sep 2021 23:38:54 +0200
Subject: [PATCH] ping: Remove 'unsupported IPv6' warning on disabled IPv6
Regression was introduced in d141cb6 as introduced condition
if ((errno == EAFNOSUPPORT && socktype == AF_INET6) || options & F_VERBOSE || requisite)
was wrong, it should have been:
if ((errno == EAFNOSUPPORT && family == AF_INET6 && requisite) || options & F_VERBOSE)
but bug was hidden as `family == AF_INET6' was always false until
otherwise correct fix 904cdb6 ("ping: AF_INET6 is address family not
socket type [lgtm scan]") propagated the error.
Tested on kernel booted with ipv6.disable=1 (disabling via sysctl, i.e.
sysctl -w net.ipv6.conf.all.disable_ipv6=1; sysctl -w net.ipv6.conf.default.disable_ipv6=1
does not trigger the issue as it exit with "socket: Address family not
supported by protocol" - errno EADDRNOTAVAIL).
Fixes: d141cb6 ("ping: work with older kernels that don't support ping sockets")
Closes: https://github.com/iputils/iputils/issues/293
Closes: https://github.com/iputils/iputils/pull/370
Reported-by: lekto <lekto@o2.pl>
Reviewed-by: Andrew Clayton <andrew@digital-domain.net>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Byron Stanoszek <gandalf@winds.org>
[ pvorel: create commit from Byron's patch on the issue, do analysis and wrote commit message ]
Signed-off-by: Petr Vorel <pvorel@suse.cz>
--- a/ping/ping.c
+++ b/ping/ping.c
@@ -150,8 +150,8 @@ static void create_socket(struct ping_rts *rts, socket_st *sock, int family,
/* Report error related to disabled IPv6 only when IPv6 also failed or in
* verbose mode. Report other errors always.
*/
- if ((errno == EAFNOSUPPORT && family == AF_INET6) ||
- rts->opt_verbose || requisite)
+ if ((errno == EAFNOSUPPORT && family == AF_INET6 && requisite) ||
+ rts->opt_verbose)
error(0, errno, "socket");
if (requisite)
exit(2);

View File

@ -1,202 +0,0 @@
https://github.com/iputils/iputils/commit/3163c49f9f4ad473a00d8a345ee334a028376011.patch
https://bugs.gentoo.org/807973
From: Heiko Becker <heirecka@exherbo.org>
Date: Fri, 23 Jul 2021 16:32:46 +0200
Subject: [PATCH] meson: Make tests optional
Now can be disabled with -DSKIP_TESTS=true.
It allows to avoid meson error during build when ip isn't installed.
Closes: #359
Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Heiko Becker <heirecka@exherbo.org>
[ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust
the description ]
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -72,3 +72,6 @@ option('INSTALL_SYSTEMD_UNITS', type: 'boolean', value: false,
option('USE_GETTEXT', type: 'boolean', value: true,
description: 'Enable I18N')
+
+option('SKIP_TESTS', type: 'boolean', value: false,
+ description: 'Skip tests during build')
--- a/ping/meson.build
+++ b/ping/meson.build
@@ -27,86 +27,6 @@ if (setcap_ping)
)
endif
-##### TESTS #####
-
-# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
-
-# GitHub CI does not have working IPv6
-# https://github.com/actions/virtual-environments/issues/668
-ipv6_dst = []
-ipv6_switch = []
-r = run_command('ip', '-6', 'a')
-if r.stdout().strip().contains('::1')
- message('IPv6 enabled')
- ipv6_dst = [ '::1' ]
- ipv6_switch = [ '-6' ]
-else
- message('WARNING: IPv6 disabled')
+if not get_option('SKIP_TESTS')
+ subdir('test')
endif
-
-run_as_root = false
-r = run_command('id', '-u')
-if r.stdout().strip().to_int() == 0
- message('running as root')
- run_as_root = true
-else
- message('running as normal user')
-endif
-
-foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
- foreach switch : [ '', '-4' ] + ipv6_switch
- args = [ '-c1', dst ]
- should_fail = false
-
- if switch != ''
- args = [switch] + args
- if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
- should_fail = true
- endif
- endif
-
- name = 'ping ' + ' '.join(args)
- test(name, ping, args : args, should_fail : should_fail)
- endforeach
-endforeach
-
-ping_tests_opt = [
- [ '-c1' ],
- [ '-c5', '-i0.1' ],
- [ '-c1', '-I', 'lo' ],
- [ '-c1', '-w1' ],
- [ '-c1', '-W1' ],
- [ '-c1', '-W1.1' ],
-]
-foreach dst : [ '127.0.0.1' ] + ipv6_dst
- foreach args : ping_tests_opt
- args += [ dst ]
- name = 'ping ' + ' '.join(args)
- test(name, ping, args : args)
- endforeach
-endforeach
-
-ping_tests_opt_fail = [
- [ '-c1.1' ],
- [ '-I', 'nonexisting' ],
- [ '-w0.1' ],
- [ '-w0,1' ],
-]
-foreach dst : [ '127.0.0.1' ] + ipv6_dst
- foreach args : ping_tests_opt_fail
- args += [ dst ]
- name = 'ping ' + ' '.join(args)
- test(name, ping, args : args, should_fail : true)
- endforeach
-endforeach
-
-ping_tests_user_fail = [
- [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
-]
-foreach dst : [ '127.0.0.1' ] + ipv6_dst
- foreach args : ping_tests_user_fail
- args += [ dst ]
- name = 'ping ' + ' '.join(args)
- test(name, ping, args : args, should_fail : not run_as_root)
- endforeach
-endforeach
--- /dev/null
+++ b/ping/test/meson.build
@@ -0,0 +1,81 @@
+# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
+
+# GitHub CI does not have working IPv6
+# https://github.com/actions/virtual-environments/issues/668
+ipv6_dst = []
+ipv6_switch = []
+r = run_command('ip', '-6', 'a')
+if r.stdout().strip().contains('::1')
+ message('IPv6 enabled')
+ ipv6_dst = [ '::1' ]
+ ipv6_switch = [ '-6' ]
+else
+ message('WARNING: IPv6 disabled')
+endif
+
+run_as_root = false
+r = run_command('id', '-u')
+if r.stdout().strip().to_int() == 0
+ message('running as root')
+ run_as_root = true
+else
+ message('running as normal user')
+endif
+
+foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
+ foreach switch : [ '', '-4' ] + ipv6_switch
+ args = [ '-c1', dst ]
+ should_fail = false
+
+ if switch != ''
+ args = [switch] + args
+ if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
+ should_fail = true
+ endif
+ endif
+
+ name = 'ping ' + ' '.join(args)
+ test(name, ping, args : args, should_fail : should_fail)
+ endforeach
+endforeach
+
+ping_tests_opt = [
+ [ '-c1' ],
+ [ '-c5', '-i0.1' ],
+ [ '-c1', '-I', 'lo' ],
+ [ '-c1', '-w1' ],
+ [ '-c1', '-W1' ],
+ [ '-c1', '-W1.1' ],
+]
+foreach dst : [ '127.0.0.1' ] + ipv6_dst
+ foreach args : ping_tests_opt
+ args += [ dst ]
+ name = 'ping ' + ' '.join(args)
+ test(name, ping, args : args)
+ endforeach
+endforeach
+
+ping_tests_opt_fail = [
+ [ '-c1.1' ],
+ [ '-I', 'nonexisting' ],
+ [ '-w0.1' ],
+ [ '-w0,1' ],
+]
+foreach dst : [ '127.0.0.1' ] + ipv6_dst
+ foreach args : ping_tests_opt_fail
+ args += [ dst ]
+ name = 'ping ' + ' '.join(args)
+ test(name, ping, args : args, should_fail : true)
+ endforeach
+endforeach
+
+ping_tests_user_fail = [
+ [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
+]
+foreach dst : [ '127.0.0.1' ] + ipv6_dst
+ foreach args : ping_tests_user_fail
+ args += [ dst ]
+ name = 'ping ' + ' '.join(args)
+ test(name, ping, args : args, should_fail : not run_as_root)
+ endforeach
+endforeach

View File

@ -1,173 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# For released versions, we precompile the man/html pages and store
# them in a tarball on our mirrors. This avoids ugly issues while
# building stages, and reduces dependencies.
# To regenerate man/html pages emerge iputils-99999999[doc] with
# EGIT_COMMIT set to release tag, all USE flags enabled and
# tar ${S}/doc folder.
EAPI="7"
PLOCALES="de fr ja pt_BR tr uk zh_CN"
inherit fcaps flag-o-matic meson plocale systemd toolchain-funcs
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/iputils/iputils.git"
inherit git-r3
else
SRC_URI="https://github.com/iputils/iputils/archive/${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${PV}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="Network monitoring tools including ping and ping6"
HOMEPAGE="https://wiki.linuxfoundation.org/networking/iputils"
LICENSE="BSD GPL-2+ rdisc"
SLOT="0"
IUSE="+arping caps clockdiff doc gcrypt idn ipv6 nettle nls rarpd rdisc ssl static tftpd tracepath traceroute6"
BDEPEND="
virtual/pkgconfig
nls? ( sys-devel/gettext )
"
LIB_DEPEND="
caps? ( sys-libs/libcap[static-libs(+)] )
idn? ( net-dns/libidn2:=[static-libs(+)] )
nls? ( virtual/libintl[static-libs(+)] )
"
RDEPEND="
traceroute6? ( !net-analyzer/traceroute )
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
"
DEPEND="
${RDEPEND}
virtual/os-headers
static? ( ${LIB_DEPEND} )
"
if [[ ${PV} == "99999999" ]] ; then
BDEPEND+="
app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-ns-stylesheets
app-text/docbook-xsl-stylesheets
dev-libs/libxslt:0
"
fi
src_prepare() {
default
plocale_get_locales > po/LINGUAS || die
}
src_configure() {
use static && append-ldflags -static
local emesonargs=(
-DUSE_CAP="$(usex caps true false)"
-DUSE_IDN="$(usex idn true false)"
-DBUILD_ARPING="$(usex arping true false)"
-DBUILD_CLOCKDIFF="$(usex clockdiff true false)"
-DBUILD_PING="true"
-DBUILD_RARPD="$(usex rarpd true false)"
-DBUILD_RDISC="$(usex rdisc true false)"
-DENABLE_RDISC_SERVER="$(usex rdisc true false)"
-DBUILD_TFTPD="$(usex tftpd true false)"
-DBUILD_TRACEPATH="$(usex tracepath true false)"
-DBUILD_TRACEROUTE6="$(usex ipv6 $(usex traceroute6 true false) false)"
-DBUILD_NINFOD="false"
-DNINFOD_MESSAGES="false"
-DNO_SETCAP_OR_SUID="true"
-Dsystemdunitdir="$(systemd_get_systemunitdir)"
-DUSE_GETTEXT="$(usex nls true false)"
)
if [[ "${PV}" == 99999999 ]] ; then
emesonargs+=(
-DBUILD_HTML_MANS="$(usex doc true false)"
-DBUILD_MANS="true"
)
else
emesonargs+=(
-DBUILD_HTML_MANS="false"
-DBUILD_MANS="false"
)
fi
meson_src_configure
}
src_compile() {
tc-export CC
meson_src_compile
}
src_install() {
meson_src_install
dodir /bin
local my_bin
for my_bin in $(usex arping arping '') ping ; do
mv "${ED}"/usr/bin/${my_bin} "${ED}"/bin/ || die
done
dosym ping /bin/ping4
if use tracepath ; then
dosym tracepath /usr/bin/tracepath4
fi
if use ipv6 ; then
dosym ping /bin/ping6
if use tracepath ; then
dosym tracepath /usr/bin/tracepath6
dosym tracepath.8 /usr/share/man/man8/tracepath6.8
fi
fi
if [[ "${PV}" != 99999999 ]] ; then
local -a man_pages
local -a html_man_pages
while IFS= read -r -u 3 -d $'\0' my_bin
do
my_bin=$(basename "${my_bin}")
[[ -z "${my_bin}" ]] && continue
if [[ -f "${S}/doc/${my_bin}.8" ]] ; then
man_pages+=( ${my_bin}.8 )
fi
if [[ -f "${S}/doc/${my_bin}.html" ]] ; then
html_man_pages+=( ${my_bin}.html )
fi
done 3< <(find "${ED}"/{bin,usr/bin,usr/sbin} -type f -perm -a+x -print0 2>/dev/null)
pushd doc &>/dev/null || die
doman "${man_pages[@]}"
if use doc ; then
docinto html
dodoc "${html_man_pages[@]}"
fi
popd &>/dev/null || die
else
if use doc ; then
mv "${ED}"/usr/share/${PN} "${ED}"/usr/share/doc/${PF}/html || die
fi
fi
}
pkg_postinst() {
fcaps cap_net_raw \
bin/ping \
$(usex arping 'bin/arping' '') \
$(usex clockdiff 'usr/bin/clockdiff' '')
}

View File

@ -1,192 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# For released versions, we precompile the man/html pages and store
# them in a tarball on our mirrors. This avoids ugly issues while
# building stages, and reduces dependencies.
# To regenerate man/html pages emerge iputils-99999999[doc] with
# EGIT_COMMIT set to release tag, all USE flags enabled and
# tar ${S}/doc folder.
EAPI="7"
PLOCALES="de fr ja pt_BR tr uk zh_CN"
inherit fcaps flag-o-matic meson plocale systemd toolchain-funcs
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/iputils/iputils.git"
inherit git-r3
else
SRC_URI="https://github.com/iputils/iputils/archive/${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${PV}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="Network monitoring tools including ping and ping6"
HOMEPAGE="https://wiki.linuxfoundation.org/networking/iputils"
LICENSE="BSD GPL-2+ rdisc"
SLOT="0"
IUSE="+arping caps clockdiff doc gcrypt idn ipv6 nettle nls rarpd rdisc ssl static test tftpd tracepath traceroute6"
RESTRICT="!test? ( test )"
BDEPEND="
virtual/pkgconfig
test? ( sys-apps/iproute2 )
nls? ( sys-devel/gettext )
"
LIB_DEPEND="
caps? ( sys-libs/libcap[static-libs(+)] )
idn? ( net-dns/libidn2:=[static-libs(+)] )
nls? ( virtual/libintl[static-libs(+)] )
"
RDEPEND="
traceroute6? ( !net-analyzer/traceroute )
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
"
DEPEND="
${RDEPEND}
virtual/os-headers
static? ( ${LIB_DEPEND} )
"
if [[ ${PV} == "99999999" ]] ; then
BDEPEND+="
app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-ns-stylesheets
app-text/docbook-xsl-stylesheets
dev-libs/libxslt:0
"
fi
PATCHES=(
# Upstream; drop on bump
"${FILESDIR}"/${P}-optional-tests.patch
# Upstream; drop on bump
"${FILESDIR}"/${P}-fix-no-ipv6-ping.patch
)
src_prepare() {
default
plocale_get_locales > po/LINGUAS || die
}
src_configure() {
use static && append-ldflags -static
local emesonargs=(
-DUSE_CAP="$(usex caps true false)"
-DUSE_IDN="$(usex idn true false)"
-DBUILD_ARPING="$(usex arping true false)"
-DBUILD_CLOCKDIFF="$(usex clockdiff true false)"
-DBUILD_PING="true"
-DBUILD_RARPD="$(usex rarpd true false)"
-DBUILD_RDISC="$(usex rdisc true false)"
-DENABLE_RDISC_SERVER="$(usex rdisc true false)"
-DBUILD_TFTPD="$(usex tftpd true false)"
-DBUILD_TRACEPATH="$(usex tracepath true false)"
-DBUILD_TRACEROUTE6="$(usex ipv6 $(usex traceroute6 true false) false)"
-DBUILD_NINFOD="false"
-DNINFOD_MESSAGES="false"
-DNO_SETCAP_OR_SUID="true"
-Dsystemdunitdir="$(systemd_get_systemunitdir)"
-DUSE_GETTEXT="$(usex nls true false)"
$(meson_use !test SKIP_TESTS)
)
if [[ "${PV}" == 99999999 ]] ; then
emesonargs+=(
-DBUILD_HTML_MANS="$(usex doc true false)"
-DBUILD_MANS="true"
)
else
emesonargs+=(
-DBUILD_HTML_MANS="false"
-DBUILD_MANS="false"
)
fi
meson_src_configure
}
src_compile() {
tc-export CC
meson_src_compile
}
src_test() {
if [[ ${EUID} != 0 ]]; then
einfo "Tests require root privileges; Skipping ..."
return
fi
meson_src_test
}
src_install() {
meson_src_install
dodir /bin
local my_bin
for my_bin in $(usex arping arping '') ping ; do
mv "${ED}"/usr/bin/${my_bin} "${ED}"/bin/ || die
done
dosym ping /bin/ping4
if use tracepath ; then
dosym tracepath /usr/bin/tracepath4
fi
if use ipv6 ; then
dosym ping /bin/ping6
if use tracepath ; then
dosym tracepath /usr/bin/tracepath6
dosym tracepath.8 /usr/share/man/man8/tracepath6.8
fi
fi
if [[ "${PV}" != 99999999 ]] ; then
local -a man_pages
local -a html_man_pages
while IFS= read -r -u 3 -d $'\0' my_bin
do
my_bin=$(basename "${my_bin}")
[[ -z "${my_bin}" ]] && continue
if [[ -f "${S}/doc/${my_bin}.8" ]] ; then
man_pages+=( ${my_bin}.8 )
fi
if [[ -f "${S}/doc/${my_bin}.html" ]] ; then
html_man_pages+=( ${my_bin}.html )
fi
done 3< <(find "${ED}"/{bin,usr/bin,usr/sbin} -type f -perm -a+x -print0 2>/dev/null)
pushd doc &>/dev/null || die
doman "${man_pages[@]}"
if use doc ; then
docinto html
dodoc "${html_man_pages[@]}"
fi
popd &>/dev/null || die
else
if use doc ; then
mv "${ED}"/usr/share/${PN} "${ED}"/usr/share/doc/${PF}/html || die
fi
fi
}
pkg_postinst() {
fcaps cap_net_raw \
bin/ping \
$(usex arping 'bin/arping' '') \
$(usex clockdiff 'usr/bin/clockdiff' '')
}

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors # Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
# For released versions, we precompile the man/html pages and store # For released versions, we precompile the man/html pages and store
@ -19,8 +19,9 @@ if [[ ${PV} == "99999999" ]] ; then
inherit git-r3 inherit git-r3
else else
SRC_URI="https://github.com/iputils/iputils/archive/${PV}.tar.gz -> ${P}.tar.gz SRC_URI="https://github.com/iputils/iputils/archive/${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-manpages-${PV}.tar.xz
https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${PV}.tar.xz" https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${PV}.tar.xz"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi fi
DESCRIPTION="Network monitoring tools including ping and ping6" DESCRIPTION="Network monitoring tools including ping and ping6"
@ -28,47 +29,36 @@ HOMEPAGE="https://wiki.linuxfoundation.org/networking/iputils"
LICENSE="BSD GPL-2+ rdisc" LICENSE="BSD GPL-2+ rdisc"
SLOT="0" SLOT="0"
IUSE="+arping caps clockdiff doc gcrypt idn ipv6 nettle nls rarpd rdisc ssl static test tftpd tracepath traceroute6" IUSE="+arping caps clockdiff doc idn nls rarpd rdisc static test tracepath"
RESTRICT="!test? ( test )" RESTRICT="!test? ( test )"
BDEPEND="
virtual/pkgconfig
test? ( sys-apps/iproute2 )
nls? ( sys-devel/gettext )
"
LIB_DEPEND=" LIB_DEPEND="
caps? ( sys-libs/libcap[static-libs(+)] ) caps? ( sys-libs/libcap[static-libs(+)] )
idn? ( net-dns/libidn2:=[static-libs(+)] ) idn? ( net-dns/libidn2:=[static-libs(+)] )
nls? ( virtual/libintl[static-libs(+)] ) nls? ( virtual/libintl[static-libs(+)] )
" "
RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )"
RDEPEND="
traceroute6? ( !net-analyzer/traceroute )
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
"
DEPEND=" DEPEND="
${RDEPEND} ${RDEPEND}
virtual/os-headers virtual/os-headers
static? ( ${LIB_DEPEND} ) static? ( ${LIB_DEPEND} )
" "
BDEPEND="
virtual/pkgconfig
test? ( sys-apps/iproute2 )
nls? ( sys-devel/gettext )
"
if [[ ${PV} == "99999999" ]] ; then if [[ ${PV} == 99999999 ]] ; then
BDEPEND+=" BDEPEND+="
app-text/docbook-xml-dtd:4.2 app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5 app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-ns-stylesheets app-text/docbook-xsl-ns-stylesheets
app-text/docbook-xsl-stylesheets app-text/docbook-xsl-stylesheets
dev-libs/libxslt:0 dev-libs/libxslt
" "
fi fi
PATCHES=(
# Upstream; drop on bump
"${FILESDIR}"/${P}-optional-tests.patch
)
src_prepare() { src_prepare() {
default default
@ -79,34 +69,32 @@ src_configure() {
use static && append-ldflags -static use static && append-ldflags -static
local emesonargs=( local emesonargs=(
-DUSE_CAP="$(usex caps true false)" -DUSE_CAP=$(usex caps true false)
-DUSE_IDN="$(usex idn true false)" -DUSE_IDN=$(usex idn true false)
-DBUILD_ARPING="$(usex arping true false)" -DBUILD_ARPING=$(usex arping true false)
-DBUILD_CLOCKDIFF="$(usex clockdiff true false)" -DBUILD_CLOCKDIFF=$(usex clockdiff true false)
-DBUILD_PING="true" -DBUILD_PING=true
-DBUILD_RARPD="$(usex rarpd true false)" -DBUILD_RARPD=$(usex rarpd true false)
-DBUILD_RDISC="$(usex rdisc true false)" -DBUILD_RDISC=$(usex rdisc true false)
-DENABLE_RDISC_SERVER="$(usex rdisc true false)" -DENABLE_RDISC_SERVER=$(usex rdisc true false)
-DBUILD_TFTPD="$(usex tftpd true false)" -DBUILD_TRACEPATH=$(usex tracepath true false)
-DBUILD_TRACEPATH="$(usex tracepath true false)" -DBUILD_NINFOD=false
-DBUILD_TRACEROUTE6="$(usex ipv6 $(usex traceroute6 true false) false)" -DNINFOD_MESSAGES=false
-DBUILD_NINFOD="false" -DNO_SETCAP_OR_SUID=true
-DNINFOD_MESSAGES="false" -Dsystemdunitdir=$(systemd_get_systemunitdir)
-DNO_SETCAP_OR_SUID="true" -DUSE_GETTEXT=$(usex nls true false)
-Dsystemdunitdir="$(systemd_get_systemunitdir)"
-DUSE_GETTEXT="$(usex nls true false)"
$(meson_use !test SKIP_TESTS) $(meson_use !test SKIP_TESTS)
) )
if [[ "${PV}" == 99999999 ]] ; then if [[ ${PV} == 99999999 ]] ; then
emesonargs+=( emesonargs+=(
-DBUILD_HTML_MANS="$(usex doc true false)" -DBUILD_HTML_MANS=$(usex doc true false)
-DBUILD_MANS="true" -DBUILD_MANS=true
) )
else else
emesonargs+=( emesonargs+=(
-DBUILD_HTML_MANS="false" -DBUILD_HTML_MANS=false
-DBUILD_MANS="false" -DBUILD_MANS=false
) )
fi fi
@ -115,12 +103,13 @@ src_configure() {
src_compile() { src_compile() {
tc-export CC tc-export CC
meson_src_compile meson_src_compile
} }
src_test() { src_test() {
if [[ ${EUID} != 0 ]]; then if [[ ${EUID} != 0 ]] ; then
einfo "Tests require root privileges; Skipping ..." einfo "Tests require root privileges. Skipping ..."
return return
fi fi
@ -136,21 +125,15 @@ src_install() {
mv "${ED}"/usr/bin/${my_bin} "${ED}"/bin/ || die mv "${ED}"/usr/bin/${my_bin} "${ED}"/bin/ || die
done done
dosym ping /bin/ping4 dosym ping /bin/ping4
if use tracepath ; then
dosym tracepath /usr/bin/tracepath4
fi
if use ipv6 ; then
dosym ping /bin/ping6 dosym ping /bin/ping6
if use tracepath ; then if use tracepath ; then
dosym tracepath /usr/bin/tracepath4
dosym tracepath /usr/bin/tracepath6 dosym tracepath /usr/bin/tracepath6
dosym tracepath.8 /usr/share/man/man8/tracepath6.8 dosym tracepath.8 /usr/share/man/man8/tracepath6.8
fi fi
fi
if [[ "${PV}" != 99999999 ]] ; then if [[ ${PV} != 99999999 ]] ; then
local -a man_pages local -a man_pages
local -a html_man_pages local -a html_man_pages
@ -182,7 +165,21 @@ src_install() {
fi fi
} }
pkg_preinst() {
local version_with_tftpd="<${CATEGORY}/${PN}-20211215"
if has_version "${version_with_tftpd}[traceroute6]" || has_version "${version_with_tftpd}[tftpd]" ; then
HAD_TFTPD_VERSION=1
fi
}
pkg_postinst() { pkg_postinst() {
if [[ ${HAD_TFTPD_VERSION} -eq 1 ]] ; then
ewarn "This upstream version (>= 20211215) drops two tools:"
ewarn "1. tftpd (alternatives: net-ftp/tftp-hpa, net-dns/dnsmasq)"
ewarn "2. traceroute6 (alternatives: net-analyzer/mtr, net-analyzer/traceroute)"
ewarn "Please install one of the listed alternatives if needed!"
fi
fcaps cap_net_raw \ fcaps cap_net_raw \
bin/ping \ bin/ping \
$(usex arping 'bin/arping' '') \ $(usex arping 'bin/arping' '') \

View File

@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors # Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
# For released versions, we precompile the man/html pages and store # For released versions, we precompile the man/html pages and store
@ -12,13 +12,14 @@ EAPI="7"
PLOCALES="de fr ja pt_BR tr uk zh_CN" PLOCALES="de fr ja pt_BR tr uk zh_CN"
inherit fcaps flag-o-matic meson plocale systemd toolchain-funcs inherit fcaps meson plocale systemd toolchain-funcs
if [[ ${PV} == "99999999" ]] ; then if [[ ${PV} == 99999999 ]] ; then
EGIT_REPO_URI="https://github.com/iputils/iputils.git" EGIT_REPO_URI="https://github.com/iputils/iputils.git"
inherit git-r3 inherit git-r3
else else
SRC_URI="https://github.com/iputils/iputils/archive/${PV}.tar.gz -> ${P}.tar.gz SRC_URI="https://github.com/iputils/iputils/archive/${PV}.tar.gz -> ${P}.tar.gz
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-manpages-${PV}.tar.xz
https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${PV}.tar.xz" https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${PV}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi fi
@ -28,39 +29,31 @@ HOMEPAGE="https://wiki.linuxfoundation.org/networking/iputils"
LICENSE="BSD GPL-2+ rdisc" LICENSE="BSD GPL-2+ rdisc"
SLOT="0" SLOT="0"
IUSE="+arping caps clockdiff doc gcrypt idn ipv6 nettle nls rarpd rdisc ssl static test tftpd tracepath traceroute6" IUSE="+arping caps clockdiff doc idn nls test tracepath"
RESTRICT="!test? ( test )" RESTRICT="!test? ( test )"
RDEPEND="
caps? ( sys-libs/libcap )
idn? ( net-dns/libidn2:= )
nls? ( virtual/libintl )
"
DEPEND="
${RDEPEND}
virtual/os-headers
"
BDEPEND=" BDEPEND="
virtual/pkgconfig virtual/pkgconfig
test? ( sys-apps/iproute2 ) test? ( sys-apps/iproute2 )
nls? ( sys-devel/gettext ) nls? ( sys-devel/gettext )
" "
LIB_DEPEND=" if [[ ${PV} == 99999999 ]] ; then
caps? ( sys-libs/libcap[static-libs(+)] )
idn? ( net-dns/libidn2:=[static-libs(+)] )
nls? ( virtual/libintl[static-libs(+)] )
"
RDEPEND="
traceroute6? ( !net-analyzer/traceroute )
!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
"
DEPEND="
${RDEPEND}
virtual/os-headers
static? ( ${LIB_DEPEND} )
"
if [[ ${PV} == "99999999" ]] ; then
BDEPEND+=" BDEPEND+="
app-text/docbook-xml-dtd:4.2 app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5 app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-ns-stylesheets app-text/docbook-xsl-ns-stylesheets
app-text/docbook-xsl-stylesheets app-text/docbook-xsl-stylesheets
dev-libs/libxslt:0 dev-libs/libxslt
" "
fi fi
@ -71,37 +64,28 @@ src_prepare() {
} }
src_configure() { src_configure() {
use static && append-ldflags -static
local emesonargs=( local emesonargs=(
-DUSE_CAP="$(usex caps true false)" -DUSE_CAP=$(usex caps true false)
-DUSE_IDN="$(usex idn true false)" -DUSE_IDN=$(usex idn true false)
-DBUILD_ARPING="$(usex arping true false)" -DBUILD_ARPING=$(usex arping true false)
-DBUILD_CLOCKDIFF="$(usex clockdiff true false)" -DBUILD_CLOCKDIFF=$(usex clockdiff true false)
-DBUILD_PING="true" -DBUILD_PING=true
-DBUILD_RARPD="$(usex rarpd true false)" -DBUILD_TRACEPATH=$(usex tracepath true false)
-DBUILD_RDISC="$(usex rdisc true false)" -DNO_SETCAP_OR_SUID=true
-DENABLE_RDISC_SERVER="$(usex rdisc true false)" -Dsystemdunitdir=$(systemd_get_systemunitdir)
-DBUILD_TFTPD="$(usex tftpd true false)" -DUSE_GETTEXT=$(usex nls true false)
-DBUILD_TRACEPATH="$(usex tracepath true false)"
-DBUILD_TRACEROUTE6="$(usex ipv6 $(usex traceroute6 true false) false)"
-DBUILD_NINFOD="false"
-DNINFOD_MESSAGES="false"
-DNO_SETCAP_OR_SUID="true"
-Dsystemdunitdir="$(systemd_get_systemunitdir)"
-DUSE_GETTEXT="$(usex nls true false)"
$(meson_use !test SKIP_TESTS) $(meson_use !test SKIP_TESTS)
) )
if [[ "${PV}" == 99999999 ]] ; then if [[ ${PV} == 99999999 ]] ; then
emesonargs+=( emesonargs+=(
-DBUILD_HTML_MANS="$(usex doc true false)" -DBUILD_HTML_MANS=$(usex doc true false)
-DBUILD_MANS="true" -DBUILD_MANS=true
) )
else else
emesonargs+=( emesonargs+=(
-DBUILD_HTML_MANS="false" -DBUILD_HTML_MANS=false
-DBUILD_MANS="false" -DBUILD_MANS=false
) )
fi fi
@ -110,12 +94,13 @@ src_configure() {
src_compile() { src_compile() {
tc-export CC tc-export CC
meson_src_compile meson_src_compile
} }
src_test() { src_test() {
if [[ ${EUID} != 0 ]]; then if [[ ${EUID} != 0 ]] ; then
einfo "Tests require root privileges; Skipping ..." einfo "Tests require root privileges. Skipping ..."
return return
fi fi
@ -125,27 +110,20 @@ src_test() {
src_install() { src_install() {
meson_src_install meson_src_install
dodir /bin FILECAPS=( cap_net_raw usr/bin/ping )
local my_bin use arping && FILECAPS+=( usr/bin/arping )
for my_bin in $(usex arping arping '') ping ; do use clockdiff && FILECAPS+=( usr/bin/clockdiff )
mv "${ED}"/usr/bin/${my_bin} "${ED}"/bin/ || die
done dosym ping /usr/bin/ping4
dosym ping /bin/ping4 dosym ping /usr/bin/ping6
if use tracepath ; then if use tracepath ; then
dosym tracepath /usr/bin/tracepath4 dosym tracepath /usr/bin/tracepath4
fi
if use ipv6 ; then
dosym ping /bin/ping6
if use tracepath ; then
dosym tracepath /usr/bin/tracepath6 dosym tracepath /usr/bin/tracepath6
dosym tracepath.8 /usr/share/man/man8/tracepath6.8 dosym tracepath.8 /usr/share/man/man8/tracepath6.8
fi fi
fi
if [[ "${PV}" != 99999999 ]] ; then if [[ ${PV} != 99999999 ]] ; then
local -a man_pages local -a man_pages
local -a html_man_pages local -a html_man_pages
@ -177,9 +155,20 @@ src_install() {
fi fi
} }
pkg_postinst() { pkg_preinst() {
fcaps cap_net_raw \ local version_with_tftpd="<${CATEGORY}/${PN}-20211215"
bin/ping \ if has_version "${version_with_tftpd}[traceroute6]" || has_version "${version_with_tftpd}[tftpd]" ; then
$(usex arping 'bin/arping' '') \ HAD_TFTPD_VERSION=1
$(usex clockdiff 'usr/bin/clockdiff' '') fi
}
pkg_postinst() {
fcaps_pkg_postinst
if [[ ${HAD_TFTPD_VERSION} -eq 1 ]] ; then
ewarn "This upstream version (>= 20211215) drops two tools:"
ewarn "1. tftpd (alternatives: net-ftp/tftp-hpa, net-dns/dnsmasq)"
ewarn "2. traceroute6 (alternatives: net-analyzer/mtr, net-analyzer/traceroute)"
ewarn "Please install one of the listed alternatives if needed!"
fi
} }

View File

@ -8,13 +8,9 @@
<use> <use>
<flag name="arping">Build and install arping -- tool for sending ARP requests to peers (see also <pkg>net-analyzer/arping</pkg>)</flag> <flag name="arping">Build and install arping -- tool for sending ARP requests to peers (see also <pkg>net-analyzer/arping</pkg>)</flag>
<flag name="clockdiff">Build and install clockdiff -- tool for comparing clocks via ICMP packets</flag> <flag name="clockdiff">Build and install clockdiff -- tool for comparing clocks via ICMP packets</flag>
<flag name="gcrypt">Use <pkg>dev-libs/libgcrypt</pkg> for md5 support</flag>
<flag name="nettle">Use <pkg>dev-libs/nettle</pkg> for md5 support</flag>
<flag name="rarpd">Build and install rarpd -- server for handling RARP (reverse ARP) requests; generally only used by old systems</flag> <flag name="rarpd">Build and install rarpd -- server for handling RARP (reverse ARP) requests; generally only used by old systems</flag>
<flag name="rdisc">Build and install rdisc -- server for the client side of the ICMP router discover protocol</flag> <flag name="rdisc">Build and install rdisc -- server for the client side of the ICMP router discover protocol</flag>
<flag name="tftpd">Build and install tftpd -- server for the Trivial File Transfer Protocol (see also <pkg>net-ftp/tftp-hpa</pkg>)</flag>
<flag name="tracepath">Build and install tracepath -- tool for tracing network paths for discovering MTU values</flag> <flag name="tracepath">Build and install tracepath -- tool for tracing network paths for discovering MTU values</flag>
<flag name="traceroute6">Build and install deprecated traceroute6 tool. It's recommended to use <pkg>net-analyzer/traceroute</pkg> instead.</flag>
</use> </use>
<upstream> <upstream>
<remote-id type="cpe">cpe:/a:skbuff:iputils</remote-id> <remote-id type="cpe">cpe:/a:skbuff:iputils</remote-id>