diff options
author | Andreas Oberritter <obi@opendreambox.org> | 2012-05-21 18:39:07 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-24 08:34:50 +0100 |
commit | faca42ee5249cf6aae9e53e44bb404de21dd4471 (patch) | |
tree | 572e1edb96e3d821db92e2f01822450fbb5970fc /meta/recipes-core | |
parent | 7e4fcbb1ceac736c44bffc834f7e8f2b34ac4402 (diff) | |
download | openembedded-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/init | 101 | ||||
-rw-r--r-- | meta/recipes-core/netbase/netbase_4.47.bb | 2 |
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 |