Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
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;
}