From: Mario Andrés Pérez Date: Thu, 12 Jun 2025 13:49:59 +0000 (+0200) Subject: base-files: handle packages alternatives when apk removes packages X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F19093%2Fhead;p=thirdparty%2Fopenwrt.git base-files: handle packages alternatives when apk removes packages On commit 3010ab8 ("base-files: add update_alternatives function") was implemented the function to handle ALTERNATIVES when using APK (OPKG handle it internally) but in commit bcc6415 ("base-files: add compatibility for APK and OPKG") was only called when adding a package, so call it also when removing packages. While we are here, check for a more specific *.alternatives files instead of *.list, and remove redundant "filelist" variable definition. Fixes: bcc6415 ("base-files: add compatibility for APK and OPKG") Fixes: https://github.com/openwrt/openwrt/issues/19090 Fixes: https://github.com/openwrt/openwrt/issues/16991 Reported-and-tested-by: Eric Fahlgren Signed-off-by: Mario Andrés Pérez Link: https://github.com/openwrt/openwrt/pull/19093 Signed-off-by: Robert Marko --- diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index e944d365056..18bf79251d2 100644 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -216,6 +216,10 @@ default_prerm() { local filelist="${root}/usr/lib/opkg/info/${pkgname}.list" [ -f "$root/lib/apk/packages/${pkgname}.list" ] && filelist="$root/lib/apk/packages/${pkgname}.list" + if [ -e "$root/lib/apk/packages/${pkgname}.alternatives" ]; then + update_alternatives remove "${pkgname}" + fi + if [ -f "$root/usr/lib/opkg/info/${pkgname}.prerm-pkg" ]; then ( . "$root/usr/lib/opkg/info/${pkgname}.prerm-pkg" ) ret=$? @@ -352,8 +356,7 @@ default_postinst() { add_group_and_user "${pkgname}" fi - if [ -e "${root}/lib/apk/packages/${pkgname}.list" ]; then - filelist="${root}/lib/apk/packages/${pkgname}.list" + if [ -e "${root}/lib/apk/packages/${pkgname}.alternatives" ]; then update_alternatives install "${pkgname}" fi