[PATCH] uhttpd: uhttpd-mod-ubus: reload uhttpd only if it's runtime install

Rafał Miłecki zajec5 at gmail.com
Wed Jan 10 08:06:03 PST 2024


On 26.11.2023 21:47, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal at milecki.pl>
> 
> Reloading service from uci-defaults script is a hack to workaround
> postinst limitation. It should not be executed during boot as other
> uci-defaults scripts may want to adjust uhttpd's config too.
> 
> Cc: Hauke Mehrtens <hauke at hauke-m.de>
> Fixes: d25d281fd668 ("uhttpd: Reload config after uhttpd-mod-ubus was added")
> Signed-off-by: Rafał Miłecki <rafal at milecki.pl>

PATCH obsoleted by
[PATCH] uhttpd: handle reload after uhttpd-mod-ubus installation using postinst
https://patchwork.ozlabs.org/project/openwrt/patch/20231227152045.18336-1-zajec5@gmail.com/


> ---
>   package/network/services/uhttpd/Makefile           |  2 +-
>   package/network/services/uhttpd/files/ubus.default | 13 ++++++++++++-
>   2 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/package/network/services/uhttpd/Makefile b/package/network/services/uhttpd/Makefile
> index 02a02405fd..9405070626 100644
> --- a/package/network/services/uhttpd/Makefile
> +++ b/package/network/services/uhttpd/Makefile
> @@ -8,7 +8,7 @@
>   include $(TOPDIR)/rules.mk
>   
>   PKG_NAME:=uhttpd
> -PKG_RELEASE:=1
> +PKG_RELEASE:=2
>   
>   PKG_SOURCE_PROTO:=git
>   PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
> diff --git a/package/network/services/uhttpd/files/ubus.default b/package/network/services/uhttpd/files/ubus.default
> index 474016c1c5..e2240a1018 100644
> --- a/package/network/services/uhttpd/files/ubus.default
> +++ b/package/network/services/uhttpd/files/ubus.default
> @@ -12,6 +12,17 @@ fi
>   	commit=1
>   }
>   
> -[ "$commit" = 1 ] && uci commit uhttpd && /etc/init.d/uhttpd reload
> +# Normally (when executing this script during boot) we want to adjust config
> +# only. Actual uhttpd start will happen later.
> +#
> +# If this is package installation in a running system however then we need to
> +# reload uhttpd to make ubus access work right after. Ideally this should be
> +# handled by a "postinst" script but those get executed *before* uci-defaults
> +# scripts. For that reason we abuse uci-defaults to call init.d script.
> +#
> +# Check for $PKG_ROOT to detect "opkg install" case in a running system.
> +if [ -n "$PKG_ROOT" ]; then
> +	[ "$commit" = 1 ] && uci commit uhttpd && /etc/init.d/uhttpd reload
> +fi
>   
>   exit 0




More information about the openwrt-devel mailing list