rpm.c
changeset 147 c3eab84160e5
parent 109 313b0a615c14
child 148 ea06dacb3c04
     1.1 --- a/rpm.c	Mon Feb 04 14:25:45 2008 -0500
     1.2 +++ b/rpm.c	Wed Mar 05 19:02:29 2008 -0500
     1.3 @@ -109,7 +109,6 @@
     1.4  
     1.5  	flags = *(uint_32 *)razor_rpm_get_indirect(rpm, flags_tag, &count);
     1.6  
     1.7 -	/* FIXME: Concat version and release. */
     1.8  	version = razor_rpm_get_indirect(rpm, version_tag, &count);
     1.9  	for (i = 0; i < count; i++) {
    1.10  		razor_importer_add_property(importer, name,
    1.11 @@ -525,14 +524,16 @@
    1.12  int
    1.13  razor_importer_add_rpm(struct razor_importer *importer, struct razor_rpm *rpm)
    1.14  {
    1.15 -	const char *name, *version, *release;
    1.16 +	const char *name, *epoch, *version, *release;
    1.17 +	char evr[128];
    1.18  
    1.19  	name = razor_rpm_get_indirect(rpm, RPMTAG_NAME, NULL);
    1.20 +	epoch = razor_rpm_get_indirect(rpm, RPMTAG_EPOCH, NULL);
    1.21  	version = razor_rpm_get_indirect(rpm, RPMTAG_VERSION, NULL);
    1.22  	release = razor_rpm_get_indirect(rpm, RPMTAG_RELEASE, NULL);
    1.23  
    1.24 -	/* FIXME: Concatenate version and release. */
    1.25 -	razor_importer_begin_package(importer, name, version);
    1.26 +	razor_build_evr(evr, sizeof evr, epoch, version, release);
    1.27 +	razor_importer_begin_package(importer, name, evr);
    1.28  
    1.29  	import_properties(importer, RAZOR_PROPERTY_REQUIRES, rpm,
    1.30  			  RPMTAG_REQUIRENAME,
    1.31 @@ -595,9 +596,9 @@
    1.32  	rpmdbMatchIterator iter;
    1.33  	Header h;
    1.34  	int_32 type, count, i;
    1.35 -	union rpm_entry name, version, release;
    1.36 +	union rpm_entry name, epoch, version, release;
    1.37  	union rpm_entry basenames, dirnames, dirindexes;
    1.38 -	char filename[PATH_MAX];
    1.39 +	char filename[PATH_MAX], evr[128];
    1.40  	rpmdb db;
    1.41  
    1.42  	rpmReadConfigFiles(NULL, NULL);
    1.43 @@ -612,11 +613,12 @@
    1.44  	iter = rpmdbInitIterator(db, 0, NULL, 0);
    1.45  	while (h = rpmdbNextIterator(iter), h != NULL) {
    1.46  		headerGetEntry(h, RPMTAG_NAME, &type, &name.p, &count);
    1.47 +		headerGetEntry(h, RPMTAG_EPOCH, &type, &epoch.p, &count);
    1.48  		headerGetEntry(h, RPMTAG_VERSION, &type, &version.p, &count);
    1.49  		headerGetEntry(h, RPMTAG_RELEASE, &type, &release.p, &count);
    1.50 -		snprintf(filename, sizeof filename, "%s-%s",
    1.51 -			 version.string, release.string);
    1.52 -		razor_importer_begin_package(importer, name.string, filename);
    1.53 +		razor_build_evr(evr, sizeof evr, epoch.string, version.string,
    1.54 +				release.string);
    1.55 +		razor_importer_begin_package(importer, name.string, evr);
    1.56  
    1.57  		add_properties(importer, RAZOR_PROPERTY_REQUIRES, h,
    1.58  			       RPMTAG_REQUIRENAME,