From 0ad401dc5db9fe66e2b967ce0a00a117fc0e35d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Tue, 16 Mar 2021 16:08:34 +0100 Subject: [PATCH 1/2] kernel-install/90-loaderentry: use install(1) instead of cp/chown/chmod chains Also fix typo in error message --- src/kernel-install/90-loaderentry.install | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install index 75218d0dee..9f0d61cb77 100644 --- a/src/kernel-install/90-loaderentry.install +++ b/src/kernel-install/90-loaderentry.install @@ -92,12 +92,10 @@ else LOADER_ENTRY="$BOOT_ROOT/loader/entries/$MACHINE_ID-$KERNEL_VERSION.conf" fi -cp "$KERNEL_IMAGE" "$ENTRY_DIR_ABS/linux" && - chown root:root "$ENTRY_DIR_ABS/linux" && - chmod 0644 "$ENTRY_DIR_ABS/linux" || { - echo "Could not copy '$KERNEL_IMAGE to '$ENTRY_DIR_ABS/linux'." >&2 - exit 1 - } +install -g root -o root -m 0644 "$KERNEL_IMAGE" "$ENTRY_DIR_ABS/linux" || { + echo "Could not copy '$KERNEL_IMAGE' to '$ENTRY_DIR_ABS/linux'." >&2 + exit 1 +} INITRD_OPTIONS=( "${@:${INITRD_OPTIONS_START}}" ) @@ -106,12 +104,10 @@ for initrd in "${INITRD_OPTIONS[@]}"; do initrd_basename="$(basename ${initrd})" [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \ echo "Installing $ENTRY_DIR_ABS/${initrd_basename}" - cp "${initrd}" "$ENTRY_DIR_ABS/${initrd_basename}" && - chown root:root "$ENTRY_DIR_ABS/${initrd_basename}" && - chmod 0644 "$ENTRY_DIR_ABS/${initrd_basename}" || { - echo "Could not copy '${initrd}' to '$ENTRY_DIR_ABS/${initrd_basename}'." >&2 - exit 1 - } + install -g root -o root -m 0644 "${initrd}" "$ENTRY_DIR_ABS/${initrd_basename}" || { + echo "Could not copy '${initrd}' to '$ENTRY_DIR_ABS/${initrd_basename}'." >&2 + exit 1 + } fi done From 44230fa2b050d63fce49b4bfbbb93c42940754cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Tue, 16 Mar 2021 16:59:07 +0100 Subject: [PATCH 2/2] kernel-install: don't erase previous errors if a hook returns 77 The manpage says that exiting 77 is the same as exiting 0, then skipping all other hooks, but the behaviour heretofor was to exit 0, skip all, and behave as if all hooks exited 0 --- src/kernel-install/kernel-install | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install index e7457e9d06..c9a80b2e3d 100755 --- a/src/kernel-install/kernel-install +++ b/src/kernel-install/kernel-install @@ -142,7 +142,6 @@ case $COMMAND in "$f" add "$KERNEL_VERSION" "$ENTRY_DIR_ABS" "$KERNEL_IMAGE" "${INITRD_OPTIONS[@]}" x=$? if [[ $x == $SKIP_REMAINING ]]; then - ret=0 break fi ((ret+=$x)) @@ -158,7 +157,6 @@ case $COMMAND in "$f" remove "$KERNEL_VERSION" "$ENTRY_DIR_ABS" x=$? if [[ $x == $SKIP_REMAINING ]]; then - ret=0 break fi ((ret+=$x))