diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-openembedded/meta-initramfs/recipes-devtools/dracut | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/meta-openembedded/meta-initramfs/recipes-devtools/dracut')
3 files changed, 110 insertions, 0 deletions
diff --git a/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch b/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch new file mode 100644 index 00000000..06e0a094 --- /dev/null +++ b/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-dracut.sh-improve-udevdir.patch @@ -0,0 +1,39 @@ +From 974f728410052bc8fa18d93dc0c1a991bcdb96e6 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Wed, 3 Apr 2019 15:24:47 +0800 +Subject: [PATCH] dracut.sh: improve udevdir + +In commit [9d1b81c dracut.sh: improve udevdir and systemdutildir +fallback logic], it checked a common binary `collect' to localte +udevdir. + +But upstream systemd drop binary `collect'. +[https://github.com/systemd/systemd/commit/a168792c2d95695fd30c0371d4b3890a9df1eafb] + +So check binary `ata_id' to instead. + +Upstream-Status: Submitted [https://github.com/dracutdevs/dracut/pull/558] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + dracut.sh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/dracut.sh b/dracut.sh +index 3dc2adc..cc8b01a 100755 +--- a/dracut.sh ++++ b/dracut.sh +@@ -1311,8 +1311,8 @@ done + [[ -d $udevdir ]] \ + || udevdir="$(pkg-config udev --variable=udevdir 2>/dev/null)" + if ! [[ -d "$udevdir" ]]; then +- [[ -e /lib/udev/collect ]] && udevdir=/lib/udev +- [[ -e /usr/lib/udev/collect ]] && udevdir=/usr/lib/udev ++ [[ -e /lib/udev/ata_id ]] && udevdir=/lib/udev ++ [[ -e /usr/lib/udev/ata_id ]] && udevdir=/usr/lib/udev + fi + + [[ -d $systemdutildir ]] \ +-- +2.7.4 + diff --git a/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-set-viriable-_drv-not-local.patch b/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-set-viriable-_drv-not-local.patch new file mode 100644 index 00000000..13d2cfa8 --- /dev/null +++ b/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut/0001-set-viriable-_drv-not-local.patch @@ -0,0 +1,69 @@ +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 + diff --git a/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb index dd2e8bbb..13cf5f6d 100644 --- a/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb +++ b/external/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_git.bb @@ -12,6 +12,8 @@ PV = "049" SRCREV = "225e4b94cbdb702cf512490dcd2ad9ca5f5b22c1" SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http \ file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \ + file://0001-dracut.sh-improve-udevdir.patch \ + file://0001-set-viriable-_drv-not-local.patch \ " DEPENDS += "kmod" |