}
if (package->provides) {
+ g_debug("HYOKEUN: cr_package_free(provides)\n");
g_slist_foreach (package->provides, (GFunc) g_free, NULL);
g_slist_free (package->provides);
}
}
if (package->recommends) {
+ g_debug("HYOKEUN: cr_package_free(recommends)\n");
g_slist_foreach (package->recommends, (GFunc) g_free, NULL);
g_slist_free (package->recommends);
}
NULL,
free);
+ g_debug("HYOKEUN: table DEP_PROVIDES=%d", DEP_PROVIDES);
+ g_debug("HYOKEUN: table DEP_RECOMMENDS=%d", DEP_RECOMMENDS);
+ // HYOKEUN: RECOMMENDS requires rpm version >= 4.12 ???
+
for (int deptype=0; dep_items[deptype].type != DEP_SENTINEL; deptype++) {
+ g_debug("HYOKEUN: deptype=%d", deptype);
+
+ int hyo_name = dep_items[deptype].nametag;
+ int hyo_flags = dep_items[deptype].flagstag;
+ int hyo_versions = dep_items[deptype].versiontag;
+ g_debug("HYOKEUN: name:%d, flags:%d, versions:%d", hyo_name, hyo_flags, hyo_versions);
+ g_debug("HYOKEUN: ret=%d,%d,%d",
+ headerGet(hdr, dep_items[deptype].nametag, filenames, flags),
+ headerGet(hdr, dep_items[deptype].flagstag, fileflags, flags),
+ headerGet(hdr, dep_items[deptype].versiontag, fileversions, flags));
+ g_debug("HYOKEUN: filenames=%s, fileflags=%s, fileversions=%s",
+ rpmtdGetString(filenames), rpmtdGetString(fileflags), rpmtdGetString(fileversions));
+
if (headerGet(hdr, dep_items[deptype].nametag, filenames, flags) &&
headerGet(hdr, dep_items[deptype].flagstag, fileflags, flags) &&
headerGet(hdr, dep_items[deptype].versiontag, fileversions, flags))
{
+ g_debug("HYOKEUN: OK...");
// Because we have to select only libc.so with highest version
// e.g. libc.so.6(GLIBC_2.4)
dependency->release = evr->release;
g_free(evr);
+ g_debug("HYOKEUN: cr_package_from_header(%d)", deptype);
switch (deptype) {
case DEP_PROVIDES:
+ g_debug("HYOKEUN: cr_package_from_header(DEP_PROVIDES)");
g_hash_table_replace(provided_hashtable, dependency->name, dependency->name);
pkg->provides = g_slist_prepend(pkg->provides, dependency);
break;
pkg->enhances = g_slist_prepend(pkg->enhances, dependency);
break;
case DEP_RECOMMENDS:
+ g_debug("HYOKEUN: cr_package_from_header(DEP_RECOMMENDS)");
pkg->recommends = g_slist_prepend(pkg->recommends, dependency);
break;
case DEP_SUPPLEMENTS:
return FALSE;
}
+ // HYOKEUN - Need to check header why recommends not included...
+ g_debug("HYOKEUN: rpmReadPackageFile()");
+
int rc = rpmReadPackageFile(cr_ts, fd, NULL, hdr);
if (rc != RPMRC_OK) {
switch (rc) {
if (!read_header(filename, &hdr, err))
return NULL;
+ g_debug("HYOKEUN: cr_package_from_rpm_base(%s)", filename);
pkg = cr_package_from_header(hdr, changelog_limit, flags, err);
+ g_debug("HYOKEUN: pkg");
+ g_debug(" name:%s", pkg->name);
+ g_debug(" arch:%s", pkg->arch);
+ g_debug(" version:%s", pkg->version);
+ g_debug(" epoch:%s", pkg->epoch);
+ g_debug(" release:%s", pkg->release);
+ g_debug(" vcs:%s", pkg->vcs);
+ g_debug(" summary:%s", pkg->summary);
+ g_debug(" description:%s", pkg->description);
+ g_debug(" rpm_license:%s", pkg->rpm_license);
+ g_debug(" rpm_vendor:%s", pkg->rpm_vendor);
+ g_debug(" rpm_group:%s", pkg->rpm_group);
+
+ for (GSList *elem = pkg->requires; elem; elem = g_slist_next(elem)) {
+ cr_Dependency *odep = elem->data;
+ g_debug(" requires");
+ g_debug(" name:%s", odep->name);
+ g_debug(" flags:%s", odep->flags);
+ g_debug(" epoch:%s", odep->epoch);
+ g_debug(" version:%s", odep->version);
+ g_debug(" release:%s", odep->release);
+ }
+ for (GSList *elem = pkg->provides; elem; elem = g_slist_next(elem)) {
+ cr_Dependency *odep = elem->data;
+ g_debug(" provides");
+ g_debug(" name:%s", odep->name);
+ g_debug(" flags:%s", odep->flags);
+ g_debug(" epoch:%s", odep->epoch);
+ g_debug(" version:%s", odep->version);
+ g_debug(" release:%s", odep->release);
+ }
+ for (GSList *elem = pkg->recommends; elem; elem = g_slist_next(elem)) {
+ cr_Dependency *odep = elem->data;
+ g_debug(" recommends");
+ g_debug(" name:%s", odep->name);
+ g_debug(" flags:%s", odep->flags);
+ g_debug(" epoch:%s", odep->epoch);
+ g_debug(" version:%s", odep->version);
+ g_debug(" release:%s", odep->release);
+ }
+
+
headerFree(hdr);
return pkg;
}
assert(filename);
assert(!err || *err == NULL);
+ g_debug("HYOKEUN: cr_package_from_rpm(%s)", filename);
+
// Get a package object
pkg = cr_package_from_rpm_base(filename, changelog_limit, flags, err);
if (!pkg)
{
assert(pd->pkg);
+ g_debug("HYOKEUN: cr_start_handler(state=%d)\n", pd->state);
+
cr_Dependency *dep = cr_dependency_new();
val = cr_find_attr("name", attr);
switch (pd->state) {
case STATE_RPM_ENTRY_PROVIDES:
+ g_debug("HYOKEUN: STATE_RPM_ENTRY_PROVIDES\n");
pd->pkg->provides = g_slist_prepend(pd->pkg->provides, dep);
break;
case STATE_RPM_ENTRY_REQUIRES:
pd->pkg->enhances = g_slist_prepend(pd->pkg->enhances, dep);
break;
case STATE_RPM_ENTRY_RECOMMENDS:
+ g_debug("HYOKEUN: STATE_RPM_ENTRY_RECOMMENDS\n");
pd->pkg->recommends = g_slist_prepend(pd->pkg->recommends, dep);
break;
case STATE_RPM_ENTRY_SUPPLEMENTS:
pd->state = pd->sbtab[pd->state];
pd->docontent = 0;
+ g_debug("HYOKEUN: cr_end_handler(%d)\n", state);
+
switch (state) {
case STATE_START:
case STATE_METADATA:
break;
case STATE_RPM_PROVIDES:
+ g_debug("HYOKEUN: end STATE_RPM_PROVIDES\n");
pd->pkg->provides = g_slist_reverse(pd->pkg->provides);
break;
break;
case STATE_RPM_RECOMMENDS:
+ g_debug("HYOKEUN: end STATE_RPM_RECOMMENDS\n");
pd->pkg->recommends = g_slist_reverse(pd->pkg->recommends);
break;