[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