[ipwatchd/el6] Initial import (#726989).

Jaroslav Imrich jariq at fedoraproject.org
Wed Oct 16 21:07:55 UTC 2013


commit e7d773a0bfdafe9be3221b250e2ffd29f8310903
Author: Jaroslav Imrich <jariq at jariq.sk>
Date:   Wed Oct 16 23:07:17 2013 +0200

    Initial import (#726989).

 .gitignore              |    1 +
 ipwatchd-sysvinit.patch |  191 +++++++++++++++++++++++++++++++++++++++++++++++
 ipwatchd.spec           |   88 ++++++++++++++++++++++
 sources                 |    1 +
 4 files changed, 281 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..8c3a7e1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/ipwatchd-1.2.1.tar.gz
diff --git a/ipwatchd-sysvinit.patch b/ipwatchd-sysvinit.patch
new file mode 100644
index 0000000..3069fd4
--- /dev/null
+++ b/ipwatchd-sysvinit.patch
@@ -0,0 +1,191 @@
+diff -uNr ipwatchd-1.2.1/src/scripts/ipwatchd ipwatchd-1.2.1-sysvinit/src/scripts/ipwatchd
+--- ipwatchd-1.2.1/src/scripts/ipwatchd	2011-07-24 07:39:03.000000000 -0700
++++ ipwatchd-1.2.1-sysvinit/src/scripts/ipwatchd	2013-10-14 14:50:53.886854237 -0700
+@@ -1,117 +1,87 @@
+-#! /bin/sh
+-
++#!/bin/bash
++#
++# ipwatchd           Startup script for ipwatchd.
++#
++# chkconfig: - 26 74
++# description: IPwatchD is simple daemon that analyses all \
++#              incoming ARP packets in order to detect IP conflicts.
++#
+ ### BEGIN INIT INFO
+ # Provides:          ipwatchd
+ # Required-Start:    $local_fs $remote_fs $network $syslog
+ # Required-Stop:     $local_fs $remote_fs $network $syslog
+-# Default-Start:     2 3 4 5
+-# Default-Stop:      0 1 6
++# Default-Stop:      0 1 2 3 4 5 6
+ # Short-Description: IP conflict detection daemon
+ # Description:       IPwatchD is simple daemon that analyses all
+ #                    incoming ARP packets in order to detect IP conflicts
+ ### END INIT INFO
+ 
+-# Author: Jaroslav Imrich <jariq at jariq.sk>
+-
+-# Do NOT "set -e"
++# Source function library.
++. /etc/init.d/functions
+ 
+-# PATH should only include /usr/* if it runs after the mountnfs.sh script
+-PATH=/sbin:/usr/sbin:/bin:/usr/bin
+-DESC="IP conflict detection daemon"
+-NAME=ipwatchd
+-DAEMON=/usr/sbin/$NAME
+-DAEMON_ARGS="-c /etc/ipwatchd.conf"
+-PIDFILE=/var/run/$NAME.pid
+-SCRIPTNAME=/etc/init.d/$NAME
+-
+-# Exit if the package is not installed
+-[ -x "$DAEMON" ] || exit 0
+-
+-# Read configuration variable file if it is present
+-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+-
+-# Load the VERBOSE setting and other rcS variables
+-. /lib/init/vars.sh
+-
+-# Define LSB log_* functions.
+-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
+-. /lib/lsb/init-functions
+-
+-#
+-# Function that starts the daemon/service
+-#
+-do_start()
+-{
+-	# Return
+-	#   0 if daemon has been started
+-	#   1 if daemon was already running
+-	#   2 if daemon could not be started
+-	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
+-		|| return 1
+-	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+-		$DAEMON_ARGS \
+-		|| return 2
++IPWDNAME=ipwatchd
++IPWDBIN=/usr/sbin/$IPWDNAME
++IPWDCFG=/etc/ipwatchd.conf
++IPWDARGS="-c $IPWDCFG"
++IPWDPID=/var/run/$IPWDNAME.pid
++IPWDLOCK=/var/lock/subsys/$IPWDNAME
++
++# Function that starts daemon
++start() {
++	[ -x "$IPWDBIN" ] || exit 5
++	if [ $UID -ne 0 ] ; then
++		echo "Only root can start $IPWDNAME"
++		exit 4
++	fi
++	echo -n $"Starting $IPWDNAME: "
++	daemon $IPWDBIN $IPWDARGS
++	RETVAL=$?
++	[ $RETVAL -eq 0 ] && touch $IPWDLOCK
++	echo
++	return $RETVAL
+ }
+ 
+-#
+-# Function that stops the daemon/service
+-#
+-do_stop()
+-{
+-	# Return
+-	#   0 if daemon has been stopped
+-	#   1 if daemon was already stopped
+-	#   2 if daemon could not be stopped
+-	#   other if a failure occurred
+-	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+-	RETVAL="$?"
+-	[ "$RETVAL" = 2 ] && return 2
+-	rm -f $PIDFILE
+-	return "$RETVAL"
++# Function that stops daemon
++stop() {
++	[ -x "$IPWDBIN" ] || exit 5
++	if [ $UID -ne 0 ] ; then
++		echo "Only root can stop $IPWDNAME"
++		exit 4
++	fi
++	echo -n $"Shutting down $IPWDNAME: "
++	killproc -p $IPWDPID $IPWDBIN
++	RETVAL=$?
++	[ $RETVAL -eq 0 ] && rm -f $IPWDLOCK
++	echo
++	return $RETVAL
+ }
+ 
+ case "$1" in
+-  start)
+-	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
+-	do_start
+-	case "$?" in
+-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+-	esac
+-	;;
+-  stop)
+-	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+-	do_stop
+-	case "$?" in
+-		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+-		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+-	esac
+-	;;
+-  status)
+-       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+-       ;;
+-  restart|force-reload)
+-	log_daemon_msg "Restarting $DESC" "$NAME"
+-	do_stop
+-	case "$?" in
+-	  0|1)
+-		do_start
+-		case "$?" in
+-			0) log_end_msg 0 ;;
+-			1) log_end_msg 1 ;; # Old process is still running
+-			*) log_end_msg 1 ;; # Failed to start
+-		esac
+-		;;
+-	  *)
+-	  	# Failed to stop
+-		log_end_msg 1
+-		;;
+-	esac
+-	;;
+-  *)
+-	echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+-	exit 3
+-	;;
++	start)
++		start
++		;;
++	stop)
++		stop
++		;;
++	status)
++		status -p $IPWDPID $IPWDNAME
++		;;
++	restart)
++		stop
++		start
++		;;
++	reload)
++		stop
++		start
++		;;
++	condrestart)
++		[ -f "$IPWDLOCK" ] && restart || :
++		;;
++	*)
++		echo "Usage: $IPWDNAME {start|stop|status|restart|reload|condrestart}"
++		exit 1
++		;;
+ esac
+ 
+-:
++exit $?
++
diff --git a/ipwatchd.spec b/ipwatchd.spec
new file mode 100644
index 0000000..9d0f712
--- /dev/null
+++ b/ipwatchd.spec
@@ -0,0 +1,88 @@
+%if 0%{?rhel} < 6
+%global _initddir %{_initrddir}
+%endif
+
+Name:             ipwatchd
+Version:          1.2.1
+Release:          3%{?dist}
+Summary:          IP conflict detection tool
+
+Group:            System Environment/Daemons
+License:          GPLv2
+URL:              http://ipwatchd.sf.net
+Source0:          http://sourceforge.net/projects/ipwatchd/files/ipwatchd/%{version}/ipwatchd-%{version}.tar.gz
+Patch0:           ipwatchd-sysvinit.patch
+BuildRoot:        %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildRequires:    libpcap-devel, libnet-devel
+
+Requires(post):   chkconfig
+Requires(preun):  chkconfig
+Requires(preun):  initscripts
+Requires(postun): initscripts
+
+%description
+IPwatchD is a simple daemon that analyses all incoming ARP packets in order 
+to detect IP conflicts on Linux. It can be configured to listen on one or 
+more interfaces (alias interfaces are also supported) in active or passive 
+mode. In active mode IPwatchD protects your host before IP takeover by 
+answering Gratuitous ARP requests received from conflicting system. 
+In passive mode it just records information about conflict through standard 
+syslog interface.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%build
+make -C src %{?_smp_mflags} CFLAGS="%{optflags}"
+
+%install
+rm -rf %{buildroot}
+make -C src install DESTDIR=%{buildroot}
+# Move init script to /etc/rc.d/init.d
+mkdir -p %{buildroot}%{_initddir}
+mv %{buildroot}/etc/init.d/ipwatchd %{buildroot}%{_initddir}
+
+%post
+if [ $1 -eq 1 ] ; then
+    # Initial installation
+    /sbin/chkconfig --add ipwatchd
+fi
+
+%preun
+if [ $1 -eq 0 ] ; then
+    # Package is being removed (not upgraded)
+    /sbin/service ipwatchd stop > /dev/null 2>&1 || :
+    /sbin/chkconfig --del ipwatchd
+fi
+
+%postun
+if [ $1 -ge 1 ] ; then
+    # Package is being upgraded (not removed)
+    /sbin/service ipwatchd condrestart > /dev/null 2>&1 || :
+fi
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%config(noreplace) %{_sysconfdir}/ipwatchd.conf
+%{_sbindir}/ipwatchd
+%{_sbindir}/ipwatchd-script
+%{_initddir}/ipwatchd
+%{_mandir}/man8/ipwatchd.8*
+%{_mandir}/man5/ipwatchd.conf.5*
+%{_mandir}/man1/ipwatchd-script.1*
+%doc LICENSE
+
+%changelog
+* Wed Oct 16 2013 Jaroslav Imrich <jariq at jariq.sk> 1.2.1-3
+- Minor changes for EPEL5
+
+* Mon Oct 14 2013 Jaroslav Imrich <jariq at jariq.sk> 1.2.1-2
+- Updated for EPEL6
+
+* Sat Mar 02 2013 Jaroslav Imrich <jariq at jariq.sk> 1.2.1-1
+- Initial release for CentOS6
diff --git a/sources b/sources
index e69de29..f2efa09 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+a54f5b815cb98d4e17770cad7ff42679  ipwatchd-1.2.1.tar.gz


More information about the scm-commits mailing list