diff options
-rw-r--r-- | src/pacman/upgrade.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c index 92a477e0..595e4aab 100644 --- a/src/pacman/upgrade.c +++ b/src/pacman/upgrade.c @@ -71,9 +71,18 @@ int pacman_upgrade(alpm_list_t *targets) /* add targets to the created transaction */ for(i = targets; i; i = alpm_list_next(i)) { char *targ = alpm_list_getdata(i); - if(alpm_add_target(targ) == -1) { + pmpkg_t *pkg; + + if(alpm_pkg_load(targ, 1, &pkg) != 0) { + pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", + targ, alpm_strerrorlast()); + trans_release(); + return(1); + } + if(alpm_add_pkg(pkg) == -1) { pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", targ, alpm_strerrorlast()); + alpm_pkg_free(pkg); trans_release(); return(1); } |