Previously the auto_installed flag was cleared and the user flag was
set whenever a package is upgraded. This prevented upgraded dependent
packages from being removed with e.g. --autoremove.

This patch preserves the auto_installed and user flags when a package
is upgraded enabling dependent packages to be identified as such after
upgrade.

Signed-off-by: Justin Klaassen <jus...@tidylabs.app>
---
 libopkg/opkg_upgrade.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libopkg/opkg_upgrade.c b/libopkg/opkg_upgrade.c
index 2112674..b27faa4 100644
--- a/libopkg/opkg_upgrade.c
+++ b/libopkg/opkg_upgrade.c
@@ -74,7 +74,8 @@ int opkg_upgrade_pkg(pkg_t * old)

  free(old_version);
  free(new_version);
- new->state_flag |= SF_USER;
+ new->auto_installed = old->auto_installed;
+ new->state_flag |= old->state_flag & SF_USER;
  return opkg_install_pkg(new, 1);
 }

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

Reply via email to