|
@@ -1,69 +0,0 @@
|
|
|
-From 6e0da103effe64832eea52fad5c44a328f7141b7 Mon Sep 17 00:00:00 2001
|
|
|
-From: Hongxu Jia <hongxu.jia@windriver.com>
|
|
|
-Date: Thu, 20 Jun 2019 17:31:11 +0800
|
|
|
-Subject: [PATCH] set viriable _drv not local
|
|
|
-
|
|
|
-If shebang is set to /bin/sh and /bin/sh is a symlink to /bin/bash,
|
|
|
-bash turn on posix mode.
|
|
|
-
|
|
|
-Since bash is upgraded to 5.0, it follows 'IEEE 1003.2 POSIX Shell
|
|
|
-Standard', to implement 'functions do not have local traps or options,
|
|
|
-and it is not possible to define local variables'
|
|
|
-
|
|
|
-For more detail, see variables.c:push_posix_temp_var in the following commit
|
|
|
-http://git.savannah.gnu.org/cgit/bash.git/commit/?id=d233b485e83c3a784b803fb894280773f16f2deb
|
|
|
-
|
|
|
-The IEEE 1003.2 POSIX Shell Standard:
|
|
|
-https://www.cs.ait.ac.th/~on/O/oreilly/unix/ksh/appa_02.htm
|
|
|
-
|
|
|
-While /bin/sh points to bash 5.0, it caused the following issue:
|
|
|
-
|
|
|
-$ cat <<ENDOF>case.sh
|
|
|
-fsck_drv_com(){
|
|
|
- echo "issuing \$_drv"
|
|
|
-}
|
|
|
-
|
|
|
-fsck_able() {
|
|
|
- _drv="_drv=e2fsck fsck_drv_com"
|
|
|
-}
|
|
|
-
|
|
|
-fsck_single() {
|
|
|
- local _drv
|
|
|
- fsck_able
|
|
|
- eval "\$_drv"
|
|
|
-}
|
|
|
-fsck_single
|
|
|
-ENDOF
|
|
|
-$ chmod a+x case.sh
|
|
|
-
|
|
|
-Unexpected:
|
|
|
-$ ./cash.sh
|
|
|
-issuing _drv=e2fsck fsck_drv_com
|
|
|
-
|
|
|
-Set viriable _drv not local, get expected result:
|
|
|
-$ ./case.sh
|
|
|
-issuing e2fsck
|
|
|
-
|
|
|
-Upstream-Status: Submitted [https://github.com/dracutdevs/dracut/pull/587]
|
|
|
-
|
|
|
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
|
|
----
|
|
|
- modules.d/99fs-lib/fs-lib.sh | 2 +-
|
|
|
- 1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
-
|
|
|
-diff --git a/modules.d/99fs-lib/fs-lib.sh b/modules.d/99fs-lib/fs-lib.sh
|
|
|
-index d39ca1b..60877ee 100755
|
|
|
---- a/modules.d/99fs-lib/fs-lib.sh
|
|
|
-+++ b/modules.d/99fs-lib/fs-lib.sh
|
|
|
-@@ -142,7 +142,7 @@ fsck_single() {
|
|
|
- local _fs="${2:-auto}"
|
|
|
- local _fsopts="$3"
|
|
|
- local _fop="$4"
|
|
|
-- local _drv
|
|
|
-+ _drv=""
|
|
|
-
|
|
|
- [ $# -lt 2 ] && return 255
|
|
|
- # if UUID= marks more than one device, take only the first one
|
|
|
---
|
|
|
-2.7.4
|
|
|
-
|