static PyObject * rpmds_Rpmlib(rpmdsObject * s) { rpmds ds = NULL; int xx; /* XXX check return code, permit arg (NULL uses system default). */ xx = rpmdsRpmlib(&ds, NULL); return rpmds_Wrap(ds); }
static VALUE rpmds_new(int argc, VALUE *argv, VALUE s) { VALUE v_hdr, v_tag; rpmTag tag = RPMTAG_NAME; int flags = 0; rpmds ds; rb_scan_args(argc, argv, "02", &v_hdr, &v_tag); if (!NIL_P(v_tag)) tag = FIX2INT(v_tag); if (!NIL_P(v_hdr)) { Header h = rpmds_ptr(v_hdr); ds = rpmdsNew(h, tag, flags); } else (void) rpmdsRpmlib(&ds, NULL); if (_debug) fprintf(stderr, "==> %s(%p[%d], 0x%lx) mi %p\n", __FUNCTION__, argv, argc, s, ds); return Data_Wrap_Struct(s, 0, rpmds_free, ds); }
static int rpmlibDeps(Header h) { rpmds req = rpmdsInit(rpmdsNew(h, RPMTAG_REQUIRENAME, 0)); rpmds rpmlib = NULL; rpmdsRpmlib(&rpmlib, NULL); int rc = 1; char *nvr = NULL; while (rpmdsNext(req) >= 0) { if (!(rpmdsFlags(req) & RPMSENSE_RPMLIB)) continue; if (rpmdsSearch(rpmlib, req) < 0) { if (!nvr) { nvr = headerGetAsString(h, RPMTAG_NEVRA); rpmlog(RPMLOG_ERR, _("Missing rpmlib features for %s:\n"), nvr); } rpmlog(RPMLOG_ERR, "\t%s\n", rpmdsDNEVR(req)+2); rc = 0; } } rpmdsFree(req); rpmdsFree(rpmlib); free(nvr); return rc; }