packagekit: import from OE-Classic
authorMartin Jansa <Martin.Jansa@gmail.com>
Sun, 2 Dec 2012 02:15:34 +0000 (03:15 +0100)
committerPatrick Ohly <patrick.ohly@intel.com>
Fri, 9 Jan 2015 16:25:30 +0000 (08:25 -0800)
* add LIC_FILES_CHKSUM
* drop versions from DEPENDS
* use opkg as the only IPKG_VARIANT
* depend on polkit (renamed from policykit)
* disable unpackaged ruck
* fix packaging of PN-staticdev

(From meta-openembedded rev: fb4647c716848b803f2fe32036cce38855c93159)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch [new file with mode: 0644]
meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch [new file with mode: 0644]
meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb [new file with mode: 0644]

diff --git a/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch b/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
new file mode 100644 (file)
index 0000000..48f9591
--- /dev/null
@@ -0,0 +1,13 @@
+Index: PackageKit-0.6.0/configure.ac
+===================================================================
+--- PackageKit-0.6.0.orig/configure.ac 2010-01-04 16:32:18.000000000 +0000
++++ PackageKit-0.6.0/configure.ac      2010-01-29 11:33:48.000000000 +0000
+@@ -90,7 +90,7 @@
+                                                       enable_strict=$default_strict)
+ if test x$enable_strict != xno; then
+       if test "$GCC" = "yes"; then
+-              WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
++              :
+       fi
+ fi
diff --git a/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch b/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
new file mode 100644 (file)
index 0000000..5a73a19
--- /dev/null
@@ -0,0 +1,422 @@
+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,7 @@
++#include <stdio.h>
+ #include <libopkg/opkg.h>
+-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;
+ }
diff --git a/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb b/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
new file mode 100644 (file)
index 0000000..f7c8063
--- /dev/null
@@ -0,0 +1,57 @@
+DESCRIPTION = "PackageKit package management abstraction"
+SECTION = "libs"
+LICENSE = "GPL-2.0+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "gtk+ python polkit dbus dbus-glib glib-2.0 sqlite3 opkg intltool intltool-native"
+RDEPENDS_${PN} = "opkg"
+
+inherit gnome pythonnative
+
+SRC_URI = "http://www.packagekit.org/releases/PackageKit-${PV}.tar.gz;name=archive \
+           file://configurefix.patch \
+           file://opkgfixes.patch"
+
+SRC_URI[archive.md5sum] = "6c8d9c48e21b82abeea15c3fd5066242"
+SRC_URI[archive.sha256sum] = "0eafd1be5516a41ebc0f0c3acff0b0763da105a4178b5eee0ff16d66ccd04408"
+
+S = "${WORKDIR}/PackageKit-${PV}"
+
+EXTRA_OECONF = "--with-security-framework=dummy \
+                --with-default-backend=opkg \
+                --enable-opkg \
+                --disable-tests \
+                --disable-ruck \
+                --disable-qt \
+                --disable-gstreamer-plugin \
+                --disable-local  \
+                --disable-networkmanager \
+                ac_cv_path_XMLTO=no \
+                "
+
+#do_configure_prepend() {
+#      mkdir -p m4
+#      echo "EXTRA_DIST=" > gtk-doc.make
+#}
+
+do_configure_append() {
+       for i in $(find . -name Makefile) ; do
+               sed -i -e s:${STAGING_DIR_NATIVE}::g \
+               -e s:${bindir}/mkdir:${STAGING_BINDIR_NATIVE}/mkdir:g \
+               -e s:/usr/bin/intltool-merge:${STAGING_BINDIR_NATIVE}/intltool-merge:g \
+       $i
+       done
+}
+
+PACKAGES =+ "${PN}-website"
+FILES_${PN}-website = "${datadir}/PackageKit/website"
+
+PACKAGES =+ "${PN}-python"
+FILES_${PN}-python = "${libdir}/python*"
+
+PACKAGES =+ "${PN}-gtkmodule"
+FILES_${PN}-gtkmodule = "${libdir}/gtk-2.0/*/*.so"
+
+FILES_${PN} += "${libdir}/packagekit-backend/*.so ${libdir}/pm-utils ${datadir}/dbus-1/system-services/ ${datadir}/PolicyKit ${datadir}/PackageKit"
+FILES_${PN}-dbg += "${libdir}/packagekit-backend/.debug/*.so ${libdir}/gtk-2.0/*/.debug"
+FILES_${PN}-dev += "${libdir}/packagekit-backend/*.la ${libdir}/gtk-2.0/*/*.la"
+FILES_${PN}-staticdev += "${libdir}/packagekit-backend/*.a ${libdir}/gtk-2.0/*/*.a"