1
0
mirror of https://github.com/pavel-odintsov/fastnetmon synced 2024-12-03 17:38:25 +01:00

Update FreeBSD port

* Fix style
* Fix github handling
* Add LICENSE
* Fix boost dependency
* Add rc.d script
* Install config file, handle with @sample
* Install documentation
* Fix hardcoded PREFIX/LOCALBASE references and other paths
* Write files into /var/run/fastnetmon and /var/log/fastnetmon
  subdirectories, as /var/run and /var/log cannot be made writable
  by dedicated user

This does not yet support dedicated user yet, as it would require
modification of /usr/ports/{UIDs,GIDs}. This will be added when the
port is committed to FreeBSD ports tree.
This commit is contained in:
Dmitry Marakasov 2015-06-03 00:23:35 +03:00
parent 86b6750ffb
commit 8aed006cda
6 changed files with 116 additions and 24 deletions

@ -1,33 +1,46 @@
# $FreeBSD$
# Created by: Pavel Odintsov pavel.odintsov@gmail.com
# For fast install use pkg for boost: pkg install -y boost-all
PORTNAME= fastnetmon
PORTVERSION= 1.1.2
DISTVERSIONPREFIX= v
CATEGORIES= net-mgmt
PORTNAME= fastnetmon
MAINTAINER= pavel.odintsov@gmail.com
COMMENT= Very fast DDoS analyzer with sFlow/NetFLow/IPFIX/SPAN/mirror support
# production
#PORTVERSION= 1.1.1
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE
# Testing
PORTVERSION= master
CATEGORIES= net-mgmt
LIB_DEPENDS= liblog4cpp.so:${PORTSDIR}/devel/log4cpp \
libboost_regex.so:${PORTSDIR}/devel/boost-libs
# Testing
MASTER_SITES= https://github.com/FastVPSEestiOu/fastnetmon/archive/
DISTFILES= master.zip
USE_GITHUB= yes
GH_ACCOUNT= FastVPSEestiOu
# Production
#MASTER_SITES= https://github.com/FastVPSEestiOu/fastnetmon/archive/
#DISTFILES= v1.1.1.tar.gz
# TODO: enable this after updating /usr/ports/{UIDs,GIDs}
#USERS= fastnetmon
#GROUPS= fastnetmon
MAINTAINER= Pavel Odintsov pavel.odintsov@gmail.com
COMMENT= Very fast DDoS analyzer with sFlow/NetFLow/IPFIX/SPAN/mirror support
USES= cmake
CMAKE_SOURCE_PATH=${WRKSRC}/src
USES= cmake
CMAKE_SOURCE_PATH= ${WRKSRC}/src
USE_RC_SUBR= fastnetmon
LIB_DEPENDS= liblog4cpp.so:${PORTSDIR}/devel/log4cpp libboost_regex.so:${PORTSDIR}/devel/boost-all
PORTDOCS= *
# distsum generated by call: make makesum
OPTIONS_DEFINE= DOCS
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/src/CMakeLists.txt
@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|; \
s|/var/run|&/fastnetmon|g; s|/var/log|&/fastnetmon|g; \
s|"/etc/|"${PREFIX}/etc/|g; s|/root/fastnetmon|${DATADIR}|g' \
${WRKSRC}/src/fastnetmon.conf ${WRKSRC}/src/fastnetmon.cpp
post-install:
${MV} ${STAGEDIR}${PREFIX}/etc/${PORTNAME}.conf \
${STAGEDIR}${PREFIX}/etc/${PORTNAME}.conf.sample
cd ${WRKSRC} && ${COPYTREE_SHARE} "README.md docs" ${STAGEDIR}${DOCSDIR}
${MKDIR} ${STAGEDIR}/var/run/fastnetmon ${STAGEDIR}/var/log/fastnetmon
.include <bsd.port.mk>

