add netplug package
authorEric Andersen <andersen@codepoet.org>
Tue, 12 Dec 2006 22:13:41 +0000 (22:13 -0000)
committerEric Andersen <andersen@codepoet.org>
Tue, 12 Dec 2006 22:13:41 +0000 (22:13 -0000)
package/Config.in
package/netplug/Config.in [new file with mode: 0644]
package/netplug/init-netplug [new file with mode: 0755]
package/netplug/netplug-script [new file with mode: 0755]
package/netplug/netplug.mk [new file with mode: 0644]

index 7b33e70ecca52d219a38c028f09e08f858da4f6e..5a6b38452ea7a3cba6af88d15781c16593897366 100644 (file)
@@ -103,6 +103,7 @@ source "package/nbd/Config.in"
 source "package/ncurses/Config.in"
 source "package/netkitbase/Config.in"
 source "package/netkittelnet/Config.in"
+source "package/netplug/Config.in"
 source "package/netsnmp/Config.in"
 source "package/newt/Config.in"
 source "package/ntp/Config.in"
diff --git a/package/netplug/Config.in b/package/netplug/Config.in
new file mode 100644 (file)
index 0000000..5c3ef95
--- /dev/null
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_NETPLUG
+       bool "netplug"
+       default n
+       help
+         A Linux daemon that manages network interfaces in
+         response to network cables being plugged in and out.
+
+         http://www.red-bean.com/~bos/
diff --git a/package/netplug/init-netplug b/package/netplug/init-netplug
new file mode 100755 (executable)
index 0000000..791e14b
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/sh
+#
+# netplugd     This shell script takes care of starting and stopping
+#              the network plug management daemon.
+#
+# chkconfig: - 11 89
+# description: netplugd is a daemon for managing non-static network \
+#              interfaces.
+# processname: netplugd
+# pidfile: /var/run/netplugd.pid
+
+# Copyright 2003 Key Research, Inc.
+
+# Source function library.
+if [ -f /etc/init.d/functions ]; then
+       . /etc/init.d/functions
+elif [ -f /etc/rc.d/init.d/functions ]; then
+       . /etc/rc.d/init.d/functions
+fi
+
+# Source networking configuration.
+if [ -f /etc/sysconfig/network ]; then
+       . /etc/sysconfig/network
+
+       # Check that networking is up.
+       [ ${NETWORKING} = "no" ] && exit 0
+elif [ ! -f /etc/network/interfaces ]; then
+       # No network support
+       exit 0
+fi
+
+[ -x /sbin/netplugd ] || exit 0
+
+if [ -f /etc/sysconfig/netplugd ]; then
+    . /etc/sysconfig/netplugd
+fi
+
+# See how we were called.
+case "$1" in
+  start)
+       # Start daemon.
+       echo -n $"Starting network plug daemon: "
+       start-stop-daemon --start --quiet --pidfile /var/run/netplugd.pid --exec /sbin/netplugd ${NETPLUGDARGS}
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/netplugd
+       ;;
+  stop)
+       # Stop daemon.
+       echo -n $"Shutting down network plug daemon: "
+       start-stop-daemon --stop --name netplugd
+       RETVAL=$?
+       echo
+       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/netplugd
+       ;;
+  restart|reload)
+       $0 stop
+       $0 start
+       ;;
+  condrestart)
+       [ -f /var/lock/subsys/netplugd ] && $0 restart || :
+       ;;
+  *)
+       echo $"Usage: $0 {start|stop|restart}"
+       RETVAL=1
+       ;;
+esac
+
+exit $RETVAL
diff --git a/package/netplug/netplug-script b/package/netplug/netplug-script
new file mode 100755 (executable)
index 0000000..1af714d
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# netplug - policy agent for netplugd
+#
+# Copyright 2003 Key Research, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License, version 2, as
+# published by the Free Software Foundation.  You are forbidden from
+# redistributing or modifying it under the terms of any other license,
+# including other versions of the GNU General Public License.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+
+
+PATH=/usr/bin:/bin:/usr/sbin:/sbin
+export PATH
+
+dev="$1"
+action="$2"
+
+case "$action" in
+in)
+    if [ -x /sbin/ifup ]; then
+       exec /sbin/ifup $dev
+    else
+       echo "Please teach me how to plug in an interface!" 1>&2
+       exit 1
+    fi
+    ;;
+out)
+    if [ -x /sbin/ifdown ]; then
+       # At least on Fedora Core 1, the call to ip addr flush infloops
+       # /sbin/ifdown $dev && exec /sbin/ip addr flush $dev
+       exec /sbin/ifdown $dev
+    else
+       echo "Please teach me how to unplug an interface!" 1>&2
+       exit 1
+    fi
+    ;;
+probe)
+    # exec /sbin/ip link set $dev up >/dev/null 2>&1
+    if [ -x /sbin/ifconfig ]; then
+       exec /sbin/ifconfig $dev up >/dev/null 2>&1
+    else
+       echo "Failed to probe an interface!" 1>&2
+       exit 1
+    fi
+    ;;
+*)
+    echo "I have been called with a funny action of '%s'!" 1>&2
+    exit 1
+    ;;
+esac
diff --git a/package/netplug/netplug.mk b/package/netplug/netplug.mk
new file mode 100644 (file)
index 0000000..010f606
--- /dev/null
@@ -0,0 +1,53 @@
+#############################################################
+#
+# netplug
+#
+#############################################################
+NETPLUG_VER=1.2.9
+NETPLUG_SOURCE=netplug-$(NETPLUG_VER).tar.bz2
+NETPLUG_SITE=http://www.red-bean.com/~bos/netplug
+NETPLUG_DIR=$(BUILD_DIR)/netplug-$(NETPLUG_VER)
+NETPLUG_CAT:=bzcat
+NETPLUG_BINARY:=netplugd
+NETPLUG_TARGET_BINARY:=sbin/netplugd
+
+$(DL_DIR)/$(NETPLUG_SOURCE):
+       $(WGET) -P $(DL_DIR) $(NETPLUG_SITE)/$(NETPLUG_SOURCE)
+
+netplug-source: $(DL_DIR)/$(NETPLUG_SOURCE)
+
+$(NETPLUG_DIR)/.unpacked: $(DL_DIR)/$(NETPLUG_SOURCE)
+       $(NETPLUG_CAT) $(DL_DIR)/$(NETPLUG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       toolchain/patch-kernel.sh $(NETPLUG_DIR) package/netplug/ netplug\*.patch
+       touch $(NETPLUG_DIR)/.unpacked
+
+$(NETPLUG_DIR)/$(NETPLUG_BINARY): $(NETPLUG_DIR)/.unpacked
+       $(MAKE) CC=$(TARGET_CC) -C $(NETPLUG_DIR)
+       $(STRIP) $(NETPLUG_DIR)/$(NETPLUG_BINARY)
+
+$(TARGET_DIR)/$(NETPLUG_TARGET_BINARY): $(NETPLUG_DIR)/$(NETPLUG_BINARY)
+       $(INSTALL) -m 644 -D $(NETPLUG_DIR)/etc/netplugd.conf $(TARGET_DIR)/etc/netplug/netplugd.conf
+       $(INSTALL) -m 755 -D package/netplug/netplug-script $(TARGET_DIR)/etc/netplug.d/netplug
+       $(INSTALL) -m 755 -D package/netplug/init-netplug $(TARGET_DIR)/etc/init.d/S29netplug
+       $(INSTALL) -m 755 -D $(NETPLUG_DIR)/$(NETPLUG_BINARY) $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)
+       touch -c $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)
+
+netplug: uclibc $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)
+
+netplug-clean:
+       rm -f $(TARGET_DIR)/$(NETPLUG_TARGET_BINARY)
+       rm -rf $(TARGET_DIR)/etc/netplug*
+       rm -f $(TARGET_DIR)/etc/init.d/S*netplug
+       -$(MAKE) -C $(NETPLUG_DIR) clean
+
+netplug-dirclean:
+       rm -rf $(NETPLUG_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_NETPLUG)),y)
+TARGETS+=netplug
+endif