[Pkg-raspi-maintainers] Bug#887062: Bug#887062: raspi3-firmware: postinst fails, makes bad assumption about existence of /boot/firmware/
Michael Stapelberg
stapelberg at debian.org
Thu Jan 18 22:08:18 UTC 2018
Thanks for the additional details.
Given that the package’s only purpose is to populate /boot/firmware, may I
ask why it’s being installed in your builds at all? I’d like to understand
the use-case before adding code to deal with it.
On Mon, Jan 15, 2018 at 12:42 PM, Raphael Hertzog <hertzog at debian.org>
wrote:
> On Sat, 13 Jan 2018, Michael Stapelberg wrote:
> > The only change that seems in any way related to me is
> > https://anonscm.debian.org/cgit/pkg-raspi/raspi3-
> firmware.git/commit/?id=c977f0210ab5c577b9d5296e4e4391225a7f85ca
>
> This change is not the cause of the regression. The package fails at
> initial installation, not on upgrade. I have added "set -x" and I get
> this:
>
> # dpkg --configure raspi3-firmware
> Setting up raspi3-firmware (1.20171201-2) ...
> + ischroot
> + basename /usr/lib/raspi3-firmware/bootcode.bin
> + file=bootcode.bin
> + cp /usr/lib/raspi3-firmware/bootcode.bin /boot/firmware/bootcode.bin
> cp: cannot create regular file '/boot/firmware/bootcode.bin': No such file
> or directory
> dpkg: error processing package raspi3-firmware (--configure):
> installed raspi3-firmware package post-installation script subprocess
> returned error exit status 1
> Errors were encountered while processing:
> raspi3-firmware
>
> I wonder how it worked before. Maybe the package shipped /boot/firmware or
> another package supplied that directory and it now fails because no
> package is creating it.
>
> In any case, you should probably not attempt to copy the files there if the
> directory is not existing.
>
> Something like this:
>
> --- /tmp/postinst 2018-01-15 11:35:43.223477268 +0000
> +++ /var/lib/dpkg/info/raspi3-firmware.postinst 2018-01-15
> 11:40:31.818918341 +0000
> @@ -13,19 +13,23 @@
> fi
> fi
>
> - for file in /usr/lib/raspi3-firmware/*
> - do
> - file=$( basename "$file" )
> - cp "/usr/lib/raspi3-firmware/$file" "/boot/firmware/$file"
> - # sync might fail when running under qemu, which, as of version 2.7,
> - # has not implemented the syncfs syscall.
> - sync -f "/boot/firmware/$file" || true
> - done
> + if [ -d /boot/firmware ]; then
> + for file in /usr/lib/raspi3-firmware/*
> + do
> + file=$( basename "$file" )
> + cp "/usr/lib/raspi3-firmware/$file" "/boot/firmware/$file"
> + # sync might fail when running under qemu, which, as of version
> 2.7,
> + # has not implemented the syncfs syscall.
> + sync -f "/boot/firmware/$file" || true
> + done
>
> - # Manually trigger the kernel postinst hook when raspi3-firmware is
> first
> - # installed (or upgraded), as the kernel package might already be
> installed
> - # (or not upgraded) and hence the hook would not get triggered
> otherwise.
> - DEB_MAINT_PARAMS="configure" /etc/kernel/postinst.d/raspi3-firmware
> + # Manually trigger the kernel postinst hook when raspi3-firmware
> is first
> + # installed (or upgraded), as the kernel package might already be
> installed
> + # (or not upgraded) and hence the hook would not get triggered
> otherwise.
> + DEB_MAINT_PARAMS="configure" /etc/kernel/postinst.d/raspi3-
> firmware
> + else
> + echo "Warning: not copying firmwares as /boot/firmware does not
> exist." >&2
> + fi
> ;;
> esac
>
> Cheers,
> --
> Raphaël Hertzog ◈ Debian Developer
>
> Support Debian LTS: https://www.freexian.com/services/debian-lts.html
> Learn to master Debian: https://debian-handbook.info/get/
>
--
Best regards,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-raspi-maintainers/attachments/20180118/e0a6970e/attachment-0001.html>
More information about the Pkg-raspi-maintainers
mailing list