summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-libs/liboping')
-rw-r--r--net-libs/liboping/files/liboping-1.8.0-remove-ncurses-automagic.patch94
-rw-r--r--net-libs/liboping/liboping-1.8.0-r1.ebuild66
-rw-r--r--net-libs/liboping/metadata.xml4
3 files changed, 164 insertions, 0 deletions
diff --git a/net-libs/liboping/files/liboping-1.8.0-remove-ncurses-automagic.patch b/net-libs/liboping/files/liboping-1.8.0-remove-ncurses-automagic.patch
new file mode 100644
index 000000000000..67e389ff139c
--- /dev/null
+++ b/net-libs/liboping/files/liboping-1.8.0-remove-ncurses-automagic.patch
@@ -0,0 +1,94 @@
+configure: Make use of ncurses configurable
+
+https://github.com/octo/liboping/pull/15
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -206,27 +206,30 @@ AC_CHECK_FUNCS(nanosleep, [],
+ AC_MSG_ERROR(cannot find nanosleep)))
+ AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes")
+
+-with_ncurses="no"
+-AC_CHECK_HEADERS(ncursesw/ncurses.h ncurses.h, [with_ncurses="yes"], [])
+-if test "x$with_ncurses" = "xyes"
+-then
+- have_ncursesw="no"
+- have_ncurses="no"
+- NCURSES_LIB=""
++AC_ARG_WITH(ncurses, AS_HELP_STRING([--with-ncurses], [Build oping CLI tool with ncurses support]))
++AS_IF([test "x$with_ncurses" != "xno"], [
++ can_build_with_ncurses="no"
++ PKG_CHECK_MODULES([NCURSES], [ncursesw], [can_build_with_ncurses=yes], [
++ PKG_CHECK_MODULES([NCURSES], [ncurses], [can_build_with_ncurses=yes], [
++ AC_CHECK_LIB(ncursesw, mvwprintw, [NCURSES_LIBS="-lncursesw"; can_build_with_ncurses=yes], [
++ AC_CHECK_LIB(ncurses, mvwprintw, [NCURSES_LIBS="-lncurses"; can_build_with_ncurses=yes])
++ ])
++ ])
++ ])
+
+- AC_CHECK_LIB(ncursesw, mvwprintw, [have_ncursesw="yes"], [have_ncursesw="no"])
+- AC_CHECK_LIB(ncurses, mvwprintw, [have_ncurses="yes"], [have_ncurses="no"])
++ AS_IF([test "x$can_build_with_ncurses" = "xyes"], [
++ AC_CHECK_HEADERS([ncursesw/curses.h ncursesw.h ncurses/curses.h ncurses.h], [can_build_with_ncurses=yes; break;], [can_build_with_ncurses=no])
++ ])
+
+- if test "x$have_ncursesw" = "xyes"; then
+- NCURSES_LIB="-lncursesw"
+- else if test "x$have_ncurses" = "xyes"; then
+- NCURSES_LIB="-lncurses"
+- else
+- with_ncurses="no"
+- fi; fi
+- AC_SUBST(NCURSES_LIB)
+-fi
+-AM_CONDITIONAL(BUILD_WITH_LIBNCURSES, test "x$with_ncurses" = "xyes")
++ AS_IF([test "x$can_build_with_ncurses" = "xno" && test "x$with_ncurses" = "xyes"], [
++ AC_MSG_ERROR([ncurses not found but explicit enabled])
++ ],
++ [test "x$can_build_with_ncurses" = "xno"], [
++ AC_MSG_WARN([Will not build oping with ncurses support -- no suiteable ncurses installation found])
++ ])
++])
++
++AM_CONDITIONAL(BUILD_WITH_LIBNCURSES, test "x$with_ncurses" != "xno" && test "x$can_build_with_ncurses" = "xyes")
+
+ AC_FUNC_STRERROR_R
+
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -43,8 +43,8 @@ if BUILD_WITH_LIBNCURSES
+ bin_PROGRAMS += noping
+
+ noping_SOURCES = oping.c
+-noping_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_NCURSES=1
+-noping_LDADD = liboping.la -lm $(NCURSES_LIB)
++noping_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_NCURSES=1 $(NCURSES_CFLAGS)
++noping_LDADD = liboping.la -lm $(NCURSES_LIBS)
+ if BUILD_WITH_LIBRT
+ noping_LDADD += -lrt
+ endif
+--- a/src/oping.c
++++ b/src/oping.c
+@@ -82,11 +82,17 @@
+ /* http://newsgroups.derkeiler.com/Archive/Rec/rec.games.roguelike.development/2010-09/msg00050.html */
+ # define _X_OPEN_SOURCE_EXTENDED
+
+-# if HAVE_NCURSESW_NCURSES_H
+-# include <ncursesw/ncurses.h>
+-# elif HAVE_NCURSES_H
++#if defined HAVE_NCURSESW_CURSES_H
++# include <ncursesw/curses.h>
++#elif defined HAVE_NCURSESW_H
++# include <ncursesw.h>
++#elif defined HAVE_NCURSES_CURSES_H
++# include <ncurses/curses.h>
++#elif defined HAVE_NCURSES_H
+ # include <ncurses.h>
+-# endif
++#else
++# error "SysV or X/Open-compatible Curses header file required"
++#endif
+
+ # define OPING_GREEN 1
+ # define OPING_YELLOW 2
+--
diff --git a/net-libs/liboping/liboping-1.8.0-r1.ebuild b/net-libs/liboping/liboping-1.8.0-r1.ebuild
new file mode 100644
index 000000000000..141475405edb
--- /dev/null
+++ b/net-libs/liboping/liboping-1.8.0-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit autotools fcaps perl-module
+
+DESCRIPTION="Protocol independent ANSI-C ping library and command line utility"
+HOMEPAGE="https://noping.cc/"
+SRC_URI="https://noping.cc/files/${P}.tar.bz2"
+
+LICENSE="LGPL-2.1 GPL-2"
+SLOT="0/0.2"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+filecaps ncurses perl"
+
+DEPEND="ncurses? ( sys-libs/ncurses:0= )"
+RDEPEND=${DEPEND}
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.6.2-nouidmagic.patch"
+ "${FILESDIR}/${PN}-1.8.0-remove-ncurses-automagic.patch"
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with perl perl-bindings INSTALLDIRS=vendor) \
+ $(use_with ncurses)
+}
+
+src_test() {
+ if use perl; then
+ pushd bindings/perl >/dev/null || die
+ perl-module_src_test
+ popd >/dev/null || die
+ fi
+}
+
+src_install() {
+ default
+
+ find "${ED}"usr/lib* -name '*.la' -o -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if use filecaps; then
+ local _caps_str="CAP_NET_RAW"
+ fcaps "${_caps_str}" \
+ "${EROOT%/}/usr/bin/oping" \
+ "${EROOT%/}/usr/bin/noping"
+ elog "Capabilities for"
+ elog ""
+ elog " ${EROOT%/}/usr/bin/oping"
+ elog " ${EROOT%/}/usr/bin/oping"
+ elog ""
+ elog "set to ${_caps_str}+EP due to set 'filecaps' USE flag."
+ elog
+ fi
+}
diff --git a/net-libs/liboping/metadata.xml b/net-libs/liboping/metadata.xml
index 561fec002053..521d84da2fe3 100644
--- a/net-libs/liboping/metadata.xml
+++ b/net-libs/liboping/metadata.xml
@@ -12,4 +12,8 @@
<bugs-to>https://github.com/octo/liboping/issues</bugs-to>
<remote-id type="github">octo/liboping</remote-id>
</upstream>
+ <use>
+ <flag name="filecaps">Allow non-root users to use [n]oping utility.</flag>
+ <flag name="ncurses">Build ncurses-based version of oping utility (requires <pkg>sys-libs/ncurses</pkg>)</flag>
+ </use>
</pkgmetadata>