diff -urN poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c poldek-0.20.1-cvs20070108.22/pm/rpm/misc.c --- poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c 2007-01-08 22:14:18.000000000 +0100 +++ poldek-0.20.1-cvs20070108.22/pm/rpm/misc.c 2007-05-21 08:01:00.385663226 +0200 @@ -22,6 +22,7 @@ #include #include +#define _RPMPRCO_INTERNAL 1 #include #if HAVE_RPMDSRPMLIB # include @@ -73,6 +74,24 @@ typedef int (*rpmcap_fn)(rpmds *ds, void *); +#ifdef HAVE_RPMDSSYSINFO +static int pm_rpmdsSysinfo(rpmds * dsp, const char * fn) { + int ret; +// XXX: better test welcome +#define RPM_VERSION(a,b,c) ((a)*65536+(b)*256+(c)) +#if RPM_VERSION(RPM_FORMAT_VERSION,RPM_MAJOR_VERSION,RPM_MINOR_VERSION) >= RPM_VERSION(4,4,8) + rpmPRCO PRCO = rpmdsNewPRCO(NULL); + PRCO->Pdsp = dsp; + ret = rpmdsSysinfo(PRCO, fn); + PRCO->Pdsp = NULL; + rpmdsFreePRCO(PRCO); +#else + ret = rpmdsSysinfo(dsp, fn); +#endif + return ret; +} +#endif + static int get_rpmlib_caps(tn_array *caps) { rpmds ds = NULL; @@ -86,7 +105,7 @@ (rpmcap_fn)rpmdsGetconf, #endif #ifdef HAVE_RPMDSSYSINFO - (rpmcap_fn)rpmdsSysinfo, + (rpmcap_fn)pm_rpmdsSysinfo, #endif #ifdef HAVE_RPMDSUNAME (rpmcap_fn)rpmdsUname,