dracut/backport-fix-i18n-get-rid-of-eval-calls.patch
hongjinghao 2663ebded8 backport patchs from upstream
(cherry picked from commit e37aecb42764d47b923dd3280385bd5438f466b6)
2024-02-22 14:56:32 +08:00

76 lines
2.7 KiB
Diff

From 5387ed24c8b33da1214232d57ab1831e117aaba0 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Tue, 16 Feb 2021 15:16:41 +0100
Subject: [PATCH] fix(i18n): get rid of `eval` calls
By changing KBDSUBDIRS to a bash array, all kinds of `eval` quirks are
avoided.
Conflict:NA
Reference:https://github.com/dracutdevs/dracut/commit/5387ed24c8b33da1214232d57ab1831e117aaba0
---
modules.d/10i18n/module-setup.sh | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/modules.d/10i18n/module-setup.sh b/modules.d/10i18n/module-setup.sh
index b55804ea..d6688b47 100755
--- a/modules.d/10i18n/module-setup.sh
+++ b/modules.d/10i18n/module-setup.sh
@@ -22,7 +22,7 @@ install() {
[[ -f "$dracutsysrootdir"/etc/vconsole.conf ]] && . "$dracutsysrootdir"/etc/vconsole.conf
fi
- KBDSUBDIRS=consolefonts,consoletrans,keymaps,unimaps
+ KBDSUBDIRS=(consolefonts consoletrans keymaps unimaps)
DEFAULT_FONT="${i18n_default_font:-eurlatgr}"
I18N_CONF="/etc/locale.conf"
VCONFIG_CONF="/etc/vconsole.conf"
@@ -110,7 +110,7 @@ install() {
if [[ ${kbddir} != "/usr/share" ]]; then
inst_dir /usr/share
- for _src in $(eval echo "{${KBDSUBDIRS}}"); do
+ for _src in "${KBDSUBDIRS[@]}"; do
[ ! -e "${initdir}/usr/share/${_src}" ] && ln -s "${kbddir}/${_src}" "${initdir}/usr/share/${_src}"
done
fi
@@ -119,10 +119,9 @@ install() {
install_all_kbd() {
local rel f
- for __src in $(eval echo $dracutsysrootdir${kbddir}/{${KBDSUBDIRS}}); do
- _src=${__src#$dracutsysrootdir}
- inst_dir "$_src"
- $DRACUT_CP -L -t "${initdir}/${_src}" "$__src"/*
+ for _src in "${KBDSUBDIRS[@]}"; do
+ inst_dir "${kbddir}/$_src"
+ $DRACUT_CP -L -t "${initdir}/${kbddir}/$_src" "${dracutsysrootdir}${kbddir}/$_src"/*
done
# remove unnecessary files
@@ -242,14 +241,13 @@ install() {
}
checks() {
- for kbddir in ${kbddir} /usr/lib/kbd /lib/kbd /usr/share /usr/share/kbd
- do
- [[ -d "$dracutsysrootdir${kbddir}" ]] && \
- for dir in ${KBDSUBDIRS//,/ }
- do
- [[ -d "$dracutsysrootdir${kbddir}/${dir}" ]] && continue
- false
- done && break
+ for kbddir in ${kbddir} /usr/lib/kbd /lib/kbd /usr/share /usr/share/kbd; do
+ if [[ -d "$dracutsysrootdir${kbddir}" ]]; then
+ for dir in "${KBDSUBDIRS[@]}"; do
+ [[ -d "$dracutsysrootdir${kbddir}/${dir}" ]] && continue
+ false
+ done && break
+ fi
kbddir=''
done
--
2.19.1