rootfs: fail on errors in postinst scripts
authorMatthias Schiffer <mschiffer@universe-factory.net>
Mon, 26 Sep 2016 13:25:38 +0000 (15:25 +0200)
committerMatthias Schiffer <mschiffer@universe-factory.net>
Mon, 26 Sep 2016 15:57:58 +0000 (17:57 +0200)
The Gluon firmware framework [1] uses postinst scripts for sanity checks.
Make the build fail when a postinst script exits with an error to make
these sanity checks effective.

All postinst scripts in packages from the LEDE core and the packages feed
seem to work correctly with this change and will always return 0 unless
something is very broken.

[1] https://github.com/freifunk-gluon/gluon

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
include/rootfs.mk

index 15f71ae0dfbf77f0571977950e2eef857fcf897b..b1617215a3ecfc1f380c8aad46c76022545fccc3 100644 (file)
@@ -60,6 +60,11 @@ define prepare_rootfs
                cd $(1); \
                for script in ./usr/lib/opkg/info/*.postinst; do \
                        IPKG_INSTROOT=$(1) $$(which bash) $$script; \
+                       ret=$$?; \
+                       if [ $$ret -ne 0 ]; then \
+                               echo "postinst script $$script has failed with exit code $$ret" >&2; \
+                               exit 1; \
+                       fi; \
                done; \
                for script in ./etc/init.d/*; do \
                        grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \