net-analyzer/ntopng: Version 4.0
authorJeroen Roovers <jer@gentoo.org>
Sat, 16 May 2020 11:48:14 +0000 (13:48 +0200)
committerJeroen Roovers <jer@gentoo.org>
Sat, 16 May 2020 11:49:21 +0000 (13:49 +0200)
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Bug: https://bugs.gentoo.org/show_bug.cgi?id=716350
Signed-off-by: Jeroen Roovers <jer@gentoo.org>
net-analyzer/ntopng/Manifest
net-analyzer/ntopng/files/ntopng-4.0-PKG_CONFIG.patch [new file with mode: 0644]
net-analyzer/ntopng/files/ntopng-4.0-ndpi-includes.patch [new file with mode: 0644]
net-analyzer/ntopng/ntopng-4.0.ebuild [new file with mode: 0644]

index a4dd46d47f4c4f37bb032a1cc25492fbf4da9a97..73a4c9aaf1b02ec18ea8eb006c66842851445ce6 100644 (file)
@@ -1,2 +1,3 @@
 DIST ntopng-3.8.1.tar.gz 33914341 BLAKE2B 3b0df382e938af78d10e71282e863ccb7ba1da3dc7e2bf90b45f1e6e4670052a8c61a16cb8547f119f0dc753a2e31273b41f40aa26919480cbaecf43b6d59742 SHA512 4cb613881e36b435f97dcc25dfaa505d9c552f63ad8334d5c9d47ec06376d47124c65e6d782546d36f6d27b34b037cc73df7129f459f290ac51e270bb7453970
 DIST ntopng-3.8.tar.gz 33910329 BLAKE2B a5aaed2244516b92e4b8c7364817ea66eb2f446fe814a96622cbbf5d851d79e8049b75da009d0f80f07c1fae90f8dc294794b76ed14450d8e0e6685a1b1ce8f2 SHA512 2236f9931fc606e4d0a6da379c480a48bacd441cf199a310ea690a03d74d08f369825ea02e3c13828a10f716a5531d4e6774876f253ab348a52bcf8bd8d5107f
