summaryrefslogtreecommitdiffstats
path: root/source/n/NetworkManager
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2013-11-04 17:08:47 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:57:36 +0200
commit76fc4757ac91ac7947a01fb7b53dddf9a78a01d1 (patch)
tree9b98e6e193c7870cb27ac861394c1c4592850922 /source/n/NetworkManager
parent9664bee729d487bcc0a0bc35859f8e13d5421c75 (diff)
downloadcurrent-76fc4757ac91ac7947a01fb7b53dddf9a78a01d1.tar.gz
current-76fc4757ac91ac7947a01fb7b53dddf9a78a01d1.tar.xz
Slackware 14.1slackware-14.1
Mon Nov 4 17:08:47 UTC 2013 Slackware 14.1 x86_64 stable is released! It's been another interesting release cycle here at Slackware bringing new features like support for UEFI machines, updated compilers and development tools, the switch from MySQL to MariaDB, and many more improvements throughout the system. Thanks to the team, the upstream developers, the dedicated Slackware community, and everyone else who pitched in to help make this release a reality. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Have fun! :-)
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: