Browse Source

Initial packaging

Christoph Biedl 16 years ago
parent
commit
0d94013e87
13 changed files with 411 additions and 7 deletions
  1. 1 1
      Makefile.in
  2. 1 0
      debian/compat
  3. 16 0
      debian/control
  4. 160 0
      debian/copyright
  5. 14 0
      debian/default
  6. 1 0
      debian/dirs
  7. 2 0
      debian/docs
  8. 103 0
      debian/init.d
  9. 108 0
      debian/rules
  10. 1 1
      log.c
  11. 1 2
      softflowd.8
  12. 2 2
      softflowd.c
  13. 1 1
      softflowd.h

+ 1 - 1
Makefile.in

@@ -43,7 +43,7 @@ realclean: clean
 	rm -rf autom4te.cache Makefile config.log config.status
 	rm -rf autom4te.cache Makefile config.log config.status
 
 
 distclean: realclean
 distclean: realclean
-	rm -f config.h* configure
+	rm -f config.h
 
 
 strip:
 strip:
 	strip $(TARGETS)
 	strip $(TARGETS)

+ 1 - 0
debian/compat

@@ -0,0 +1 @@
+5

+ 16 - 0
debian/control

@@ -0,0 +1,16 @@
+Source: softflowd
+Section: net
+Priority: extra
+Maintainer: Christoph Biedl <debian.packages.hhqj@manchmal.in-ulm.de>
+Build-Depends: debhelper (>= 5), autotools-dev, libpcap0.8-dev, autoconf
+Standards-Version: 3.7.3
+
+Package: softflowd
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Flow-based network traffic analyser
+ Softflowd is a flow-based network traffic anaylser capable of Cisco
+ Netflow data export. Softflowd semi-statefully tracks traffic
+ flows recorded by listening on a network interface or by reading a
+ packet capture file. These flows may be reported via NetFlow to a
+ collecting host or summarised within softflowd itself.

+ 160 - 0
debian/copyright

@@ -0,0 +1,160 @@
+This package was debianized by Christoph Biedl
+<debian.packages.hhqj@manchmal.in-ulm.de> on Tue, 24 Jul 2007 11:48:21 +0200.
+
+It was downloaded from <http://www.mindrot.org/projects/softflowd>
+
+License:
+
+  Original code is licensed under the following BSD-style license:
+  
+  /*
+   * Copyright 2002-2006 Damien Miller <djm@mindrot.org> All rights reserved.
+   *
+   * Redistribution and use in source and binary forms, with or without
+   * modification, are permitted provided that the following conditions
+   * are met:
+   * 1. Redistributions of source code must retain the above copyright
+   *    notice, this list of conditions and the following disclaimer.
+   * 2. Redistributions in binary form must reproduce the above copyright
+   *    notice, this list of conditions and the following disclaimer in the
+   *    documentation and/or other materials provided with the distribution.
+   *
+   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   */
+  
+  closefrom.c:
+  
+  /*
+   * Copyright (c) 2004 Todd C. Miller <Todd.Miller@courtesan.com>
+   *
+   * Permission to use, copy, modify, and distribute this software for any
+   * purpose with or without fee is hereby granted, provided that the above
+   * copyright notice and this permission notice appear in all copies.
+   *
+   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+   */
+  
+  convtime.c:
+  
+  /*
+   * Copyright (c) 2001 Kevin Steves.  All rights reserved.
+   *
+   * Redistribution and use in source and binary forms, with or without
+   * modification, are permitted provided that the following conditions
+   * are met:
+   * 1. Redistributions of source code must retain the above copyright
+   *    notice, this list of conditions and the following disclaimer.
+   * 2. Redistributions in binary form must reproduce the above copyright
+   *    notice, this list of conditions and the following disclaimer in the
+   *    documentation and/or other materials provided with the distribution.
+   *
+   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   */
+  
+  daemon.c:
+  
+  /*-
+   * Copyright (c) 1990, 1993
+   *	The Regents of the University of California.  All rights reserved.
+   *
+   * Redistribution and use in source and binary forms, with or without
+   * modification, are permitted provided that the following conditions
+   * are met:
+   * 1. Redistributions of source code must retain the above copyright
+   *    notice, this list of conditions and the following disclaimer.
+   * 2. Redistributions in binary form must reproduce the above copyright
+   *    notice, this list of conditions and the following disclaimer in the
+   *    documentation and/or other materials provided with the distribution.
+   * 3. Neither the name of the University nor the names of its contributors
+   *    may be used to endorse or promote products derived from this software
+   *    without specific prior written permission.
+   *
+   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+   * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+   * SUCH DAMAGE.
+   */
+  
+  strlcat.c, strlcpy.c:
+  
+  /*
+   * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+   *
+   * Permission to use, copy, modify, and distribute this software for any
+   * purpose with or without fee is hereby granted, provided that the above
+   * copyright notice and this permission notice appear in all copies.
+   *
+   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+   */
+  
+  sys-tree.h:
+  
+  /*
+   * Copyright 2002 Niels Provos <provos@citi.umich.edu>
+   * All rights reserved.
+   *
+   * Redistribution and use in source and binary forms, with or without
+   * modification, are permitted provided that the following conditions
+   * are met:
+   * 1. Redistributions of source code must retain the above copyright
+   *    notice, this list of conditions and the following disclaimer.
+   * 2. Redistributions in binary form must reproduce the above copyright
+   *    notice, this list of conditions and the following disclaimer in the
+   *    documentation and/or other materials provided with the distribution.
+   *
+   * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+   * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+   * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+   * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+   */
+
+On Debian systems, the complete text of the BSD License can be 
+found in `/usr/share/common-licenses/BSD'.
+
+The Debian packaging is (C) 2007, Christoph Biedl
+<debian.packages.hhqj@manchmal.in-ulm.de> and is licensed under the GPL, see
+`/usr/share/common-licenses/GPL'.
+

+ 14 - 0
debian/default

@@ -0,0 +1,14 @@
+#
+# configuration for softflowd
+# 
+# note: softflowd will not start without an interface configured.
+
+# The interface softflowd listens on.
+INTERFACE=""
+
+# Further options for softflowd, see "man softflowd" for details.
+# You should at least define a host and a port where the accounting
+# datagrams should be sent to, e.g. 
+# OPTIONS="-n 127.0.0.1:9995"
+OPTIONS=""
+

+ 1 - 0
debian/dirs

@@ -0,0 +1 @@
+usr/sbin

+ 2 - 0
debian/docs

@@ -0,0 +1,2 @@
+README
+TODO

+ 103 - 0
debian/init.d

@@ -0,0 +1,103 @@
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides:          softflowd
+# Required-Start:    $network $local_fs $remote_fs $syslog
+# Required-Stop:     $network $local_fs $remote_fs $syslog
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Flow-based network traffic analyser.
+### END INIT INFO
+
+# skeleton	example file to build /etc/init.d/ scripts.
+#		This file should be used to construct scripts for /etc/init.d.
+#
+#		Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+#		Modified for Debian 
+#		by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version:	@(#)skeleton  1.9  26-Feb-2001  miquels@cistron.nl
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/softflowd
+NAME=softflowd
+DESC=softflowd
+DEFAULT=/etc/default/softflowd
+PRIVDROP_CHROOT_DIR=/var/run/softflowd/chroot
+
+test -x $DAEMON || exit 0
+
+INTERFACE=
+OPTIONS=
+
+# Include softflowd defaults if available
+if [ -f $DEFAULT ] ; then
+	. $DEFAULT
+fi
+
+if [ "$INTERFACE" == "" ] ; then
+    echo "Not starting $NAME"
+    echo "Edit $DEFAULT and define the INTERFACE variable"
+    exit 0
+fi
+
+set -e
+
+[ -d $PRIVDROP_CHROOT_DIR ] || mkdir -p $PRIVDROP_CHROOT_DIR
+
+case "$1" in
+  start)
+	echo -n "Starting $DESC: "
+	start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+		--exec $DAEMON -- -i "$INTERFACE" $OPTIONS
+	echo "$NAME."
+	;;
+  stop)
+	echo -n "Stopping $DESC: "
+	start-stop-daemon --stop --oknodo --quiet --pidfile /var/run/$NAME.pid \
+		--exec $DAEMON
+	echo "$NAME."
+	;;
+  #reload)
+	#
+	#	If the daemon can reload its config files on the fly
+	#	for example by sending it SIGHUP, do it here.
+	#
+	#	If the daemon responds to changes in its config file
+	#	directly anyway, make this a do-nothing entry.
+	#
+	# echo "Reloading $DESC configuration files."
+	# start-stop-daemon --stop --signal 1 --quiet --pidfile \
+	#	/var/run/$NAME.pid --exec $DAEMON
+  #;;
+  force-reload)
+	#
+	#	If the "reload" option is implemented, move the "force-reload"
+	#	option to the "reload" entry above. If not, "force-reload" is
+	#	just the same as "restart" except that it does nothing if the
+	#   daemon isn't already running.
+	# check wether $DAEMON is running. If so, restart
+	start-stop-daemon --stop --test --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON \
+	&& $0 restart \
+	|| exit 0
+	;;
+  restart)
+    echo -n "Restarting $DESC: "
+	start-stop-daemon --stop --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON
+	sleep 1
+	start-stop-daemon --start --quiet --pidfile \
+		/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
+	echo "$NAME."
+	;;
+  *)
+	N=/etc/init.d/$NAME
+	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+	echo "Usage: $N {start|stop|restart|force-reload}" >&2
+	exit 1
+	;;
+esac
+
+exit 0

