From 6ca0e13033085542332ad812bc62ae9243b8688f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 29 Jan 2010 11:36:06 +0000 Subject: packagekit: 0.4.9 -> 0.6.0 (with fixes for opkg) Signed-off-by: Richard Purdie --- .../packagekit/packagekit-0.6.0/opkgfixes.patch | 421 +++++++++++++++++++++ 1 file changed, 421 insertions(+) create mode 100644 meta-moblin/packages/packagekit/packagekit-0.6.0/opkgfixes.patch (limited to 'meta-moblin/packages/packagekit/packagekit-0.6.0/opkgfixes.patch') diff --git a/meta-moblin/packages/packagekit/packagekit-0.6.0/opkgfixes.patch b/meta-moblin/packages/packagekit/packagekit-0.6.0/opkgfixes.patch new file mode 100644 index 000000000..64da86a52 --- /dev/null +++ b/meta-moblin/packages/packagekit/packagekit-0.6.0/opkgfixes.patch @@ -0,0 +1,421 @@ +Index: PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c +=================================================================== +--- PackageKit-0.6.0.orig/backends/opkg/pk-backend-opkg.c 2010-01-29 09:39:33.000000000 +0000 ++++ PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c 2010-01-29 11:30:51.000000000 +0000 +@@ -29,8 +29,6 @@ + + #include + +-static opkg_t *opkg; +- + enum { + SEARCH_NAME, + SEARCH_DESCRIPTION, +@@ -62,7 +60,7 @@ + * check an opkg package for known GUI dependancies + */ + static gboolean +-opkg_is_gui_pkg (opkg_package_t *pkg) ++opkg_is_gui_pkg (pkg_t *pkg) + { + + /* TODO: check appropriate tag */ +@@ -84,7 +82,7 @@ + * check an opkg package to determine if it is a development package + */ + static gboolean +-opkg_is_devel_pkg (opkg_package_t *pkg) ++opkg_is_devel_pkg (pkg_t *pkg) + { + if (g_strrstr (pkg->name, "-dev")) + return TRUE; +@@ -105,7 +103,7 @@ + * returns true if the tag is present + */ + static gboolean +-opkg_check_tag (opkg_package_t *pkg, const gchar *tag) ++opkg_check_tag (pkg_t *pkg, const gchar *tag) + { + if (pkg->tags && tag) + return (g_strrstr (pkg->tags, tag) != NULL); +@@ -118,7 +116,7 @@ + { + switch (err) + { +- case OPKG_NO_ERROR: ++/* case OPKG_NO_ERROR: + break; + case OPKG_PACKAGE_NOT_INSTALLED: + pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL); +@@ -140,7 +138,7 @@ + break; + case OPKG_PACKAGE_NOT_AVAILABLE: + pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, NULL); +- break; ++ break;*/ + default: + opkg_unknown_error (backend, err, "Update package"); + } +@@ -152,7 +150,7 @@ + static void + backend_initialize (PkBackend *backend) + { +- opkg = opkg_new (); ++ int opkg = opkg_new (); + + if (!opkg) { + pk_backend_error_code (backend, +@@ -162,8 +160,8 @@ + } + + #ifdef OPKG_OFFLINE_ROOT +- opkg_set_option (opkg, (char *) "offline_root", OPKG_OFFLINE_ROOT); +- opkg_re_read_config_files (opkg); ++ opkg_set_option ((char *) "offline_root", OPKG_OFFLINE_ROOT); ++ opkg_re_read_config_files (); + #endif + + } +@@ -174,22 +172,22 @@ + static void + backend_destroy (PkBackend *backend) + { +- opkg_free (opkg); ++ opkg_free (); + } + + + static void +-pk_opkg_progress_cb (opkg_t *_opkg, const opkg_progress_data_t *pdata, void *data) ++pk_opkg_progress_cb (const opkg_progress_data_t *pdata, void *data) + { +- PkBackend *backend = PK_BACKEND (data); ++ PkBackend *backend = (PkBackend*) data; + if (!backend) + return; + + pk_backend_set_percentage (backend, pdata->percentage); +- if (pdata->package) ++ if (pdata->pkg) + { + gchar *uid; +- opkg_package_t *pkg = pdata->package; ++ pkg_t *pkg = pdata->pkg; + gint status = PK_INFO_ENUM_UNKNOWN; + + uid = g_strdup_printf ("%s;%s;%s;", +@@ -225,12 +223,12 @@ + { + int ret; + +- ret = opkg_update_package_lists (opkg, pk_opkg_progress_cb, backend); ++ ret = opkg_update_package_lists (pk_opkg_progress_cb, backend); + + if (ret) { +- if (ret == OPKG_DOWNLOAD_FAILED) +- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL); +- else ++// if (ret == OPKG_DOWNLOAD_FAILED) ++// pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL); ++// else + opkg_unknown_error (backend, ret, "Refreshing cache"); + } + pk_backend_finished (backend); +@@ -256,7 +254,7 @@ + */ + + static void +-pk_opkg_package_list_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data) ++pk_opkg_package_list_cb (pkg_t *pkg, void *data) + { + SearchParams *params = (SearchParams*) data; + gchar *uid; +@@ -298,7 +296,7 @@ + uid = g_strdup_printf ("%s;%s;%s;", + pkg->name, pkg->version, pkg->architecture); + +- if (pkg->installed) ++ if (pkg->state_status == SS_INSTALLED) + status = PK_INFO_ENUM_INSTALLED; + else + status = PK_INFO_ENUM_AVAILABLE; +@@ -318,10 +316,10 @@ + opkg_is_gui_pkg (pkg)) + goto end_handle; + if (pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED) && +- (!pkg->installed)) ++ (pkg->state_status != SS_INSTALLED)) + goto end_handle; + if (pk_bitfield_contain(filters, PK_FILTER_ENUM_NOT_INSTALLED) && +- (pkg->installed)) ++ (pkg->state_status == SS_INSTALLED)) + goto end_handle; + + pk_backend_package (params->backend, status, uid, pkg->description); +@@ -338,7 +336,7 @@ + + params = pk_backend_get_pointer (backend, "search-params"); + +- opkg_list_packages (opkg, pk_opkg_package_list_cb, params); ++ opkg_list_packages (pk_opkg_package_list_cb, params); + + pk_backend_finished (params->backend); + +@@ -349,7 +347,7 @@ + } + + static void +-backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search) ++backend_search_name (PkBackend *backend, PkBitfield filters, gchar **search) + { + SearchParams *params; + +@@ -360,7 +358,7 @@ + params = g_new0 (SearchParams, 1); + params->filters = filters; + params->search_type = SEARCH_NAME; +- params->needle = g_utf8_strdown (search, -1); ++ params->needle = g_utf8_strdown (search[0], -1); + params->backend = backend; + + pk_backend_set_pointer (backend, "search-params", params); +@@ -371,7 +369,7 @@ + * backend_search_description: + */ + static void +-backend_search_description (PkBackend *backend, PkBitfield filters, const gchar *search) ++backend_search_description (PkBackend *backend, PkBitfield filters, gchar **search) + { + SearchParams *params; + +@@ -382,7 +380,7 @@ + params = g_new0 (SearchParams, 1); + params->filters = filters; + params->search_type = SEARCH_DESCRIPTION; +- params->needle = g_utf8_strdown (search, -1); ++ params->needle = g_utf8_strdown (search[0], -1); + params->backend = backend; + + pk_backend_set_pointer (backend, "search-params", params); +@@ -390,7 +388,7 @@ + } + + static void +-backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search) ++backend_search_group (PkBackend *backend, PkBitfield filters, gchar **search) + { + SearchParams *params; + +@@ -401,7 +399,7 @@ + params = g_new0 (SearchParams, 1); + params->filters = filters; + params->search_type = SEARCH_TAG; +- params->needle = g_strdup_printf ("group::%s", search); ++ params->needle = g_strdup_printf ("group::%s", search[0]); + params->backend = backend; + + pk_backend_set_pointer (backend, "search-params", params); +@@ -412,9 +410,9 @@ + static gboolean + backend_install_packages_thread (PkBackend *backend) + { +- PkPackageId *pi; + gint err, i; + gchar **package_ids; ++ gchar **parts; + + package_ids = pk_backend_get_strv (backend, "pkids"); + +@@ -424,13 +422,13 @@ + { + pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[i], NULL); + +- pi = pk_package_id_new_from_string (package_ids[i]); ++ parts = pk_package_id_split (package_ids[i]); + +- err = opkg_install_package (opkg, pi->name, pk_opkg_progress_cb, backend); ++ err = opkg_install_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend); + if (err) + handle_install_error (backend, err); + +- pk_package_id_free (pi); ++ g_strfreev (parts); + if (err != 0) + break; + } +@@ -453,9 +451,9 @@ + static gboolean + backend_remove_packages_thread (PkBackend *backend) + { +- PkPackageId *pi; + gint err, i; + gchar **package_ids; ++ gchar **parts; + gboolean allow_deps; + gboolean autoremove; + gpointer *data; +@@ -467,29 +465,30 @@ + autoremove = GPOINTER_TO_INT (data[2]); + g_free (data); + +- opkg_set_option (opkg, (char *)"autoremove", &autoremove); +- opkg_set_option (opkg, (char *)"force_removal_of_dependent_packages", &allow_deps); ++ opkg_set_option ((char *)"autoremove", &autoremove); ++ opkg_set_option ((char *)"force_removal_of_dependent_packages", &allow_deps); + + err = 0; + + for (i = 0; package_ids[i]; i++) + { +- pi = pk_package_id_new_from_string (package_ids[i]); + pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL); + +- err = opkg_remove_package (opkg, pi->name, pk_opkg_progress_cb, backend); ++ parts = pk_package_id_split (package_ids[i]); ++ ++ err = opkg_remove_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend); + + switch (err) + { +- case OPKG_NO_ERROR: +- break; +- case OPKG_PACKAGE_NOT_INSTALLED: +- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL); +- break; ++ //case OPKG_NO_ERROR: ++ // break; ++ //case OPKG_PACKAGE_NOT_INSTALLED: ++ // pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL); ++ // break; + default: + opkg_unknown_error (backend, err, "Remove"); + } +- pk_package_id_free (pi); ++ g_strfreev (parts); + + if (err != 0) + break; +@@ -540,7 +539,7 @@ + gint err; + + /* FIXME: support only_trusted */ +- err = opkg_upgrade_all (opkg, pk_opkg_progress_cb, backend); ++ err = opkg_upgrade_all (pk_opkg_progress_cb, backend); + + if (err) + opkg_unknown_error (backend, err, "Upgrading system"); +@@ -564,29 +563,28 @@ + static gboolean + backend_update_package_thread (PkBackend *backend) + { +- PkPackageId *pi; ++ gchar **parts; + gint err = 0; + const gchar *package_id; + + /* FIXME: support only_trusted */ + package_id = pk_backend_get_string (backend, "pkgid"); +- pi = pk_package_id_new_from_string (package_id); ++ parts = pk_package_id_split (package_id); + +- if (!pi->name || !pi->version) ++ if (!parts) + { + pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, + "Package not found"); +- pk_package_id_free (pi); + pk_backend_finished (backend); + return FALSE; + } + +- err = opkg_upgrade_package (opkg, pi->name, pk_opkg_progress_cb, backend); ++ err = opkg_upgrade_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend); + if (err) + handle_install_error (backend, err); + + +- pk_package_id_free (pi); ++ g_strfreev (parts); + pk_backend_finished (backend); + return (err != 0); + } +@@ -610,13 +608,13 @@ + */ + + static void +-pk_opkg_list_upgradable_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data) ++pk_opkg_list_upgradable_cb (pkg_t *pkg, void *data) + { +- PkBackend *backend = PK_BACKEND (data); ++ PkBackend *backend = (PkBackend*) data; + gchar *uid; + gint status; + +- if (pkg->installed) ++ if (pkg->state_status == SS_INSTALLED) + status = PK_INFO_ENUM_INSTALLED; + else + status = PK_INFO_ENUM_AVAILABLE; +@@ -631,7 +629,7 @@ + static gboolean + backend_get_updates_thread (PkBackend *backend) + { +- opkg_list_upgradable_packages (opkg, pk_opkg_list_upgradable_cb, backend); ++ opkg_list_upgradable_packages (pk_opkg_list_upgradable_cb, backend); + pk_backend_finished (backend); + return TRUE; + } +@@ -668,16 +666,18 @@ + static gboolean + backend_get_details_thread (PkBackend *backend) + { +- PkPackageId *pi; + gchar **package_ids; ++ gchar **parts; + int group_index; + PkGroupEnum group = 0; +- opkg_package_t *pkg; ++ pkg_t *pkg; + gchar *newid; + + package_ids = pk_backend_get_strv(backend, "package_ids"); +- pi = pk_package_id_new_from_string (package_ids[0]); +- if (pi == NULL) ++ parts = pk_package_id_split (package_ids[0]); ++ ++ ++ if (!parts) + { + pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id"); + pk_backend_finished (backend); +@@ -685,8 +685,8 @@ + } + + +- pkg = opkg_find_package (opkg, pi->name, pi->version, pi->arch, pi->data); +- pk_package_id_free (pi); ++ pkg = opkg_find_package (parts[PK_PACKAGE_ID_NAME], parts[PK_PACKAGE_ID_VERSION], parts[PK_PACKAGE_ID_ARCH], parts[PK_PACKAGE_ID_DATA]); ++ g_strfreev (parts); + + if (!pkg) + { +@@ -695,7 +695,7 @@ + return FALSE; + } + +- newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->repository); ++ newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->src->name); + + if (pkg->tags) { + for (group_index = 0; group < PK_GROUP_ENUM_LAST; group_index++) { +@@ -706,9 +706,8 @@ + } + } + +- pk_backend_details (backend, newid, NULL, group, pkg->description, pkg->url, pkg->size); ++ pk_backend_details (backend, newid, NULL, group, pkg->description, NULL, pkg->size); + g_free (newid); +- opkg_package_free(pkg); + pk_backend_finished (backend); + return TRUE; + } -- cgit v1.2.3