pkg_run_script: use pkg->dest in half installed case
authorAlejandro del Castillo <alejandro.delcastillo@ni.com>
Mon, 27 Mar 2017 21:58:17 +0000 (16:58 -0500)
committerJo-Philipp Wich <jo@mein.io>
Sun, 9 Apr 2017 10:02:55 +0000 (12:02 +0200)
Fixes running scripts for packages in half-installed state which would
otherwise fail with:

 * pkg_run_script: Internal error: ... has a NULL tmp_unpack_dir.
 * opkg_remove_pkg: not removing package "...", prerm script failed

Upstream bug: https://bugzilla.yoctoproject.org/show_bug.cgi?id=11245

Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>
[Jo-Philipp Wich: rebased onto opkg-lede, updated commit message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
libopkg/pkg.c

index c0de884bfe8916cd9048e1d035a359b560732c21..551c62917225524204d6515148b3de7ed8757c21 100644 (file)
@@ -1335,7 +1335,8 @@ int pkg_run_script(pkg_t * pkg, const char *script, const char *args)
        /* Installed packages have scripts in pkg->dest->info_dir, uninstalled packages
           have scripts in tmp_unpack_dir. */
        if (pkg->state_status == SS_INSTALLED
        /* Installed packages have scripts in pkg->dest->info_dir, uninstalled packages
           have scripts in tmp_unpack_dir. */
        if (pkg->state_status == SS_INSTALLED
-           || pkg->state_status == SS_UNPACKED) {
+           || pkg->state_status == SS_UNPACKED
+           || pkg->state_status == SS_HALF_INSTALLED) {
                if (pkg->dest == NULL) {
                        opkg_msg(ERROR, "Internal error: %s has a NULL dest.\n",
                                 pkg->name);
                if (pkg->dest == NULL) {
                        opkg_msg(ERROR, "Internal error: %s has a NULL dest.\n",
                                 pkg->name);