Package: flash-kernel Version: 3.52 Tags: patch When you run flash-kernel with a specific version number, it will simply ignore the version number if there's a higher version unless you use --force. I think flash-kernel should at least print a warning in this case.
tbm@debian:~$ sudo flash-kernel 4.2.0-1-kirkwood [sudo] password for tbm: kirkwood-qnap: machine: QNAP TS219 family DTB: kirkwood-ts219-6281.dtb Installing kirkwood-ts219-6281.dtb into /boot/dtbs/4.2.0-1-kirkwood/kirkwood-ts219-6281.dtb Taking backup of kirkwood-ts219-6281.dtb. Installing new kirkwood-ts219-6281.dtb. Installing kirkwood-ts219-6281.dtb into /boot/dtbs/4.4.0-rc4-kirkwood/kirkwood-ts219-6281.dtb Taking backup of kirkwood-ts219-6281.dtb. Installing new kirkwood-ts219-6281.dtb. flash-kernel: installing version 4.4.0-rc4-kirkwood flash-kernel: appending /usr/lib/linux-image-4.4.0-rc4-kirkwood/kirkwood-ts219-6281.dtb to kernel When I tried to add a warning, I noticed that there's some similar code, so I combined it into one block. (Note that I dropped the -n "$kvers" check since there's a comparison between $kvers and $latest_version anyway, but maybe that's wrong). The only remaining problem is that it installs the .dtb of the old kernel before changing the kernel version and installing the new .dtb. I'm not familiar with the code so I'm not sure if we can move the first handle_dtb call down or the version change up. Anyway, with this patch you get: root@debian:/home/tbm# flash-kernel 4.2.0-1-kirkwood kirkwood-qnap: machine: QNAP TS219 family DTB: kirkwood-ts219-6281.dtb Installing kirkwood-ts219-6281.dtb into /boot/dtbs/4.2.0-1-kirkwood/kirkwood-ts219-6281.dtb Taking backup of kirkwood-ts219-6281.dtb. Installing new kirkwood-ts219-6281.dtb. Ignoring old or unknown version 4.2.0-1-kirkwood (latest is 4.4.0-rc4-kirkwood) Use --force if you want version 4.2.0-1-kirkwood. Installing kirkwood-ts219-6281.dtb into /boot/dtbs/4.4.0-rc4-kirkwood/kirkwood-ts219-6281.dtb Taking backup of kirkwood-ts219-6281.dtb. Installing new kirkwood-ts219-6281.dtb. -- Martin Michlmayr http://www.cyrius.com/
diff --git a/functions b/functions index 5829d51..b6713b5 100644 --- a/functions +++ b/functions @@ -637,10 +637,6 @@ if [ -n "$kvers" ] ; then fi latest_version=$(linux-version list | linux-version sort | tail -1) -if [ -n "$kvers" ] && [ "x$force" != "xyes" ] && [ "$kvers" != "$latest_version" ] && [ "$FK_KERNEL_HOOK_SCRIPT" = "postinst.d" ]; then - echo "Ignoring old or unknown version $kvers (latest is $latest_version)" >&2 - exit 0 -fi if [ -n "$kvers" ] && [ "$FK_KERNEL_HOOK_SCRIPT" = "postrm.d" ]; then echo "flash-kernel: Kernel ${kvers} has been removed." >&2 @@ -663,6 +659,11 @@ if [ "$kvers" != "$latest_version" ] && [ "x$force" = "xyes" ]; then echo "flash-kernel: forcing install of ${kvers} instead of ${latest_version}." >&2 echo "flash-kernel: WARNING: Installing any new kernel package might override this." >&2 else + echo "Ignoring old or unknown version $kvers (latest is $latest_version)" >&2 + if [ "$FK_KERNEL_HOOK_SCRIPT" = "postinst.d" ]; then + exit 0 + fi + echo "Use --force if you want version $kvers." >&2 kvers="$latest_version" # Make sure we install the DTB for $latest_version handle_dtb