summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorY Giridhar Appaji Nag <giridhar@appaji.net>2008-09-30 14:03:36 +0530
committerAndrew Shadura <andrew.shadura@collabora.co.uk>2016-06-21 11:57:31 +0200
commit4507939cf74c73cfcd8483cddd1251bf843ab75b (patch)
tree8a7db7c33b4552eea0de7acdf2f694fa59fcd66b /debian
parent7b9f005dae9268d9a79904fb4de3221d23ee5156 (diff)
Imported Debian patch 0.28-14
Diffstat (limited to 'debian')
-rw-r--r--debian/bug/script4
-rw-r--r--debian/changelog10
-rw-r--r--debian/control2
-rw-r--r--debian/ifplugd.init88
-rw-r--r--debian/postinst75
-rw-r--r--debian/postrm2
-rw-r--r--debian/prerm18
-rwxr-xr-xdebian/rules2
8 files changed, 175 insertions, 26 deletions
diff --git a/debian/bug/script b/debian/bug/script
index ef5b949..e9c9509 100644
--- a/debian/bug/script
+++ b/debian/bug/script
@@ -2,5 +2,5 @@
exec >&3
-echo " /proc/net/dev interfaces:"
-grep ":" /proc/net/dev | cut -f1 -d":"
+echo " /sys/class/net/ interfaces:"
+ls -ad /sys/class/net/*/
diff --git a/debian/changelog b/debian/changelog
index 11148ac..04c0b8e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+ifplugd (0.28-14) unstable; urgency=low
+
+ * Thanks to Kel Modderman <kel@otaku42.de> for all the patches.
+ * Use lsb-base logging functions for initscript output (Closes: #500571)
+ * Various enhancements to the initscript (sysfs rather than procfs etc.)
+ * Handle [HOTPLUG_]INTERFACES during config/upgrade/remove (Closes: #500570)
+ and (Closes: #437535)
+
+ -- Y Giridhar Appaji Nag <giridhar@appaji.net> Tue, 30 Sep 2008 14:03:36 +0530
+
ifplugd (0.28-13) unstable; urgency=low
* The "Thanks Kel Modderman <kel@otaku42.de> for patches" release
diff --git a/debian/control b/debian/control
index 6019237..f7b38a4 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ DM-Upload-Allowed: yes
Package: ifplugd
Architecture: any
-Depends: ${shlibs:Depends}, debconf (>= 1.2.0) | debconf-2.0
+Depends: ${shlibs:Depends}, debconf (>= 1.2.0) | debconf-2.0, lsb-base (>= 3.0-6)
Recommends: ifupdown (>= 0.6.4-4.2)
Suggests: wpasupplicant, waproamd
Description: configuration daemon for ethernet devices
diff --git a/debian/ifplugd.init b/debian/ifplugd.init
index 19dd442..ba9c955 100644
--- a/debian/ifplugd.init
+++ b/debian/ifplugd.init
@@ -29,7 +29,7 @@
### END INIT INFO
CFG=/etc/default/ifplugd
-
+DESC="Network Interface Plugging Daemon"
IFPLUGD=/usr/sbin/ifplugd
test -x $IFPLUGD || exit 0
@@ -45,55 +45,101 @@ shift
[ $# -ne 0 ] && INTERFACES="$@"
-[ "x$INTERFACES" = "xauto" -o "x$INTERFACES" = "xall" ] && INTERFACES="`cat /proc/net/dev | awk '{ print $1 }' | egrep '^(eth|wlan)' | cut -d: -f1`"
+all_interfaces () {
+ for IFPATH in /sys/class/net/* ; do
+ IFNAME="${IFPATH#/sys/class/net/}"
+
+ [ -e "$IFPATH/device" ] || continue
+
+ if [ -f "$IFPATH/type" ] ; then
+ grep --quiet '^1$' "$IFPATH/type" || continue
+ fi
+
+ case "$IFNAME" in
+ eth*|wlan*)
+ echo $IFNAME
+ ;;
+ esac
+ done
+}
-[ "$INTERFACES" ] || exit 0
+[ "x$INTERFACES" = "xauto" -o "x$INTERFACES" = "xall" ] && INTERFACES="$(all_interfaces)"
+
+. /lib/lsb/init-functions
case "$VERB" in
start)
- echo -n "Starting Network Interface Plugging Daemon:"
+ [ "$INTERFACES" ] || exit 0
+ log_action_begin_msg "$DESC"
for IF in $INTERFACES ; do
- grep --quiet $IF /proc/net/dev || continue
+ if [ ! -e /sys/class/net/$IF ] || \
+ $IFPLUGD -c -i $IF >/dev/null ; then
+ log_action_cont_msg "skip $IF"
+ continue
+ fi
+ log_action_cont_msg "start $IF"
IF1=$(echo $IF | sed "s/-/_/")
A=$(eval echo \$\{ARGS_${IF1}\})
[ -z "$A" ] && A="$ARGS"
$IFPLUGD -i $IF $A
- echo -n " $IF"
done
- echo "."
+ log_action_end_msg 0
;;
stop)
- echo -n "Stopping Network Interface Plugging Daemon:"
+ [ "$INTERFACES" ] || exit 0
+ log_action_begin_msg "$DESC"
for IF in $INTERFACES ; do
- grep --quiet $IF /proc/net/dev || continue
+ if [ ! -e /sys/class/net/$IF ] || \
+ ! $IFPLUGD -c -i $IF >/dev/null ; then
+ log_action_cont_msg "skip $IF"
+ continue
+ fi
+ log_action_cont_msg "stop $IF"
$IFPLUGD -k --wait-on-kill -i $IF
- echo -n " $IF"
done
- echo "."
+ log_action_end_msg 0
;;
status)
- for IF in $INTERFACES ; do
+ [ "$INTERFACES" -o "$HOTPLUG_INTERFACES" ] || exit 0
+ for IF in $INTERFACES $HOTPLUG_INTERFACES ; do
+ if [ ! -e /sys/class/net/$IF ] ; then
+ log_action_msg "$IF: device $IF is either not present or not functional"
+ continue
+ fi
+ log_begin_msg "$IF: "
$IFPLUGD -c -i $IF
done
;;
suspend)
- echo -n "Suspending Network Interface Plugging Daemon:"
- for IF in $INTERFACES ; do
- grep --quiet $IF /proc/net/dev || continue
+ [ "$INTERFACES" -o "$HOTPLUG_INTERFACES" ] || exit 0
+ log_action_begin_msg "$DESC"
+ for IF in $INTERFACES $HOTPLUG_INTERFACES ; do
+ if [ ! -e /sys/class/net/$IF ] || \
+ ! $IFPLUGD -c -i $IF >/dev/null ; then
+ log_action_cont_msg "skip $IF"
+ continue
+ fi
+ log_action_cont_msg "suspend $IF"
$IFPLUGD -S -i $IF
- echo -n " $IF"
done
- echo "."
+ log_action_end_msg 0
;;
resume)
- echo -n "Resuming Network Interface Plugging Daemon:"
- for IF in $INTERFACES ; do
+ [ "$INTERFACES" -o "$HOTPLUG_INTERFACES" ] || exit 0
+ log_action_begin_msg "$DESC"
+ for IF in $INTERFACES $HOTPLUG_INTERFACES ; do
+ if [ ! -e /sys/class/net/$IF ] || \
+ ! $IFPLUGD -c -i $IF >/dev/null ; then
+ log_action_cont_msg "skip $IF"
+ continue
+ fi
+ log_action_cont_msg "resume $IF"
$IFPLUGD -R -i $IF
- echo -n " $IF"
done
- echo "."
+ log_action_end_msg 0
;;
force-reload|restart)
+ [ "$INTERFACES" ] || exit 0
$0 stop $INTERFACES
sleep 3
$0 start $INTERFACES
diff --git a/debian/postinst b/debian/postinst
index c22dbf6..9658ad0 100644
--- a/debian/postinst
+++ b/debian/postinst
@@ -50,11 +50,84 @@ write_default (){
mv ${DEFAULTTMP} ${DEFAULTFILE}
}
+INTERFACES_BEFORE=""
+INTERFACES_AFTER=""
+INTERFACES_START=""
+INTERFACES_STOP=""
+INTERFACES_RESTART=""
+
+search_interfaces () {
+ searchifc=$1
+ shift
+
+ for i in $@; do
+ if [ "$i" = "$searchifc" ]; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+ifplugd_initscript () {
+ action=$1
+ shift
+
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d ifplugd $action $@
+ else
+ /etc/init.d/ifplugd $action $@
+ fi
+}
+
case "$1" in
configure)
-
+ if [ -s "$DEFAULTFILE" ] ; then
+ INTERFACES=""
+ HOTPLUG_INTERFACES=""
+ . $DEFAULTFILE
+ INTERFACES_BEFORE="$INTERFACES $HOTPLUG_INTERFACES"
+ fi
+
write_db_conf
write_default
+
+ if [ -s "$DEFAULTFILE" ] ; then
+ INTERFACES=""
+ HOTPLUG_INTERFACES=""
+ . $DEFAULTFILE
+ INTERFACES_AFTER="$INTERFACES $HOTPLUG_INTERFACES"
+ fi
+
+ for IF in $INTERFACES_BEFORE ; do
+ if search_interfaces $IF $INTERFACES_AFTER ; then
+ INTERFACES_RESTART="$INTERFACES_RESTART $IF"
+ else
+ INTERFACES_STOP="$INTERFACES_STOP $IF"
+ fi
+ done
+
+ for IF in $INTERFACES_AFTER ; do
+ if search_interfaces $IF $INTERFACES_BEFORE ; then
+ : # already added to INTERFACES_RESTART
+ else
+ INTERFACES_START="$INTERFACES_START $IF"
+ fi
+ done
+
+ if [ -x "/etc/init.d/ifplugd" ]; then
+ update-rc.d ifplugd defaults >/dev/null
+ if [ "$INTERFACES_STOP" ]; then
+ ifplugd_initscript stop $INTERFACES_STOP
+ fi
+ if [ "$INTERFACES_RESTART" ]; then
+ ifplugd_initscript restart $INTERFACES_RESTART
+ fi
+ if [ "$INTERFACES_START" ]; then
+ ifplugd_initscript start $INTERFACES_START
+ fi
+ fi
+
if [ ! "$2" ] || [ "$2" = "<unknown>" ] ; then
# Fresh install
for F in /etc/apm/suspend.d/20ifplugd \
diff --git a/debian/postrm b/debian/postrm
index b12de11..59518d6 100644
--- a/debian/postrm
+++ b/debian/postrm
@@ -18,6 +18,8 @@ case "$1" in
for f in /etc/apm/suspend.d/20ifplugd /etc/apm/resume.d/80ifplugd /etc/apm/other.d/50ifplugd ; do
rm -f $f
done
+
+ update-rc.d ifplugd remove >/dev/null
;;
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
diff --git a/debian/prerm b/debian/prerm
new file mode 100644
index 0000000..7ad1c5e
--- /dev/null
+++ b/debian/prerm
@@ -0,0 +1,18 @@
+#!/bin/sh -e
+
+DEFAULTFILE=/etc/default/ifplugd
+INTERFACES=""
+HOTPLUG_INTERFACES=""
+
+if [ -x "/etc/init.d/ifplugd" ] && [ "$1" = remove ]; then
+ if [ -s "$DEFAULTFILE" ]; then
+ . $DEFAULTFILE
+ fi
+ if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+ invoke-rc.d ifplugd stop $INTERFACES $HOTPLUG_INTERFACES
+ else
+ /etc/init.d/ifplugd stop $INTERFACES $HOTPLUG_INTERFACES
+ fi
+fi
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
index d1ccdb9..2d3a6e2 100755
--- a/debian/rules
+++ b/debian/rules
@@ -80,7 +80,7 @@ binary-arch: build install
dh_installchangelogs doc/ChangeLog
dh_installdocs
dh_installdebconf
- dh_installinit
+ dh_installinit --noscripts
dh_installudev
dh_installman
dh_link