+ 108 - 0
debian/rules

@@ -0,0 +1,108 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+	CFLAGS += -O0
+else
+	CFLAGS += -O2
+endif
+
+config.status: configure
+	dh_testdir
+	# Add here commands to configure the package.
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+	cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+	cp -f /usr/share/misc/config.guess config.guess
+endif
+	./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs"
+
+
+configure:
+	autoconf
+
+build: build-stamp
+
+build-stamp:  config.status
+	dh_testdir
+	# Add here commands to compile the package.
+	$(MAKE)
+	#docbook-to-man debian/softflowd.sgml > softflowd.1
+
+	touch $@
+
+clean:
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp 
+
+	# Add here commands to clean up after the build process.
+	[ ! -f Makefile ] || $(MAKE) distclean
+	rm -f config.sub config.guess
+
+	dh_clean 
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+
+	# Add here commands to install the package into debian/softflowd.
+	$(MAKE) prefix=$(CURDIR)/debian/softflowd/usr install
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs ChangeLog
+	dh_installdocs
+	dh_installexamples
+#	dh_install
+#	dh_installmenu
+	dh_installdebconf	
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_python
+	dh_installinit
+#	dh_installcron
+#	dh_installinfo
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_perl
+#	dh_makeshlibs
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install 

+ 1 - 1
log.c

@@ -38,7 +38,7 @@ loginit(const char *ident, int to_stderr)
 	if (to_stderr)
 	if (to_stderr)
 		logstderr = 1;
 		logstderr = 1;
 	else
 	else
-		openlog(PROGNAME, LOG_PID, LOG_DAEMON);
+		openlog(PROGNAME, LOG_PID | LOG_NDELAY, LOG_DAEMON);
 }
 }
 
 
 void
 void

+ 1 - 2
softflowd.8

@@ -324,7 +324,7 @@ Also, upon
 receipt of a 
 receipt of a 
 .Dv SIGTERM
 .Dv SIGTERM
 or 
 or 
-.DV SIGINT
+.Dv SIGINT
 .Nm
 .Nm
 will cause 
 will cause 
 .Nm
 .Nm
@@ -334,7 +334,6 @@ if
 was specified on the commandline).
 was specified on the commandline).
 If you do not want to export flows upon shutdown, clear them first with
 If you do not want to export flows upon shutdown, clear them first with
 .Xr softflowctl 8 .
 .Xr softflowctl 8 .
-
 .Sh EXAMPLES
 .Sh EXAMPLES
 .Bl -tag -width Ds
 .Bl -tag -width Ds
 .It softflowd -i fxp0
 .It softflowd -i fxp0

+ 2 - 2
softflowd.c

@@ -57,7 +57,7 @@ RCSID("$Id: softflowd.c,v 1.93 2006/11/02 06:23:29 djm Exp $");
 static int verbose_flag = 0;		/* Debugging flag */
 static int verbose_flag = 0;		/* Debugging flag */
 
 
 /* Signal handler flags */
 /* Signal handler flags */
-static int graceful_shutdown_request = 0;	
+static volatile int graceful_shutdown_request = 0;	
 
 
 /* Context for libpcap callback functions */
 /* Context for libpcap callback functions */
 struct CB_CTXT {
 struct CB_CTXT {
@@ -1824,7 +1824,7 @@ main(int argc, char **argv)
 	cb_ctxt.ft = &flowtrack;
 	cb_ctxt.ft = &flowtrack;
 	cb_ctxt.linktype = linktype;
 	cb_ctxt.linktype = linktype;
 	cb_ctxt.want_v6 = target.dialect->v6_capable || always_v6;
 	cb_ctxt.want_v6 = target.dialect->v6_capable || always_v6;
-	for(;;) {
+	while (!graceful_shutdown_request) {
 		/*
 		/*
 		 * Silly libpcap's timeout function doesn't work, so we
 		 * Silly libpcap's timeout function doesn't work, so we
 		 * do it here (only if we are reading live)
 		 * do it here (only if we are reading live)

+ 1 - 1
softflowd.h

@@ -34,7 +34,7 @@
 # define PRIVDROP_USER		"nobody"
 # define PRIVDROP_USER		"nobody"
 #endif
 #endif
 
 
-#define PRIVDROP_CHROOT_DIR	"/var/empty"
+#define PRIVDROP_CHROOT_DIR	"/var/run/softflowd/chroot"
 
 
 /*
 /*
  * Capture length for libpcap: Must fit the link layer header, plus 
  * Capture length for libpcap: Must fit the link layer header, plus