--- lib/libalpm/alpm.h | 5 ++++- lib/libalpm/sync.c | 6 ++++++ lib/libalpm/trans.c | 7 +++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index b0adb95..af33181 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -358,7 +358,10 @@ typedef enum _alpm_event_type_t { ALPM_EVENT_PACSAVE_CREATED, /** A .pacorig file was created; See alpm_event_pacorig_created_t for * arguments */ - ALPM_EVENT_PACORIG_CREATED + ALPM_EVENT_PACORIG_CREATED, + + ALPM_EVENT_TRANS_COMMIT_START, + ALPM_EVENT_TRANS_COMMIT_END, } alpm_event_type_t; /** Events. diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index a025b68..99592df 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -1348,6 +1348,9 @@ int _alpm_sync_commit(alpm_handle_t *handle, alpm_list_t **data) EVENT(handle, &event); } + event.type = ALPM_EVENT_TRANS_COMMIT_START; + EVENT(handle, &event); + /* remove conflicting and to-be-replaced packages */ if(trans->remove) { _alpm_log(handle, ALPM_LOG_DEBUG, "removing conflicting and to-be-replaced packages\n"); @@ -1365,6 +1368,9 @@ int _alpm_sync_commit(alpm_handle_t *handle, alpm_list_t **data) return -1; } + event.type = ALPM_EVENT_TRANS_COMMIT_END; + EVENT(handle, &event); + return 0; } diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index e5328c5..a6bbfe7 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -178,10 +178,17 @@ int SYMEXPORT alpm_trans_commit(alpm_handle_t *handle, alpm_list_t **data) trans->state = STATE_COMMITING; if(trans->add == NULL) { + alpm_event_t event; + event.type = ALPM_EVENT_TRANS_COMMIT_START; + EVENT(handle, &event); + if(_alpm_remove_packages(handle, 1) == -1) { /* pm_errno is set by _alpm_remove_packages() */ return -1; } + + event.type = ALPM_EVENT_TRANS_COMMIT_END; + EVENT(handle, &event); } else { if(_alpm_sync_commit(handle, data) == -1) { /* pm_errno is set by _alpm_sync_commit() */ -- 1.9.1