From 47b6b9de1a6c37b877be250fdd759a64337c9ecc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mario=20Andr=C3=A9s=20P=C3=A9rez?= Date: Thu, 12 Jun 2025 15:49:59 +0200 Subject: [PATCH] base-files: handle packages alternatives when apk removes packages MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- package/base-files/files/lib/functions.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 -- 2.47.2