diff options
author | Nicholas Fish <gentoo@seaofdirac.net> | 2018-07-21 22:25:15 +0200 |
---|---|---|
committer | Nicholas Fish <gentoo@seaofdirac.net> | 2018-07-21 22:25:15 +0200 |
commit | 47462b4f454d9ded5b112816e07e20efe4a534f2 (patch) | |
tree | e13e4eeaa8e9243be2ccd2381c03793313930e93 /net-misc | |
parent | media-libs/mesa: trim v9999, add v18.1.3 (diff) | |
download | ennui-47462b4f454d9ded5b112816e07e20efe4a534f2.tar.gz ennui-47462b4f454d9ded5b112816e07e20efe4a534f2.tar.bz2 ennui-47462b4f454d9ded5b112816e07e20efe4a534f2.zip |
net-misc/iputils: Add patch to address missing IDN support
Diffstat (limited to 'net-misc')
-rw-r--r-- | net-misc/iputils/Manifest | 12 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20150815-nonroot-floodping.patch | 11 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20180629-exclude-ai_canonidn.patch | 27 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20180629-musl.patch | 87 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-99999999-musl.patch | 92 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-99999999-tracepath46.patch | 30 | ||||
-rw-r--r-- | net-misc/iputils/files/rarpd.conf.d | 8 | ||||
-rw-r--r-- | net-misc/iputils/files/rarpd.init.d | 19 | ||||
-rw-r--r-- | net-misc/iputils/iputils-20180629.ebuild | 179 | ||||
-rw-r--r-- | net-misc/iputils/iputils-99999999.ebuild | 176 | ||||
-rw-r--r-- | net-misc/iputils/metadata.xml | 25 |
11 files changed, 666 insertions, 0 deletions
diff --git a/net-misc/iputils/Manifest b/net-misc/iputils/Manifest new file mode 100644 index 0000000..433b499 --- /dev/null +++ b/net-misc/iputils/Manifest @@ -0,0 +1,12 @@ +AUX iputils-20150815-nonroot-floodping.patch 406 BLAKE2B 18c9adf92bb64ddae4a62aaf280a858e1ade2d34938f29026bc62c6b0b43919c26a909f2997d7caaaa5e9c82f139c8bc2aefc752aceeff6fe5f15f0c7b53618c SHA512 4f63d788d4aeccd66c410b6cc3352934a9b7d9b1222dedbcd7688c2b884b620a308b44e2dc777421cef20365a6ae371d59ad349f76bc5fcc751f90169a8f0d34 +AUX iputils-20180629-exclude-ai_canonidn.patch 683 BLAKE2B 300cddddc206a437e0b8127030c728e788519d82be3cc7ea30967499d0ed2c0f33251191e9ae0bf9d8c778660873a4706c824d161a35731d53e78322090ce577 SHA512 6ef326aebdb8b59380a99d568172c74c9d1e2ca7a469d5a0feab26b5980503fbae9c573e1ee6ed6c70b4d32a1022b7dc2638ba02499d01863ff64146b014cad5 +AUX iputils-20180629-musl.patch 1718 BLAKE2B cd701f102a57743ba5494645c78b5c70004623530d8c82f20b2dc6b7d006c422fc23ac9493040ab9eccbcf87874b8db6ab394620a4ea61a7eb2e33e32761290f SHA512 0f623a1644592211b8935b6a7556a2a2c95151ac9b291e574bb1e9a5371fd72f27994867f8d599bca22a402627213807338d6cac17d17e7d175eab847658398d +AUX iputils-99999999-musl.patch 1799 BLAKE2B d178697fd3f3dad9977b15d5a48f3742408f8d3d72fd3883ad512b11a16a719ce56c81ca00281bf754d934192dc3d980998f9947d66974dd3993ba0ed8760be0 SHA512 d3e4cd51591d1c1bb96b58aedd131bbadf6c4f523ce6ec0aebd991d4396fcd516a1aa3af180510efd8484852caf5301cfe4b0936a449b62caffb251d78794c54 +AUX iputils-99999999-tracepath46.patch 824 BLAKE2B c964390aad46b75bda363ca77a87f90856a5a7f23e7b66bacd640034e09b07620f413bde16c1879659d2f01ea9d99ace664141907406239e58841e0ffcda3097 SHA512 65638246a73334640b02a136aa55a4a709d7c4639c57b7634d5595ec40d4bc9c41068a1469a76d22d0a216e9a2c8a52f7840432c435f40ee7035981494d0a443 +AUX rarpd.conf.d 250 BLAKE2B 5370ad1151911132ffff03952bc74ba2727eb71fb824b0d3f6ccd6dfad3aafd9c6ab2e0a4171ce2b34fd716d982362778c88154e5028db48836d4cc6c62b7c69 SHA512 8ff4c38b4f51f92ec6d66a446272e0cd9d958c3075162c5a4aa47eb54bb69f27045b888f8a547394ab3de51bdb69f14b8df528785a8c967fa33ab0c4db329338 +AUX rarpd.init.d 583 BLAKE2B 527579b7cc8211af9910702ff730b0911cd84dc2efe8c5272b78e8be5bf656ee7a938a3c3cdaa6a1b8e51fa221f6ff71f3cef4e48b932995b0e66a35a5d7a838 SHA512 926feed1792799ba63afd9a67111c7c3bf8157b758190a5f1587c25b016aa82cdeb4fbffa41ffa5012f2c3dae05fb8f4c0f0bf0ae2b3048c1299d9489ce1bada +DIST iputils-20180629.tar.gz 195094 BLAKE2B 81bf6ef427eac0769ea3f95c20294b46c81f9c619551234eb265b3a428998a96cf3df0cdc7499f9eea280c1999e899e87c3f4a863141de251a9c509840bc83b3 SHA512 16b8f5ad1cf88083ebaee0a71fddb14bb0a904336fd0baebfcca86c27ac0773553b21d12790b05cab7661d6432c75bbb1523e871e5e1b77faacd13ccc84f4476 +DIST iputils-manpages-20180629.tar.xz 29804 BLAKE2B 15983cc97bc6b6853c193f046687f10be11902f7e1d2dc2eec6c58edd1926f10152108d378858b0d7eb2d2908f038965b05515c4927aedc460282a22307883ad SHA512 1c5b0bab8496a3f3d9b5080029221231a497d9a5e91c61bd0ddd0b63fd51572d052801294aafd08e1dc8ad448b82cdaf48c72f0b08cc143f9c144f3db6848d9a +EBUILD iputils-20180629.ebuild 3986 BLAKE2B d996c00dbd471d7e97e37e0906fdc508079094f4c2d093725da3352c7df8038f21615afcfcaff1050169be228765fa862ddd801c3cacb75f2622bd57732aafe5 SHA512 c720c8412c840a9f30e8191c37449330acd98688ba33c421fbec7c8bd149139bd133219b0166ac52ae7729ce9226e75d90d78f1c2dbd7a5aff257cafc14160b2 +EBUILD iputils-99999999.ebuild 3918 BLAKE2B 0bacc8ef4b0eec5caaaed1461371760c5ecec642fa76b277848dcf62b15be95ed6ba4e298aca9b3fbc01c67562d75e71db4c237aadafcbbd25adce73d07a34c1 SHA512 33dd2f83fdb239d043bfb4339c0526e211e12218cef27d9447f78665309aea2ea9ebc0428e350d04dcdd9a96d7a8bc6b2a8e5b25c21d54aa982f49f9c379b8d2 +MISC metadata.xml 1698 BLAKE2B 0351c77626f66e4a50d83072124088cc7195c4666f6a66f6a981fa66b16b3740da6a08d63da9db0b2a4d02f8a75a04f97142e5b78099525ee8ed4921738d0236 SHA512 f1d211dbe4212072614039c5aea1996270560a24dfa3734af86c4f1f4254cc3abf8440c03d8894b925b71b970e70fb60e79682753655a68b82203cdc401f6ebc diff --git a/net-misc/iputils/files/iputils-20150815-nonroot-floodping.patch b/net-misc/iputils/files/iputils-20150815-nonroot-floodping.patch new file mode 100644 index 0000000..50e108b --- /dev/null +++ b/net-misc/iputils/files/iputils-20150815-nonroot-floodping.patch @@ -0,0 +1,11 @@ +--- iputils-s20150815/ping.h ++++ iputils-s20150815/ping.h +@@ -61,7 +61,7 @@ + + #define MAXWAIT 10 /* max seconds to wait for response */ + #define MININTERVAL 10 /* Minimal interpacket gap */ +-#define MINUSERINTERVAL 200 /* Minimal allowed interval for non-root */ ++#define MINUSERINTERVAL 0 /* Minimal allowed interval for non-root */ + + #define SCHINT(a) (((a) <= MININTERVAL) ? MININTERVAL : (a)) + diff --git a/net-misc/iputils/files/iputils-20180629-exclude-ai_canonidn.patch b/net-misc/iputils/files/iputils-20180629-exclude-ai_canonidn.patch new file mode 100644 index 0000000..e27171f --- /dev/null +++ b/net-misc/iputils/files/iputils-20180629-exclude-ai_canonidn.patch @@ -0,0 +1,27 @@ +From 4f74c44f0b3cf992e364b2776367ba91c9d13599 Mon Sep 17 00:00:00 2001 +From: Nicholas Fish <github@seaofdirac.net> +Date: Sat, 21 Jul 2018 16:42:46 +0200 +Subject: [PATCH] Fix compilation on systems that don't yet support IDN + +--- + ping.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ping.c b/ping.c +index 733477f..b241815 100644 +--- a/ping.c ++++ b/ping.c +@@ -207,9 +207,9 @@ main(int argc, char **argv) + + #ifdef USE_IDN + setlocale(LC_ALL, ""); +-#endif + if (!strcmp(setlocale(LC_ALL, NULL), "C")) + hints.ai_flags &= ~ AI_CANONIDN; ++#endif + + /* Support being called using `ping4` or `ping6` symlinks */ + if (argv[0][strlen(argv[0])-1] == '4') +-- +2.18.0 + diff --git a/net-misc/iputils/files/iputils-20180629-musl.patch b/net-misc/iputils/files/iputils-20180629-musl.patch new file mode 100644 index 0000000..48742d9 --- /dev/null +++ b/net-misc/iputils/files/iputils-20180629-musl.patch @@ -0,0 +1,87 @@ +commit 5007d7067918fb3d950d34c01d059e5222db679a +Author: Aric Belsito <lluixhi@gmail.com> +AuthorDate: Mon Dec 4 00:10:29 2017 +0100 +Commit: Thomas Deutschmann <whissi@gentoo.org> +CommitDate: Wed Jul 11 01:33:28 2018 +0200 + + Fix build on MUSL + + Add missing AI_IDN and NI_IDN declarations. + + Bug: https://bugs.gentoo.org/503914 + Signed-off-by: Thomas Deutschmann <whissi@gentoo.org> + +diff --git a/arping.c b/arping.c +index c2f2129..d753345 100644 +--- a/arping.c ++++ b/arping.c +@@ -44,6 +44,13 @@ + + #ifdef USE_IDN + #include <locale.h> ++ ++#ifndef AI_IDN ++#define AI_IDN 0x0040 ++#endif ++#ifndef AI_CANONIDN ++#define AI_CANONIDN 0x0080 ++#endif + #endif + + #include "SNAPSHOT.h" +diff --git a/ping.h b/ping.h +index 3e09685..1e51c67 100644 +--- a/ping.h ++++ b/ping.h +@@ -37,6 +37,17 @@ + + #ifdef USE_IDN + #include <idn2.h> ++ ++#ifndef AI_IDN ++#define AI_IDN 0x0040 ++#endif ++#ifndef AI_CANONIDN ++#define AI_CANONIDN 0x0080 ++#endif ++#ifndef NI_IDN ++#define NI_IDN 32 ++#endif ++ + #define getaddrinfo_flags (AI_CANONNAME | AI_IDN | AI_CANONIDN) + #define getnameinfo_flags NI_IDN + #else +diff --git a/tracepath.c b/tracepath.c +index 53bda16..9558e49 100644 +--- a/tracepath.c ++++ b/tracepath.c +@@ -29,6 +29,14 @@ + + #ifdef USE_IDN + #include <locale.h> ++ ++#ifndef AI_IDN ++#define AI_IDN 0x0040 ++#endif ++#ifndef NI_IDN ++#define NI_IDN 32 ++#endif ++ + #define getnameinfo_flags NI_IDN + #else + #define getnameinfo_flags 0 +diff --git a/traceroute6.c b/traceroute6.c +index a1022f9..ab34615 100644 +--- a/traceroute6.c ++++ b/traceroute6.c +@@ -246,6 +246,10 @@ + #ifdef USE_IDN + #include <locale.h> + ++#ifndef NI_IDN ++#define NI_IDN 32 ++#endif ++ + #define ADDRINFO_IDN_FLAGS AI_IDN + #define getnameinfo_flags NI_IDN + #else diff --git a/net-misc/iputils/files/iputils-99999999-musl.patch b/net-misc/iputils/files/iputils-99999999-musl.patch new file mode 100644 index 0000000..167e7fa --- /dev/null +++ b/net-misc/iputils/files/iputils-99999999-musl.patch @@ -0,0 +1,92 @@ +From 58ed671d1003caf32f3c35260531e8e1cd7efb80 Mon Sep 17 00:00:00 2001 +From: Aric Belsito <lluixhi@gmail.com> +Date: Sun, 29 Oct 2017 23:17:03 +0100 +Subject: [PATCH] Fix build on MUSL + +Add missing AI_IDN and NI_IDN declarations. + +Bug: https://bugs.gentoo.org/503914 +--- + arping.c | 7 +++++++ + ping.h | 11 +++++++++++ + tracepath.c | 8 ++++++++ + traceroute6.c | 4 ++++ + 4 files changed, 30 insertions(+) + +diff --git a/arping.c b/arping.c +index 0ac18cd..5d2145e 100644 +--- a/arping.c ++++ b/arping.c +@@ -45,6 +45,13 @@ + #ifdef USE_IDN + #include <idna.h> + #include <locale.h> ++ ++#ifndef AI_IDN ++#define AI_IDN 0x0040 ++#endif ++#ifndef AI_CANONIDN ++#define AI_CANONIDN 0x0080 ++#endif + #endif + + #include "SNAPSHOT.h" +diff --git a/ping.h b/ping.h +index c5f0321..0391de0 100644 +--- a/ping.h ++++ b/ping.h +@@ -38,6 +38,17 @@ + #include <locale.h> + #include <idna.h> + #include <stringprep.h> ++ ++#ifndef AI_IDN ++#define AI_IDN 0x0040 ++#endif ++#ifndef AI_CANONIDN ++#define AI_CANONIDN 0x0080 ++#endif ++#ifndef NI_IDN ++#define NI_IDN 32 ++#endif ++ + #define getaddrinfo_flags (AI_CANONNAME | AI_IDN | AI_CANONIDN) + #define getnameinfo_flags NI_IDN + #else +diff --git a/tracepath.c b/tracepath.c +index b0eb911..c50e3ec 100644 +--- a/tracepath.c ++++ b/tracepath.c +@@ -30,6 +30,14 @@ + #ifdef USE_IDN + #include <idna.h> + #include <locale.h> ++ ++#ifndef AI_IDN ++#define AI_IDN 0x0040 ++#endif ++#ifndef NI_IDN ++#define NI_IDN 32 ++#endif ++ + #define getnameinfo_flags NI_IDN + #else + #define getnameinfo_flags 0 +diff --git a/traceroute6.c b/traceroute6.c +index 7807956..c6d868a 100644 +--- a/traceroute6.c ++++ b/traceroute6.c +@@ -247,6 +247,10 @@ + #include <idna.h> + #include <locale.h> + ++#ifndef NI_IDN ++#define NI_IDN 32 ++#endif ++ + #define getnameinfo_flags NI_IDN + #else + #define getnameinfo_flags 0 +-- +2.14.3 + diff --git a/net-misc/iputils/files/iputils-99999999-tracepath46.patch b/net-misc/iputils/files/iputils-99999999-tracepath46.patch new file mode 100644 index 0000000..20d017b --- /dev/null +++ b/net-misc/iputils/files/iputils-99999999-tracepath46.patch @@ -0,0 +1,30 @@ +From 2c4d0838dda90515d4971881d86e8b969baebe01 Mon Sep 17 00:00:00 2001 +From: Thomas Deutschmann <whissi@gentoo.org> +Date: Thu, 19 Oct 2017 17:38:20 +0200 +Subject: [PATCH] tracepath: Support calling `tracepath` as `tracepath4` or + `tracepath6` + +--- + tracepath.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/tracepath.c b/tracepath.c +index b0eb911..d2a6edf 100644 +--- a/tracepath.c ++++ b/tracepath.c +@@ -394,6 +394,12 @@ int main(int argc, char **argv) + setlocale(LC_ALL, ""); + #endif + ++ /* Support being called using `tracepath4` or `tracepath6` symlinks */ ++ if (argv[0][strlen(argv[0])-1] == '4') ++ hints.ai_family = AF_INET; ++ else if (argv[0][strlen(argv[0])-1] == '6') ++ hints.ai_family = AF_INET6; ++ + while ((ch = getopt(argc, argv, "46nbh?l:m:p:")) != EOF) { + switch(ch) { + case '4': +-- +2.14.3 + diff --git a/net-misc/iputils/files/rarpd.conf.d b/net-misc/iputils/files/rarpd.conf.d new file mode 100644 index 0000000..ef7fc48 --- /dev/null +++ b/net-misc/iputils/files/rarpd.conf.d @@ -0,0 +1,8 @@ +# Config file for /etc/init.d/rarpd + +# You probably want to select the interface for this to listen on. +# By default it uses loopback which most likely won't help. +RARPD_IFACE="lo" + +# See the rarpd(8) manpage for more info. +RARPD_OPTS="-b /tftpboot" diff --git a/net-misc/iputils/files/rarpd.init.d b/net-misc/iputils/files/rarpd.init.d new file mode 100644 index 0000000..27081fc --- /dev/null +++ b/net-misc/iputils/files/rarpd.init.d @@ -0,0 +1,19 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +pidfile="/var/run/rarpd.pid" +command="/usr/sbin/rarpd" +# The -d option keeps it from forking. This way s-s-d can do the fork and +# set up the pidfile with the right value below. +command_args="-d ${RARPD_OPTS} ${RARPD_IFACE}" +start_stop_daemon_args="--background --make-pidfile" + +start_pre() { + if [ ! -f /etc/ethers ] ; then + eerror "Please create /etc/ethers with the following content:" + eerror "[MAC address] [name or IP]" + return 1 + fi + return 0 +} diff --git a/net-misc/iputils/iputils-20180629.ebuild b/net-misc/iputils/iputils-20180629.ebuild new file mode 100644 index 0000000..97045b2 --- /dev/null +++ b/net-misc/iputils/iputils-20180629.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2018 Gentoo Foundation +# 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 depedencies. +# To regenerate man/html pages emerge iputils-99999999[doc] with +# EGIT_COMMIT set to release tag and tar ${S}/doc folder. + +EAPI="6" + +inherit flag-o-matic toolchain-funcs fcaps + +MY_PV="${PV/_pre/}" + +PATCHES=( + "${FILESDIR}"/${PN}-20180629-musl.patch + "${FILESDIR}"/${PN}-20180629-exclude-ai_canonidn.patch +) + +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/s${MY_PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~whissi/dist/iputils/${PN}-manpages-${MY_PV}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~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 libressl nettle rarpd rdisc SECURITY_HAZARD ssl static tftpd tracepath traceroute" + +LIB_DEPEND="caps? ( sys-libs/libcap[static-libs(+)] ) + idn? ( net-dns/libidn2:=[static-libs(+)] ) + ipv6? ( + ssl? ( + gcrypt? ( dev-libs/libgcrypt:0=[static-libs(+)] ) + !gcrypt? ( + nettle? ( dev-libs/nettle[static-libs(+)] ) + !nettle? ( + libressl? ( dev-libs/libressl:0=[static-libs(+)] ) + !libressl? ( dev-libs/openssl:0=[static-libs(+)] ) + ) + ) + ) + ) +" +RDEPEND="arping? ( !net-misc/arping ) + rarpd? ( !net-misc/rarpd ) + traceroute? ( !net-analyzer/traceroute ) + !static? ( ${LIB_DEPEND//\[static-libs(+)]} )" +DEPEND="${RDEPEND} + static? ( ${LIB_DEPEND} ) + virtual/os-headers +" +if [[ ${PV} == "99999999" ]] ; then + DEPEND+="app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt:0 + " +fi + +[ "${PV}" = "99999999" ] || S="${WORKDIR}/${PN}-s${PV}" + +src_prepare() { + use SECURITY_HAZARD && PATCHES+=( "${FILESDIR}"/${PN}-20150815-nonroot-floodping.patch ) + + default +} + +src_configure() { + use static && append-ldflags -static + + TARGETS=( + ping + $(for v in arping clockdiff rarpd rdisc tftpd tracepath ; do usev ${v} ; done) + ) + if use ipv6 ; then + TARGETS+=( + $(usex traceroute 'traceroute6' '') + ) + fi + + myconf=( + USE_CRYPTO=no + USE_GCRYPT=no + USE_NETTLE=no + ) + + if use ipv6 && use ssl ; then + myconf=( + USE_CRYPTO=yes + USE_GCRYPT=$(usex gcrypt) + USE_NETTLE=$(usex nettle) + ) + fi +} + +src_compile() { + tc-export CC + emake \ + USE_CAP=$(usex caps) \ + USE_IDN=$(usex idn) \ + IPV4_DEFAULT=$(usex ipv6 'no' 'yes') \ + TARGETS="${TARGETS[*]}" \ + ${myconf[@]} + + if [[ ${PV} == "99999999" ]] ; then + emake man + + use doc && emake html + fi +} + +src_install() { + into / + dobin ping + dosym ping /bin/ping4 + if use ipv6 ; then + dosym ping /bin/ping6 + dosym ping.8 /usr/share/man/man8/ping6.8 + fi + doman doc/ping.8 + + if use arping ; then + dobin arping + doman doc/arping.8 + fi + + into /usr + + if use tracepath ; then + dosbin tracepath + doman doc/tracepath.8 + dosym tracepath /usr/sbin/tracepath4 + fi + + local u + for u in clockdiff rarpd rdisc tftpd ; do + if use ${u} ; then + case ${u} in + clockdiff) dobin ${u};; + *) dosbin ${u};; + esac + doman doc/${u}.8 + fi + done + + if use tracepath && use ipv6 ; then + dosym tracepath /usr/sbin/tracepath6 + dosym tracepath.8 /usr/share/man/man8/tracepath6.8 + fi + + if use traceroute && use ipv6 ; then + dosbin traceroute6 + doman doc/traceroute6.8 + fi + + if use rarpd ; then + newinitd "${FILESDIR}"/rarpd.init.d rarpd + newconfd "${FILESDIR}"/rarpd.conf.d rarpd + fi + + dodoc INSTALL.md + + use doc && dodoc doc/*.html +} + +pkg_postinst() { + fcaps cap_net_raw \ + bin/ping \ + $(usex arping 'bin/arping' '') \ + $(usex clockdiff 'usr/bin/clockdiff' '') +} diff --git a/net-misc/iputils/iputils-99999999.ebuild b/net-misc/iputils/iputils-99999999.ebuild new file mode 100644 index 0000000..b393491 --- /dev/null +++ b/net-misc/iputils/iputils-99999999.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2018 Gentoo Foundation +# 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 depedencies. +# To regenerate man/html pages emerge iputils-99999999[doc] with +# EGIT_COMMIT set to release tag and tar ${S}/doc folder. + +EAPI="6" + +inherit flag-o-matic toolchain-funcs fcaps + +PATCHES=( + "${FILESDIR}"/${PN}-20180629-exclude-ai_canonidn.patch +) + +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/s${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 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~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 libressl nettle rarpd rdisc SECURITY_HAZARD ssl static tftpd tracepath traceroute" + +LIB_DEPEND="caps? ( sys-libs/libcap[static-libs(+)] ) + idn? ( net-dns/libidn2:=[static-libs(+)] ) + ipv6? ( + ssl? ( + gcrypt? ( dev-libs/libgcrypt:0=[static-libs(+)] ) + !gcrypt? ( + nettle? ( dev-libs/nettle[static-libs(+)] ) + !nettle? ( + libressl? ( dev-libs/libressl:0=[static-libs(+)] ) + !libressl? ( dev-libs/openssl:0=[static-libs(+)] ) + ) + ) + ) + ) +" +RDEPEND="arping? ( !net-misc/arping ) + rarpd? ( !net-misc/rarpd ) + traceroute? ( !net-analyzer/traceroute ) + !static? ( ${LIB_DEPEND//\[static-libs(+)]} )" +DEPEND="${RDEPEND} + static? ( ${LIB_DEPEND} ) + virtual/os-headers +" +if [[ ${PV} == "99999999" ]] ; then + DEPEND+="app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-libs/libxslt:0 + " +fi + +[ "${PV}" = "99999999" ] || S="${WORKDIR}/${PN}-s${PV}" + +src_prepare() { + use SECURITY_HAZARD && PATCHES+=( "${FILESDIR}"/${PN}-20150815-nonroot-floodping.patch ) + + default +} + +src_configure() { + use static && append-ldflags -static + + TARGETS=( + ping + $(for v in arping clockdiff rarpd rdisc tftpd tracepath ; do usev ${v} ; done) + ) + if use ipv6 ; then + TARGETS+=( + $(usex traceroute 'traceroute6' '') + ) + fi + + myconf=( + USE_CRYPTO=no + USE_GCRYPT=no + USE_NETTLE=no + ) + + if use ipv6 && use ssl ; then + myconf=( + USE_CRYPTO=yes + USE_GCRYPT=$(usex gcrypt) + USE_NETTLE=$(usex nettle) + ) + fi +} + +src_compile() { + tc-export CC + emake \ + USE_CAP=$(usex caps) \ + USE_IDN=$(usex idn) \ + IPV4_DEFAULT=$(usex ipv6 'no' 'yes') \ + TARGETS="${TARGETS[*]}" \ + ${myconf[@]} + + if [[ ${PV} == "99999999" ]] ; then + emake man + + use doc && emake html + fi +} + +src_install() { + into / + dobin ping + dosym ping /bin/ping4 + if use ipv6 ; then + dosym ping /bin/ping6 + dosym ping.8 /usr/share/man/man8/ping6.8 + fi + doman doc/ping.8 + + if use arping ; then + dobin arping + doman doc/arping.8 + fi + + into /usr + + if use tracepath ; then + dosbin tracepath + doman doc/tracepath.8 + dosym tracepath /usr/sbin/tracepath4 + fi + + local u + for u in clockdiff rarpd rdisc tftpd ; do + if use ${u} ; then + case ${u} in + clockdiff) dobin ${u};; + *) dosbin ${u};; + esac + doman doc/${u}.8 + fi + done + + if use tracepath && use ipv6 ; then + dosym tracepath /usr/sbin/tracepath6 + dosym tracepath.8 /usr/share/man/man8/tracepath6.8 + fi + + if use traceroute && use ipv6 ; then + dosbin traceroute6 + doman doc/traceroute6.8 + fi + + if use rarpd ; then + newinitd "${FILESDIR}"/rarpd.init.d rarpd + newconfd "${FILESDIR}"/rarpd.conf.d rarpd + fi + + dodoc INSTALL.md + + use doc && dodoc doc/*.html +} + +pkg_postinst() { + fcaps cap_net_raw \ + bin/ping \ + $(usex arping 'bin/arping' '') \ + $(usex clockdiff 'usr/bin/clockdiff' '') +} diff --git a/net-misc/iputils/metadata.xml b/net-misc/iputils/metadata.xml new file mode 100644 index 0000000..8fb0527 --- /dev/null +++ b/net-misc/iputils/metadata.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> + </maintainer> + <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="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="openssl">Use <pkg>dev-libs/openssl</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="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="traceroute">Build and install traceroute -- tool for tracing network paths (see also <pkg>net-analyzer/traceroute</pkg>)</flag> + <flag name="SECURITY_HAZARD">Allow non-root users to flood (ping -f). This is generally a very bad idea.</flag> + </use> + <upstream> + <remote-id type="cpe">cpe:/a:skbuff:iputils</remote-id> + <remote-id type="github">iputils/iputils</remote-id> + </upstream> +</pkgmetadata> |