diff options
| author | Mario Andrés Pérez | 2025-06-12 13:49:59 +0000 |
|---|---|---|
| committer | Robert Marko | 2025-06-23 07:39:12 +0000 |
| commit | 47b6b9de1a6c37b877be250fdd759a64337c9ecc (patch) | |
| tree | 6f243664fc4dc2fd8e102c0319a962592cca9575 | |
| parent | fccd1dd0aec027dc31cef0233225ea56a507fb64 (diff) | |
| download | openwrt-47b6b9de1a6c37b877be250fdd759a64337c9ecc.tar.gz | |
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 <ericfahlgren@gmail.com>
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19093
Signed-off-by: Robert Marko <robimarko@gmail.com>
| -rw-r--r-- | package/base-files/files/lib/functions.sh | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index e944d36505..18bf79251d 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 |