[patchteam] Add two new packages, hsflowd and sflowovsd - Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
git-svn-id: svn://svn.openwrt.org/openwrt/packages@31051 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
9b54ca4728
commit
8ffd268207
72
net/hsflowd/Makefile
Normal file
72
net/hsflowd/Makefile
Normal file
@ -0,0 +1,72 @@
|
||||
#
|
||||
# Copyright (C) 2012 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=hsflowd
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:=@SF/host-sflow
|
||||
PKG_VERSION:=1.20
|
||||
PKG_MD5SUM:=0bfc0b05fbab27a80557c5efb5e66693
|
||||
|
||||
PKG_SOURCE:=hsflowd-$(PKG_VERSION).tar.gz
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/hsflowd
|
||||
SECTION:=net
|
||||
CATEGORY:=Base system
|
||||
TITLE:=Host sFlow export agent
|
||||
URL:=http://host-sflow.sourceforge.net/
|
||||
endef
|
||||
|
||||
define Package/sflowovsd
|
||||
SECTION:=net
|
||||
CATEGORY:=Base system
|
||||
DEPENDS:=+hsflowd
|
||||
TITLE:=Host sFlow Open vSwitch agent
|
||||
URL:=http://host-sflow.sourceforge.net/
|
||||
endef
|
||||
|
||||
|
||||
define Package/hsflowd/description
|
||||
The Host sFlow agent exports server performance metrics using the sFlow
|
||||
protocol. The agent is intended to provide scalable, multi-vendor,
|
||||
multi-OS performance monitoring with minimal impact on the systems being
|
||||
monitored.
|
||||
endef
|
||||
|
||||
define Package/sflowovsd/description
|
||||
The Host sFlow agent can automatically configure the sFlow settings in
|
||||
the Open vSwitch.
|
||||
endef
|
||||
|
||||
MAKE_VARS += \
|
||||
LIBVIRT=no \
|
||||
XEN_DDK=no \
|
||||
DEBIAN=no \
|
||||
PLATFORM=Linux \
|
||||
OPT="$(TARGET_CFLAGS) -std=c99"
|
||||
|
||||
define Package/hsflowd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/Linux/hsflowd $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/hsflowd.init $(1)/etc/init.d/hsflowd
|
||||
$(INSTALL_CONF) ./files/hsflowd.config $(1)/etc/config/hsflowd
|
||||
|
||||
endef
|
||||
|
||||
define Package/sflowovsd/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/Linux/sflowovsd $(1)/usr/sbin
|
||||
$(INSTALL_BIN) ./files/sflowovsd.init $(1)/etc/init.d/sflowovsd
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,hsflowd))
|
||||
$(eval $(call BuildPackage,sflowovsd))
|
||||
|
11
net/hsflowd/files/hsflowd.config
Normal file
11
net/hsflowd/files/hsflowd.config
Normal file
@ -0,0 +1,11 @@
|
||||
config hsflowd config
|
||||
option enabled '0'
|
||||
option dnssd '0'
|
||||
option polling '30'
|
||||
option sampling '512'
|
||||
option uuid ''
|
||||
|
||||
config collector
|
||||
option ip '192.168.123.123'
|
||||
option port '6343'
|
||||
|
72
net/hsflowd/files/hsflowd.init
Normal file
72
net/hsflowd/files/hsflowd.init
Normal file
@ -0,0 +1,72 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2012 OpenWrt.org
|
||||
|
||||
START=50
|
||||
|
||||
SERVICE_USE_PID=1
|
||||
|
||||
start() {
|
||||
config_load hsflowd
|
||||
local args agent conffile dnssd polling sampling uuid
|
||||
|
||||
getcollectors() {
|
||||
echo " collector {" >> $tmpconf
|
||||
|
||||
config_get ip "$1" ip
|
||||
[ -n "$ip" ] && echo " ip=${ip}" >> $tmpconf
|
||||
config_get port "$1" port
|
||||
[ -n "$port" ] && echo " udpport=${port}" >> $tmpconf
|
||||
|
||||
echo " }" >> $tmpconf
|
||||
}
|
||||
|
||||
config_get agent config agent_iface "br-lan"
|
||||
config_get conffile config config_file
|
||||
config_get_bool dnssd config dnssd 1
|
||||
config_get polling config polling 30
|
||||
config_get sampling config sampling 512
|
||||
config_get uuid config uuid
|
||||
|
||||
[ -z "$uuid" ] && {
|
||||
uuid="$(cat /proc/sys/kernel/random/uuid)"
|
||||
uci set hsflowd.config.uuid=$uuid
|
||||
uci commit hsflowd
|
||||
}
|
||||
|
||||
args=""
|
||||
append args "-u $uuid"
|
||||
|
||||
if [ -n "$conffile" ]; then
|
||||
append args "-f $conffile"
|
||||
else
|
||||
tmpconf="/var/etc/hsflowd.conf"
|
||||
append args "-f $tmpconf"
|
||||
mkdir -p /var/etc
|
||||
|
||||
echo "sFlow {" > $tmpconf
|
||||
echo " agent=${agent}" >> $tmpconf
|
||||
|
||||
if [ "$dnssd" -eq 1 ]; then
|
||||
echo " DNSSD=on" >> $tmpconf
|
||||
else
|
||||
echo " DNSSD=off" >> $tmpconf
|
||||
echo " polling=${polling}" >> $tmpconf
|
||||
echo " sampling=${sampling}" >> $tmpconf
|
||||
|
||||
config_foreach getcollectors collector
|
||||
fi
|
||||
|
||||
echo "}" >> $tmpconf
|
||||
|
||||
fi
|
||||
|
||||
|
||||
service_start /usr/sbin/hsflowd $args
|
||||
}
|
||||
|
||||
stop() {
|
||||
service_stop /usr/sbin/hsflowd
|
||||
|
||||
pid_file="/var/run/hsflowd.pid"
|
||||
[ -f "$pid_file" ] && rm -f "$pid_file"
|
||||
}
|
17
net/hsflowd/files/sflowovsd.init
Normal file
17
net/hsflowd/files/sflowovsd.init
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
# Copyright (C) 2012 OpenWrt.org
|
||||
|
||||
START=50
|
||||
|
||||
SERVICE_USE_PID=1
|
||||
|
||||
start() {
|
||||
service_start /usr/sbin/sflowovsd -f /var/run/hsflowd.auto
|
||||
}
|
||||
|
||||
stop() {
|
||||
service_stop /usr/sbin/sflowovsd
|
||||
|
||||
pid_file="/var/run/sflowovsd.pid"
|
||||
[ -f "$pid_file" ] && rm -f "$pid_file"
|
||||
}
|
91
net/hsflowd/patches/100-crosscompile.patch
Normal file
91
net/hsflowd/patches/100-crosscompile.patch
Normal file
@ -0,0 +1,91 @@
|
||||
--- a/src/Linux/Makefile
|
||||
+++ b/src/Linux/Makefile
|
||||
@@ -74,7 +74,7 @@ HEADERS= hsflowd.h hsflowtokens.h sflowo
|
||||
SFLOWDIR=../sflow
|
||||
|
||||
#CC= g++
|
||||
-CC= gcc -std=gnu99
|
||||
+CC?= gcc -std=gnu99
|
||||
|
||||
OPT_FULL = -O3 -DNDEBUG
|
||||
OPT_DEBUG = -g -ggdb
|
||||
--- a/src/sflow/Makefile
|
||||
+++ b/src/sflow/Makefile
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
HEADERS= sflow_api.h sflow.h Makefile
|
||||
|
||||
-OPT = -O3 -DNDEBUG
|
||||
+OPT ?= -O3 -DNDEBUG
|
||||
#OPT = -g -ggdb -O2
|
||||
#OPT= -g -ggdb
|
||||
|
||||
@@ -12,7 +12,7 @@ LDFLAGS=
|
||||
|
||||
#CC= g++
|
||||
#CC= gcc -std=c99
|
||||
-CC= gcc
|
||||
+CC?= gcc
|
||||
|
||||
OBJS= sflow_agent.o \
|
||||
sflow_sampler.o \
|
||||
@@ -20,8 +20,8 @@ OBJS= sflow_agent.o \
|
||||
sflow_receiver.o
|
||||
|
||||
libsflow.a: $(OBJS)
|
||||
- ar cru $@ $(OBJS)
|
||||
- ranlib $@
|
||||
+ $(AR) cru $@ $(OBJS)
|
||||
+ $(RANLIB) $@
|
||||
|
||||
all: libsflow.a
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -11,32 +11,32 @@ all: $(PROG)
|
||||
|
||||
$(PROG):
|
||||
cd src/sflow; $(MAKE)
|
||||
- PLATFORM=`uname`; \
|
||||
+ PLATFORM?=`uname`; \
|
||||
MYVER=`./getVersion`; \
|
||||
MYREL=`./getRelease`; \
|
||||
cd src/$$PLATFORM; $(MAKE) VERSION=$$MYVER RELEASE=$$MYREL
|
||||
|
||||
clean:
|
||||
cd src/sflow; $(MAKE) clean
|
||||
- PLATFORM=`uname`; \
|
||||
+ PLATFORM?=`uname`; \
|
||||
MYVER=`./getVersion`; \
|
||||
MYREL=`./getRelease`; \
|
||||
cd src/$$PLATFORM; $(MAKE) VERSION=$$MYVER RELEASE=$$MYREL clean
|
||||
|
||||
install:
|
||||
- PLATFORM=`uname`; \
|
||||
+ PLATFORM?=`uname`; \
|
||||
MYVER=`./getVersion`; \
|
||||
MYREL=`./getRelease`; \
|
||||
cd src/$$PLATFORM; $(MAKE) VERSION=$$MYVER RELEASE=$$MYREL install
|
||||
|
||||
schedule:
|
||||
- PLATFORM=`uname`; \
|
||||
+ PLATFORM?=`uname`; \
|
||||
MYVER=`./getVersion`; \
|
||||
MYREL=`./getRelease`; \
|
||||
cd src/$$PLATFORM; $(MAKE) VERSION=$$MYVER RELEASE=$$MYREL schedule
|
||||
|
||||
rpm:
|
||||
- PLATFORM=`uname`; \
|
||||
+ PLATFORM?=`uname`; \
|
||||
MYVER=`./getVersion`; \
|
||||
MYREL=`./getRelease`; \
|
||||
MYSRCDIR=$(RPM_SOURCES_DIR)/$(PROG)-$$MYVER; \
|
||||
@@ -46,7 +46,7 @@ rpm:
|
||||
rpmbuild -ba $(PROG).spec
|
||||
|
||||
deb: $(PROG)
|
||||
- PLATFORM=`uname`; \
|
||||
+ PLATFORM?=`uname`; \
|
||||
MYARCH=`uname -m`; \
|
||||
MYVER=`./getVersion`; \
|
||||
MYREL=`./getRelease`; \
|
55
net/hsflowd/patches/200-uclibc-compat.patch
Normal file
55
net/hsflowd/patches/200-uclibc-compat.patch
Normal file
@ -0,0 +1,55 @@
|
||||
--- a/src/Linux/hsflowd.c
|
||||
+++ b/src/Linux/hsflowd.c
|
||||
@@ -1408,13 +1408,12 @@ extern "C" {
|
||||
signal(SIGXFSZ, SIG_DFL);
|
||||
|
||||
// ask for the backtrace pointers
|
||||
- size_t siz = backtrace(backtracePtrs, HSP_NUM_BACKTRACE_PTRS);
|
||||
+ size_t siz = 0;
|
||||
|
||||
if(f_crash == NULL) {
|
||||
f_crash = stderr;
|
||||
}
|
||||
|
||||
- backtrace_symbols_fd(backtracePtrs, siz, fileno(f_crash));
|
||||
fflush(f_crash);
|
||||
// Do something useful with siginfo_t
|
||||
if (sig == SIGSEGV) {
|
||||
@@ -2005,7 +2004,6 @@ extern "C" {
|
||||
if(debug) {
|
||||
myLog(LOG_INFO, "initAgent suceeded");
|
||||
// print some stats to help us size HSP_RLIMIT_MEMLOCK etc.
|
||||
- malloc_stats();
|
||||
}
|
||||
|
||||
if(sp->dropPriv) {
|
||||
--- a/src/Linux/hsflowd.h
|
||||
+++ b/src/Linux/hsflowd.h
|
||||
@@ -34,9 +34,7 @@ extern "C" {
|
||||
#include <limits.h> // for UINT_MAX
|
||||
|
||||
// for signal backtrace
|
||||
-#include <execinfo.h>
|
||||
#include <signal.h>
|
||||
-#include <ucontext.h>
|
||||
|
||||
#include <stdarg.h> // for va_start()
|
||||
#include "util.h"
|
||||
--- a/src/Linux/util.c
|
||||
+++ b/src/Linux/util.c
|
||||
@@ -39,7 +39,6 @@ extern "C" {
|
||||
void *mem = SYS_CALLOC(1, bytes);
|
||||
if(mem == NULL) {
|
||||
myLog(LOG_ERR, "calloc() failed : %s", strerror(errno));
|
||||
- if(debug) malloc_stats();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
return mem;
|
||||
@@ -51,7 +50,6 @@ extern "C" {
|
||||
void *mem = SYS_REALLOC(ptr, bytes);
|
||||
if(mem == NULL) {
|
||||
myLog(LOG_ERR, "realloc() failed : %s", strerror(errno));
|
||||
- if(debug) malloc_stats();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
return mem;
|
16
net/hsflowd/patches/300-config_files_path.patch
Normal file
16
net/hsflowd/patches/300-config_files_path.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff -Nurb a/src/Linux/hsflowd.h b/src/Linux/hsflowd.h
|
||||
--- a/src/Linux/hsflowd.h 2012-03-01 18:16:09.000000000 +0100
|
||||
+++ b/src/Linux/hsflowd.h 2012-03-18 18:56:58.689852282 +0100
|
||||
@@ -72,9 +72,9 @@
|
||||
#define HSP_DAEMON_NAME "hsflowd"
|
||||
#define HSP_DEFAULT_PIDFILE "/var/run/hsflowd.pid"
|
||||
#define HSP_DEFAULT_CONFIGFILE "/etc/hsflowd.conf"
|
||||
-#define HSP_DEFAULT_OUTPUTFILE "/etc/hsflowd.auto"
|
||||
-#define HSP_DEFAULT_VMSTORE_FILE "/etc/hsflowd.data"
|
||||
-#define HSP_DEFAULT_CRASH_FILE "/etc/hsflowd.crash"
|
||||
+#define HSP_DEFAULT_OUTPUTFILE "/var/run/hsflowd.auto"
|
||||
+#define HSP_DEFAULT_VMSTORE_FILE "/var/run/hsflowd.data"
|
||||
+#define HSP_DEFAULT_CRASH_FILE "/var/run/hsflowd.crash"
|
||||
|
||||
/* Numbering to avoid clash. See http://www.sflow.org/developers/dsindexnumbers.php */
|
||||
#define HSP_DEFAULT_PHYSICAL_DSINDEX 1
|
12
net/hsflowd/patches/400-sflowovsd_assert.patch
Normal file
12
net/hsflowd/patches/400-sflowovsd_assert.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Nurb a/src/Linux/Makefile b/src/Linux/Makefile
|
||||
--- a/src/Linux/Makefile 2011-09-07 01:15:22.000000000 +0200
|
||||
+++ b/src/Linux/Makefile 2012-03-21 01:55:40.468569332 +0100
|
||||
@@ -97,7 +97,7 @@
|
||||
|
||||
SFLOWOVS_OBJS=sflowovsd.o util.o
|
||||
|
||||
-CFLAGS+= -I. -I$(SFLOWDIR) $(OPT) -Wall -D_GNU_SOURCE -DHSP_VERSION=$(VERSION) -DUTHEAP
|
||||
+CFLAGS+= -I. -I$(SFLOWDIR) $(OPT) -Wall -D_GNU_SOURCE -DHSP_VERSION=$(VERSION)
|
||||
LIBS+= $(SFLOWDIR)/libsflow.a -lresolv -lpthread
|
||||
|
||||
#### BUILD ####
|
Loading…
x
Reference in New Issue
Block a user