From 98bcd1f5b1023b9eb219589c809fb2505079965d Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Thu, 4 Oct 2007 18:13:09 -0500 Subject: Fix -Sy and -Sp operations. When the -Sy operation failed, the lock wasn't removed because alpm_trans_release wasn't called. This is fixed now. Also, after my last change in commit 52e7e6d74733f7a431376a9e528c4fe4d3732068 , Sp didn't do anything anymore. That's because needs_transaction returned false for -Sp, so the sync transaction wasn't run. However, the current implementation of -Sp requires a sync transaction. Also, since a transaction creates the lock file at the beginning, and releases it at the end, this mean that -Sp requires root access anyway.. I think I understand now why Aaron found that the current -Sp implementation is hackish :) Signed-off-by: Chantry Xavier Signed-off-by: Aaron Griffin --- src/pacman/sync.c | 3 ++- src/pacman/util.c | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/pacman/sync.c b/src/pacman/sync.c index 78ce9b71..6a7d50e7 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -414,7 +414,8 @@ int sync_trans(alpm_list_t *targets, int sync_only) alpm_logaction("synchronizing package lists"); if(!sync_synctree(config->op_s_sync, sync_dbs)) { fprintf(stderr, _("error: failed to synchronize any databases\n")); - return(1); + retval = 1; + goto cleanup; } if(sync_only) { goto cleanup; diff --git a/src/pacman/util.c b/src/pacman/util.c index d82b5769..2c007536 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -49,8 +49,7 @@ int needs_transaction() { if(config->op != PM_OP_MAIN && config->op != PM_OP_QUERY && config->op != PM_OP_DEPTEST) { if((config->op == PM_OP_SYNC && !config->op_s_sync && - (config->op_s_search || config->group || config->op_q_list || config->op_q_info - || config->flags & PM_TRANS_FLAG_PRINTURIS)) + (config->op_s_search || config->group || config->op_q_list || config->op_q_info)) || config->op == PM_OP_DEPTEST) { /* special case: PM_OP_SYNC can be used w/ config->op_s_search by any user */ return(0); -- cgit v1.2.3-70-g09d2