From 86e8baddcdb4663169a7ace6b1ca3ab2e43589f4 Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann Date: Sun, 15 Jan 2017 07:54:39 +0100 Subject: 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(+) create mode 100644 net-libs/liboping/files/liboping-1.8.0-remove-ncurses-automagic.patch create mode 100644 net-libs/liboping/liboping-1.8.0-r1.ebuild (limited to 'net-libs/liboping') 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 +-# elif HAVE_NCURSES_H ++#if defined HAVE_NCURSESW_CURSES_H ++# include ++#elif defined HAVE_NCURSESW_H ++# include ++#elif defined HAVE_NCURSES_CURSES_H ++# include ++#elif defined HAVE_NCURSES_H + # include +-# 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 @@ https://github.com/octo/liboping/issues octo/liboping + + Allow non-root users to use [n]oping utility. + Build ncurses-based version of oping utility (requires sys-libs/ncurses) + -- cgit v1.2.3-65-gdbad