[packages/rpm] - python bindings: expose headers from spec file - rel 33

baggins baggins at pld-linux.org
Wed May 11 22:15:11 CEST 2016


commit 211e3eab8d8318520985ae270becc83cd067aa59
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Wed May 11 22:14:23 2016 +0200

    - python bindings: expose headers from spec file
    - rel 33

 rpm-python-spec-header.patch | 56 ++++++++++++++++++++++++++++++++++++++++++++
 rpm.spec                     |  4 +++-
 2 files changed, 59 insertions(+), 1 deletion(-)
---
diff --git a/rpm.spec b/rpm.spec
index a914ee6..2d6d3bb 100644
--- a/rpm.spec
+++ b/rpm.spec
@@ -51,7 +51,7 @@ Summary(ru.UTF-8):	Менеджер пакетов от RPM
 Summary(uk.UTF-8):	Менеджер пакетів від RPM
 Name:		rpm
 Version:	5.4.15
-Release:	32
+Release:	33
 License:	LGPL v2.1
 Group:		Base
 # http://rpm5.org/files/rpm/rpm-5.4/rpm-5.4.15-0.20140824.src.rpm
@@ -181,6 +181,7 @@ Patch91:	py-disable-fetch.patch
 Patch92:	fast_python_deps.patch
 Patch93:	python2_explicit.patch
 Patch94:	do_not_write_before_macro_buffer.patch
+Patch95:	rpm-python-spec-header.patch
 
 # Patches imported from Mandriva
 
@@ -1020,6 +1021,7 @@ cd -
 %patch92 -p1
 %patch93 -p1
 %patch94 -p1
+%patch95 -p1
 
 %patch1050 -p1
 
diff --git a/rpm-python-spec-header.patch b/rpm-python-spec-header.patch
new file mode 100644
index 0000000..d56b6b2
--- /dev/null
+++ b/rpm-python-spec-header.patch
@@ -0,0 +1,56 @@
+diff -ur rpm-5.4.15/python/spec-py.c rpm-5.4.15-pyspec/python/spec-py.c
+--- rpm-5.4.15/python/spec-py.c	2016-05-11 21:38:24.970137574 +0200
++++ rpm-5.4.15-pyspec/python/spec-py.c	2016-05-10 22:47:04.748529737 +0200
+@@ -8,6 +8,9 @@
+ #include <rpmio.h>
+ #define _MACRO_INTERNAL
+ #include <rpmmacro.h>
++#define	_RPMTAG_INTERNAL
++#include "header_internal.h"	/* XXX HEADERFLAG_ALLOCATED */
++#include "header-py.h"
+ #include "spec-py.h"
+ 
+ /** \ingroup python
+@@ -192,6 +195,34 @@
+ 
+ }
+ 
++static PyObject *
++spec_get_headers(specObject *s)
++    /*@*/
++{
++    PyObject *headerList;
++    Spec spec;
++    Package package;
++    Header header;
++
++    headerList = PyList_New(0);
++    if (!headerList) {
++        return NULL;
++    }
++    spec = specFromSpec(s);
++    if ( spec != NULL) {
++        package = spec->packages;
++
++         while (package != NULL) {
++            header = package->header;
++	    if (header != NULL)
++                PyList_Append(headerList, (PyObject *) hdr_Wrap(header));
++            package = package->next;
++        } 
++    }
++
++    return PyList_AsTuple(headerList);
++}
++
+ /**
+  */
+  /*@unchecked@*/ /*@observer@*/
+@@ -208,6 +239,7 @@
+     {"clean",   (PyCFunction) spec_get_clean, METH_VARARGS,  NULL },
+     {"buildRoot",   (PyCFunction) spec_get_buildroot, METH_VARARGS,  NULL },
+     {"macros",   (PyCFunction) spec_get_macros, METH_VARARGS,  NULL },
++    {"headers",   (PyCFunction) spec_get_headers, METH_VARARGS,  NULL },
+     {NULL}  /* Sentinel */
+ };
+ /*@=fullinitblock@*/
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm.git/commitdiff/211e3eab8d8318520985ae270becc83cd067aa59



More information about the pld-cvs-commit mailing list