diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | URPM.xs | 16 |
2 files changed, 12 insertions, 5 deletions
@@ -1,4 +1,5 @@ - drop import_pubkey function (dead for 5 years) +- fix importing pubkeys with rpm-4.10.0 (eg: when adding media) Version 4.0 - 8 June 2012 @@ -1231,9 +1231,9 @@ read_config_files(int force) { return rc; } -static void +static rpmVSFlags ts_nosignature(rpmts ts) { - rpmtsSetVSFlags(ts, _RPMVSF_NODIGESTS | _RPMVSF_NOSIGNATURES); + return rpmtsSetVSFlags(ts, _RPMVSF_NODIGESTS | _RPMVSF_NOSIGNATURES); } static void *rpmRunTransactions_callback(__attribute__((unused)) const void *h, @@ -2518,10 +2518,11 @@ Db_traverse(db,callback) PREINIT: Header header; rpmdbMatchIterator mi; + rpmVSFlags ovsflags; int count = 0; CODE: db->ts = rpmtsLink(db->ts); - ts_nosignature(db->ts); + ovsflags = ts_nosignature(db->ts); mi = rpmtsInitIterator(db->ts, RPMDBI_PACKAGES, NULL, 0); while ((header = rpmdbNextIterator(mi))) { if (SvROK(callback)) { @@ -2543,6 +2544,7 @@ Db_traverse(db,callback) ++count; } rpmdbFreeIterator(mi); + rpmtsSetVSFlags(db->ts, ovsflags); (void)rpmtsFree(db->ts); RETVAL = count; OUTPUT: @@ -2558,6 +2560,7 @@ Db_traverse_tag(db,tag,names,callback) Header header; rpmdbMatchIterator mi; int count = 0; + rpmVSFlags ovsflags; CODE: if (SvROK(names) && SvTYPE(SvRV(names)) == SVt_PVAV) { AV* names_av = (AV*)SvRV(names); @@ -2571,7 +2574,7 @@ Db_traverse_tag(db,tag,names,callback) SV **isv = av_fetch(names_av, i, 0); char *name = SvPV(*isv, str_len); db->ts = rpmtsLink(db->ts); - ts_nosignature(db->ts); + ovsflags = ts_nosignature(db->ts); mi = rpmtsInitIterator(db->ts, rpmtag, name, str_len); while ((header = rpmdbNextIterator(mi))) { if (SvROK(callback)) { @@ -2593,6 +2596,7 @@ Db_traverse_tag(db,tag,names,callback) ++count; } (void)rpmdbFreeIterator(mi); + rpmtsSetVSFlags(db->ts, ovsflags); (void)rpmtsFree(db->ts); } } else croak("bad arguments list"); @@ -2612,8 +2616,9 @@ Db_traverse_tag_find(db,tag,name,callback) CODE: int rpmtag = rpmtag_from_string(tag); int found = 0; + rpmVSFlags ovsflags; db->ts = rpmtsLink(db->ts); - ts_nosignature(db->ts); + ovsflags = ts_nosignature(db->ts); mi = rpmtsInitIterator(db->ts, rpmtag, name, 0); while ((header = rpmdbNextIterator(mi))) { dSP; @@ -2636,6 +2641,7 @@ Db_traverse_tag_find(db,tag,name,callback) break; } } + rpmtsSetVSFlags(db->ts, ovsflags); (void)rpmdbFreeIterator(mi); (void)rpmtsFree(db->ts); RETVAL = found; |