# HG changeset patch # User J. Ali Harlow # Date 1272053235 -3600 # Node ID afe520f454bdd976643e9f87b44398bcaa30055e # Parent d16ac3fb05faeb0c698818937af59c87dd042a66 Fix bug causing detail strings to be lost diff -r d16ac3fb05fa -r afe520f454bd librazor/merger.c --- a/librazor/merger.c Fri Apr 23 19:14:17 2010 +0100 +++ b/librazor/merger.c Fri Apr 23 21:07:15 2010 +0100 @@ -36,6 +36,7 @@ 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 @@ 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 @@ 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 @@ } 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 @@ &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 @@ { hashtable_release(&merger->table); hashtable_release(&merger->file_table); + hashtable_release(&merger->details_table); free(merger); } diff -r d16ac3fb05fa -r afe520f454bd src/import-yum.c --- a/src/import-yum.c Fri Apr 23 19:14:17 2010 +0100 +++ b/src/import-yum.c Fri Apr 23 21:07:15 2010 +0100 @@ -288,7 +288,7 @@ 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 -r d16ac3fb05fa -r afe520f454bd test/Makefile.am --- a/test/Makefile.am Fri Apr 23 19:14:17 2010 +0100 +++ b/test/Makefile.am Fri Apr 23 21:07:15 2010 +0100 @@ -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 @@ 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 @@ lua.sh \ remove.sh \ update.sh \ + details.sh \ + details.ref \ named-root.sh \ relocate.sh @@ -77,6 +82,7 @@ primary.xml.gz \ filelists.xml.gz \ $(check_SCRIPTS) \ + details.out \ rawhide.rzdb clean-local : diff -r d16ac3fb05fa -r afe520f454bd test/details.ref --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/details.ref Fri Apr 23 21:07:15 2010 +0100 @@ -0,0 +1,9 @@ +Name: zsh2 +Arch: noarch +Version: 1-1 +URL: +License: GPL +Summary: Test package +Description: +New and improved test package + diff -r d16ac3fb05fa -r afe520f454bd test/details.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/details.sh Fri Apr 23 21:07:15 2010 +0100 @@ -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"