+DIST ntopng-4.0.tar.gz 43239175 BLAKE2B 689883685d46d339d61c338607e2164e36903313cdc0e0e2b649acd7468505f72fce75118a2c3ef55e54d942fc5cc3c312efbd46f8e2603bbcfaf206908bce82 SHA512 a278cc5f304e3040b31c691286650a54d61b5587033724c4513dd7372168477d5b0b471a1d2a5c5682034464b022b88e971567a38d836216431ea77bf1ed90c9
diff --git a/net-analyzer/ntopng/files/ntopng-4.0-PKG_CONFIG.patch b/net-analyzer/ntopng/files/ntopng-4.0-PKG_CONFIG.patch
new file mode 100644 (file)
index 0000000..cc97d38
--- /dev/null
@@ -0,0 +1,124 @@
+--- a/configure.seed
++++ b/configure.seed
+@@ -182,21 +182,21 @@
+ fi
+ dnl finish: nDPI handling
+-pkg-config --exists json-c
++${PKG_CONFIG} --exists json-c
+ if test "$?" -ne 1; then
+-  JSON_INC=`pkg-config --cflags json-c`
+-  JSON_LIB=`pkg-config --libs json-c`
++  JSON_INC=`${PKG_CONFIG} --cflags json-c`
++  JSON_LIB=`${PKG_CONFIG} --libs json-c`
+ else
+   echo "Please install libjson-c-dev package prerequisite"
+   exit -1
+ fi
+-pkg-config --exists libssl
++${PKG_CONFIG} --exists libssl
+ if test "$?" -ne 1; then
+  AC_DEFINE_UNQUOTED(NO_SSL_DL, 1, [has openssl])
+- SSL_INC="`pkg-config --cflags libssl` -I/usr/include/openssl"
+- SSL_LIB="`pkg-config --libs libssl` -lssl -lcrypto"
++ SSL_INC="`${PKG_CONFIG} --cflags libssl` -I/usr/include/openssl"
++ SSL_LIB="`${PKG_CONFIG} --libs libssl` -lssl -lcrypto"
+ else
+  dnl Workaround for MacOS Brew
+  if test -d "/usr/local/opt/openssl/lib"; then
+@@ -303,8 +303,8 @@
+ AC_DEFINE_UNQUOTED(NTOPNG_GIT_RELEASE, "${GIT_BRANCH}:${GIT_RELEASE}", [GIT Release])
+ AC_DEFINE_UNQUOTED(NTOPNG_GIT_DATE, "${GIT_DATE}", [Last GIT change])
+-if test -z `which pkg-config`; then
+-   echo "#!/bin/sh\n" > pkg-config
++if test -z `which ${PKG_CONFIG}`; then
++   echo "#!/bin/sh\n" > ${PKG_CONFIG}
+ fi
+ if test -f ".git/index"; then
+@@ -336,8 +336,8 @@
+ if test -d "/usr/include/hiredis"; then
+  AC_DEFINE_UNQUOTED(HAVE_HIREDIS, 1, [Local hiredis package present])
+- HIREDIS_INC="`pkg-config --cflags hiredis` -I/usr/include/hiredis"
+- HIREDIS_LIB="`pkg-config --libs hiredis` -lhiredis"
++ HIREDIS_INC="`${PKG_CONFIG} --cflags hiredis` -I/usr/include/hiredis"
++ HIREDIS_LIB="`${PKG_CONFIG} --libs hiredis` -lhiredis"
+ else
+  HIREDIS_INC="-I ${PWD}/third-party/hiredis"
+ fi
+@@ -433,7 +433,7 @@
+    UGLIFYJS_MAJOR_VERSION="${UGLIFYJS_VERSION%%.*}"
+ fi
+-AC_CHECK_LIB([rrd_th], [rrd_update_r], [LIBRRD_LD_FLAGS=-lrrd_th], [LIBRRD_LD_FLAGS=`pkg-config --libs librrd`])
++AC_CHECK_LIB([rrd_th], [rrd_update_r], [LIBRRD_LD_FLAGS=-lrrd_th], [LIBRRD_LD_FLAGS=`${PKG_CONFIG} --libs librrd`])
+ AC_CHECK_LIB([nl], [nl_handle_alloc], [LDFLAGS="${LDFLAGS} -lnl"])
+ AC_CHECK_LIB([rt], [clock_gettime],   [LDFLAGS="${LDFLAGS} -lrt"])
+@@ -452,7 +452,7 @@
+     dnl> https://github.com/curl/curl/blob/curl-7_20_0/TODO-RELEASE
+     AC_MSG_CHECKING(for curl SMTP support)
+-    if `pkg-config --atleast-version="7.20.0" libcurl` ; then
++    if `${PKG_CONFIG} --atleast-version="7.20.0" libcurl` ; then
+         AC_DEFINE_UNQUOTED(HAVE_CURL_SMTP, 1, [curl supports SMTP])
+       AC_MSG_RESULT(yes)
+     else
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -45,9 +45,9 @@
+ ######
+ LIBRRDTOOL_HOME=${PWD}/third-party/rrdtool-1.4.8
+-HAS_LIBRRDTOOL=$(shell pkg-config --atleast-version=1.4.8 librrd && echo 0)
++HAS_LIBRRDTOOL=$(shell ${PKG_CONFIG} --atleast-version=1.4.8 librrd && echo 0)
+ ifeq ($(HAS_LIBRRDTOOL), 0)
+-      LIBRRDTOOL_INC = $(shell pkg-config --cflags librrd)
++      LIBRRDTOOL_INC = $(shell ${PKG_CONFIG} --cflags librrd)
+       LIBRRDTOOL_LIB = @LIBRRD_LD_FLAGS@
+ else
+       LIBRRDTOOL_INC=-I$(LIBRRDTOOL_HOME)/src/
+@@ -77,21 +77,21 @@
+ ######
+ ifeq (@NEDGE@, 0)
+- HAS_SODIUM=$(shell pkg-config --exists libsodium && echo 0)
++ HAS_SODIUM=$(shell ${PKG_CONFIG} --exists libsodium && echo 0)
+  ifeq ($(HAS_SODIUM), 0)
+-      SODIUM_INC = $(shell pkg-config --cflags libsodium)
+-      SODIUM_LIB = $(shell pkg-config --libs libsodium)
++      SODIUM_INC = $(shell ${PKG_CONFIG} --cflags libsodium)
++      SODIUM_LIB = $(shell ${PKG_CONFIG} --libs libsodium)
+  else
+       SODIUM_INC=
+       SODIUM_LIB=
+  endif
+- HAS_ZEROMQ=$(shell pkg-config --exists libzmq && echo 0)
++ HAS_ZEROMQ=$(shell ${PKG_CONFIG} --exists libzmq && echo 0)
+  ifeq ($(HAS_ZEROMQ), 0)
+-      ZEROMQ_INC = $(shell pkg-config --cflags libzmq)
++      ZEROMQ_INC = $(shell ${PKG_CONFIG} --cflags libzmq)
+       ZMQ_STATIC=/usr/local/lib/libzmq.a
+       ifeq ($(wildcard $(ZMQ_STATIC)),)
+-              ZEROMQ_LIB = $(shell pkg-config --libs libzmq)
++              ZEROMQ_LIB = $(shell ${PKG_CONFIG} --libs libzmq)
+       else
+               ZEROMQ_LIB = $(ZMQ_STATIC)
+       endif
+@@ -101,9 +101,9 @@
+       ZEROMQ_LIB=$(ZEROMQ_HOME)/.libs/libzmq.a
+  endif
+- HAS_ZSTD=$(shell pkg-config --exists libzstd && echo 0)
++ HAS_ZSTD=$(shell ${PKG_CONFIG} --exists libzstd && echo 0)
+  ifeq ($(HAS_ZSTD), 0)
+-      ZSTD_LIB = $(shell pkg-config --libs libzstd)
++      ZSTD_LIB = $(shell ${PKG_CONFIG} --libs libzstd)
+  endif
+ endif
diff --git a/net-analyzer/ntopng/files/ntopng-4.0-ndpi-includes.patch b/net-analyzer/ntopng/files/ntopng-4.0-ndpi-includes.patch
new file mode 100644 (file)
index 0000000..d1f61ce
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.seed
++++ b/configure.seed
+@@ -134,7 +134,7 @@
+ PKG_CHECK_MODULES([NDPI], [libndpi >= 2.0], [
+    NDPI_INC=`echo $NDPI_CFLAGS | sed -e "s/[ ]*$//"`
+    # Use static libndpi library as building against the dynamic library fails
+-   NDPI_LIB="-Wl,-Bstatic $NDPI_LIBS -Wl,-Bdynamic"
++   NDPI_LIB="$NDPI_LIBS"
+    NDPI_LIB_DEP=
+    ], [
+       AC_MSG_CHECKING(for nDPI source)
diff --git a/net-analyzer/ntopng/ntopng-4.0.ebuild b/net-analyzer/ntopng/ntopng-4.0.ebuild
new file mode 100644 (file)
index 0000000..45fcb2b
--- /dev/null
@@ -0,0 +1,99 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools user toolchain-funcs
+
+DESCRIPTION="Network traffic analyzer with web interface"
+HOMEPAGE="https://www.ntop.org/"
+SRC_URI="https://github.com/ntop/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+       >=net-libs/nDPI-3.0:=
+       dev-db/mysql-connector-c:=
+       dev-db/sqlite:3
+       dev-libs/hiredis:=
+       dev-libs/json-c:=
+       dev-libs/libmaxminddb
+       dev-libs/libsodium:=
+       dev-libs/openssl
+       net-analyzer/rrdtool
+       net-libs/libpcap
+       >=net-libs/zeromq-3:=
+       net-misc/curl
+       sys-libs/libcap
+       sys-libs/zlib
+"
+RDEPEND="
+       ${DEPEND}
+       dev-db/redis
+"
+BDEPEND="
+       virtual/pkgconfig
+"
+PATCHES=(
+       "${FILESDIR}"/${PN}-3.8-mysqltool.patch
+       "${FILESDIR}"/${PN}-3.8.1-parallel-make.patch
+       "${FILESDIR}"/${PN}-4.0-ndpi-includes.patch
+       "${FILESDIR}"/${PN}-4.0-PKG_CONFIG.patch
+)
+RESTRICT="test"
+
+pkg_setup() {
+       enewuser ntopng
+}
+
+src_prepare() {
+       default
+
+       sed \
+               -e "s/@VERSION@/${PV}.$(date +%y%m%d)/g" \
+               -e "s/@SHORT_VERSION@/${PV}/g" \
+               < "${S}/configure.seed" \
+               > "${S}/configure.ac" || die
+
+       eautoreconf
+}
+
+src_configure() {
+       tc-export PKG_CONFIG
+       default
+}
+
+src_compile() {
+       emake \
+               CC="$(tc-getCC)" \
+               MYCFLAGS="${CFLAGS}" \
+               MYLDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+       SHARE_NTOPNG_DIR="${EPREFIX}/usr/share/${PN}"
+       dodir ${SHARE_NTOPNG_DIR}
+       insinto ${SHARE_NTOPNG_DIR}
+       doins -r httpdocs
+       doins -r scripts
+
+       dodir ${SHARE_NTOPNG_DIR}/third-party
+       insinto ${SHARE_NTOPNG_DIR}/third-party
+       doins -r third-party/i18n.lua-master
+       doins -r third-party/lua-resty-template-master
+
+       exeinto /usr/bin
+       doexe ${PN}
+       doman ${PN}.8
+
+       newinitd "${FILESDIR}"/ntopng.init.d ntopng
+       newconfd "${FILESDIR}"/ntopng.conf.d ntopng
+
+       keepdir /var/lib/ntopng
+       fowners ntopng /var/lib/ntopng
+}
+
+pkg_postinst() {
+       elog "ntopng default credentials are user='admin' password='admin'"
+}