summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2007-01-03 08:05:13 +0000
committerAaron Griffin <aaron@archlinux.org>2007-01-03 08:05:13 +0000
commit043a49701f5f11429199428a4cc1a084b5f297a9 (patch)
tree262f6805d7cd8299c729cb4e4362ef45bcd327d1
parent50030f778a59394c5aab2ee484e0123f88581fcc (diff)
downloadpacman-043a49701f5f11429199428a4cc1a084b5f297a9.tar.xz
* bug fix FS#6100 - fix --print-uris output
-rw-r--r--lib/libalpm/add.c4
-rw-r--r--lib/libalpm/alpm.c5
-rw-r--r--lib/libalpm/sync.c3
-rw-r--r--src/pacman/sync.c72
4 files changed, 46 insertions, 38 deletions
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index 778bb888..344f04d3 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -124,6 +124,10 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
_alpm_log(PM_LOG_FLOW2, _("loading target '%s'"), name);
+ /* TODO FS#5120 we need a better way to check if a package is a valid package,
+ * and read the metadata instead of relying on the filename for package name
+ * and version
+ */
if(stat(name, &buf)) {
pm_errno = PM_ERR_NOT_A_FILE;
goto error;
diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index a7fb0a99..a5ee8c40 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -717,7 +717,10 @@ int alpm_trans_commit(pmlist_t **data)
ASSERT(handle->trans->state == STATE_PREPARED, RET_ERR(PM_ERR_TRANS_NOT_PREPARED, -1));
/* Check for database R/W permission */
- ASSERT(handle->access == PM_ACCESS_RW, RET_ERR(PM_ERR_BADPERMS, -1));
+ if(!(handle->trans->flags & PM_TRANS_FLAG_PRINTURIS)) {
+ /* The print-uris operation is a bit odd. So we explicitly check for it */
+ ASSERT(handle->access == PM_ACCESS_RW, RET_ERR(PM_ERR_BADPERMS, -1));
+ }
return(_alpm_trans_commit(handle->trans, data));
}
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 956ebf47..0234861f 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -489,7 +489,8 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, pmlist_t *dbs_sync, p
FREELISTPTR(trail);
}
- if(!(trans->flags & PM_TRANS_FLAG_NOCONFLICTS)) {
+ /* We don't care about conflicts if we're just printing uris */
+ if(!(trans->flags & (PM_TRANS_FLAG_NOCONFLICTS | PM_TRANS_FLAG_PRINTURIS))) {
/* check for inter-conflicts and whatnot */
EVENT(trans, PM_TRANS_EVT_INTERCONFLICTS_START, NULL, NULL);
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index 6718bd92..1c1c3ae9 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -664,46 +664,46 @@ int pacman_sync(list_t *targets)
if(!confirm) {
goto cleanup;
}
+ }/* else 'print uris' requested. We're done at this point */
- /* Step 3: actually perform the installation
- */
- if(alpm_trans_commit(&data) == -1) {
- ERR(NL, _("failed to commit transaction (%s)\n"), alpm_strerror(pm_errno));
- switch(pm_errno) {
- case PM_ERR_FILE_CONFLICTS:
- for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
- pmconflict_t *conflict = alpm_list_getdata(lp);
- switch(alpm_conflict_get_type(conflict)) {
- case PM_CONFLICT_TYPE_TARGET:
- MSG(NL, _("%s%s exists in \"%s\" (target) and \"%s\" (target)"),
- config->root,
- alpm_conflict_get_file(conflict),
- alpm_conflict_get_target(conflict),
- alpm_conflict_get_ctarget(conflict));
- break;
- case PM_CONFLICT_TYPE_FILE:
- MSG(NL, _("%s: %s%s exists in filesystem"),
- alpm_conflict_get_target(conflict),
- config->root,
- alpm_conflict_get_file(conflict));
- break;
- }
- }
- MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
- break;
- case PM_ERR_PKG_CORRUPTED:
- for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
- MSG(NL, "%s", (char*)alpm_list_getdata(lp));
+ /* Step 3: actually perform the installation
+ */
+ if(alpm_trans_commit(&data) == -1) {
+ ERR(NL, _("failed to commit transaction (%s)\n"), alpm_strerror(pm_errno));
+ switch(pm_errno) {
+ case PM_ERR_FILE_CONFLICTS:
+ for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
+ pmconflict_t *conflict = alpm_list_getdata(lp);
+ switch(alpm_conflict_get_type(conflict)) {
+ case PM_CONFLICT_TYPE_TARGET:
+ MSG(NL, _("%s%s exists in \"%s\" (target) and \"%s\" (target)"),
+ config->root,
+ alpm_conflict_get_file(conflict),
+ alpm_conflict_get_target(conflict),
+ alpm_conflict_get_ctarget(conflict));
+ break;
+ case PM_CONFLICT_TYPE_FILE:
+ MSG(NL, _("%s: %s%s exists in filesystem"),
+ alpm_conflict_get_target(conflict),
+ config->root,
+ alpm_conflict_get_file(conflict));
+ break;
}
- MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
- break;
- default:
- break;
}
- retval = 1;
- goto cleanup;
+ MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
+ break;
+ case PM_ERR_PKG_CORRUPTED:
+ for(lp = alpm_list_first(data); lp; lp = alpm_list_next(lp)) {
+ MSG(NL, "%s", (char*)alpm_list_getdata(lp));
+ }
+ MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
+ break;
+ default:
+ break;
}
- }/* else 'print uris' requested. We're done at this point */
+ retval = 1;
+ goto cleanup;
+ }
/* Step 4: release transaction resources
*/