Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=d2e4cbb9dcb91b374fdc673bb6dc8780f3a41138

commit d2e4cbb9dcb91b374fdc673bb6dc8780f3a41138
Author: Michel Hermier <[email protected]>
Date:   Sun Nov 3 12:55:20 2013 +0100

libpacman: Do not forget to comput triggers before calling prepare (Maybe not 
the best place, but will do for now).

diff --git a/lib/libpacman/packages_transaction.c 
b/lib/libpacman/packages_transaction.c
index cbafffe..a7d5b97 100644
--- a/lib/libpacman/packages_transaction.c
+++ b/lib/libpacman/packages_transaction.c
@@ -27,7 +27,7 @@
#include "util.h"

static const char *trigger_function_table[STATE_MAX] = {
-       [STATE_COMMITED] = "triggered",
+       [STATE_COMMITED] = "commited",
};

static int
@@ -35,19 +35,18 @@ _pacman_packages_transaction_set_state(pmtrans_t *trans, 
int new_state)
{
const char *root, *triggersdir, *trigger_function;
const pmlist_t *lp;
-       int retval = 0;

triggersdir = trans->handle->triggersdir;
root = trans->handle->root;
trigger_function = trigger_function_table[new_state];

if(_pacman_strempty(trigger_function)) {
+               _pacman_log(PM_LOG_ERROR, _("Missing trigger_function for 
state: %d"), new_state);
/* Nothing to do */
return 0;
}

_pacman_log(PM_LOG_FLOW2, _("executing %s triggers..."), trigger_function);
-
for(lp = trans->triggers; lp; lp = lp->next) {
const char *trigger = lp->data;
char buf[PATH_MAX];
@@ -65,10 +64,10 @@ _pacman_packages_transaction_set_state(pmtrans_t *trans, 
int new_state)
}
#endif
snprintf(buf, sizeof(buf), "source %s/%s %s", triggersdir, trigger, 
trigger_function);
-               retval = _pacman_chroot_system(buf, trans);
+               _pacman_chroot_system(buf, trans);
}

-       return(retval);
+       return 0;
}

int _pacman_packages_transaction_init(pmtrans_t *trans)
diff --git a/lib/libpacman/trans.c b/lib/libpacman/trans.c
index 490223a..22854f1 100644
--- a/lib/libpacman/trans.c
+++ b/lib/libpacman/trans.c
@@ -185,6 +185,7 @@ int _pacman_trans_set_state(pmtrans_t *trans, int new_state)
return(-1);
}
}
+       _pacman_log(PM_LOG_DEBUG, _("Changing transaction state from %d to 
%d"), trans->state, new_state);
trans->state = new_state;

return(0);
@@ -224,6 +225,8 @@ int _pacman_trans_prepare(pmtrans_t *trans, pmlist_t **data)
return(0);
}

+       _pacman_trans_compute_triggers(trans);
+
if(trans->ops->prepare(trans, data) == -1) {
/* pm_errno is set by trans->ops->prepare() */
return(-1);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to