return PyLong_FromUnsignedLongLong(size);
}
+static PyObject* Package_get_build_arches(PackageObject* self) {
+ PyObject* ret = NULL;
+
+ // Fetch all supported arches
+ char** build_arches = pakfire_package_get_strings(self->package, PAKFIRE_PKG_BUILD_ARCHES);
+ if (!build_arches) {
+ ret = PyList_New(0);
+ goto END;
+ }
+
+ // Make a new list
+ ret = PyUnicodeList_FromStringArray(build_arches);
+
+ // Cleanup
+ for (char** build_arch = build_arches; *build_arch; build_arch++) {
+ free(*build_arch);
+ }
+ free(build_arches);
+
+END:
+ return ret;
+}
+
static PyObject* Package_get_buildhost(PackageObject* self) {
const char* build_host = pakfire_package_get_string(self->package, PAKFIRE_PKG_BUILD_HOST);
if (!build_host)
NULL,
NULL
},
+ {
+ "build_arches",
+ (getter)Package_get_build_arches,
+ NULL,
+ NULL,
+ NULL,
+ },
{
"source_package",
(getter)Package_get_source_package,
#include "package.h"
#include "util.h"
+PyObject* PyUnicodeList_FromStringArray(char** l) {
+ PyObject* list = NULL;
+ PyObject* s = NULL;
+ int r;
+
+ // Check inputs
+ if (!l)
+ return NULL;
+
+ list = PyList_New(0);
+ if (!list)
+ goto ERROR;
+
+ while (*l) {
+ s = PyUnicode_FromString(*l);
+ if (!s)
+ goto ERROR;
+
+ r = PyList_Append(list, s);
+ if (r)
+ goto ERROR;
+ }
+
+ERROR:
+ if (list)
+ Py_DECREF(list);
+
+ return NULL;
+}
+
PyObject* PyList_FromPackageList(struct pakfire_packagelist* packagelist) {
PyObject* list = PyList_New(0);
#include <pakfire/filelist.h>
#include <pakfire/packagelist.h>
+PyObject* PyUnicodeList_FromStringArray(char** l);
+
PyObject* PyList_FromPackageList(struct pakfire_packagelist* packagelist);
PyObject* PyList_FromFileList(struct pakfire_filelist* filelist);
pakfire_package_get_reverse_requires;
pakfire_package_get_size;
pakfire_package_get_string;
+ pakfire_package_get_strings;
pakfire_package_get_uuid;
pakfire_package_id;
pakfire_package_installcheck;
pakfire_package_set_num;
pakfire_package_set_path;
pakfire_package_set_string;
+ pakfire_package_set_strings;
pakfire_package_set_uuid;
pakfire_package_unref;
self.assertEqual(p.source_arch, "src")
self.assertEqual(p.source_evr, "1.3-2.ipfire3")
+ self.assertEqual(p.build_arches, [])
+
# Digest
algo, digest = p.digest