From: John Crispin Date: Thu, 11 Sep 2014 12:27:09 +0000 (+0000) Subject: opkg: indicate upgrade vs install X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=b05c2aad3cf60ff9b55de616d310b86f6eac5104;p=openwrt%2Fstaging%2Fluka.git opkg: indicate upgrade vs install when running the postinst trigger we set PKG_UPGRADE=1 if this is an upgrade and not an install. Signed-off-by: John Crispin SVN-Revision: 42468 --- diff --git a/package/system/opkg/patches/110-upgrade.patch b/package/system/opkg/patches/110-upgrade.patch new file mode 100644 index 0000000000..b8206f055b --- /dev/null +++ b/package/system/opkg/patches/110-upgrade.patch @@ -0,0 +1,46 @@ +Index: opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d/libopkg/opkg_install.c +=================================================================== +--- opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d.orig/libopkg/opkg_install.c 2014-09-07 22:06:37.875956909 +0200 ++++ opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d/libopkg/opkg_install.c 2014-09-07 22:10:30.579952951 +0200 +@@ -1463,10 +1463,11 @@ + /* removing files from old package, to avoid ghost files */ + remove_data_files_and_list(old_pkg); + remove_maintainer_scripts(old_pkg); ++ pkg->is_upgrade = 1; + } + + +- 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", +Index: opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d/libopkg/pkg.c +=================================================================== +--- opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d.orig/libopkg/pkg.c 2014-09-07 22:06:37.863956909 +0200 ++++ opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d/libopkg/pkg.c 2014-09-07 22:09:09.387954332 +0200 +@@ -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", 0); ++ else ++ setenv("PKG_UPGRADE", "0", 0); ++ ++ + if (! file_exists(path)) { + free(path); + return 0; +Index: opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d/libopkg/pkg.h +=================================================================== +--- opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d.orig/libopkg/pkg.h 2014-03-21 16:56:11.000000000 +0100 ++++ opkg-9c97d5ecd795709c8584e972bfdf3aee3a5b846d/libopkg/pkg.h 2014-09-07 22:09:26.315954044 +0200 +@@ -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);