poldek: poldek/install/Makefile.am, poldek/install/conflicts.c, po...

mis mis at pld-linux.org
Sun Jul 8 18:45:43 CEST 2007


Author: mis                          Date: Sun Jul  8 16:45:43 2007 GMT
Module: poldek                        Tag: HEAD
---- Log message:
- use lifted pm's api

---- Files affected:
poldek/poldek/install:
   Makefile.am (1.2 -> 1.3) , conflicts.c (1.7 -> 1.8) , icaps.c (1.5 -> 1.6) , misc.c (1.12 -> 1.13) , obsoletes.c (1.9 -> 1.10) 

---- Diffs:

================================================================
Index: poldek/poldek/install/Makefile.am
diff -u poldek/poldek/install/Makefile.am:1.2 poldek/poldek/install/Makefile.am:1.3
--- poldek/poldek/install/Makefile.am:1.2	Thu Sep 22 22:30:58 2005
+++ poldek/poldek/install/Makefile.am	Sun Jul  8 18:45:38 2007
@@ -9,7 +9,9 @@
                         ictx.c ictx.h mark.c misc.c \
                         conflicts.c icaps.c  \
 	  	        obsoletes.c requirements.c \
-                        process.c
+                        process.c \
+			dbpkgset.c dbpkgset.h \
+			dbdep.c dbdep.h
 
 dist-hook:
 	rm -rf $(distdir)/.deps

================================================================
Index: poldek/poldek/install/conflicts.c
diff -u poldek/poldek/install/conflicts.c:1.7 poldek/poldek/install/conflicts.c:1.8
--- poldek/poldek/install/conflicts.c:1.7	Mon Jul  2 22:29:44 2007
+++ poldek/poldek/install/conflicts.c	Sun Jul  8 18:45:38 2007
@@ -157,11 +157,11 @@
 {
     int i, ncnfl = 0;
     tn_hash *ht = NULL;
-    tn_array *dbpkgs;
+    tn_array *dbpkgs = NULL;
+
+    pkgdb_search(ictx->ts->db, &dbpkgs, PMTAG_CAP, capreq_name(cnfl),
+                 ictx->uninst_set->dbpkgs, PKG_LDWHOLE_FLDEPDIRS);
 
-    dbpkgs = pkgdb_get_provides_dbpkgs(ictx->ts->db, cnfl,
-                                       ictx->uninst_set->dbpkgs,
-                                       PKG_LDWHOLE_FLDEPDIRS);
     if (dbpkgs == NULL)
         return 0;
                 
@@ -216,17 +216,19 @@
     return ncnfl;
 }
 
