diff options
Diffstat (limited to 'net-misc/iputils')
-rw-r--r-- | net-misc/iputils/Manifest | 2 | ||||
-rw-r--r-- | net-misc/iputils/iputils-20190515.ebuild | 198 |
2 files changed, 200 insertions, 0 deletions
diff --git a/net-misc/iputils/Manifest b/net-misc/iputils/Manifest index 50e512301db0..d87174e0216b 100644 --- a/net-misc/iputils/Manifest +++ b/net-misc/iputils/Manifest @@ -1,2 +1,4 @@ DIST iputils-20180629.tar.gz 195094 BLAKE2B 81bf6ef427eac0769ea3f95c20294b46c81f9c619551234eb265b3a428998a96cf3df0cdc7499f9eea280c1999e899e87c3f4a863141de251a9c509840bc83b3 SHA512 16b8f5ad1cf88083ebaee0a71fddb14bb0a904336fd0baebfcca86c27ac0773553b21d12790b05cab7661d6432c75bbb1523e871e5e1b77faacd13ccc84f4476 +DIST iputils-20190515.tar.gz 403228 BLAKE2B cebe2460ac4da5471a9b8e655bed1c1640f69d4dc41a724ab197533e3d532e34c28e9ccbc852e057d18c9867d9d668e2f73848b005439463dc4e7735c68ae87c SHA512 adb8831ca3a567b9a5f3762227c631aefa62eedbaa7578c2bfea90b6d494b9e0cccf49b68713912611ec56c352d6c517df9e8409c9c9478cfc5732371c8cf250 DIST iputils-manpages-20180629.tar.xz 29804 BLAKE2B 15983cc97bc6b6853c193f046687f10be11902f7e1d2dc2eec6c58edd1926f10152108d378858b0d7eb2d2908f038965b05515c4927aedc460282a22307883ad SHA512 1c5b0bab8496a3f3d9b5080029221231a497d9a5e91c61bd0ddd0b63fd51572d052801294aafd08e1dc8ad448b82cdaf48c72f0b08cc143f9c144f3db6848d9a +DIST iputils-manpages-20190515.tar.xz 27556 BLAKE2B adf3eb5c7f3fd71fa24ff48daffd367ba6abc0377bca45ddc439803d177bf668f7dfc7bd3da7a06e89d9ffdd68f2bb0dbb9aa0ac150c98cd1f2b207a68d4fb46 SHA512 4013fe05c592ccc09d6b947ee59d56515bfe49e9a9d5610225d4a2b8c5034a7f1e8dc41c214cf03ce909d36bc5a8438541ad302cddeb1f0b4359a9b9c85ad4b2 diff --git a/net-misc/iputils/iputils-20190515.ebuild b/net-misc/iputils/iputils-20190515.ebuild new file mode 100644 index 000000000000..ff6506c4be4d --- /dev/null +++ b/net-misc/iputils/iputils-20190515.ebuild @@ -0,0 +1,198 @@ +# Copyright 1999-2019 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 depedencies. +# To regenerate man/html pages emerge iputils-99999999[doc] with +# EGIT_COMMIT set to release tag and tar ${S}/doc folder. + +EAPI="6" + +PLOCALES="ja" + +inherit fcaps flag-o-matic l10n meson 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/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 nls rarpd rdisc SECURITY_HAZARD ssl static tftpd tracepath traceroute6" + +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(+)] ) + ) + ) + ) + ) + nls? ( sys-devel/gettext[static-libs(+)] ) +" + +RDEPEND=" + arping? ( !net-misc/arping ) + rarpd? ( !net-misc/rarpd ) + traceroute6? ( !net-analyzer/traceroute ) + !static? ( ${LIB_DEPEND//\[static-libs(+)]} ) +" +DEPEND=" + ${RDEPEND} + static? ( ${LIB_DEPEND} ) + virtual/os-headers + virtual/pkgconfig +" +if [[ ${PV} == "99999999" ]] ; then + DEPEND+=" + 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 + +[ "${PV}" == "99999999" ] || S="${WORKDIR}/${PN}-s${PV}" + +PATCHES=() + +src_prepare() { + use SECURITY_HAZARD && PATCHES+=( "${FILESDIR}"/${PN}-20150815-nonroot-floodping.patch ) + + default + + l10n_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 use ipv6 && use ssl ; then + emesonargs+=( + -DUSE_CRYPTO="$(usex gcrypt gcrypt $(usex nettle nettle openssl))" + ) + else + emesonargs+=( + -DUSE_CRYPTO="none" + ) + fi + + 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 + + local oifs=${IFS} + 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) + IFS=${oifs} + + 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' '') +} |