This is mainly for kmod-br-netfilter.  To turn off
bridge-netfilter-call-xxx immediately after installation

While at it

 - Define filelist="/usr/lib/opkg/info/${pkgname}.list"
 - Reuse "[ -z "$root" ]"
 - Grep with "-m1"

Fixes FS#2300

Reported-by: Marco Sartorius <tidb...@ormoorgmen.info>
Signed-off-by: Yousong Zhou <yszhou4t...@gmail.com>
---
 package/base-files/Makefile               |  2 +-
 package/base-files/files/lib/functions.sh | 33 ++++++++++++++---------
 2 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 91d677acb3..a6dee5aa5a 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
 include $(INCLUDE_DIR)/feeds.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=198
+PKG_RELEASE:=199
 PKG_FLAGS:=nonshared
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
diff --git a/package/base-files/files/lib/functions.sh 
b/package/base-files/files/lib/functions.sh
index edce75e8ff..59ef693db0 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -213,6 +213,7 @@ add_group_and_user() {
 default_postinst() {
        local root="${IPKG_INSTROOT}"
        local pkgname="$(basename ${1%.*})"
+       local filelist="/usr/lib/opkg/info/${pkgname}.list"
        local ret=0
 
        add_group_and_user "${pkgname}"
@@ -227,23 +228,29 @@ default_postinst() {
                rm -fR $root/rootfs-overlay/
        fi
 
-       if [ -z "$root" ] && grep -q -s "^/etc/modules.d/" 
"/usr/lib/opkg/info/${pkgname}.list"; then
-               kmodloader
-       fi
+       if [ -z "$root" ]; then
+               if grep -m1 -q -s "^/etc/modules.d/" "$filelist"; then
+                       kmodloader
+               fi
 
-       if [ -z "$root" ] && grep -q -s "^/etc/uci-defaults/" 
"/usr/lib/opkg/info/${pkgname}.list"; then
-               . /lib/functions/system.sh
-               [ -d /tmp/.uci ] || mkdir -p /tmp/.uci
-               for i in $(grep -s "^/etc/uci-defaults/" 
"/usr/lib/opkg/info/${pkgname}.list"); do
-                       ( [ -f "$i" ] && cd "$(dirname $i)" && . "$i" ) && rm 
-f "$i"
-               done
-               uci commit
-       fi
+               if grep -m1 -q -s "^/etc/sysctl.d/" "$filelist"; then
+                       /etc/init.d/sysctl restart
+               fi
 
-       [ -n "$root" ] || rm -f /tmp/luci-indexcache 2>/dev/null
+               if grep -m1 -q -s "^/etc/uci-defaults/" "$filelist"; then
+                       . /lib/functions/system.sh
+                       [ -d /tmp/.uci ] || mkdir -p /tmp/.uci
+                       for i in $(grep -s "^/etc/uci-defaults/" "$filelist"); 
do
+                               ( [ -f "$i" ] && cd "$(dirname $i)" && . "$i" ) 
&& rm -f "$i"
+                       done
+                       uci commit
+               fi
+
+               rm -f /tmp/luci-indexcache 2>/dev/null
+       fi
 
        local shell="$(which bash)"
-       for i in $(grep -s "^/etc/init.d/" 
"$root/usr/lib/opkg/info/${pkgname}.list"); do
+       for i in $(grep -s "^/etc/init.d/" "$root$filelist"); do
                if [ -n "$root" ]; then
                        ${shell:-/bin/sh} "$root/etc/rc.common" "$root$i" enable
                else

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to