public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-libs/liboping/, net-libs/liboping/files/
@ 2017-01-15  7:02 Thomas Deutschmann
  0 siblings, 0 replies; only message in thread
From: Thomas Deutschmann @ 2017-01-15  7:02 UTC (permalink / raw
  To: gentoo-commits

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>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-01-15  7:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-15  7:02 [gentoo-commits] repo/gentoo:master commit in: net-libs/liboping/, net-libs/liboping/files/ Thomas Deutschmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox