From 0f7f66f5731ef04948794329f1a1ed6597015589 Mon Sep 17 00:00:00 2001
From: Michal Luscon <mluscon@redhat.com>
Date: Mon, 14 Mar 2016 17:29:20 +0100
Subject: [PATCH 1/3] hy-package: add support for Requires(pre)
(Related:RhBug:1303117)
Closes: #95
Reviewed-by: Igor Gnatenko <ignatenko@redhat.com>
---
src/package.c | 16 +++++++++++++++-
src/package.h | 1 +
src/python/package-py.c | 2 ++
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/package.c b/src/package.c
index 3c47d24..1bd5fb3 100644
--- a/src/package.c
+++ b/src/package.c
@@ -25,6 +25,7 @@
#include <solv/evr.h>
#include <solv/pool.h>
#include <solv/repo.h>
+#include <solv/queue.h>
#include <solv/util.h>
// hawkey
@@ -65,9 +66,16 @@ reldeps_for(HyPackage pkg, Id type)
Solvable *s = get_solvable(pkg);
HyReldepList reldeplist;
Queue q;
+ Id marker = -1;
+ Id solv_type = type;
+ if (type == SOLVABLE_PREREQMARKER) {
+ solv_type = SOLVABLE_REQUIRES;
+ marker = 1;
+ }
queue_init(&q);
- solvable_lookup_deparray(s, type, &q, -1);
+ solvable_lookup_deparray(s, solv_type, &q, marker);
+
reldeplist = reldeplist_from_queue(pool, q);
queue_free(&q);
@@ -425,6 +433,12 @@ hy_package_get_requires(HyPackage pkg)
}
HyReldepList
+hy_package_get_requires_pre(HyPackage pkg)
+{
+ return reldeps_for(pkg, SOLVABLE_PREREQMARKER);
+}
+
+HyReldepList
hy_package_get_suggests(HyPackage pkg)
{
return reldeps_for(pkg, SOLVABLE_SUGGESTS);
diff --git a/src/package.h b/src/package.h
index 742f0f6..43f335b 100644
--- a/src/package.h
+++ b/src/package.h
@@ -83,6 +83,7 @@ HyReldepList hy_package_get_obsoletes(HyPackage pkg);
HyReldepList hy_package_get_provides(HyPackage pkg);
HyReldepList hy_package_get_recommends(HyPackage pkg);
HyReldepList hy_package_get_requires(HyPackage pkg);
+HyReldepList hy_package_get_requires_pre(HyPackage pkg);
HyReldepList hy_package_get_suggests(HyPackage pkg);
HyReldepList hy_package_get_supplements(HyPackage pkg);
HyStringArray hy_package_get_files(HyPackage pkg);
diff --git a/src/python/package-py.c b/src/python/package-py.c
index 7087cf9..cd41e15 100644
--- a/src/python/package-py.c
+++ b/src/python/package-py.c
@@ -332,6 +332,8 @@ static PyGetSetDef package_getsetters[] = {
(void *)hy_package_get_recommends},
{"requires", (getter)get_reldep, NULL, NULL,
(void *)hy_package_get_requires},
+ {"requires_pre", (getter)get_reldep, NULL, NULL,
+ (void *)hy_package_get_requires_pre},
{"suggests", (getter)get_reldep, NULL, NULL,
(void *)hy_package_get_suggests},
{"supplements", (getter)get_reldep, NULL, NULL,
--
2.11.1