- updated to 0.8.15
authorJakub Bogusz <qboosh@pld-linux.org>
Sun, 19 Jan 2014 20:25:13 +0000 (21:25 +0100)
committerJakub Bogusz <qboosh@pld-linux.org>
Sun, 19 Jan 2014 20:25:13 +0000 (21:25 +0100)
- removed obsolete PLD, bashism patches
- zif backend is gone in favour of hawkey; added hawkey-rpm5 patch to allow build it with rpm5

PackageKit-PLD.patch [deleted file]
PackageKit-hawkey-rpm5.patch [new file with mode: 0644]
PackageKit.spec
bashism.patch [deleted file]

diff --git a/PackageKit-PLD.patch b/PackageKit-PLD.patch
deleted file mode 100644 (file)
index fa98eb9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN PackageKit-0.4.4/etc/PackageKit.conf.in PackageKit-0.4.4.new/etc/PackageKit.conf.in
---- PackageKit-0.4.4/etc/PackageKit.conf.in    2009-02-20 17:36:32.000000000 +0100
-+++ PackageKit-0.4.4.new/etc/PackageKit.conf.in        2009-02-23 16:28:31.000000000 +0100
-@@ -86,7 +86,7 @@
- # NOTE: Don't enable this for backends that are slow doing GetPackages()
- #
- # default=true
--UpdatePackageList=true
-+UpdatePackageList=false
- # Check for running processes when we update packages
- #
-diff -urN PackageKit-0.4.4/etc/Vendor.conf PackageKit-0.4.4.new/etc/Vendor.conf
---- PackageKit-0.4.4/etc/Vendor.conf   2009-02-06 17:01:48.000000000 +0100
-+++ PackageKit-0.4.4.new/etc/Vendor.conf       2009-02-23 16:30:10.000000000 +0100
-@@ -54,7 +54,7 @@
- # The vendor name shown for the 'vendor' group
- #
- # default=My Vendor
--VendorName=My Vendor
-+VendorName=PLD Linux
- # The vendor icon name shown for the 'vendor' group
- #
diff --git a/PackageKit-hawkey-rpm5.patch b/PackageKit-hawkey-rpm5.patch
new file mode 100644 (file)
index 0000000..874522b
--- /dev/null
@@ -0,0 +1,514 @@
+--- PackageKit-0.8.15/backends/hawkey/hif-keyring.c.orig       2013-12-05 14:36:16.000000000 +0100
++++ PackageKit-0.8.15/backends/hawkey/hif-keyring.c    2014-01-19 17:21:44.407060059 +0100
+@@ -27,8 +27,12 @@
+ #include <stdlib.h>
+ #include <glib.h>
+-#include <rpm/rpmlib.h>
++#include "rpmorg-compat.h"
++#include <rpm/rpmcli.h>
++#include <rpm/rpmio.h>
++#include <rpm/rpmps.h>
+ #include <rpm/rpmts.h>
++#include <rpm/rpmpgp.h>
+ #include "hif-keyring.h"
+ #include "hif-utils.h"
+@@ -37,17 +41,14 @@
+  * hif_keyring_add_public_key:
+  **/
+ gboolean
+-hif_keyring_add_public_key (rpmKeyring keyring,
++hif_keyring_add_public_key (const rpmts ts,
+                           const gchar *filename,
+                           GError **error)
+ {
+       gboolean ret = TRUE;
+-      gchar *data = NULL;
+       gint rc;
+       gsize len;
+       pgpArmor armor;
+-      pgpDig dig = NULL;
+-      rpmPubkey pubkey = NULL;
+       uint8_t *pkt = NULL;
+       /* ignore symlinks and directories */
+@@ -56,13 +57,8 @@ hif_keyring_add_public_key (rpmKeyring k
+       if (g_file_test (filename, G_FILE_TEST_IS_SYMLINK))
+               goto out;
+-      /* get data */
+-      ret = g_file_get_contents (filename, &data, &len, error);
+-      if (!ret)
+-              goto out;
+-
+       /* rip off the ASCII armor and parse it */
+-      armor = pgpParsePkts (data, &pkt, &len);
++      armor = pgpReadPkts (filename, &pkt, &len);
+       if (armor < 0) {
+               ret = FALSE;
+               g_set_error (error,
+@@ -85,7 +81,7 @@ hif_keyring_add_public_key (rpmKeyring k
+       }
+       /* test each one */
+-      pubkey = rpmPubkeyNew (pkt, len);
++/*    pubkey = rpmPubkeyNew (pkt, len);
+       if (pubkey == NULL) {
+               ret = FALSE;
+               g_set_error (error,
+@@ -94,19 +90,19 @@ hif_keyring_add_public_key (rpmKeyring k
+                            "failed to parse public key for %s",
+                            filename);
+               goto out;
+-      }
++      } */
+       /* does the key exist in the keyring */
+-      dig = rpmPubkeyDig (pubkey);
++/*    dig = rpmPubkeyDig (pubkey);
+       rc = rpmKeyringLookup (keyring, dig);
+       if (rc == RPMRC_OK) {
+               ret = TRUE;
+               g_debug ("%s is already present", filename);
+               goto out;
+-      }
++      } */
+       /* add to rpmdb automatically, without a prompt */
+-      rc = rpmKeyringAddKey (keyring, pubkey);
++      rc = rpmcliImportPubkey (ts, pkt, len);
+       if (rc == 1) {
+               ret = TRUE;
+               g_debug ("%s is already added", filename);
+@@ -128,11 +124,6 @@ hif_keyring_add_public_key (rpmKeyring k
+ out:
+       if (pkt != NULL)
+               free (pkt); /* yes, free() */
+-      if (pubkey != NULL)
+-              rpmPubkeyFree (pubkey);
+-      if (dig != NULL)
+-              pgpFreeDig (dig);
+-      g_free (data);
+       return ret;
+ }
+@@ -140,7 +131,7 @@ out:
+  * hif_keyring_add_public_keys:
+  **/
+ gboolean
+-hif_keyring_add_public_keys (rpmKeyring keyring, GError **error)
++hif_keyring_add_public_keys (rpmts ts, GError **error)
+ {
+       const gchar *filename;
+       const gchar *gpg_dir = "/etc/pki/rpm-gpg";
+@@ -159,7 +150,7 @@ hif_keyring_add_public_keys (rpmKeyring
+               if (filename == NULL)
+                       break;
+               path_tmp = g_build_filename (gpg_dir, filename, NULL);
+-              ret = hif_keyring_add_public_key (keyring, path_tmp, error);
++              ret = hif_keyring_add_public_key (ts, path_tmp, error);
+               g_free (path_tmp);
+       } while (ret);
+ out:
+@@ -172,8 +163,7 @@ out:
+  * hif_keyring_check_untrusted_file:
+  */
+ gboolean
+-hif_keyring_check_untrusted_file (rpmKeyring keyring,
+-                                const gchar *filename,
++hif_keyring_check_untrusted_file (const gchar *filename,
+                                 GError **error)
+ {
+       FD_t fd = NULL;
+@@ -216,10 +206,10 @@ hif_keyring_check_untrusted_file (rpmKey
+       }
+       /* convert and upscale */
+-      headerConvert (hdr, HEADERCONV_RETROFIT_V3);
++      /* headerConvert (hdr, HEADERCONV_RETROFIT_V3); */
+       /* get RSA key */
+-      td = rpmtdNew ();
++      td = malloc (sizeof (*td) );
+       rc = headerGet (hdr,
+                       RPMTAG_RSAHEADER,
+                       td,
+@@ -243,7 +233,7 @@ hif_keyring_check_untrusted_file (rpmKey
+       }
+       /* make it into a digest */
+-      dig = pgpNewDig ();
++      dig = rpmtsDig (ts);
+       rc = pgpPrtPkts (td->data, td->count, dig, 0);
+       if (rc != 0) {
+               g_set_error (error,
+@@ -255,7 +245,7 @@ hif_keyring_check_untrusted_file (rpmKey
+       }
+       /* does the key exist in the keyring */
+-      rc = rpmKeyringLookup (keyring, dig);
++      rc = rpmtsFindPubkey (ts, dig);
+       if (rc != RPMRC_OK) {
+               g_set_error_literal (error,
+                                    HIF_ERROR,
+@@ -269,18 +259,18 @@ hif_keyring_check_untrusted_file (rpmKey
+       ret = TRUE;
+ out:
+       if (dig != NULL)
+-              pgpFreeDig (dig);
++              dig = pgpDigFree (dig);
+       if (td != NULL) {
+               rpmtdFreeData (td);
+-              rpmtdFree (td);
++              free (td);
+       }
+       if (ts != NULL)
+-              rpmtsFree (ts);
++              ts = rpmtsFree (ts);
+       if (hdr != NULL)
+-              headerFree (hdr);
++              hdr = headerFree (hdr);
+       if (fd != NULL)
+               Fclose (fd);
+       if (header != NULL)
+-              headerFree (header);
++              header = headerFree (header);
+       return ret;
+ }
+--- PackageKit-0.8.15/backends/hawkey/hif-keyring.h.orig       2013-12-05 14:36:16.000000000 +0100
++++ PackageKit-0.8.15/backends/hawkey/hif-keyring.h    2014-01-19 16:52:38.130466677 +0100
+@@ -24,14 +24,14 @@
+ #include <glib.h>
+-#include <rpm/rpmkeyring.h>
++#include <rpm/rpmts.h>
+-gboolean       hif_keyring_add_public_key     (rpmKeyring              keyring,
++gboolean       hif_keyring_add_public_key     (const rpmts             ts,
+                                                const gchar            *filename,
+                                                GError                 **error);
+-gboolean       hif_keyring_add_public_keys    (rpmKeyring              keyring,
++gboolean       hif_keyring_add_public_keys    (rpmts                   ts,
+                                                GError                 **error);
+-gboolean       hif_keyring_check_untrusted_file (rpmKeyring            keyring,
++gboolean       hif_keyring_check_untrusted_file (
+                                                const gchar            *filename,
+                                                GError                 **error);
+--- PackageKit-0.8.15/backends/hawkey/hif-rpmts.c.orig 2013-12-12 16:08:37.000000000 +0100
++++ PackageKit-0.8.15/backends/hawkey/hif-rpmts.c      2014-01-19 17:35:21.507025769 +0100
+@@ -26,9 +26,11 @@
+ #endif
+ #include <glib.h>
+-#include <rpm/rpmlib.h>
++#include <rpm/rpm46compat.h>
++#include <rpm/pkgio.h>
+ #include <rpm/rpmlog.h>
+ #include <rpm/rpmdb.h>
++#include <rpm/rpmio.h>
+ #include "hif-rpmts.h"
+ #include "hif-utils.h"
+@@ -212,10 +214,17 @@ hif_rpmts_get_problem_str (rpmProblem pr
+                                      diskspace,
+                                      generic_str);
+               break;
+-      case RPMPROB_OBSOLETES:
+-              str = g_strdup_printf ("package %s is obsoleted by %s",
+-                                     pkg_nevr,
+-                                     pkg_nevr_alt);
++      case RPMPROB_RDONLY:
++              str = g_strdup_printf ("tried to install package on read-only filesystem");
++              break;
++      case RPMPROB_BADPRETRANS:
++              str = g_strdup_printf ("bad %%pretrans?"); // unimplemented acc. to rpmps.h
++              break;
++      case RPMPROB_BADPLATFORM:
++              str = g_strdup_printf ("package %s is for a different platform", pkg_nevr);
++              break;
++      case RPMPROB_NOREPACKAGE:
++              str = g_strdup_printf ("re-packaged package %s is missing", pkg_nevr);
+               break;
+       }
+       return str;
+@@ -273,7 +282,7 @@ hif_rpmts_look_for_problems (rpmts ts, G
+ out:
+       if (string != NULL)
+               g_string_free (string, TRUE);
+-      rpmpsFree (probs);
++      probs = rpmpsFree (probs);
+       return ret;
+ }
+@@ -349,7 +358,7 @@ hif_rpmts_find_package (rpmts ts, HyPack
+       }
+       /* success */
+-      headerLink (hdr);
++      hdr = headerLink (hdr);
+ out:
+       rpmlogSetCallback (NULL, NULL);
+       if (rpm_error != NULL)
+@@ -388,6 +397,6 @@ hif_rpmts_add_remove_pkg (rpmts ts, HyPa
+       }
+ out:
+       if (hdr != NULL)
+-              headerFree (hdr);
++              hdr = headerFree (hdr);
+       return ret;
+ }
+--- PackageKit-0.8.15/backends/hawkey/hif-state.c.orig 2013-12-12 16:07:44.000000000 +0100
++++ PackageKit-0.8.15/backends/hawkey/hif-state.c      2014-01-19 17:36:10.177023726 +0100
+@@ -28,7 +28,6 @@
+ #include <glib.h>
+ #include <glib-unix.h>
+ #include <signal.h>
+-#include <rpm/rpmsq.h>
+ #include "hif-utils.h"
+ #include "hif-state.h"
+--- PackageKit-0.8.15/backends/hawkey/pk-backend-hawkey.c.orig 2013-12-17 15:20:05.000000000 +0100
++++ PackageKit-0.8.15/backends/hawkey/pk-backend-hawkey.c      2014-01-19 19:40:01.683378522 +0100
+@@ -39,12 +39,14 @@
+ #include <hawkey/version.h>
+ #include <hawkey/util.h>
+ #include <librepo/librepo.h>
+-#include <rpm/rpmlib.h>
++#include "rpmorg-compat.h"
+ #include <rpm/rpmdb.h>
++#include <rpm/rpmio.h>
+ #include <rpm/rpmlog.h>
++#include <rpm/rpmmacro.h>
+ #include <rpm/rpmps.h>
++#include <rpm/rpmrc.h>
+ #include <rpm/rpmts.h>
+-#include <rpm/rpmkeyring.h>
+ #include "hif-db.h"
+ #include "hif-goal.h"
+@@ -77,7 +79,6 @@ typedef struct {
+       HifDb           *db;
+       HifState        *state;
+       rpmts            ts;
+-      rpmKeyring       keyring;
+       GPtrArray       *packages_to_download;
+       PkBitfield       transaction_flags;
+       HyGoal           goal;
+@@ -286,29 +287,32 @@ pk_backend_initialize (PkBackend *backen
+                              "info");
+       /* get info from RPM */
+-      rpmGetOsInfo (&value, NULL);
++      value = rpmExpand ("%{_target_os}", NULL);
+       g_key_file_set_string (priv->config,
+                              HIF_CONFIG_GROUP_NAME,
+                              "Hawkey::OsInfo", value);
+-      rpmGetArchInfo (&value, NULL);
++      value = rpmExpand ("%{_target_cpu}", NULL);
+       g_key_file_set_string (priv->config,
+                              HIF_CONFIG_GROUP_NAME,
+                              "Hawkey::ArchInfo", value);
+-      rpmGetArchInfo (&value, NULL);
+       priv->native_arches = g_new0 (gchar *, 3);
+       priv->native_arches[0] = g_strdup (value);
+       priv->native_arches[1] = g_strdup ("noarch");
+-      if (g_strcmp0 (value, "i486") == 0 ||
+-          g_strcmp0 (value, "i586") == 0 ||
+-          g_strcmp0 (value, "i686") == 0) {
++      if (strcmp (value, "i486") == 0 ||
++          strcmp (value, "i586") == 0 ||
++          strcmp (value, "i686") == 0 ||
++          strcmp (value, "athlon") == 0 ||
++          strcmp (value, "pentium2") == 0 ||
++          strcmp (value, "pentium3") == 0 ||
++          strcmp (value, "pentium4") == 0) {
+               value = "i386";
+-      } else if (g_strcmp0 (value, "armv7l") == 0 ||
+-                 g_strcmp0 (value, "armv6l") == 0 ||
+-                 g_strcmp0 (value, "armv5tejl") == 0 ||
+-                 g_strcmp0 (value, "armv5tel") == 0) {
++      } else if (strcmp (value, "armv7l") == 0 ||
++                 strcmp (value, "armv6l") == 0 ||
++                 strcmp (value, "armv5tejl") == 0 ||
++                 strcmp (value, "armv5tel") == 0) {
+               value = "arm";
+-      } else if (g_strcmp0 (value, "armv7hnl") == 0 ||
+-               g_strcmp0 (value, "armv7hl") == 0) {
++      } else if (strcmp (value, "armv7hnl") == 0 ||
++               strcmp (value, "armv7hl") == 0) {
+               value = "armhfp";
+       }
+       g_key_file_set_string (priv->config,
+@@ -476,7 +480,6 @@ pk_backend_start_job (PkBackend *backend
+       /* setup RPM */
+       job_data->ts = rpmtsCreate ();
+-      job_data->keyring = rpmtsGetKeyring (job_data->ts, 1);
+       /* HifState */
+       job_data->packages_to_download =
+@@ -546,8 +549,7 @@ pk_backend_stop_job (PkBackend *backend,
+       g_ptr_array_unref (job_data->packages_to_download);
+       if (job_data->goal != NULL)
+               hy_goal_free (job_data->goal);
+-      rpmtsFree (job_data->ts);
+-      rpmKeyringFree (job_data->keyring);
++      job_data->ts = rpmtsFree (job_data->ts);
+       g_object_unref (job_data->db);
+       g_free (job_data);
+       pk_backend_job_set_user_data (job, NULL);
+@@ -1911,7 +1913,7 @@ out:
+  * pk_backend_transaction_check_untrusted:
+  */
+ static gboolean
+-pk_backend_transaction_check_untrusted (rpmKeyring keyring,
++pk_backend_transaction_check_untrusted (
+                                       GPtrArray *sources,
+                                       HyGoal goal,
+                                       GError **error)
+@@ -1957,7 +1959,7 @@ pk_backend_transaction_check_untrusted (
+               }
+               /* check file */
+-              ret = hif_keyring_check_untrusted_file (keyring,
++              ret = hif_keyring_check_untrusted_file (
+                                                       filename,
+                                                       error);
+               if (!ret)
+@@ -2045,15 +2047,6 @@ hif_commit_rpmcb_type_to_string (const r
+       case RPMCALLBACK_SCRIPT_ERROR:
+               type = "script-error";
+               break;
+-      case RPMCALLBACK_SCRIPT_START:
+-              type = "script-start";
+-              break;
+-      case RPMCALLBACK_SCRIPT_STOP:
+-              type = "script-stop";
+-              break;
+-      case RPMCALLBACK_INST_STOP:
+-              type = "install-stop";
+-              break;
+       }
+       return type;
+ }
+@@ -2329,7 +2322,6 @@ hif_commit_ts_progress_cb (const void *a
+               /* don't do anything */
+               break;
+-      case RPMCALLBACK_INST_STOP:
+       case RPMCALLBACK_UNINST_STOP:
+               /* phase complete */
+@@ -2344,8 +2336,6 @@ hif_commit_ts_progress_cb (const void *a
+       case RPMCALLBACK_UNPACK_ERROR:
+       case RPMCALLBACK_CPIO_ERROR:
+       case RPMCALLBACK_SCRIPT_ERROR:
+-      case RPMCALLBACK_SCRIPT_START:
+-      case RPMCALLBACK_SCRIPT_STOP:
+       case RPMCALLBACK_UNKNOWN:
+       case RPMCALLBACK_REPACKAGE_PROGRESS:
+       case RPMCALLBACK_REPACKAGE_START:
+@@ -2738,14 +2728,14 @@ pk_backend_transaction_commit (PkBackend
+               goto out;
+       /* import all GPG keys */
+-      ret = hif_keyring_add_public_keys (job_data->keyring, error);
++      ret = hif_keyring_add_public_keys (job_data->ts, error);
+       if (!ret)
+               goto out;
+       /* find any packages without valid GPG signatures */
+       if (pk_bitfield_contain (job_data->transaction_flags,
+                                PK_TRANSACTION_FLAG_ENUM_ONLY_TRUSTED)) {
+-              ret = pk_backend_transaction_check_untrusted (job_data->keyring,
++              ret = pk_backend_transaction_check_untrusted (
+                                                             job_data->enabled_sources,
+                                                             job_data->goal,
+                                                             error);
+@@ -2765,15 +2755,7 @@ pk_backend_transaction_commit (PkBackend
+       /* setup the transaction */
+       commit = g_new0 (HifTransactionCommit, 1);
+       commit->timer = g_timer_new ();
+-      rc = rpmtsSetRootDir (job_data->ts, "/");
+-      if (rc < 0) {
+-              ret = FALSE;
+-              g_set_error_literal (error,
+-                                   HIF_ERROR,
+-                                   PK_ERROR_ENUM_INTERNAL_ERROR,
+-                                   "failed to set root");
+-              goto out;
+-      }
++      rpmtsSetRootDir (job_data->ts, "/");
+       rpmtsSetNotifyCallback (job_data->ts,
+                               hif_commit_ts_progress_cb,
+                               commit);
+--- PackageKit-0.8.15/backends/hawkey/rpmorg-compat.h.orig     1970-01-01 01:00:00.000000000 +0100
++++ PackageKit-0.8.15/backends/hawkey/rpmorg-compat.h  2014-01-19 19:40:00.416711909 +0100
+@@ -0,0 +1,64 @@
++#ifndef RPMORG_COMPAT_H
++#define RPMORG_COMPAT_H
++
++#include <rpm/rpm46compat.h>
++
++#define _RPMVSF_NOSIGNATURES (RPMVSF_NODSAHEADER | RPMVSF_NORSAHEADER | RPMVSF_NODSA | RPMVSF_NORSA)
++#define       _RPMVSF_NODIGESTS (RPMVSF_NOSHA1HEADER | RPMVSF_NOMD5HEADER | RPMVSF_NOSHA1 | RPMVSF_NOMD5)
++
++static inline const char * headerGetString(Header h, int32_t tag)
++{
++    const char *res = NULL;
++    struct rpmtd_s td;
++
++    if (headerGet(h, tag, &td, HEADERGET_MINMEM)) {
++      if (rpmtdCount(&td) == 1) {
++          res = rpmtdGetString(&td);
++      }
++      rpmtdFreeData(&td);
++    }
++    return res;
++}
++
++static inline uint64_t rpmtdGetNumber(rpmtd td)
++{
++    uint64_t val = 0;
++    int ix;
++    assert(td != NULL);
++    ix = (td->ix >= 0 ? td->ix : 0);
++
++    switch (td->type) {
++    case RPM_INT64_TYPE:
++      val = *((uint64_t *) td->data + ix);
++      break;
++    case RPM_INT32_TYPE:
++      val = *((uint32_t *) td->data + ix);
++      break;
++    case RPM_INT16_TYPE:
++      val = *((uint16_t *) td->data + ix);
++      break;
++    case RPM_INT8_TYPE:
++    case RPM_CHAR_TYPE:
++      val = *((uint8_t *) td->data + ix);
++      break;
++    default:
++      break;
++    }
++    return val;
++}
++
++static inline uint64_t headerGetNumber(Header h, int32_t tag)
++{
++    uint64_t res = 0;
++    struct rpmtd_s td;
++
++    if (headerGet(h, tag, &td, HEADERGET_EXT)) {
++      if (rpmtdCount(&td) == 1) {
++          res = rpmtdGetNumber(&td);
++      }
++      rpmtdFreeData(&td);
++    }
++    return res;
++}
++
++#endif /* RPMORG_COMPAT_H */
index dc58f1c..31cca70 100644 (file)
@@ -8,7 +8,7 @@
 %bcond_without poldek          # Poldek backend
 %bcond_without smart           # SMART backend
 %bcond_without yum             # YUM backend
-%bcond_with    zif             # Zif backend
+%bcond_with    hawkey          # Hawkey backend
 %bcond_with    browser         # browser plugin (patrys says: it's flawed by concept)
 
 # default backend, configurable at runtime
 Summary:       System daemon that is a D-Bus abstraction layer for package management
 Summary(pl.UTF-8):     Demon systemowy będący warstwą abstrakcji D-Bus do zarządzania pakietami
 Name:          PackageKit
-Version:       0.8.13
+Version:       0.8.15
 Release:       1
 License:       GPL v2+
 Group:         Applications/System
 Source0:       http://www.packagekit.org/releases/%{name}-%{version}.tar.xz
-# Source0-md5: c8f7207cca4fcdb3d62d012b67c2f319
-Patch1:                %{name}-PLD.patch
-Patch2:                bashism.patch
+# Source0-md5: 147e35b64e3e3b9ca8b2baefb37531f6
+Patch0:                %{name}-hawkey-rpm5.patch
 Patch3:                smart-at-fix.patch
 Patch4:                %{name}-gstreamer.patch
 Patch5:                %{name}-bashcomp.patch
@@ -47,17 +46,19 @@ BuildRequires:      gstreamer-plugins-base-devel >= 1.0.0
 BuildRequires: gtk+2-devel >= 2:2.14.0
 BuildRequires: gtk+3-devel >= 3.0.0
 %{?with_doc:BuildRequires:     gtk-doc >= 1.11}
+%{?with_hawkey:BuildRequires:  hawkey-devel >= 0.4.5}
 BuildRequires: intltool >= 0.35.0
 BuildRequires: libarchive-devel
+%{?with_hawkey:BuildRequires:  librepo-devel}
 BuildRequires: libtool
 BuildRequires: libxslt-progs
 BuildRequires: pango-devel
 BuildRequires: pkgconfig
-BuildRequires: pm-utils
 %{?with_poldek:BuildRequires:  poldek-devel >= 0.30-1.rc6.4}
 BuildRequires: polkit-devel >= 0.98
 BuildRequires: python-devel >= 1:2.7
 BuildRequires: readline-devel
+%{?with_hawkey:BuildRequires:  rpm-devel >= 4.11.0}
 BuildRequires: rpm-pythonprov
 BuildRequires: rpmbuild(macros) >= 1.311
 BuildRequires: sqlite3-devel >= 3
@@ -65,7 +66,6 @@ BuildRequires:        systemd-devel
 BuildRequires: tar >= 1:1.22
 BuildRequires: udev-glib-devel
 BuildRequires: xz
-%{?with_zif:BuildRequires:     zif >= 0.2.8}
 %if %{with browser}
 BuildRequires: cairo-devel
 BuildRequires: nspr-devel >= 4.8
@@ -78,6 +78,7 @@ Requires:     ConsoleKit-x11
 Requires:      crondaemon
 Requires:      polkit >= 0.98
 Obsoletes:     PackageKit-docs < 0.8.4
+Obsoletes:     pm-utils-packagekit
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -141,6 +142,21 @@ PackageKit library API documentation.
 %description apidocs -l pl.UTF-8
 Dokumentacja API biblioteki PackageKit.
 
+%package backend-hawkey
+Summary:       PackageKit Hawkey backend
+Summary(pl.UTF-8):     Backend PackageKit oparty na Hawkeyu
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      hawkey >= 0.4.5
+Provides:      %{name}-backend = %{version}-%{release}
+Obsoletes:     PackageKit-backend-zif
+
+%description backend-hawkey
+A backend for PackageKit to enable Hawkey functionality.
+
+%description backend-hawkey -l pl.UTF-8
+Backend PackageKit dodający obsługę Hawkeya.
+
 %package backend-poldek
 Summary:       PackageKit Poldek backend
 Summary(pl.UTF-8):     Backend PackageKit oparty na Poldku
@@ -184,20 +200,6 @@ A backend for PackageKit to enable yum functionality.
 %description backend-yum -l pl.UTF-8
 Backend PackageKit dodający obsługę Yuma.
 
-%package backend-zif
-Summary:       PackageKit Zif backend
-Summary(pl.UTF-8):     Backend PackageKit oparty na Zifie
-Group:         Libraries
-Requires:      %{name} = %{version}-%{release}
-Requires:      zif >= 0.2.8
-Provides:      %{name}-backend = %{version}-%{release}
-
-%description backend-zif
-A backend for PackageKit to enable Zif functionality.
-
-%description backend-zif -l pl.UTF-8
-Backend PackageKit dodający obsługę Zifa.
-
 %package gstreamer-plugin
 Summary:       GStreamer codecs installer
 Summary(pl.UTF-8):     Instalator kodeków GStreamera
@@ -253,18 +255,6 @@ This package provides bash-completion for PackageKit console commands.
 Pakiet ten dostarcza bashowe uzupełnianie parametrów dla poleceń
 konsolowych PackageKit.
 
-%package -n pm-utils-packagekit
-Summary:       PackageKit script for pm-utils
-Summary(pl.UTF-8):     Skrypt PackageKit dla pm-utils
-Group:         Applications/System
-Requires:      pm-utils
-
-%description -n pm-utils-packagekit
-PackageKit script for pm-utils.
-
-%description -n pm-utils-packagekit -l pl.UTF-8
-Skrypt PackageKit dla pm-utils.
-
 %package -n python-packagekit
 Summary:       PackageKit Python bindings
 Summary(pl.UTF-8):     Wiązania PackageKit dla Pythona
@@ -294,8 +284,7 @@ Wtyczka PackageKit do przeglądarek WWW.
 
 %prep
 %setup -q
-%patch1 -p1
-%patch2 -p1
+%patch0 -p1
 %patch3 -p0
 %patch4 -p1
 %patch5 -p1
@@ -319,10 +308,10 @@ Wtyczka PackageKit do przeglądarek WWW.
        --disable-silent-rules \
        --enable-bash-completion=%{bash_compdir} \
        %{__enable_disable browser browser-plugin} \
+       %{__enable_disable hawkey} \
        %{__enable_disable poldek} \
        %{__enable_disable smart} \
        %{__enable_disable yum} \
-       %{__enable_disable zif} \
        --with-default-backend=%{backend} \
        --with-html-dir=%{_gtkdocdir} \
        --with-mozilla-plugin-dir=%{_browserpluginsdir} \
@@ -338,9 +327,6 @@ rm -rf $RPM_BUILD_ROOT
 # use pk-gstreamer-install as codec installer
 ln -s pk-gstreamer-install $RPM_BUILD_ROOT%{_libdir}/gst-install-plugins-helper
 
-install -d $RPM_BUILD_ROOT%{_libdir}/pm-utils/sleep.d
-install -p contrib/pm-utils/95packagekit $RPM_BUILD_ROOT%{_libdir}/pm-utils/sleep.d
-
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/gtk-{2,3}.0/modules/*.{la,a}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/packagekit-backend/*.{la,a}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/packagekit-backend/libpk_backend_test_*.so
@@ -394,26 +380,19 @@ fi
 %doc AUTHORS HACKING MAINTAINERS NEWS README TODO
 %attr(755,root,root) %{_bindir}/packagekit-bugreport.sh
 %attr(755,root,root) %{_bindir}/pkcon
-%attr(755,root,root) %{_bindir}/pkgenpack
 %attr(755,root,root) %{_bindir}/pkmon
 %attr(755,root,root) %{_bindir}/pk-debuginfo-install
 %attr(750,root,root) /etc/cron.daily/packagekit-background.cron
 %dir %{_libdir}/packagekit-backend
 %dir %{_libdir}/packagekit-plugins
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-check-shared-libraries-in-use.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-clear-firmware-requests.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-no-update-process.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-require-restart.so
 %attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-scan-desktop-files.so
 %attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-systemd-updates.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-update-check-processes.so
 %attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-update-package-cache.so
 %attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin_scripts.so
 %attr(755,root,root) %{_libdir}/packagekitd
 %attr(755,root,root) %{_libdir}/pk-clear-offline-update
 %attr(755,root,root) %{_libdir}/pk-offline-update
 %attr(755,root,root) %{_libdir}/pk-trigger-offline-update
-%attr(755,root,root) %{_sbindir}/pk-device-rebind
 %dir %{_sysconfdir}/PackageKit
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/PackageKit.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/Vendor.conf
@@ -428,13 +407,8 @@ fi
 %{_datadir}/polkit-1/actions/org.freedesktop.packagekit.policy
 %{_datadir}/polkit-1/rules.d/org.freedesktop.packagekit.rules
 %{_datadir}/dbus-1/system-services/org.freedesktop.PackageKit.service
-%{_datadir}/mime/packages/packagekit-catalog.xml
-%{_datadir}/mime/packages/packagekit-package-list.xml
-%{_datadir}/mime/packages/packagekit-servicepack.xml
 %{_mandir}/man1/pkcon.1*
 %{_mandir}/man1/pk-debuginfo-install.1*
-%{_mandir}/man1/pk-device-rebind.1*
-%{_mandir}/man1/pkgenpack.1*
 %{_mandir}/man1/pkmon.1*
 %{systemdunitdir}/packagekit.service
 %{systemdunitdir}/packagekit-offline-update.service
@@ -474,6 +448,12 @@ fi
 %defattr(644,root,root,755)
 %{_gtkdocdir}/PackageKit
 
+%if %{with hawkey}
+%files backend-hawkey
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_hawkey.so
+%endif
+
 %if %{with poldek}
 %files backend-poldek
 %defattr(644,root,root,755)
@@ -491,7 +471,6 @@ fi
 %if %{with yum}
 %files backend-yum
 %defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/Yum.conf
 %attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_yum.so
 %dir %{_datadir}/PackageKit/helpers/yum
 %{_datadir}/PackageKit/helpers/yum/licenses.txt
@@ -505,15 +484,6 @@ fi
 %{_prefix}/lib/yum-plugins/refresh-packagekit.py
 %endif
 
-%if %{with zif}
-%files backend-zif
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_zif.so
-%dir %{_datadir}/PackageKit/helpers/zif
-%{_datadir}/PackageKit/helpers/zif/licenses.txt
-%{_datadir}/PackageKit/helpers/zif/zif-comps-groups.conf
-%endif
-
 %files gstreamer-plugin
 %defattr(644,root,root,755)
 %doc contrib/gstreamer-plugin/README
@@ -534,10 +504,6 @@ fi
 %defattr(644,root,root,755)
 %{bash_compdir}/pkcon
 
-%files -n pm-utils-packagekit
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/pm-utils/sleep.d/95packagekit
-
 %files -n python-packagekit
 %defattr(644,root,root,755)
 %dir %{py_sitescriptdir}/packagekit
diff --git a/bashism.patch b/bashism.patch
deleted file mode 100644 (file)
index 9f7ace8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
---- PackageKit-0.5.4/contrib/pm-utils/95packagekit~    2009-08-17 16:56:38.000000000 +0300
-+++ PackageKit-0.5.4/contrib/pm-utils/95packagekit     2009-11-19 16:29:52.312297173 +0200
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # Copyright (C) 2007-2008 Richard Hughes <richard@hughsie.com>
- #
- # Licensed under the GNU General Public License Version 2
This page took 0.257293 seconds and 4 git commands to generate.