summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Minar <miminar@redhat.com>2014-06-10 13:45:56 +0200
committerMichal Minar <miminar@redhat.com>2014-06-10 15:09:02 +0200
commitdbddcd953edd57e81c52845c1b098f90cd5a6a0c (patch)
tree5bc515bcf60dc2f0870dbbb53da1c8845879ac63 /src
parented6b657bd768704f54e235b09b22b921c05dc8db (diff)
downloadopenlmi-providers-dbddcd953edd57e81c52845c1b098f90cd5a6a0c.tar.gz
openlmi-providers-dbddcd953edd57e81c52845c1b098f90cd5a6a0c.tar.xz
openlmi-providers-dbddcd953edd57e81c52845c1b098f90cd5a6a0c.zip
support older versions of PackageKit api
Functions like: pk_details_get_package_id pk_details_get_description are available since version 0.8.12. In RHEL7 we have 0.8.9. Let's avoid using them.
Diffstat (limited to 'src')
-rw-r--r--src/software-dbus/sw-utils.c48
1 files changed, 36 insertions, 12 deletions
diff --git a/src/software-dbus/sw-utils.c b/src/software-dbus/sw-utils.c
index 6b1424d..d6aa06e 100644
--- a/src/software-dbus/sw-utils.c
+++ b/src/software-dbus/sw-utils.c
@@ -127,7 +127,7 @@ short create_sw_package_from_pk_pkg(PkPackage *pk_pkg, SwPackage *sw_pkg)
short create_sw_package_from_elem_name(const char *elem_name, SwPackage *sw_pkg)
{
short ret = -1;
- char *en, *delim;
+ char *en = NULL, *delim;
init_sw_package(sw_pkg);
@@ -201,7 +201,8 @@ short create_sw_package_from_elem_name(const char *elem_name, SwPackage *sw_pkg)
ret = 0;
done:
- free(en);
+ if (en)
+ free(en);
if (ret != 0) {
free_sw_package(sw_pkg);
@@ -297,11 +298,15 @@ void get_pk_det_from_pk_pkg(PkPackage *pk_pkg, PkDetails **pk_det, PkTask *task_
for (i = 0; i < array->len; i++) {
item = g_ptr_array_index(array, i);
- if (strcmp(pk_details_get_package_id(item),
- pk_package_get_id(pk_pkg)) == 0) {
+ gchar *pkg_id = NULL;
+ g_object_get(item, "package-id", &pkg_id, NULL);
+ if (strcmp(pkg_id, pk_package_get_id(pk_pkg)) == 0) {
+ g_free(pkg_id);
*pk_det = g_object_ref(item);
break;
}
+ g_free(pkg_id);
+ pkg_id = NULL;
}
done:
@@ -318,13 +323,14 @@ void create_instance_from_pkgkit_data(PkPackage *pk_pkg, PkDetails *pk_det,
SwPackage *sw_pkg, const CMPIBroker *cb, const char *ns,
LMI_SoftwareIdentity *w)
{
- const gchar *summary, *desc = NULL;
+ const gchar *summary;
+ gchar *desc = NULL;
char elem_name[BUFLEN] = "", ver_str[BUFLEN] = "",
instance_id[BUFLEN] = "";
summary = pk_package_get_summary(pk_pkg);
if (pk_det) {
- desc = pk_details_get_description(pk_det);
+ g_object_get(pk_det, "description", &desc, NULL);
}
sw_pkg_get_element_name(sw_pkg, elem_name, BUFLEN);
@@ -356,6 +362,7 @@ void create_instance_from_pkgkit_data(PkPackage *pk_pkg, PkDetails *pk_det,
}
if (desc) {
LMI_SoftwareIdentity_Set_Description(w, desc);
+ g_free(desc);
}
return;
@@ -547,6 +554,7 @@ void enum_sw_identity_instances(PkBitfield filters, const CMPIBroker *cb,
PkDetails *pk_det = NULL;
GPtrArray *pkg_array = NULL, *det_array = NULL;
gchar **values = NULL;
+ gchar *pkg_id = NULL;
SwPackage sw_pkg;
int cmpres;
unsigned i, det_a_i = 0;
@@ -576,8 +584,10 @@ void enum_sw_identity_instances(PkBitfield filters, const CMPIBroker *cb,
if (det_array) {
while (cmpres < 0 && det_a_i < det_array->len) {
pk_det = g_ptr_array_index(det_array, det_a_i);
- cmpres = strcmp(pk_details_get_package_id(pk_det),
- pk_package_get_id(pk_pkg));
+ g_object_get(pk_det, "package-id", &pkg_id, NULL);
+ cmpres = strcmp(pkg_id, pk_package_get_id(pk_pkg));
+ g_free(pkg_id);
+ pkg_id = NULL;
if (cmpres < 0) {
/* this should not happen -
* we have spare unmatched package details */
@@ -695,7 +705,7 @@ void get_repo_id_from_sw_pkg(const SwPackage *sw_pkg, gchar **repo_id_p,
PkPackage *pk_pkg = NULL;
GPtrArray *repos = NULL, *det_array = NULL;
gchar *repo_id = NULL, *pkg_id = NULL, **values = NULL, **pkg_id_parts = NULL;
- const gchar *repo_id_pkg = NULL, *pkg_id_c = NULL;
+ const gchar *repo_id_pkg = NULL;
unsigned i, j;
get_pk_repos(&repos, error_msg, error_msg_len);
@@ -742,8 +752,11 @@ void get_repo_id_from_sw_pkg(const SwPackage *sw_pkg, gchar **repo_id_p,
if (det_array && det_array->len > 0) {
for (i = 0; i < det_array->len; i++) {
- pkg_id_c = pk_details_get_package_id(g_ptr_array_index(det_array, i));
- pkg_id_parts = pk_package_id_split(pkg_id_c);
+ g_object_get(g_ptr_array_index(det_array, i), "package-id",
+ &pkg_id, NULL);
+ pkg_id_parts = pk_package_id_split(pkg_id);
+ g_free(pkg_id);
+ pkg_id = NULL;
if (!pkg_id_parts) {
continue;
}
@@ -823,8 +836,19 @@ gint pk_det_cmp(gpointer a, gpointer b)
{
PkDetails *al = *(PkDetails **) a;
PkDetails *bl = *(PkDetails **) b;
+ gchar *pkg_id_a = NULL;
+ gchar *pkg_id_b = NULL;
+ gint ret;
- return (gint) strcmp(pk_details_get_package_id(al), pk_details_get_package_id(bl));
+ g_object_get(al, "package-id", &pkg_id_a, NULL);
+ g_object_get(bl, "package-id", &pkg_id_b, NULL);
+
+ ret = (gint) strcmp(pkg_id_a, pkg_id_b);
+
+ g_free(pkg_id_a);
+ g_free(pkg_id_b);
+
+ return ret;
}
gint pk_repo_cmp(gpointer a, gpointer b)