Package:  ifupdown
Version:  0.6.4-4.9
Severity: important
Tags:     patch

At the moment, the postinst script in ifupdown set up
/etc/network/run/ as a symlink to /dev/shm/network/.  But the
/dev/shm/ file system is reserved for use by the shm* glibc functions,
and should not be used as a generic state storing area.

Recently, in version 2.86.ds1-23 of initscripts, the boot system in
debian was changed to provide /lib/init/rw/ as a writable tmpfs area
for scripts running early in the boot.  ifupdown might run very early
in the boot, and would be better of using this area instead of
/dev/shm/.  Here is an untested patch to move ifupdown over to use
this new tmpfs.

diff -ur ../ifupdown-0.6.8/debian/changelog ../ifupdown-0.6.9/debian/changelog
--- ../ifupdown-0.6.8/debian/changelog  2006-09-28 19:08:55.000000000 +0200
+++ ../ifupdown-0.6.9/debian/changelog  2006-09-28 21:20:36.000000000 +0200
@@ -1,3 +1,10 @@
+ifupdown (0.6.9) experimental; urgency=low
+
+  * Prefer /lib/init/rw/network over /dev/shm/ for storing the state file
+    if the former is mounted as a tmpfs.
+
+ -- Petter Reinholdtsen <[EMAIL PROTECTED]>  Thu, 28 Sep 2006 21:19:32 +0200
+
 ifupdown (0.6.8) unstable; urgency=low
 
   * Add myself as co-maintainer with approval from Anthony Towns.
diff -ur ../ifupdown-0.6.8/debian/postinst ../ifupdown-0.6.9/debian/postinst
--- ../ifupdown-0.6.8/debian/postinst   2006-09-15 20:03:19.000000000 +0200
+++ ../ifupdown-0.6.9/debian/postinst   2006-09-28 21:18:55.000000000 +0200
@@ -48,26 +48,26 @@
     mv /etc/network/run /etc/network/run.dpkg-old
   fi
 
-  # The best choice is to use /dev/shm/network
+  # The best choice is to use /lib/init/rw/network
   #
   # If we can't use that, we'll just make /etc/network/run a directory,
   # unless we're upgrading, in which case we'll just keep ifstate where it
   # is, by making /etc/network/run a symlink to /etc/network.
 
-  WHAT_TO_USE=devshm
+  WHAT_TO_USE=initrw
 
-  if [ ! -d /dev/shm -o ! -w /dev/shm -o ! -r /proc/mounts ]; then
+  if [ ! -d /lib/init/rw -o ! -w /lib/init/rw -o ! -r /proc/mounts ]; then
     WHAT_TO_USE=owndir
-  elif ! grep -qs 
"^tmpfs[[:space:]]\+/dev/shm[[:space:]]\+tmpfs[[:space:]]\+\([^[:space:]]\+,\)\?rw"
 /proc/mounts
+  elif ! grep -qs 
"^tmpfs[[:space:]]\+/lib/init/rw[[:space:]]\+tmpfs[[:space:]]\+\([^[:space:]]\+,\)\?rw"
 /proc/mounts
   then
     WHAT_TO_USE=owndir
   elif grep -qs '[[:space:]]/dev[[:space:]]devfs[[:space:]]' /proc/mounts; then
     WHAT_TO_USE=owndir
   fi
 
-  # Check for available space if we are using devshm
-  if [ "$WHAT_TO_USE" = devshm ]; then
-    SPACE=`df -k /dev/shm | tail -1 | awk '{if ($4 ~ /%/) { print $3 } else { 
print $4 } }'`
+  # Check for available space if we are using initrw
+  if [ "$WHAT_TO_USE" = initrw ]; then
+    SPACE=`df -k /lib/init/rw | tail -1 | awk '{if ($4 ~ /%/) { print $3 } 
else { print $4 } }'`
     if [ "$SPACE" -le 0 ]; then
       WHAT_TO_USE=owndir
     fi
@@ -77,10 +77,10 @@
     WHAT_TO_USE=etcnetwork
   fi
 
-  if [ "$WHAT_TO_USE" = devshm ]
+  if [ "$WHAT_TO_USE" = initrw ]
   then
-    [ -d /dev/shm/network ] || mkdir /dev/shm/network
-    ln -s /dev/shm/network /etc/network/run
+    [ -d /lib/init/rw/network ] || mkdir /lib/init/rw/network
+    ln -s /lib/init/rw/network /etc/network/run
   elif [ "$WHAT_TO_USE" = "owndir" ]; then
     mkdir /etc/network/run
   else


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to