[yum-cvs] yum-metadata-parser db.c, 1.6, 1.7 db.h, 1.3, 1.4 package.h, 1.1.1.1, 1.2 sqlitecache.c, 1.8, 1.9 xml-parser.c, 1.5, 1.6

James Bowes jbowes at linux.duke.edu
Sun Feb 18 03:38:21 UTC 2007


Update of /home/groups/yum/cvs/yum-metadata-parser
In directory login1.linux.duke.edu:/tmp/cvs-serv26645

Modified Files:
	db.c db.h package.h sqlitecache.c xml-parser.c 
Log Message:
Apply patch from Florian Festi to include Prereqs.


Index: db.c
===================================================================
RCS file: /home/groups/yum/cvs/yum-metadata-parser/db.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- db.c	10 Jul 2006 16:54:44 -0000	1.6
+++ db.c	18 Feb 2007 03:38:19 -0000	1.7
@@ -520,9 +520,17 @@
     sqlite3_stmt *handle = NULL;
     char *query;
 
+    const char *pre_name = "";
+    const char *pre_value = "";
+
+    if (!strcmp (table, "requires")) {
+        pre_name = ", pre";
+        pre_value = ", ?";
+    }
+
     query = g_strdup_printf
-        ("INSERT INTO %s (name, flags, epoch, version, release, pkgKey) "
-         "VALUES (?, ?, ?, ?, ?, ?)", table);
+        ("INSERT INTO %s (name, flags, epoch, version, release, pkgKey%s) "
+         "VALUES (?, ?, ?, ?, ?, ?%s)", table, pre_name, pre_value);
 
     rc = sqlite3_prepare (db, query, -1, &handle, NULL);
     g_free (query);
@@ -542,7 +550,8 @@
 yum_db_dependency_write (sqlite3 *db,
                          sqlite3_stmt *handle,
                          gint64 pkgKey,
-                         Dependency *dep)
+                         Dependency *dep,
+                         gboolean isRequirement)
 {
     int rc;
 
@@ -553,6 +562,13 @@
     sqlite3_bind_text (handle, 5, dep->release, -1, SQLITE_STATIC);
     sqlite3_bind_int  (handle, 6, pkgKey);
 
+    if (isRequirement) {
+        if (dep->pre)
+            sqlite3_bind_text (handle, 7, "TRUE", -1, SQLITE_TRANSIENT);
+        else
+            sqlite3_bind_text (handle, 7, "FALSE", -1, SQLITE_TRANSIENT);
+    }
+
     rc = sqlite3_step (handle);
     sqlite3_reset (handle);
 

Index: db.h
===================================================================
RCS file: /home/groups/yum/cvs/yum-metadata-parser/db.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- db.h	10 Jul 2006 16:54:44 -0000	1.3
+++ db.h	18 Feb 2007 03:38:19 -0000	1.4
@@ -55,7 +55,8 @@
 void          yum_db_dependency_write       (sqlite3 *db,
                                              sqlite3_stmt *handle,
                                              gint64 pkgKey,
-                                             Dependency *dep);
+                                             Dependency *dep,
+                                             gboolean isRequirement);
 
 sqlite3_stmt *yum_db_file_prepare           (sqlite3 *db, GError **err);
 void          yum_db_file_write             (sqlite3 *db,

Index: package.h
===================================================================
RCS file: /home/groups/yum/cvs/yum-metadata-parser/package.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- package.h	11 May 2006 17:33:57 -0000	1.1.1.1
+++ package.h	18 Feb 2007 03:38:19 -0000	1.2
@@ -26,6 +26,7 @@
     char *epoch;
     char *version;
     char *release;
+    gboolean pre;
 } Dependency;
 
 typedef struct {

Index: sqlitecache.c
===================================================================
RCS file: /home/groups/yum/cvs/yum-metadata-parser/sqlitecache.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- sqlitecache.c	4 Jan 2007 18:20:51 -0000	1.8
+++ sqlitecache.c	18 Feb 2007 03:38:19 -0000	1.9
@@ -179,15 +179,29 @@
 }
 
 static void
-write_deps (sqlite3 *db, sqlite3_stmt *handle, gint64 pkgKey, GSList *deps)
+write_deps (sqlite3 *db, sqlite3_stmt *handle, gint64 pkgKey, 
+            GSList *deps)
 {
     GSList *iter;
 
     for (iter = deps; iter; iter = iter->next)
-        yum_db_dependency_write (db, handle, pkgKey, (Dependency *) iter->data);
+        yum_db_dependency_write (db, handle, pkgKey, (Dependency *) iter->data,
+                                 FALSE);
 }
 
 static void
+write_requirements (sqlite3 *db, sqlite3_stmt *handle, gint64 pkgKey,
+            GSList *deps)
+{
+    GSList *iter;
+
+    for (iter = deps; iter; iter = iter->next)
+        yum_db_dependency_write (db, handle, pkgKey, (Dependency *) iter->data,
+                                 TRUE);
+}
+
+
+static void
 write_files (sqlite3 *db, sqlite3_stmt *handle, Package *pkg)
 {
     GSList *iter;
@@ -204,8 +218,8 @@
 
     yum_db_package_write (update_info->db, info->pkg_handle, package);
 
-    write_deps (update_info->db, info->requires_handle,
-                package->pkgKey, package->requires);
+    write_requirements (update_info->db, info->requires_handle,
+                    package->pkgKey, package->requires);
     write_deps (update_info->db, info->provides_handle,
                 package->pkgKey, package->provides);
     write_deps (update_info->db, info->conflicts_handle,

Index: xml-parser.c
===================================================================
RCS file: /home/groups/yum/cvs/yum-metadata-parser/xml-parser.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- xml-parser.c	15 Jun 2006 17:36:35 -0000	1.5
+++ xml-parser.c	18 Feb 2007 03:38:19 -0000	1.6
@@ -247,6 +247,7 @@
     const char *tmp_release = NULL;
     const char *tmp_epoch = NULL;
     const char *tmp_flags = NULL;
+    gboolean tmp_pre = FALSE;
     Dependency *dep;
     int i;
     gboolean ignore = FALSE;
@@ -272,6 +273,8 @@
                 tmp_version = value;
             else if (!strcmp (attr, "rel"))
                 tmp_release = value;
+            else if (!strcmp (attr, "pre"))
+                tmp_pre = TRUE;
         }
 
         if (!ignore) {
@@ -287,6 +290,7 @@
                 dep->version = g_string_chunk_insert (chunk, tmp_version);
             if (tmp_release)
                 dep->release = g_string_chunk_insert (chunk, tmp_release);
+            dep->pre = tmp_pre;
 
             *ctx->current_dep_list = g_slist_prepend (*ctx->current_dep_list,
                                                       dep);




More information about the Yum-cvs-commits mailing list