From: J. Ali Harlow Date: Fri, 23 Apr 2010 20:07:15 +0000 (+0100) Subject: Fix bug causing detail strings to be lost X-Git-Tag: 0.4~1 X-Git-Url: http://project.juiblex.co.uk/git/?a=commitdiff_plain;h=2eb2923d4304d86b9b41f4b5d5adfc5accf1c105;p=razor.git Fix bug causing detail strings to be lost --- diff --git a/librazor/merger.c b/librazor/merger.c index 39d8ccc..1b4e14e 100644 --- a/librazor/merger.c +++ b/librazor/merger.c @@ -36,6 +36,7 @@ struct razor_merger { struct razor_set *set; struct hashtable table; struct hashtable file_table; + struct hashtable details_table; struct source source1; struct source source2; }; @@ -51,6 +52,8 @@ razor_merger_create(struct razor_set *set1, struct razor_set *set2) merger->set = razor_set_create(); hashtable_init(&merger->table, &merger->set->string_pool); hashtable_init(&merger->file_table, &merger->set->file_string_pool); + hashtable_init(&merger->details_table, + &merger->set->details_string_pool); merger->source1.set = set1; count = set1->properties.size / sizeof (struct razor_property); @@ -75,7 +78,7 @@ void razor_merger_add_package(struct razor_merger *merger, struct razor_package *package) { - char *pool, *s; + char *pool, *details_pool, *s; struct list *r; struct razor_package *p; struct razor_set *set1; @@ -96,6 +99,7 @@ razor_merger_add_package(struct razor_merger *merger, } pool = source->set->string_pool.data; + details_pool = source->set->details_string_pool.data; p = array_add(&merger->set->packages, sizeof *p); p->name = hashtable_tokenize(&merger->table, &pool[package->name]); p->flags = flags; @@ -103,6 +107,14 @@ razor_merger_add_package(struct razor_merger *merger, &pool[package->version]); p->arch = hashtable_tokenize(&merger->table, &pool[package->arch]); + p->summary = hashtable_tokenize(&merger->details_table, + &details_pool[package->summary]); + p->description = hashtable_tokenize(&merger->details_table, + &details_pool[package->description]); + p->url = hashtable_tokenize(&merger->details_table, + &details_pool[package->url]); + p->license = hashtable_tokenize(&merger->details_table, + &details_pool[package->license]); p->properties = package->properties; r = list_first(&package->properties, &source->set->property_pool); @@ -593,5 +605,6 @@ void razor_merger_destroy(struct razor_merger *merger) { hashtable_release(&merger->table); hashtable_release(&merger->file_table); + hashtable_release(&merger->details_table); free(merger); } diff --git a/src/import-yum.c b/src/import-yum.c index dfcd42d..f2520f6 100644 --- a/src/import-yum.c +++ b/src/import-yum.c @@ -288,7 +288,7 @@ yum_filelists_end_element (void *data, const char *name) struct razor_set * razor_set_create_from_yum(void) { - struct yum_context ctx; + struct yum_context ctx={0}; void *buf; int len, ret; gzFile primary, filelists; diff --git a/test/Makefile.am b/test/Makefile.am index 0ca2b17..93ef076 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,6 +1,6 @@ ## Process this file with automake to produce Makefile.in -check_SCRIPTS = relocate named-root remove update +check_SCRIPTS = relocate named-root remove update details if HAVE_LUA check_SCRIPTS += lua mult-install endif @@ -18,6 +18,9 @@ remove: remove.sh primary.xml.gz update: update.sh base/repodata/primary.xml.gz updates/repodata/primary.xml.gz cp $(srcdir)/update.sh update +details: details.sh primary.xml.gz + cp $(srcdir)/details.sh details + order: order.sh primary.xml.gz cp $(srcdir)/order.sh order @@ -70,6 +73,8 @@ EXTRA_DIST = \ lua.sh \ remove.sh \ update.sh \ + details.sh \ + details.ref \ named-root.sh \ relocate.sh @@ -77,6 +82,7 @@ MOSTLYCLEANFILES = \ primary.xml.gz \ filelists.xml.gz \ $(check_SCRIPTS) \ + details.out \ rawhide.rzdb clean-local : diff --git a/test/details.ref b/test/details.ref new file mode 100644 index 0000000..0132cac --- /dev/null +++ b/test/details.ref @@ -0,0 +1,9 @@ +Name: zsh2 +Arch: noarch +Version: 1-1 +URL: +License: GPL +Summary: Test package +Description: +New and improved test package + diff --git a/test/details.sh b/test/details.sh new file mode 100755 index 0000000..9c6207c --- /dev/null +++ b/test/details.sh @@ -0,0 +1,9 @@ +#!/bin/sh +export RAZOR_ROOT=`mktemp -dt` || exit 1 +../src/razor init || exit 1 +export YUM_URL="file://localhost/`pwd`" +../src/razor import-yum || exit 1 +../src/razor install zsh2 || exit 1 +../src/razor info zsh2 > details.out || exit 1 +diff -u $srcdir/details.ref details.out || exit 1 +rm -rf "$RAZOR_ROOT"