Skip to content
Snippets Groups Projects
Commit e648a0c3 authored by Frédéric Dalleau's avatar Frédéric Dalleau
Browse files

Fix new bashisms introduced on update


Signed-off-by: default avatarFrédéric Dalleau <frederic.dalleau@collabora.com>
parent 8833fda8
No related branches found
No related tags found
No related merge requests found
From efbd303a1450ebf4ad4bbfec2b2070c0518d6cc5 Mon Sep 17 00:00:00 2001
From: Denis Pynkin <denis.pynkin@collabora.com>
Date: Thu, 14 Feb 2019 00:04:13 +0300
Subject: [PATCH 2/3] Remove bashisms from the UEFI entries generator
......@@ -7,10 +6,13 @@ Subject: [PATCH 2/3] Remove bashisms from the UEFI entries generator
- Use shell lists instead of arrays
Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
Signed-off-by: Frederic Dalleau <frederic.dalleau@collabora.com>
---
src/kernel-install/90-loaderentry.install | 55 ++++++++++++-----------
1 file changed, 29 insertions(+), 26 deletions(-)
src/kernel-install/90-loaderentry.install | 81 ++++++++++++++++++-------------
1 file changed, 47 insertions(+), 34 deletions(-)
diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install
index 75dd5a1..c7d0ac4 100644
--- a/src/kernel-install/90-loaderentry.install
+++ b/src/kernel-install/90-loaderentry.install
@@ -1,4 +1,4 @@
......@@ -19,9 +21,12 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
@@ -8,66 +8,69 @@
@@ -6,68 +6,71 @@ COMMAND="$1"
KERNEL_VERSION="$2"
BOOT_DIR_ABS="$3"
KERNEL_IMAGE="$4"
INITRD_OPTIONS_START="5"
-INITRD_OPTIONS_START="5"
+INITRD_OPTIONS_SHIFT="4"
-if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
- exit 0
......@@ -112,16 +117,54 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
echo "/etc/kernel/tries does not contain an integer." >&2
exit 1
fi
@@ -110,10 +113,10 @@
@@ -83,11 +86,20 @@ cp "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" &&
exit 1
}
-INITRD_OPTIONS=( "${@:${INITRD_OPTIONS_START}}" )
+shift $INITRD_OPTIONS_SHIFT
+INITRD_OPTIONS=""
+while [ $# -gt 0 ] ; do
+ if [ -z "$INITRD_OPTIONS" ] ; then
+ INITRD_OPTIONS="$1"
+ else
+ INITRD_OPTIONS="$INITRD_OPTIONS\n$1"
+ fi
+ shift
+done
-for initrd in "${INITRD_OPTIONS[@]}"; do
- if [[ -f "${initrd}" ]]; then
- initrd_basename="$(basename ${initrd})"
+echo "${INITRD_OPTIONS}" | while read initrd; do
+ if [ -f "${initrd}" ]; then
+ initrd_basename=$(basename "${initrd}")
cp "${initrd}" "$BOOT_DIR_ABS/${initrd_basename}" &&
chown root:root "$BOOT_DIR_ABS/${initrd_basename}" &&
chmod 0644 "$BOOT_DIR_ABS/${initrd_basename}" || {
@@ -99,7 +111,7 @@ done
# If no initrd option is supplied, fallback to "initrd" which is
# the name used by dracut when generating it in its kernel-install hook
-[[ ${#INITRD_OPTIONS[@]} == 0 ]] && INITRD_OPTIONS=( initrd )
+[ -z "${INITRD_OPTIONS}" ] && INITRD_OPTIONS=initrd
mkdir -p "${LOADER_ENTRY%/*}" || {
echo "Could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2
@@ -110,11 +122,12 @@ mkdir -p "${LOADER_ENTRY%/*}" || {
echo "title $PRETTY_NAME"
echo "version $KERNEL_VERSION"
echo "machine-id $MACHINE_ID"
- echo "options ${BOOT_OPTIONS[*]}"
+ echo "options $BOOT_OPTIONS"
echo "linux $BOOT_DIR/linux"
for initrd in "${INITRD_OPTIONS[@]}"; do
- for initrd in "${INITRD_OPTIONS[@]}"; do
- [[ -f $BOOT_DIR_ABS/$(basename ${initrd}) ]] && \
+ [ -f $BOOT_DIR_ABS/$(basename ${initrd}) ] && \
echo "initrd $BOOT_DIR/$(basename ${initrd})"
- echo "initrd $BOOT_DIR/$(basename ${initrd})"
+ echo "${INITRD_OPTIONS}" | while read initrd; do
+ initrd_basename=$(basename "${initrd}")
+ [ -f "$BOOT_DIR_ABS/${initrd_basename}" ] && \
+ echo "initrd $BOOT_DIR/${initrd_basename}"
done
:
} > "$LOADER_ENTRY" || {
From 846fbb18270c33ebe4c11c32ea65ab0d6a114fbf Mon Sep 17 00:00:00 2001
From: Denis Pynkin <denis.pynkin@collabora.com>
Date: Thu, 14 Feb 2019 00:46:48 +0300
Subject: [PATCH 3/3] Reworked kernel-install script
......@@ -12,10 +11,16 @@ Subject: [PATCH 3/3] Reworked kernel-install script
to force it to run last during the kernel installing or removing.
Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
Signed-off-by: Frederic Dalleau <frederic.dalleau@collabora.com>
---
src/kernel-install/kernel-install | 77 ++++++++++++++++---------------
1 file changed, 41 insertions(+), 36 deletions(-)
src/kernel-install/kernel-install | 100 ++++++++++++++++++++++----------------
1 file changed, 57 insertions(+), 43 deletions(-)
mode change 100644 => 100755 src/kernel-install/kernel-install
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install
old mode 100644
new mode 100755
index b85c7c5..3ca2071
--- a/src/kernel-install/kernel-install
+++ b/src/kernel-install/kernel-install
@@ -1,4 +1,4 @@
......@@ -24,7 +29,7 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
# SPDX-License-Identifier: LGPL-2.1+
@@ -31,22 +31,18 @@
@@ -31,22 +31,18 @@ usage()
dropindirs_sort()
{
local suffix=$1; shift
......@@ -56,7 +61,7 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
echo "$d/$f"
continue 2
fi
@@ -57,42 +53,46 @@
@@ -57,42 +53,58 @@ dropindirs_sort()
export LC_COLLATE=C
for i in "$@"; do
......@@ -68,21 +73,36 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
done
-if [[ "${0##*/}" == 'installkernel' ]]; then
+INITRD_OPTIONS=""
+if [ "${0%installkernel}" != "${0}" ]; then
COMMAND='add'
- # make install doesn't pass any parameter wrt initrd handling
- INITRD_OPTIONS=()
+ KERNEL_VERSION="$1"
+ KERNEL_IMAGE="$2"
+elif [ "${0%removekernel}" != "${0}" ]; then
+ COMMAND='remove'
+ KERNEL_VERSION="$1"
+ KERNEL_IMAGE="$2"
else
COMMAND="$1"
+ KERNEL_VERSION="$2"
+ KERNEL_IMAGE="$3"
shift
- INITRD_OPTIONS=( "${@:3}" )
+ while [ $# -gt 2 ] ; do
+ if [ -z "$INITRD_OPTIONS" ] ; then
+ INITRD_OPTIONS="$3"
+ else
+ INITRD_OPTIONS="$INITRD_OPTIONS\n$3"
+ fi
+ shift
+ done
fi
KERNEL_VERSION="$1"
KERNEL_IMAGE="$2"
-KERNEL_VERSION="$1"
-KERNEL_IMAGE="$2"
-
-if [[ -f /etc/machine-id ]]; then
+if [ -f /etc/machine-id ]; then
read MACHINE_ID < /etc/machine-id
......@@ -114,7 +134,7 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
BOOT_DIR_ABS="/boot/efi/$MACHINE_ID/$KERNEL_VERSION"
elif mountpoint -q /efi; then
BOOT_DIR_ABS="/efi/$MACHINE_ID/$KERNEL_VERSION"
@@ -106,15 +106,16 @@
@@ -106,15 +118,16 @@ export KERNEL_INSTALL_MACHINE_ID=$MACHINE_ID
ret=0
......@@ -134,15 +154,16 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
echo "Command 'add' requires an argument" >&2
exit 1
fi
@@ -124,42 +125,42 @@
@@ -124,42 +137,42 @@ case $COMMAND in
exit 1
}
- for f in "${PLUGINS[@]}"; do
- if [[ -x $f ]]; then
- "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "${INITRD_OPTIONS[@]}"
+ plugins_list | while read f; do
+ if [ -x "$f" ]; then
"$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "${INITRD_OPTIONS[@]}"
+ "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" "${INITRD_OPTIONS}"
x=$?
- if [[ $x == $SKIP_REMAINING ]]; then
+ if [ $x = $SKIP_REMAINING ]; then
......@@ -188,7 +209,7 @@ Signed-off-by: Denis Pynkin <denis.pynkin@collabora.com>
;;
*)
@@ -169,3 +170,4 @@
@@ -169,3 +182,4 @@ case $COMMAND in
esac
exit $ret
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment