openwrt/package/system/opkg/patches/110-upgrade.patch
John Crispin ac09fd9a13 opkg: make PKG_UPGRADE available during preinst hook
https://dev.openwrt.org/ticket/18479

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43581
2014-12-08 17:40:53 +00:00

50 lines
1.3 KiB
Diff

--- a/libopkg/opkg_install.c
+++ b/libopkg/opkg_install.c
@@ -1405,9 +1405,10 @@
opkg_state_changed++;
pkg->state_flag |= SF_FILELIST_CHANGED;
- if (old_pkg)
+ if (old_pkg) {
pkg_remove_orphan_dependent(pkg, old_pkg);
-
+ pkg->is_upgrade = 1;
+ }
/* XXX: BUG: we really should treat replacement more like an upgrade
* Instead, we're going to remove the replacees
*/
@@ -1466,7 +1467,7 @@
}
- opkg_msg(INFO, "Installing maintainer scripts.\n");
+ opkg_msg(INFO, "%s maintainer scripts.\n", (pkg->is_upgrade) ? ("Upgrading") : ("Installing"));
if (install_maintainer_scripts(pkg, old_pkg)) {
opkg_msg(ERROR, "Failed to extract maintainer scripts for %s."
" Package debris may remain!\n",
--- a/libopkg/pkg.c
+++ b/libopkg/pkg.c
@@ -1285,6 +1285,12 @@
setenv("PKG_ROOT",
pkg->dest ? pkg->dest->root_dir : conf->default_dest->root_dir, 1);
+ if (pkg->is_upgrade)
+ setenv("PKG_UPGRADE", "1", 1);
+ else
+ setenv("PKG_UPGRADE", "0", 1);
+
+
if (! file_exists(path)) {
free(path);
return 0;
--- a/libopkg/pkg.h
+++ b/libopkg/pkg.h
@@ -184,6 +184,7 @@
/* this flag specifies whether the package was installed to satisfy another
* package's dependancies */
int auto_installed;
+ int is_upgrade;
};
pkg_t *pkg_new(void);