@ -0,0 +1,2 @@
SHA256 (FastVPSEestiOu-fastnetmon-v1.1.2_GH0.tar.gz) = f2c554aa402e608b9837132b17da79b49f1b998c17934344779ddc9a397261b4
SIZE (FastVPSEestiOu-fastnetmon-v1.1.2_GH0.tar.gz) = 6072730

@ -0,0 +1,28 @@
#!/bin/sh
# PROVIDE: fastnetmon
# REQUIRE: NETWORKING SERVERS LOGIN
# BEFORE: securelevel
# KEYWORD: shutdown
# Add the following line to /etc/rc.conf to enable `fastnetmon':
#
# fastnetmon_enable="YES"
#
. /etc/rc.subr
name="fastnetmon"
rcvar="${name}_enable"
command="%%PREFIX%%/bin/fastnetmon"
pidfile="/var/run/fastnetmon/$name.pid"
load_rc_config "$name"
: ${fastnetmon_enable:="NO"}
# TODO: enable this after updating /usr/ports/{UIDs,GIDs}
#: ${fastnetmon_user:="fastnetmon"}
: ${fastnetmon_flags:="--daemonize"}
run_rc_command "$1"

@ -0,0 +1,46 @@
--- src/CMakeLists.txt.orig 2015-06-02 16:43:16 UTC
+++ src/CMakeLists.txt
@@ -14,8 +14,8 @@ set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 1)
# It's pretty safe and provide big speedup for our packet processor and patricia code
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 ")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
+set(CMAKE_C_FLAGS_RELEASE "-O2")
+set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(FASTNETMON_PROFILER OFF)
@@ -91,11 +91,13 @@ target_link_libraries(netflow_plugin ipf
add_library(pcap_plugin STATIC pcap_plugin/pcap_collector.cpp)
target_link_libraries(pcap_plugin pcap)
+find_package(Threads)
+
if (ENABLE_PFRING_SUPPORT)
add_library(pfring_plugin STATIC pfring_plugin/pfring_collector.cpp)
target_link_libraries(pfring_plugin ${PFRING_LIBRARIES})
target_link_libraries(pfring_plugin numa)
- target_link_libraries(pfring_plugin pthread)
+ target_link_libraries(pfring_plugin ${CMAKE_THREAD_LIBS_INIT})
endif()
# example plugin
@@ -169,7 +171,7 @@ endif()
target_link_libraries(fastnetmon ${LOG4CPP_LIBRARY_PATH})
-target_link_libraries(fastnetmon pthread)
+target_link_libraries(fastnetmon ${CMAKE_THREAD_LIBS_INIT})
# Our libs
target_link_libraries(fastnetmon patricia)
@@ -217,6 +219,8 @@ endif()
install(TARGETS fastnetmon DESTINATION bin)
install(TARGETS fastnetmon_client DESTINATION bin)
+install(FILES fastnetmon.conf DESTINATION etc)
+
# Configure cpack package builder
# Run it with: cd build; cpack -G DEB ..
set(CPACK_PACKAGE_NAME "fastnetmon")

@ -1,5 +1,5 @@
FastNetMon - A high performance DoS/DDoS load analyzer built on top of multiple packet capture engines (NetFlow, IPFIX, sFLOW, netmap, PF_RING, PCAP).
FastNetMon - A high performance DoS/DDoS load analyzer built on top
of multiple packet capture engines (NetFlow, IPFIX, sFLOW, netmap,
PF_RING, PCAP).
Author: Pavel Odintsov pavel.odintsov@gmail.com
Company: FastVPS Eesti OU http://fastvps.host
Site: https://github.com/FastVPSEestiOu/fastnetmon
WWW: https://github.com/FastVPSEestiOu/fastnetmon

@ -1,2 +1,5 @@
bin/fastnetmon
bin/fastnetmon_client
@sample etc/fastnetmon.conf.sample
@dir /var/run/fastnetmon
@dir /var/log/fastnetmon