+
+
 /* check if db cnfl conflicts with cap */
 static
 int find_db_conflicts_dbcnfl_with_cap(int indent, struct install_ctx *ictx,
                                       struct pkg *pkg, const struct capreq *cap)
 {
     int i, j, ncnfl = 0;
-    tn_array *dbpkgs;
+    tn_array *dbpkgs = NULL;
 
-    dbpkgs = pkgdb_get_conflicted_dbpkgs(ictx->ts->db, cap,
-                                         ictx->uninst_set->dbpkgs,
-                                         PKG_LDWHOLE_FLDEPDIRS);
+    pkgdb_search(ictx->ts->db, &dbpkgs, PMTAG_CNFL, capreq_name(cap),
+                 ictx->uninst_set->dbpkgs, PKG_LDWHOLE_FLDEPDIRS);
+    
     if (dbpkgs == NULL)
         return 0;
 

================================================================
Index: poldek/poldek/install/icaps.c
diff -u poldek/poldek/install/icaps.c:1.5 poldek/poldek/install/icaps.c:1.6
--- poldek/poldek/install/icaps.c:1.5	Sun Jul  1 23:04:26 2007
+++ poldek/poldek/install/icaps.c	Sun Jul  8 18:45:38 2007
@@ -20,12 +20,12 @@
 int prepare_icap(struct poldek_ts *ts, const char *capname, tn_array *pkgs)
 {
     int i, found = 0;
-    tn_array *dbpkgs;
+    tn_array *dbpkgs = NULL;
     struct capreq *cap;
 
     capreq_new_name_a(capname, cap);
-    dbpkgs = pkgdb_get_provides_dbpkgs(ts->db, cap, NULL, 0);
-
+    pkgdb_search(ts->db, &dbpkgs, PMTAG_CAP, capname, NULL, 0);
+    
     if (dbpkgs == NULL) {
         struct pkg *pkg = NULL;
         

================================================================
Index: poldek/poldek/install/misc.c
diff -u poldek/poldek/install/misc.c:1.12 poldek/poldek/install/misc.c:1.13
--- poldek/poldek/install/misc.c:1.12	Sun Jul  1 23:04:26 2007
+++ poldek/poldek/install/misc.c	Sun Jul  8 18:45:38 2007
@@ -16,6 +16,12 @@
 
 #include "ictx.h"
 
+/* from pkgset-req.c */
+extern int psreq_find_match_packages(struct pkgset *ps,
+                                     const struct pkg *pkg, struct capreq *req,
+                                     struct pkg ***packages, int *npackages,
+                                     int strict);
+
 int in_is_pkg_installed(struct install_ctx *ictx, struct pkg *pkg, int *cmprc) 
 {
     tn_array *dbpkgs = NULL;

================================================================
Index: poldek/poldek/install/obsoletes.c
diff -u poldek/poldek/install/obsoletes.c:1.9 poldek/poldek/install/obsoletes.c:1.10
--- poldek/poldek/install/obsoletes.c:1.9	Sun Jun 17 22:29:53 2007
+++ poldek/poldek/install/obsoletes.c	Sun Jul  8 18:45:38 2007
@@ -44,6 +44,14 @@
     return is_iset_provides(ictx, pkg, cap);
 }
 
+static
+int get_pkgs_requires_capn(struct pkgdb *db, tn_array *dbpkgs,
+                           const char *capname,
+                           const tn_array *exclude, unsigned ldflags)
+{
+    return pkgdb_search(db, &dbpkgs, PMTAG_REQ, capname, exclude, ldflags);
+}
+
 
 /* add to ictx->orphan_dbpkgs packages required by pkg */
 static int process_pkg_orphans(struct install_ctx *ictx, struct pkg *pkg)
@@ -59,9 +67,9 @@
     DBGF("%s\n", pkg_id(pkg));
     MEMINF("process_pkg_orphans:");
 
-    if (!is_iset_provides_capn(ictx, pkg, pkg->name)) 
-        n += pkgdb_get_pkgs_requires_capn(db, ictx->orphan_dbpkgs, pkg->name,
-                                          ictx->uninst_set->dbpkgs, ldflags);
+    if (!is_iset_provides_capn(ictx, pkg, pkg->name))
+        n += get_pkgs_requires_capn(db, ictx->orphan_dbpkgs, pkg->name,
+                                    ictx->uninst_set->dbpkgs, ldflags);
         
     if (pkg->caps)
         for (i=0; i < n_array_size(pkg->caps); i++) {
@@ -87,9 +95,9 @@
         pkgfl_it_init(&it, pkg->fl);
         while ((path = pkgfl_it_get(&it, NULL))) {
             if (!is_iset_provides_capn(ictx, pkg, path)) 
-                n += pkgdb_get_pkgs_requires_capn(db, ictx->orphan_dbpkgs, path,
-                                                  ictx->uninst_set->dbpkgs,
-                                                  ldflags);
+                n += get_pkgs_requires_capn(db, ictx->orphan_dbpkgs, path,
+                                            ictx->uninst_set->dbpkgs,
+                                            ldflags);
         }
     }
     
@@ -257,18 +265,26 @@
 }
 
 static
-int get_obsoletedby_pkg(struct pkgdb *db, tn_array *dbpkgs, struct pkg *pkg,
+int get_obsoletedby_pkg(struct pkgdb *db, tn_array *unpkgs, struct pkg *pkg,
                         unsigned getflags, unsigned ldflags) 
 {
+    tn_array *dbpkgs;
     int n;
     
     if (poldek_conf_MULTILIB)
         pkgdb_set_filter(db, obs_filter, pkg);
     
-    n = pkgdb_get_obsoletedby_pkg(db, dbpkgs, pkg, getflags, ldflags);
+    dbpkgs = pkgs_array_new_ex(16, pkg_cmp_recno);    
+    n = pkgdb_q_obsoletedby_pkg(db, dbpkgs, pkg, getflags, unpkgs, ldflags);
     
     if (poldek_conf_MULTILIB)
         pkgdb_set_filter(db, NULL, NULL);
+
+    while (n_array_size(dbpkgs)) {
+        struct pkg *p = n_array_shift(dbpkgs);
+        n_array_push(unpkgs, p);
+    }
+    n_array_free(dbpkgs);
     
     return n;
 }
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/poldek/poldek/install/Makefile.am?r1=1.2&r2=1.3&f=u
    http://cvs.pld-linux.org/poldek/poldek/install/conflicts.c?r1=1.7&r2=1.8&f=u
    http://cvs.pld-linux.org/poldek/poldek/install/icaps.c?r1=1.5&r2=1.6&f=u
    http://cvs.pld-linux.org/poldek/poldek/install/misc.c?r1=1.12&r2=1.13&f=u
    http://cvs.pld-linux.org/poldek/poldek/install/obsoletes.c?r1=1.9&r2=1.10&f=u



More information about the pld-cvs-commit mailing list