PyObject * packagelist_to_pylist(GPtrArray *plist, PyObject *sack) { DnfPackage *cpkg; PyObject *list; PyObject *retval; list = PyList_New(0); if (list == NULL) return NULL; retval = list; for (unsigned int i = 0; i < plist->len; i++) { cpkg = g_ptr_array_index (plist, i); PyObject *package = new_package(sack, dnf_package_get_id(cpkg)); if (package == NULL) { retval = NULL; break; } int rc = PyList_Append(list, package); Py_DECREF(package); if (rc == -1) { retval = NULL; break; } } if (retval) return retval; /* return error */ Py_DECREF(list); return NULL; }
static PyObject * get_running_kernel(_SackObject *self, PyObject *unused) { DnfSack *sack = self->sack; DnfPackage *cpkg = dnf_sack_get_running_kernel(sack); if (cpkg == NULL) Py_RETURN_NONE; PyObject *pkg = new_package((PyObject*)self, dnf_package_get_id(cpkg)); g_object_unref(cpkg); return pkg; }
/** * dnf_package_cmp: * @pkg1: a #DnfPackage instance. * @pkg2: another #DnfPackage instance. * * Compares two packages. * * Returns: %TRUE for success * * Since: 0.7.0 */ int dnf_package_cmp(DnfPackage *pkg1, DnfPackage *pkg2) { Pool *pool1 = dnf_package_get_pool(pkg1); Pool *pool2 = dnf_package_get_pool(pkg2); Solvable *s1 = pool_id2solvable(pool1, dnf_package_get_id(pkg1)); Solvable *s2 = pool_id2solvable(pool2, dnf_package_get_id(pkg2)); const char *str1 = pool_id2str(pool1, s1->name); const char *str2 = pool_id2str(pool2, s2->name); int ret = strcmp(str1, str2); if (ret) return ret; ret = dnf_package_evr_cmp(pkg1, pkg2); if (ret) return ret; str1 = pool_id2str(pool1, s1->arch); str2 = pool_id2str(pool2, s2->arch); return strcmp(str1, str2); }
/* make Sack think k-1-1 is the running kernel */ static Id mock_running_kernel(DnfSack *sack) { HyQuery q = hy_query_create(sack); hy_query_filter(q, HY_PKG_NAME, HY_EQ, "k"); hy_query_filter(q, HY_PKG_EVR, HY_EQ, "1-1"); GPtrArray *plist = hy_query_run(q); fail_unless(plist->len == 1); DnfPackage *pkg = g_object_ref(g_ptr_array_index(plist, 0)); hy_query_free(q); g_ptr_array_unref(plist); Id id = dnf_package_get_id(pkg); g_object_unref(pkg); return id; }
static PyObject * add_cmdline_package(_SackObject *self, PyObject *fn_obj) { DnfPackage *cpkg; PyObject *pkg; PycompString fn(fn_obj); if (!fn.getCString()) return NULL; cpkg = dnf_sack_add_cmdline_package_nochecksum(self->sack, fn.getCString()); if (cpkg == NULL) { PyErr_Format(PyExc_IOError, "Can not load RPM file: %s.", fn.getCString()); return NULL; } pkg = new_package((PyObject*)self, dnf_package_get_id(cpkg)); g_object_unref(cpkg); return pkg; }
/** * dnf_package_clone: * @pkg: a #DnfPackage instance. * * Clones the package. * * Returns: a #DnfPackage * * Since: 0.7.0 */ DnfPackage * dnf_package_clone(DnfPackage *pkg) { return dnf_package_new(dnf_package_get_sack(pkg), dnf_package_get_id(pkg)); }
bool PackageSet::has(DnfPackage *pkg) const { return MAPTST(&pImpl->map, dnf_package_get_id(pkg)); }
void PackageSet::set(DnfPackage *pkg) { MAPSET(&pImpl->map, dnf_package_get_id(pkg)); }
long package_hash(_PackageObject *self) { return dnf_package_get_id(self->package); }