diff options
author | Michal Minar <miminar@redhat.com> | 2014-06-10 13:45:56 +0200 |
---|---|---|
committer | Michal Minar <miminar@redhat.com> | 2014-06-10 15:09:02 +0200 |
commit | dbddcd953edd57e81c52845c1b098f90cd5a6a0c (patch) | |
tree | 5bc515bcf60dc2f0870dbbb53da1c8845879ac63 /src | |
parent | ed6b657bd768704f54e235b09b22b921c05dc8db (diff) | |
download | openlmi-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.c | 48 |
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) |