summaryrefslogtreecommitdiff
path: root/meta/recipes-core
diff options
context:
space:
mode:
authorAndreas Oberritter <obi@opendreambox.org>2012-05-21 18:39:07 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-05-24 08:34:50 +0100
commitfaca42ee5249cf6aae9e53e44bb404de21dd4471 (patch)
tree572e1edb96e3d821db92e2f01822450fbb5970fc /meta/recipes-core
parent7e4fcbb1ceac736c44bffc834f7e8f2b34ac4402 (diff)
downloadopenembedded-core-faca42ee5249cf6aae9e53e44bb404de21dd4471.tar.gz
openembedded-core-faca42ee5249cf6aae9e53e44bb404de21dd4471.tar.bz2
openembedded-core-faca42ee5249cf6aae9e53e44bb404de21dd4471.zip
netbase: merge init script updates from upstream
* Read /proc/mounts only once. * Support many more network filesystem types. * Remaining differences to netbase 4.47: - Uses the mountvirtfs keyword instead of mountkernfs - Doesn't use lsb functions - Doesn't print a warning if /etc/network/options exists - Doesn't use --exclude parameter for ifup, because busybox doesn't support it. Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/netbase/netbase-4.47/init101
-rw-r--r--meta/recipes-core/netbase/netbase_4.47.bb2
2 files changed, 70 insertions, 33 deletions
diff --git a/meta/recipes-core/netbase/netbase-4.47/init b/meta/recipes-core/netbase/netbase-4.47/init
index 8a67e1cef2..bace9df991 100644
--- a/meta/recipes-core/netbase/netbase-4.47/init
+++ b/meta/recipes-core/netbase/netbase-4.47/init
@@ -1,52 +1,89 @@
-#!/bin/sh
-#
+#!/bin/sh -e
### BEGIN INIT INFO
# Provides: networking
-# Required-Start: $local_fs mountvirtfs
+# Required-Start: mountvirtfs $local_fs
# Required-Stop: $local_fs
+# Should-Start: ifupdown
+# Should-Stop: ifupdown
# Default-Start: S
# Default-Stop: 0 6
-# Short-Description: Raise network interfaces and configure them
+# Short-Description: Raise network interfaces.
### END INIT INFO
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
-if ! [ -x /sbin/ifup ]; then
- exit 0
-fi
+[ -x /sbin/ifup ] || exit 0
+
+check_network_file_systems() {
+ [ -e /proc/mounts ] || return 0
+
+ if [ -e /etc/iscsi/iscsi.initramfs ]; then
+ echo "not deconfiguring network interfaces: iSCSI root is mounted."
+ exit 0
+ fi
+
+ exec 9<&0 < /proc/mounts
+ while read DEV MTPT FSTYPE REST; do
+ case $DEV in
+ /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
+ echo "not deconfiguring network interfaces: network devices still mounted."
+ exit 0
+ ;;
+ esac
+ case $FSTYPE in
+ nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs)
+ echo "not deconfiguring network interfaces: network file systems still mounted."
+ exit 0
+ ;;
+ esac
+ done
+ exec 0<&9 9<&-
+}
+
+check_network_swap() {
+ [ -e /proc/swaps ] || return 0
+
+ exec 9<&0 < /proc/swaps
+ while read DEV MTPT FSTYPE REST; do
+ case $DEV in
+ /dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
+ echo "not deconfiguring network interfaces: network swap still mounted."
+ exit 0
+ ;;
+ esac
+ done
+ exec 0<&9 9<&-
+}
case "$1" in
- start)
- echo -n "Configuring network interfaces... "
- ifup -a
+start)
+ echo -n "Configuring network interfaces... "
+ ifup -a
echo "done."
;;
- stop)
- if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
- grep -q "^/ nfs$"; then
- echo "NOT deconfiguring network interfaces: / is an NFS mount"
- elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
- grep -q "^/ smbfs$"; then
- echo "NOT deconfiguring network interfaces: / is an SMB mount"
- elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
- grep -qE '^(nfs|smbfs|ncp|coda)$'; then
- echo "NOT deconfiguring network interfaces: network shares still mounted."
- else
- echo -n "Deconfiguring network interfaces... "
- ifdown -a
- echo "done."
- fi
+
+stop)
+ check_network_file_systems
+ check_network_swap
+
+ echo -n "Deconfiguring network interfaces... "
+ ifdown -a
+ echo "done."
;;
- force-reload|restart)
- echo -n "Reconfiguring network interfaces... "
- ifdown -a
- ifup -a
+
+force-reload|restart)
+ echo "Running $0 $1 is deprecated because it may not enable again some interfaces"
+ echo "Reconfiguring network interfaces... "
+ ifdown -a || true
+ ifup -a
echo "done."
;;
- *)
- echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
+
+*)
+ echo "Usage: /etc/init.d/networking {start|stop}"
exit 1
;;
esac
exit 0
+
diff --git a/meta/recipes-core/netbase/netbase_4.47.bb b/meta/recipes-core/netbase/netbase_4.47.bb
index 1c85997f47..634560a930 100644
--- a/meta/recipes-core/netbase/netbase_4.47.bb
+++ b/meta/recipes-core/netbase/netbase_4.47.bb
@@ -4,7 +4,7 @@ HOMEPAGE = "http://packages.debian.org/netbase"
SECTION = "base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=3dd6192d306f582dee7687da3d8748ab"
-PR = "r2"
+PR = "r3"
inherit update-rc.d