commit:     86e8baddcdb4663169a7ace6b1ca3ab2e43589f4
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 15 06:54:39 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sun Jan 15 07:02:30 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86e8badd

net-libs/liboping: Ebuild rewritten for EAPI=6

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 .../liboping-1.8.0-remove-ncurses-automagic.patch  | 94 ++++++++++++++++++++++
 net-libs/liboping/liboping-1.8.0-r1.ebuild         | 66 +++++++++++++++
 net-libs/liboping/metadata.xml                     |  4 +
 3 files changed, 164 insertions(+)

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 00000000..67e389f
--- /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 00000000..1414754
--- /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 561fec0..521d84d 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>

Reply via email to