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

Signed-off-by: Xavier Chantry <[EMAIL PROTECTED]>
---
 lib/libalpm/be_files.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/lib/libalpm/be_files.c b/lib/libalpm/be_files.c
index 7b3d824..2302374 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;
        }
-- 
1.5.5.1


_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev

Reply via email to