From 14f83d5c6f98a93b7cce1d0a90b24aa9908ea57e Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Tue, 23 Jan 2024 07:16:59 +0100 Subject: [PATCH] compressFirmwareXz: fix links to directories Only add the `.xz` suffix to links if link target is a regular file. This breaks if the target is a directory. Fixes #283005. --- pkgs/build-support/kernel/compress-firmware-xz.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/kernel/compress-firmware-xz.nix b/pkgs/build-support/kernel/compress-firmware-xz.nix index cfb06a5c0f15..a69b31bb3bd0 100644 --- a/pkgs/build-support/kernel/compress-firmware-xz.nix +++ b/pkgs/build-support/kernel/compress-firmware-xz.nix @@ -15,6 +15,10 @@ runCommand "${firmware.name}-xz" args '' sh -c 'xz -9c -T1 -C crc32 --lzma2=dict=2MiB "${firmware}/$1" > "$1.xz"' --) (cd ${firmware} && find lib/firmware -type l) | while read link; do target="$(readlink "${firmware}/$link")" - ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz" + if [ -f $target ]; then + ln -vs -- "''${target/^${firmware}/$out}.xz" "$out/$link.xz" + else + ln -vs -- "''${target/^${firmware}/$out}" "$out/$link" + fi done ''