summaryrefslogtreecommitdiffstats
path: root/source/n/NetworkManager
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/NetworkManager')
-rw-r--r--source/n/NetworkManager/11-initialize-nm-remote-settings.patch27
-rwxr-xr-xsource/n/NetworkManager/NetworkManager.SlackBuild35
-rw-r--r--source/n/NetworkManager/doinst.sh10
-rw-r--r--source/n/NetworkManager/rc.networkmanager105
-rw-r--r--source/n/NetworkManager/slack-desc2
5 files changed, 137 insertions, 42 deletions
diff --git a/source/n/NetworkManager/11-initialize-nm-remote-settings.patch b/source/n/NetworkManager/11-initialize-nm-remote-settings.patch
deleted file mode 100644
index fff4194ba..000000000
--- a/source/n/NetworkManager/11-initialize-nm-remote-settings.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-commit dd0460697c4e281fe277b53916d5251332e1aafc
-Author: Jiří Klimeš <jklimes@redhat.com>
-Date: Tue Mar 27 22:36:55 2012 +0200
-
- libnm-glib: initialize NMRemoteSettings in nm_remote_settings_new() (rh #806664)
-
- The object was not initialized after creation in nm_remote_settings_new(). This
- was a regression caused by 762df85234e7a042a2a5d31053e6cc273ae3e2ec.
-
-diff --git a/libnm-glib/nm-remote-settings.c b/libnm-glib/nm-remote-settings.c
-index 8f213f9..b6b6c18 100644
---- a/libnm-glib/nm-remote-settings.c
-+++ b/libnm-glib/nm-remote-settings.c
-@@ -728,7 +728,12 @@ properties_changed_cb (DBusGProxy *proxy,
- NMRemoteSettings *
- nm_remote_settings_new (DBusGConnection *bus)
- {
-- return g_object_new (NM_TYPE_REMOTE_SETTINGS, NM_REMOTE_SETTINGS_BUS, bus, NULL);
-+ NMRemoteSettings *settings;
-+
-+ settings = g_object_new (NM_TYPE_REMOTE_SETTINGS, NM_REMOTE_SETTINGS_BUS, bus, NULL);
-+
-+ _nm_remote_settings_ensure_inited (settings);
-+ return settings;
- }
-
- static void
diff --git a/source/n/NetworkManager/NetworkManager.SlackBuild b/source/n/NetworkManager/NetworkManager.SlackBuild
index d7e9d1f8b..41e0d18d0 100755
--- a/source/n/NetworkManager/NetworkManager.SlackBuild
+++ b/source/n/NetworkManager/NetworkManager.SlackBuild
@@ -1,8 +1,7 @@
#!/bin/sh
-# Slackware build script for NetworkManager
-
-# Copyright 2010,2011 Robby Workman, Northport, Alabama, USA
+# Copyright 2010, 2011 Robby Workman, Northport, Alabama, USA
+# Copyright 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,8 +25,7 @@
PKGNAM=NetworkManager
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
-TAG=${TAG:-}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
@@ -83,8 +81,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-zcat $CWD/11-initialize-nm-remote-settings.patch.gz | patch -p1 --verbose || exit 1
-
# Find the version off pppd installed or else assume we are on -current:
PPPD=$( basename $(find /usr/lib${LIBDIRSUFFIX}/pppd -type d -maxdepth 1 -mindepth 1) )
[ -z "$PPPD" ] && PPPD=2.4.5
@@ -104,24 +100,38 @@ CXXFLAGS="$SLKCFLAGS" \
--without-resolvconf \
--with-dhcpcd=/sbin/dhcpcd \
--with-dhclient=yes \
+ --with-modem-manager-1=yes \
--build=$TARGET || exit 1
make $NUMJOBS || exit 1
make install DESTDIR=$PKG || exit 1
+# For some reason NetworkManager-0.9.8.0 does not install these:
+( cd man
+ mkdir -p $PKG/usr/man/man1
+ cp -a *.1 $PKG/usr/man/man1
+ mkdir -p $PKG/usr/man/man5
+ cp -a *.5 $PKG/usr/man/man5
+ mkdir -p $PKG/usr/man/man8
+ cp -a *.8 $PKG/usr/man/man8
+)
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+# In case NetworkManager tries to install something here:
+rm -f $PKG/etc/rc.d/rc.networkmanager
+
+# Don't clobber existing rc.networkmanager
# Don't run NetworkManager by default just because it got installed.
# Instead, the init script will have to be made executable first.
# This should avoid nasty surprises on potentially remotely located machines.
-chmod 644 $PKG/etc/rc.d/rc.networkmanager
-
-# Don't clobber existing rc.networkmanager
-mv $PKG/etc/rc.d/rc.networkmanager $PKG/etc/rc.d/rc.networkmanager.new
+mkdir -p $PKG/etc/rc.d
+cat $CWD/rc.networkmanager > $PKG/etc/rc.d/rc.networkmanager.new
+chmod 0644 $PKG/etc/rc.d/rc.networkmanager.new
# Add a 'starter' NetworkManager.conf file
# This sets the hostname (during postinstall) to match the system's name
@@ -136,7 +146,6 @@ cp -a \
$PKG/usr/doc/$PKGNAM-$VERSION
# In case someone needs this still:
cp $CWD/55NetworkManager $PKG/usr/doc/$PKGNAM-$VERSION/
-cat $CWD/$PKGNAM.SlackBuild > $PKG/usr/doc/$PKGNAM-$VERSION/$PKGNAM.SlackBuild
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
@@ -150,5 +159,5 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
+/sbin/makepkg --prepend -l y -c n $OUTPUT/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/n/NetworkManager/doinst.sh b/source/n/NetworkManager/doinst.sh
index 2b419b26b..cf091e8da 100644
--- a/source/n/NetworkManager/doinst.sh
+++ b/source/n/NetworkManager/doinst.sh
@@ -1,3 +1,4 @@
+
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
@@ -19,7 +20,7 @@ preserve_perms() {
cat ${NEW} > ${NEW}.incoming
mv ${NEW}.incoming ${NEW}
fi
- config ${NEW}
+ mv ${NEW} ${OLD}
}
if [ -e etc/HOSTNAME ]; then
@@ -27,6 +28,13 @@ if [ -e etc/HOSTNAME ]; then
etc/NetworkManager/NetworkManager.conf.new
fi
+# Preserve permissions, but move this into place. Otherwise the net
+# connection could be lost at a remote location.
preserve_perms etc/rc.d/rc.networkmanager.new
config etc/NetworkManager/NetworkManager.conf.new
+# If the .pid file is found in the old location, move it to the new one:
+if [ -r var/run/NetworkManager.pid ]; then
+ mv var/run/NetworkManager.pid var/run/NetworkManager/NetworkManager.pid
+fi
+
diff --git a/source/n/NetworkManager/rc.networkmanager b/source/n/NetworkManager/rc.networkmanager
new file mode 100644
index 000000000..430e61a45
--- /dev/null
+++ b/source/n/NetworkManager/rc.networkmanager
@@ -0,0 +1,105 @@
+#!/bin/sh
+#
+# NetworkManager: NetworkManager daemon
+#
+# description: This is a daemon for automatically switching network \
+# connections to the best available connection. \
+#
+# processname: NetworkManager
+# pidfile: /var/run/NetworkManager/NetworkManager.pid
+#
+
+prefix=/usr
+exec_prefix=/usr
+sbindir=${exec_prefix}/sbin
+
+NETWORKMANAGER_BIN=${sbindir}/NetworkManager
+
+# Sanity checks.
+[ -x $NETWORKMANAGER_BIN ] || exit 0
+
+PIDFILE=/var/run/NetworkManager/NetworkManager.pid
+
+nm_start()
+{
+ if [ "`pgrep dbus-daemon`" = "" ]; then
+ echo "D-BUS must be running to start NetworkManager"
+ return
+ fi
+
+ # Just in case the pidfile is still there, we may need to nuke it.
+ if [ -e "$PIDFILE" ]; then
+ rm -f $PIDFILE
+ fi
+
+ echo "Starting NetworkManager daemon: $NETWORKMANAGER_BIN"
+ $NETWORKMANAGER_BIN
+}
+
+nm_status()
+{
+ local pidlist=`cat $PIDFILE 2>/dev/null`
+ if [ -z "$pidlist" ]; then
+ return 1
+ fi
+ local command=`ps -p $pidlist -o comm=`
+ if [ "$command" != 'NetworkManager' ]; then
+ return 1
+ fi
+}
+
+nm_stop()
+{
+ echo -en "Stopping NetworkManager: "
+ # Shut down any DHCP connections, otherwise the processes will be orphaned
+ # and the connections will not come up when NetworkManager restarts.
+ if ps ax | grep /sbin/dhcpcd | grep -q libexec/nm-dhcp ; then
+ ps ax | grep /sbin/dhcpcd | grep libexec/nm-dhcp | while read line ; do
+ kill -HUP $(echo $line | cut -b 1-5)
+ done
+ fi
+ if ps ax | grep /sbin/dhclient | grep -q /var/lib/NetworkManager ; then
+ ps ax | grep /sbin/dhclient | grep /var/lib/NetworkManager | while read line ; do
+ kill -HUP $(echo $line | cut -b 1-5)
+ done
+ fi
+ local pidlist=`cat $PIDFILE 2>/dev/null`
+ if [ ! -z "$pidlist" ]; then
+ kill $pidlist &>/dev/null
+ sleep 3
+ rm -f $PIDFILE &>/dev/null
+ fi
+ echo "stopped";
+ sleep 3
+}
+
+nm_restart()
+{
+ nm_stop
+ nm_start
+}
+
+case "$1" in
+'start')
+ if ( ! nm_status ); then
+ nm_start
+ else
+ echo "NetworkManager is already running (will not start it twice)."
+ fi
+ ;;
+'stop')
+ nm_stop
+ ;;
+'restart')
+ nm_restart
+ ;;
+'status')
+ if ( nm_status ); then
+ echo "NetworkManager is currently running"
+ else
+ echo "NetworkManager is not running."
+ fi
+ ;;
+*)
+ echo "usage $0 start|stop|status|restart"
+esac
diff --git a/source/n/NetworkManager/slack-desc b/source/n/NetworkManager/slack-desc
index 2a47aaa38..964960480 100644
--- a/source/n/NetworkManager/slack-desc
+++ b/source/n/NetworkManager/slack-desc
@@ -14,6 +14,6 @@ NetworkManager: addresses, default routes, associating with wireless access poin
NetworkManager: or wired LANs, and other network configuration settings in a simple,
NetworkManager: automated fashion (manual overrides are still possible).
NetworkManager:
-NetworkManager:
NetworkManager: Home page: http://projects.gnome.org/NetworkManager/
NetworkManager:
+NetworkManager: