diff options
Diffstat (limited to 'source/n/NetworkManager')
-rw-r--r-- | source/n/NetworkManager/11-initialize-nm-remote-settings.patch | 27 | ||||
-rwxr-xr-x | source/n/NetworkManager/NetworkManager.SlackBuild | 35 | ||||
-rw-r--r-- | source/n/NetworkManager/doinst.sh | 10 | ||||
-rw-r--r-- | source/n/NetworkManager/rc.networkmanager | 105 | ||||
-rw-r--r-- | source/n/NetworkManager/slack-desc | 2 |
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: |