[OpenWrt-Devel] [PATCH] base-files: execute package prerm script in a subshell

Philip Prindeville philipp_subx at redfish-solutions.com
Thu Aug 23 21:30:25 EDT 2018


LGTM


> On Aug 23, 2018, at 6:21 PM, Luis Araneda <luaraneda at gmail.com> wrote:
> 
> This fixes a problem that's causing an early return of
> default_prerm() when the package prerm script has an
> exit statement at the end, which is implemented as
> "exit 0" by most of the packages that use prerm
> 
> With the new behavior, the execution of default_prerm()
> will continue only if the prerm script returns 0,
> otherwise the function will return the error code
> 
> Additionally, this makes the execution consistent with
> the postinst script
> 
> Signed-off-by: Luis Araneda <luaraneda at gmail.com>
> ---
> Compile and run tested on ipq40xx
> 
> ---
> package/base-files/files/lib/functions.sh | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
> index 318e91856b..579aa93dca 100755
> --- a/package/base-files/files/lib/functions.sh
> +++ b/package/base-files/files/lib/functions.sh
> @@ -153,9 +153,14 @@ config_list_foreach() {
> default_prerm() {
> 	local root="${IPKG_INSTROOT}"
> 	local name
> +	local ret
> 
> 	name=$(basename ${1%.*})
> -	[ -f "$root/usr/lib/opkg/info/${name}.prerm-pkg" ] && . "$root/usr/lib/opkg/info/${name}.prerm-pkg"
> +	if [ -f "$root/usr/lib/opkg/info/${name}.prerm-pkg" ]; then
> +		( . "$root/usr/lib/opkg/info/${name}.prerm-pkg" )
> +		ret=$?
> +		[ $ret -ne 0 ] && return $ret
> +	fi
> 
> 	local shell="$(which bash)"
> 	for i in `cat "$root/usr/lib/opkg/info/${name}.list" | grep "^/etc/init.d/"`; do
> -- 
> 2.18.0
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel


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



More information about the openwrt-devel mailing list