mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
a58f176ef2
Allow scripts from the package to be upgraded to be aware of being upgraded. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> Acked-by: Jo-Philipp Wich <jo@mein.io>
51 lines
1.5 KiB
Diff
51 lines
1.5 KiB
Diff
--- a/libopkg/opkg_install.c
|
|
+++ b/libopkg/opkg_install.c
|
|
@@ -1405,9 +1405,11 @@ opkg_install_pkg(pkg_t *pkg, int from_up
|
|
opkg_state_changed++;
|
|
pkg->state_flag |= SF_FILELIST_CHANGED;
|
|
|
|
- if (old_pkg)
|
|
+ if (old_pkg) {
|
|
pkg_remove_orphan_dependent(pkg, old_pkg);
|
|
-
|
|
+ old_pkg->is_upgrade = 1;
|
|
+ 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 +1468,7 @@ opkg_install_pkg(pkg_t *pkg, int from_up
|
|
}
|
|
|
|
|
|
- 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 @@ pkg_run_script(pkg_t *pkg, const char *s
|
|
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 @@ struct pkg
|
|
/* 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);
|