diff --git a/debian/patches/apertis/0002-Remove-bashisms-from-the-UEFI-entries-generator.patch b/debian/patches/apertis/0002-Remove-bashisms-from-the-UEFI-entries-generator.patch index b0a37720127ad1cf57d6f26bb142c42fb91f6844..2be4343c79caaaa8a4749203b37de77714a44b74 100644 --- a/debian/patches/apertis/0002-Remove-bashisms-from-the-UEFI-entries-generator.patch +++ b/debian/patches/apertis/0002-Remove-bashisms-from-the-UEFI-entries-generator.patch @@ -1,4 +1,3 @@ -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" || { diff --git a/debian/patches/apertis/0003-Reworked-kernel-install-script.patch b/debian/patches/apertis/0003-Reworked-kernel-install-script.patch index ffff6a72ffcdec1e959ef691bdb88b36d5e993b7..feec6869b32582e0fe055d28f9a4be58db491383 100644 --- a/debian/patches/apertis/0003-Reworked-kernel-install-script.patch +++ b/debian/patches/apertis/0003-Reworked-kernel-install-script.patch @@ -1,4 +1,3 @@ -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