Fix bug causing detail strings to be lost
authorJ. Ali Harlow <ali@juiblex.co.uk>
Fri Apr 23 21:07:15 2010 +0100 (2010-04-23)
changeset 394afe520f454bd
parent 393 d16ac3fb05fa
child 395 ed134fdfe95f
Fix bug causing detail strings to be lost
librazor/merger.c
src/import-yum.c
test/Makefile.am
test/details.ref
test/details.sh
     1.1 --- a/librazor/merger.c	Fri Apr 23 19:14:17 2010 +0100
     1.2 +++ b/librazor/merger.c	Fri Apr 23 21:07:15 2010 +0100
     1.3 @@ -36,6 +36,7 @@
     1.4  	struct razor_set *set;
     1.5  	struct hashtable table;
     1.6  	struct hashtable file_table;
     1.7 +	struct hashtable details_table;
     1.8  	struct source source1;
     1.9  	struct source source2;
    1.10  };
    1.11 @@ -51,6 +52,8 @@
    1.12  	merger->set = razor_set_create();
    1.13  	hashtable_init(&merger->table, &merger->set->string_pool);
    1.14  	hashtable_init(&merger->file_table, &merger->set->file_string_pool);
    1.15 +	hashtable_init(&merger->details_table,
    1.16 +		       &merger->set->details_string_pool);
    1.17  
    1.18  	merger->source1.set = set1;
    1.19  	count = set1->properties.size / sizeof (struct razor_property);
    1.20 @@ -75,7 +78,7 @@
    1.21  razor_merger_add_package(struct razor_merger *merger,
    1.22  			 struct razor_package *package)
    1.23  {
    1.24 -	char *pool, *s;
    1.25 +	char *pool, *details_pool, *s;
    1.26  	struct list *r;
    1.27  	struct razor_package *p;
    1.28  	struct razor_set *set1;
    1.29 @@ -96,6 +99,7 @@
    1.30  	}
    1.31  
    1.32  	pool = source->set->string_pool.data;
    1.33 +	details_pool = source->set->details_string_pool.data;
    1.34  	p = array_add(&merger->set->packages, sizeof *p);
    1.35  	p->name = hashtable_tokenize(&merger->table, &pool[package->name]);
    1.36  	p->flags = flags;
    1.37 @@ -103,6 +107,14 @@
    1.38  					&pool[package->version]);
    1.39  	p->arch = hashtable_tokenize(&merger->table,
    1.40  				     &pool[package->arch]);
    1.41 +	p->summary = hashtable_tokenize(&merger->details_table,
    1.42 +					&details_pool[package->summary]);
    1.43 +	p->description = hashtable_tokenize(&merger->details_table,
    1.44 +					    &details_pool[package->description]);
    1.45 +	p->url = hashtable_tokenize(&merger->details_table,
    1.46 +				    &details_pool[package->url]);
    1.47 +	p->license = hashtable_tokenize(&merger->details_table,
    1.48 +					&details_pool[package->license]);
    1.49  
    1.50  	p->properties = package->properties;
    1.51  	r = list_first(&package->properties, &source->set->property_pool);
    1.52 @@ -593,5 +605,6 @@
    1.53  {
    1.54  	hashtable_release(&merger->table);
    1.55  	hashtable_release(&merger->file_table);
    1.56 +	hashtable_release(&merger->details_table);
    1.57  	free(merger);
    1.58  }
     2.1 --- a/src/import-yum.c	Fri Apr 23 19:14:17 2010 +0100
     2.2 +++ b/src/import-yum.c	Fri Apr 23 21:07:15 2010 +0100
     2.3 @@ -288,7 +288,7 @@
     2.4  struct razor_set *
     2.5  razor_set_create_from_yum(void)
     2.6  {
     2.7 -	struct yum_context ctx;
     2.8 +	struct yum_context ctx={0};
     2.9  	void *buf;
    2.10  	int len, ret;
    2.11  	gzFile primary, filelists;
     3.1 --- a/test/Makefile.am	Fri Apr 23 19:14:17 2010 +0100
     3.2 +++ b/test/Makefile.am	Fri Apr 23 21:07:15 2010 +0100
     3.3 @@ -1,6 +1,6 @@
     3.4  ## Process this file with automake to produce Makefile.in
     3.5  
     3.6 -check_SCRIPTS = relocate named-root remove update
     3.7 +check_SCRIPTS = relocate named-root remove update details
     3.8  if HAVE_LUA
     3.9    check_SCRIPTS += lua mult-install
    3.10  endif
    3.11 @@ -18,6 +18,9 @@
    3.12  update:	update.sh base/repodata/primary.xml.gz updates/repodata/primary.xml.gz
    3.13  	cp $(srcdir)/update.sh update
    3.14  
    3.15 +details:	details.sh primary.xml.gz
    3.16 +	cp $(srcdir)/details.sh details
    3.17 +
    3.18  order:	order.sh primary.xml.gz
    3.19  	cp $(srcdir)/order.sh order
    3.20  
    3.21 @@ -70,6 +73,8 @@
    3.22  	lua.sh			\
    3.23  	remove.sh		\
    3.24  	update.sh		\
    3.25 +	details.sh		\
    3.26 +	details.ref		\
    3.27  	named-root.sh		\
    3.28  	relocate.sh
    3.29  
    3.30 @@ -77,6 +82,7 @@
    3.31  	primary.xml.gz		\
    3.32  	filelists.xml.gz	\
    3.33  	$(check_SCRIPTS)	\
    3.34 +	details.out		\
    3.35  	rawhide.rzdb
    3.36  
    3.37  clean-local :
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/test/details.ref	Fri Apr 23 21:07:15 2010 +0100
     4.3 @@ -0,0 +1,9 @@
     4.4 +Name:        zsh2
     4.5 +Arch:        noarch
     4.6 +Version:     1-1
     4.7 +URL:         
     4.8 +License:     GPL
     4.9 +Summary:     Test package
    4.10 +Description:
    4.11 +New and improved test package
    4.12 +
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/test/details.sh	Fri Apr 23 21:07:15 2010 +0100
     5.3 @@ -0,0 +1,9 @@
     5.4 +#!/bin/sh
     5.5 +export RAZOR_ROOT=`mktemp -dt` || exit 1
     5.6 +../src/razor init || exit 1
     5.7 +export YUM_URL="file://localhost/`pwd`"
     5.8 +../src/razor import-yum || exit 1
     5.9 +../src/razor install zsh2 || exit 1
    5.10 +../src/razor info zsh2 > details.out || exit 1
    5.11 +diff -u $srcdir/details.ref details.out || exit 1
    5.12 +rm -rf "$RAZOR_ROOT"