summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Workman <rworkman@slackbuilds.org>2011-01-10 12:42:24 -0600
committerRobby Workman <rworkman@slackbuilds.org>2011-01-10 12:42:24 -0600
commit68c0f83fbbf1e39803c1f76321b50b99a2b124ba (patch)
tree1321304aac09b1cb587810dc147deabe664b75bc
parent01255abf61d126c8af424c1430ae57979200ba1c (diff)
downloadslackbuilds-68c0f83fbbf1e39803c1f76321b50b99a2b124ba.tar.gz
network/NetworkManager: Add the pm-utils sleep hook
The sleep hook for pm-utils is currently shipped with Slackware's pm-utils package, but that will change in the future. It won't affect us during 13.1 at all, but this won't hurt either. Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
-rw-r--r--network/NetworkManager/55NetworkManager42
-rw-r--r--network/NetworkManager/NetworkManager.SlackBuild10
2 files changed, 51 insertions, 1 deletions
diff --git a/network/NetworkManager/55NetworkManager b/network/NetworkManager/55NetworkManager
new file mode 100644
index 0000000000..f3c6df5e5c
--- /dev/null
+++ b/network/NetworkManager/55NetworkManager
@@ -0,0 +1,42 @@
+#!/bin/sh
+# If we are running NetworkManager, tell it we are going to sleep.
+# TODO: Make NetworkManager smarter about how to handle sleep/resume
+# If we are asleep for less time than it takes for TCP to reset a
+# connection, and we are assigned the same IP on resume, we should
+# not break established connections. Apple can do this, and it is
+# rather nifty.
+
+. "${PM_FUNCTIONS}"
+
+suspend_nm()
+{
+ # Tell NetworkManager to shut down networking
+ printf "Having NetworkManager put all interaces to sleep..."
+ dbus_send --system \
+ --dest=org.freedesktop.NetworkManager \
+ /org/freedesktop/NetworkManager \
+ org.freedesktop.NetworkManager.sleep && \
+ echo Done. || echo Failed.
+}
+
+resume_nm()
+{
+ # Wake up NetworkManager and make it do a new connection
+ printf "Having NetworkManager wake interfaces back up..."
+ dbus_send --system \
+ --dest=org.freedesktop.NetworkManager \
+ /org/freedesktop/NetworkManager \
+ org.freedesktop.NetworkManager.wake && \
+ echo Done. || echo Failed.
+}
+
+case "$1" in
+ hibernate|suspend)
+ suspend_nm
+ ;;
+ thaw|resume)
+ resume_nm
+ ;;
+ *) exit $NA
+ ;;
+esac
diff --git a/network/NetworkManager/NetworkManager.SlackBuild b/network/NetworkManager/NetworkManager.SlackBuild
index 01660386f0..c858e24ea8 100644
--- a/network/NetworkManager/NetworkManager.SlackBuild
+++ b/network/NetworkManager/NetworkManager.SlackBuild
@@ -24,7 +24,7 @@
PRGNAM=NetworkManager
VERSION=${VERSION:-0.8.2}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-5}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -120,6 +120,14 @@ mkdir -p $PKG/usr/share/dbus-1/system-services
cat $CWD/fi.epitest.hostap.WPASupplicant.service > \
$PKG/usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service
+# pm-utils upstream ships this file, but it shouldn't really, and it's going
+# to be removed from the Slackware package, so we'll include it here just to
+# be sure. Once upower is part of Slackware, this file can be removed, since
+# NM listens to upower events to know when to sleep/wake
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/sleep.d
+cp $CWD/55NetworkManager $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/sleep.d/
+chmod 0755 $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/sleep.d/55NetworkManager
+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
AUTHORS CONTRIBUTING COPYING ChangeLog INSTALL NEWS README TODO \