summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Chantry <shiningxc@gmail.com>2008-05-22 23:59:10 +0200
committerDan McGee <dan@archlinux.org>2008-05-29 06:37:20 -0500
commitb262ddb2edb8a4622a9cd3c50f245a6fa7f35f75 (patch)
treeb451f7b0542ab3fcbd6f736d1c2216eb734ccf5c
parentf30dab4b5a382bc4886af6b64f721fd2b4884283 (diff)
downloadpacman-b262ddb2edb8a4622a9cd3c50f245a6fa7f35f75.tar.xz
be_files : stores REPLACES and FORCE in desc.
repo-add and db_read both assume that REPLACES and FORCE fields are in the desc file, so do that for db_write as well (instead of depends file). Note that db_write is currently only used on the local database. And the only purpose of replaces and force in local database is for information purpose (available on -Qi operations). So this is not a big problem. Ref: http://www.archlinux.org/pipermail/pacman-dev/2008-May/011859.html Acked-by: Dan McGee <dan@archlinux.org> Signed-off-by: Xavier Chantry <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--lib/libalpm/be_files.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c
index 7b3d824d..2302374d 100644
--- a/lib/libalpm/be_files.c
+++ b/lib/libalpm/be_files.c
@@ -672,6 +672,16 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
}
fprintf(fp, "\n");
}
+ if(info->replaces) {
+ fputs("%REPLACES%\n", fp);
+ for(lp = info->replaces; lp; lp = lp->next) {
+ fprintf(fp, "%s\n", (char *)lp->data);
+ }
+ fprintf(fp, "\n");
+ }
+ if(info->force) {
+ fprintf(fp, "%%FORCE%%\n\n");
+ }
if(local) {
if(info->url) {
fprintf(fp, "%%URL%%\n"
@@ -795,17 +805,6 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
}
fprintf(fp, "\n");
}
- if(info->replaces) {
- fputs("%REPLACES%\n", fp);
- for(lp = info->replaces; lp; lp = lp->next) {
- fprintf(fp, "%s\n", (char *)lp->data);
- }
- fprintf(fp, "\n");
- }
- if(info->force) {
- /* note the extra newline character, which is necessary! */
- fprintf(fp, "%%FORCE%%\n\n");
- }
fclose(fp);
fp = NULL;
}