Harald Hoyer 1ee1e3
From 4e25cf6edf94755219a822ebc0e108e13377cc27 Mon Sep 17 00:00:00 2001
Harald Hoyer 1ee1e3
From: Daniel Drake <dsd@laptop.org>
Harald Hoyer 1ee1e3
Date: Fri, 16 Mar 2012 21:11:24 +0000
Harald Hoyer 1ee1e3
Subject: [PATCH] Avoid use of "export -n"
Harald Hoyer 1ee1e3
Harald Hoyer 1ee1e3
"export -n" is a bash extension, not part of POSIX, and is hence
Harald Hoyer 1ee1e3
incompatible with the busybox shell.
Harald Hoyer 1ee1e3
Harald Hoyer 1ee1e3
This was breaking boot when the busybox module was used.
Harald Hoyer 1ee1e3
Harald Hoyer 1ee1e3
Reimplement the scope change in a few lines of standard shell code.
Harald Hoyer 1ee1e3
---
Harald Hoyer 1ee1e3
 modules.d/99base/init.sh |    9 ++++++++-
Harald Hoyer 1ee1e3
 1 file changed, 8 insertions(+), 1 deletion(-)
Harald Hoyer 1ee1e3
Harald Hoyer 1ee1e3
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
Harald Hoyer 1ee1e3
index fa712a7..84c13e0 100755
Harald Hoyer 1ee1e3
--- a/modules.d/99base/init.sh
Harald Hoyer 1ee1e3
+++ b/modules.d/99base/init.sh
Harald Hoyer 1ee1e3
@@ -263,8 +263,15 @@ else
Harald Hoyer 1ee1e3
     udevadm info --cleanup-db
Harald Hoyer 1ee1e3
 fi
Harald Hoyer 1ee1e3
 
Harald Hoyer 1ee1e3
+# Retain the values of these variables but ensure that they are unexported
Harald Hoyer 1ee1e3
+# This is a POSIX-compliant equivalent of bash's "export -n"
Harald Hoyer 1ee1e3
+for var in root rflags fstype netroot NEWROOT; do
Harald Hoyer 1ee1e3
+    eval tmp=\$$var
Harald Hoyer 1ee1e3
+    unset $var
Harald Hoyer 1ee1e3
+    [ -n "$tmp" ] && eval $var=\"$tmp\"
Harald Hoyer 1ee1e3
+done
Harald Hoyer 1ee1e3
+
Harald Hoyer 1ee1e3
 export RD_TIMESTAMP
Harald Hoyer 1ee1e3
-export -n root rflags fstype netroot NEWROOT
Harald Hoyer 1ee1e3
 set +x # Turn off debugging for this section
Harald Hoyer 1ee1e3
 # Clean up the environment
Harald Hoyer 1ee1e3
 for i in $(export -p); do