Using the postinst script for sanity checks and expecting opkg to fail
if the postinst didn't return 0 was possible in Barrier Breaker, propagate
the real postinst return code through default_postinst to restore this
behaviour.

Signed-off-by: Matthias Schiffer <mschif...@universe-factory.net>

Backport of r46653
---
 package/base-files/files/lib/functions.sh | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/package/base-files/files/lib/functions.sh 
b/package/base-files/files/lib/functions.sh
index 8d045fa..2f78d67 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -174,7 +174,8 @@ default_prerm() {
 }
 
 default_postinst() {
-       local pkgname rusers
+       local pkgname rusers ret
+       ret=0
        pkgname=$(basename ${1%.*})
        rusers=$(grep "Require-User:" 
${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.control)
        [ -n "$rusers" ] && {
@@ -215,7 +216,10 @@ default_postinst() {
                done
        }
 
-       [ -f ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg ] && ( 
. ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg )
+       if [ -f ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg ]; 
then
+               ( . ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.postinst-pkg )
+               ret=$?
+       fi
        [ -n "${IPKG_INSTROOT}" ] || rm -f /tmp/luci-indexcache 2>/dev/null
 
        [ "$PKG_UPGRADE" = "1" ] || for i in `cat 
${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.list | grep "^/etc/init.d/"`; do
@@ -225,7 +229,7 @@ default_postinst() {
                        $i start
                }
        done
-       return 0
+       return $ret
 }
 
 include() {
-- 
2.7.2
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to