[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#781742: upgrade-reports: armel wheezy->jessie on QNAP: flash-kernel error in dist-upgrade and various glitches but mostly successful



(CC initramfs-tools@packages, context is flash-kernel invocation not
being deferred via triggers during upgrade and ultimately running
several times in a dist-upgrade)

On Sat, 2015-04-04 at 10:49 +0100, Ian Campbell wrote:
> At first glance it seems like invocations via the initramfs-tools hooks
> are not being deferred.

This is because initramfs-tools.postinst contains:
        # Regenerate initramfs whenever we go to dpkg state `installed'
        if [ "x$1" != xtriggered ]; then
                # this activates the trigger, if triggers are working
                update-initramfs -u
        else
                # force it to actually happen
                DPKG_MAINTSCRIPT_PACKAGE='' update-initramfs -u
        fi

and flash-kernel uses [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ] when deciding
to defer to a trigger. So the invocations of flash-kernel
via /etc/initramfs/post-update.d/flash-kernel end up never being
deferred.

I don't think initramfs-tools is wrong to do this per-se, but it does
mean that anything hooked off the post-update.d hooks cannot reliably
use triggers (dpkg-trigger uses $DPKG_MAINTSCRIPT_PACKAGE itself).

flash-kernel itself does something similar, but instead of manipulating
DPKG_MAINTSCRIPT_PACKAGE it instead sets FLASH_KERNEL_NOTRIGGER=1 and
keys off that.

It seems like the best solution would a patch to switch initramfs-tools
to a similar scheme, would such a patch be accepted?

If not then I will arrange for /etc/initramfs/post-update.d/flash-kernel
to signal to f-k somehow that triggers should be used despite the lack
of DPKG_MAINTSCRIPT_PACKAGE.

Ian.


Reply to: