diff --git a/0003-Change-the-priority-state-changed-timeout-to-2-secon.patch b/0003-Change-the-priority-state-changed-timeout-to-2-secon.patch new file mode 100644 index 0000000..0d05544 --- /dev/null +++ b/0003-Change-the-priority-state-changed-timeout-to-2-secon.patch @@ -0,0 +1,28 @@ +From 1945d27506ce72e3a135c204c9e550be92c0c65b Mon Sep 17 00:00:00 2001 +From: Richard Hughes +Date: Tue, 2 Oct 2012 11:56:41 +0100 +Subject: [PATCH 3/4] Change the priority state changed timeout to 2 seconds + +30 seconds is too long to have incorrect data showing in the UI. +--- + etc/PackageKit.conf.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/etc/PackageKit.conf.in b/etc/PackageKit.conf.in +index 18c5deb..3440be5 100644 +--- a/etc/PackageKit.conf.in ++++ b/etc/PackageKit.conf.in +@@ -194,8 +194,8 @@ DeveloperMode=false + # This should be used when a native tool has been used, and the update UIs + # should be updated to reflect reality. + # +-# default=30 +-StateChangedTimeoutPriority=30 ++# default=2 ++StateChangedTimeoutPriority=2 + + # The time in seconds to wait after the computer has been resumed or any non + # package related system event +-- +1.7.12.1 + diff --git a/0004-packagekit-qt-Break-ABI-to-make-pk-qt-more-closer-to.patch b/0004-packagekit-qt-Break-ABI-to-make-pk-qt-more-closer-to.patch new file mode 100644 index 0000000..e5dd5fc --- /dev/null +++ b/0004-packagekit-qt-Break-ABI-to-make-pk-qt-more-closer-to.patch @@ -0,0 +1,711 @@ +From ab3ee74c7ec4b74b4c9d1ab6298f4c32da03073b Mon Sep 17 00:00:00 2001 +From: Daniel Nicoletti +Date: Tue, 2 Oct 2012 09:04:19 -0300 +Subject: [PATCH 4/4] packagekit-qt: Break ABI to make pk-qt more closer to + what pk-glib is and allow for searchGroup() to work + +--- + configure.ac | 2 +- + lib/packagekit-qt2/Makefile.am | 4 ++ + lib/packagekit-qt2/bitfield.cpp | 70 +++++++++++++++++++++++++++ + lib/packagekit-qt2/bitfield.h | 33 +++++++++++++ + lib/packagekit-qt2/daemon.cpp | 15 +----- + lib/packagekit-qt2/daemon.h | 77 ++++++++++++++++++++++++++++++ + lib/packagekit-qt2/package.cpp | 23 ++++----- + lib/packagekit-qt2/package.h | 4 +- + lib/packagekit-qt2/packagedetails.cpp | 8 +--- + lib/packagekit-qt2/packagedetails.h | 79 ++++++++++++++++--------------- + lib/packagekit-qt2/transaction.cpp | 18 ++++--- + lib/packagekit-qt2/transaction.h | 74 ++++++++++++++++------------- + lib/packagekit-qt2/transactionprivate.cpp | 2 +- + 13 files changed, 295 insertions(+), 114 deletions(-) + create mode 100644 lib/packagekit-qt2/bitfield.cpp + create mode 100644 lib/packagekit-qt2/bitfield.h + +diff --git a/configure.ac b/configure.ac +index 1a4f123..a7530c3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -74,7 +74,7 @@ AC_SUBST(LT_AGE) + # - If the interface is the same as the previous version, but bugs are + # fixed, change: + # REVISION += 1 +-LT_QT_CURRENT=4 ++LT_QT_CURRENT=5 + LT_QT_REVISION=0 + LT_QT_AGE=0 + AC_SUBST(LT_QT_CURRENT) +diff --git a/lib/packagekit-qt2/Makefile.am b/lib/packagekit-qt2/Makefile.am +index 6e5e777..959e618 100644 +--- a/lib/packagekit-qt2/Makefile.am ++++ b/lib/packagekit-qt2/Makefile.am +@@ -21,6 +21,8 @@ MOCFILES = \ + daemonproxy.moc \ + transactionproxy.moc \ + transaction.moc \ ++ package.moc \ ++ packagedetails.moc \ + $(NULL) + + lib_LTLIBRARIES = \ +@@ -30,6 +32,7 @@ lib_LTLIBRARIES = \ + libpackagekit_qt2_includedir = $(includedir)/PackageKit/packagekit-qt2 + + libpackagekit_qt2_include_HEADERS = \ ++ bitfield.h \ + Signature \ + signature.h \ + Eula \ +@@ -47,6 +50,7 @@ libpackagekit_qt2_include_HEADERS = \ + $(NULL) + + libpackagekit_qt2_la_SOURCES = \ ++ bitfield.cpp \ + signature.h \ + signature.cpp \ + eula.h \ +diff --git a/lib/packagekit-qt2/bitfield.cpp b/lib/packagekit-qt2/bitfield.cpp +new file mode 100644 +index 0000000..2fa6e82 +--- /dev/null ++++ b/lib/packagekit-qt2/bitfield.cpp +@@ -0,0 +1,70 @@ ++#include "bitfield.h" ++ ++using namespace PackageKit; ++ ++Bitfield::Bitfield () : m_val (0) ++{ ++} ++ ++Bitfield::Bitfield (qulonglong val) : m_val (val) ++{ ++} ++ ++Bitfield::~Bitfield () ++{ ++} ++ ++qulonglong Bitfield::operator& (qulonglong mask) const ++{ ++ return m_val & (1ULL << mask); ++} ++ ++qulonglong Bitfield::operator&= (qulonglong mask) ++{ ++ m_val &= (1ULL << mask); ++ return m_val; ++} ++ ++qulonglong Bitfield::operator| (qulonglong mask) const ++{ ++ return m_val | (1ULL << mask); ++} ++ ++qulonglong Bitfield::operator|= (qulonglong mask) ++{ ++ m_val |= (1ULL << mask); ++ return m_val; ++} ++ ++Bitfield Bitfield::operator& (Bitfield mask) const ++{ ++ return m_val & mask.m_val; ++} ++ ++Bitfield Bitfield::operator&= (Bitfield mask) ++{ ++ m_val &= mask.m_val; ++ return m_val; ++} ++ ++Bitfield Bitfield::operator| (Bitfield mask) const ++{ ++ return m_val | mask.m_val; ++} ++ ++Bitfield Bitfield::operator|= (Bitfield mask) ++{ ++ m_val |= mask.m_val; ++ return m_val; ++} ++ ++ ++Bitfield& Bitfield::operator= (const Bitfield& other) ++{ ++ if (this == &other) ++ return *this; ++ ++ m_val = other.m_val; ++ ++ return *this; ++} +diff --git a/lib/packagekit-qt2/bitfield.h b/lib/packagekit-qt2/bitfield.h +new file mode 100644 +index 0000000..d7dd481 +--- /dev/null ++++ b/lib/packagekit-qt2/bitfield.h +@@ -0,0 +1,33 @@ ++#ifndef PACKAGEKIT_BITFIELD_H ++#define PACKAGEKIT_BITFIELD_H ++ ++#include ++ ++namespace PackageKit { ++ ++class Bitfield ++{ ++public: ++ Bitfield (); ++ Bitfield (qulonglong val); ++ ~Bitfield (); ++ ++ qulonglong operator& (qulonglong mask) const; ++ qulonglong operator&= (qulonglong mask); ++ qulonglong operator| (qulonglong mask) const; ++ qulonglong operator|= (qulonglong mask); ++ ++ Bitfield operator& (Bitfield mask) const; ++ Bitfield operator&= (Bitfield mask); ++ Bitfield operator| (Bitfield mask) const; ++ Bitfield operator|= (Bitfield mask); ++ ++ Bitfield& operator= (const Bitfield& other); ++ ++private: ++ qulonglong m_val; ++}; ++ ++} // End namespace PackageKit ++ ++#endif +diff --git a/lib/packagekit-qt2/daemon.cpp b/lib/packagekit-qt2/daemon.cpp +index 7b0cee1..8984946 100644 +--- a/lib/packagekit-qt2/daemon.cpp ++++ b/lib/packagekit-qt2/daemon.cpp +@@ -78,11 +78,7 @@ Daemon::~Daemon() + + Transaction::Roles Daemon::actions() + { +- qulonglong roles = global()->d_ptr->daemon->roles(); +- +- Transaction::Roles flags; +- flags |= static_cast(roles); +- return flags; ++ return global()->d_ptr->daemon->roles(); + } + + QString Daemon::backendName() +@@ -144,14 +140,7 @@ QDBusObjectPath Daemon::getTid() + + uint Daemon::getTimeSinceAction(Transaction::Role role) + { +- // We need to find the Role enum position +- // since this method does not support bitwised enum. +- for (uint i = 0; i < 64; ++i) { +- if (role == (1 << i)) { +- return global()->d_ptr->daemon->GetTimeSinceAction(i); +- } +- } +- return UINT_MAX; ++ return global()->d_ptr->daemon->GetTimeSinceAction(role); + } + + QList Daemon::getTransactionList() +diff --git a/lib/packagekit-qt2/daemon.h b/lib/packagekit-qt2/daemon.h +index 8ef525f..d8bb976 100644 +--- a/lib/packagekit-qt2/daemon.h ++++ b/lib/packagekit-qt2/daemon.h +@@ -23,6 +23,7 @@ + #define PACKAGEKIT_DAEMON_H + + #include ++#include + + #include "package.h" + #include "transaction.h" +@@ -242,6 +243,82 @@ public: + * The micro version number. + */ + static uint versionMicro(); ++ ++ /** ++ * Returns the string representing the enum ++ * Useful for PackageDetails::Group ++ */ ++ template static QString enumToString(int value, const char *enumName) ++ { ++ QString prefix = enumName; ++ int id = T::staticMetaObject.indexOfEnumerator(enumName); ++ QMetaEnum e = T::staticMetaObject.enumerator(id); ++ if (!e.isValid ()) { ++// qDebug() << "Invalid enum " << prefix; ++ return QString(); ++ } ++ QString enumString = e.valueToKey(value); ++ if (enumString.isNull()) { ++// qDebug() << "Enum key not found while searching for value" << QString::number(value) << "in enum" << prefix; ++ return QString(); ++ } ++ ++ // Remove the prefix ++ if(!prefix.isNull() && enumString.indexOf(prefix) == 0) { ++ enumString.remove(0, prefix.length()); ++ } ++ ++ QString pkName; ++ for(int i = 0 ; i < enumString.length() - 1 ; ++i) { ++ pkName += enumString[i]; ++ if(enumString[i+1].isUpper()) ++ pkName += QChar('-'); ++ } ++ pkName += enumString[enumString.length() - 1]; ++ ++ return pkName.toLower(); ++ } ++ ++ template static int enumFromString(const QString &str, const char *enumName) ++ { ++ QString prefix = enumName; ++ QString realName; ++ bool lastWasDash = false; ++ QChar buf; ++ ++ for(int i = 0 ; i < str.length() ; ++i) { ++ buf = str[i].toLower(); ++ if(i == 0 || lastWasDash) { ++ buf = buf.toUpper(); ++ } ++ ++ lastWasDash = false; ++ if(buf == QLatin1Char('-')) { ++ lastWasDash = true; ++ } else if(buf == QLatin1Char('~')) { ++ lastWasDash = true; ++ realName += "Not"; ++ } else { ++ realName += buf; ++ } ++ }; ++ ++ if (!prefix.isNull()) { ++ realName = prefix + realName; ++ } ++ ++ int id = T::staticMetaObject.indexOfEnumerator(enumName); ++ QMetaEnum e = T::staticMetaObject.enumerator(id); ++ int enumValue = e.keyToValue(realName.toAscii().data()); ++ ++ if (enumValue == -1) { ++ enumValue = e.keyToValue(prefix.append("Unknown").toAscii().data()); ++ if (!QString(enumName).isEmpty()) { ++// qDebug() << "enumFromString (" << enumName << ") : converted" << str << "to" << QString("Unknown").append(enumName) << ", enum id" << id; ++ } ++ } ++ return enumValue; ++ } + + Q_SIGNALS: + /** +diff --git a/lib/packagekit-qt2/package.cpp b/lib/packagekit-qt2/package.cpp +index 2e1a91a..384c32e 100644 +--- a/lib/packagekit-qt2/package.cpp ++++ b/lib/packagekit-qt2/package.cpp +@@ -28,9 +28,9 @@ + using namespace PackageKit; + + Package::Package(const QString &packageId, Info info, const QString &summary) : +- QString(packageId), + d(new PackagePrivate) + { ++ d->id = packageId; + d->info = info; + d->summary = summary; + } +@@ -42,11 +42,8 @@ Package::Package() : + } + + Package::Package(const Package &other) : +- d(new PackagePrivate) ++ d(other.d) + { +- d->info = InfoUnknown; +- +- *this = other; + } + + Package::~Package() +@@ -55,40 +52,40 @@ Package::~Package() + + bool Package::isValid() const + { +- int sepCount = count(QLatin1Char(';')); ++ int sepCount = d->id.count(QLatin1Char(';')); + if (sepCount == 3) { + // A valid pk-id "name;version;arch;data" + return true; + } else if (sepCount == 0) { + // its also valid just "name" +- return !isEmpty(); ++ return !d->id.isEmpty(); + } + return false; + } + + QString Package::id() const + { +- return *this; ++ return d->id; + } + + QString Package::name() const + { +- return section(QLatin1Char(';'), 0, 0); ++ return d->id.section(QLatin1Char(';'), 0, 0); + } + + QString Package::version() const + { +- return section(QLatin1Char(';'), 1, 1); ++ return d->id.section(QLatin1Char(';'), 1, 1); + } + + QString Package::arch() const + { +- return section(QLatin1Char(';'), 2, 2); ++ return d->id.section(QLatin1Char(';'), 2, 2); + } + + QString Package::data() const + { +- return section(QLatin1Char(';'), 3, 3); ++ return d->id.section(QLatin1Char(';'), 3, 3); + } + + QString Package::summary() const +@@ -144,6 +141,6 @@ bool Package::operator==(const Package &package) const + Package& Package::operator=(const Package &package) + { + d = package.d; +- QString::operator=(package); + } + ++#include "package.moc" +diff --git a/lib/packagekit-qt2/package.h b/lib/packagekit-qt2/package.h +index 57fb153..81eca8d 100644 +--- a/lib/packagekit-qt2/package.h ++++ b/lib/packagekit-qt2/package.h +@@ -37,6 +37,7 @@ public: + info(other.info), + summary(other.summary) { } + ~PackagePrivate() { } ++ QString id; + uint info; + QString summary; + }; +@@ -51,8 +52,9 @@ public: + * + * \note All Package objects should be deleted by the user. + */ +-class Package : public QString ++class Package + { ++ Q_GADGET + public: + /** + * Describes the state of a package +diff --git a/lib/packagekit-qt2/packagedetails.cpp b/lib/packagekit-qt2/packagedetails.cpp +index 3be7de1..c273e5d 100644 +--- a/lib/packagekit-qt2/packagedetails.cpp ++++ b/lib/packagekit-qt2/packagedetails.cpp +@@ -22,12 +22,6 @@ + + #include + +-namespace PackageKit { +- +- +- +-} +- + using namespace PackageKit; + + PackageDetails::PackageDetails(const QString &package_id, const QString &license, uint group, const QString &detail, const QString &url, qulonglong size) : +@@ -82,3 +76,5 @@ qulonglong PackageDetails::size() const + { + return d->size; + } ++ ++#include "packagedetails.moc" +diff --git a/lib/packagekit-qt2/packagedetails.h b/lib/packagekit-qt2/packagedetails.h +index c4751db..f188e18 100644 +--- a/lib/packagekit-qt2/packagedetails.h ++++ b/lib/packagekit-qt2/packagedetails.h +@@ -22,6 +22,7 @@ + #define PACKAGEKIT_PACKAGE_DETAILS_H + + #include "package.h" ++#include "bitfield.h" + + #include + +@@ -57,48 +58,50 @@ namespace PackageKit { + */ + class PackageDetails : public Package + { ++ Q_GADGET ++ Q_ENUMS(Group) + public: + /** + * Describes the different package groups + */ +- enum Group { +- GroupUnknown = 1ULL << 0, +- GroupAccessibility = 1ULL << 1, +- GroupAccessories = 1ULL << 2, +- GroupAdminTools = 1ULL << 3, +- GroupCommunication = 1ULL << 4, +- GroupDesktopGnome = 1ULL << 5, +- GroupDesktopKde = 1ULL << 6, +- GroupDesktopOther = 1ULL << 7, +- GroupDesktopXfce = 1ULL << 8, +- GroupEducation = 1ULL << 9, +- GroupFonts = 1ULL << 10, +- GroupGames = 1ULL << 11, +- GroupGraphics = 1ULL << 12, +- GroupInternet = 1ULL << 13, +- GroupLegacy = 1ULL << 14, +- GroupLocalization = 1ULL << 15, +- GroupMaps = 1ULL << 16, +- GroupMultimedia = 1ULL << 17, +- GroupNetwork = 1ULL << 18, +- GroupOffice = 1ULL << 19, +- GroupOther = 1ULL << 20, +- GroupPowerManagement = 1ULL << 21, +- GroupProgramming = 1ULL << 22, +- GroupPublishing = 1ULL << 23, +- GroupRepos = 1ULL << 24, +- GroupSecurity = 1ULL << 25, +- GroupServers = 1ULL << 26, +- GroupSystem = 1ULL << 27, +- GroupVirtualization = 1ULL << 28, +- GroupScience = 1ULL << 29, +- GroupDocumentation = 1ULL << 30, +- GroupElectronics = 1ULL << 31, +- GroupCollections = 1ULL << 32, +- GroupVendor = 1ULL << 33, +- GroupNewest = 1ULL << 34 +- }; +- typedef qulonglong Groups; ++ typedef enum { ++ GroupUnknown, ++ GroupAccessibility, ++ GroupAccessories, ++ GroupAdminTools, ++ GroupCommunication, ++ GroupDesktopGnome, ++ GroupDesktopKde, ++ GroupDesktopOther, ++ GroupDesktopXfce, ++ GroupEducation, ++ GroupFonts, ++ GroupGames, ++ GroupGraphics, ++ GroupInternet, ++ GroupLegacy, ++ GroupLocalization, ++ GroupMaps, ++ GroupMultimedia, ++ GroupNetwork, ++ GroupOffice, ++ GroupOther, ++ GroupPowerManagement, ++ GroupProgramming, ++ GroupPublishing, ++ GroupRepos, ++ GroupSecurity, ++ GroupServers, ++ GroupSystem, ++ GroupVirtualization, ++ GroupScience, ++ GroupDocumentation, ++ GroupElectronics, ++ GroupCollections, ++ GroupVendor, ++ GroupNewest ++ } Group; ++ typedef Bitfield Groups; + + /** + * Constructs package +diff --git a/lib/packagekit-qt2/transaction.cpp b/lib/packagekit-qt2/transaction.cpp +index f605b1b..ee7c59b 100644 +--- a/lib/packagekit-qt2/transaction.cpp ++++ b/lib/packagekit-qt2/transaction.cpp +@@ -59,7 +59,6 @@ void Transaction::init(const QDBusObjectPath &tid) + { + Q_D(Transaction); + +- d->tid = tid; + d->oldtrans = false; + d->p = 0; + +@@ -67,7 +66,8 @@ void Transaction::init(const QDBusObjectPath &tid) + // he want us to get it + if (tid.path().isNull()) { + d->tid = Daemon::global()->getTid(); +- qDebug() << "packagekit-qt:" << d->tid.path(); ++ } else { ++ d->tid = tid; + } + + int retry = 0; +@@ -78,7 +78,7 @@ void Transaction::init(const QDBusObjectPath &tid) + QDBusConnection::systemBus(), + this); + if (!d->p->isValid()) { +- qDebug() << "Error, cannot create transaction proxy" << d->p->lastError(); ++ qWarning() << "Error, cannot create transaction proxy" << d->p->lastError(); + QDBusMessage message; + message = QDBusMessage::createMethodCall(QLatin1String("org.freedesktop.DBus"), + QLatin1String("/"), +@@ -278,16 +278,14 @@ Transaction::Role Transaction::role() const + { + Q_D(const Transaction); + if(d->oldtrans) { +- uint role = 1 << d->role; +- return static_cast(role); ++ return d->role; + } + + if (d->destroyed) { + return Transaction::RoleUnknown; + } + +- uint role = 1 << d->p->role(); +- return static_cast(role); ++ return static_cast(d->p->role()); + } + + void Transaction::setHints(const QStringList &hints) +@@ -543,6 +541,12 @@ void Transaction::searchGroup(const QString &group, Transaction::Filters filters + searchGroups(QStringList() << group, filters); + } + ++void Transaction::searchGroup(PackageDetails::Group group, Filters filters) ++{ ++ QString groupString = Daemon::enumToString(group, "Group"); ++ searchGroup(groupString, filters); ++} ++ + void Transaction::searchGroups(PackageDetails::Groups groups, Transaction::Filters filters) + { + searchGroups(groups, filters); +diff --git a/lib/packagekit-qt2/transaction.h b/lib/packagekit-qt2/transaction.h +index 9e3416d..c599957 100644 +--- a/lib/packagekit-qt2/transaction.h ++++ b/lib/packagekit-qt2/transaction.h +@@ -88,40 +88,40 @@ public: + /** + * Describes the role of the transaction + */ +- enum Role { +- RoleUnknown = 1 << 0, +- RoleCancel = 1 << 1, +- RoleGetDepends = 1 << 2, +- RoleGetDetails = 1 << 3, +- RoleGetFiles = 1 << 4, +- RoleGetPackages = 1 << 5, +- RoleGetRepoList = 1 << 6, +- RoleGetRequires = 1 << 7, +- RoleGetUpdateDetail = 1 << 8, +- RoleGetUpdates = 1 << 9, +- RoleInstallFiles = 1 << 10, +- RoleInstallPackages = 1 << 11, +- RoleInstallSignature = 1 << 12, +- RoleRefreshCache = 1 << 13, +- RoleRemovePackages = 1 << 14, +- RoleRepoEnable = 1 << 15, +- RoleRepoSetData = 1 << 16, +- RoleResolve = 1 << 17, +- RoleSearchDetails = 1 << 18, +- RoleSearchFile = 1 << 19, +- RoleSearchGroup = 1 << 20, +- RoleSearchName = 1 << 21, +- RoleUpdatePackages = 1 << 22, +- RoleWhatProvides = 1 << 23, +- RoleAcceptEula = 1 << 24, +- RoleDownloadPackages = 1 << 25, +- RoleGetDistroUpgrades = 1 << 26, +- RoleGetCategories = 1 << 27, +- RoleGetOldTransactions = 1 << 28, +- RoleUpgradeSystem = 1 << 29, // Since 0.6.11 +- RoleRepairSystem = 1 << 30 // Since 0.7.2 +- }; +- Q_DECLARE_FLAGS(Roles, Role) ++ typedef enum { ++ RoleUnknown, ++ RoleCancel, ++ RoleGetDepends, ++ RoleGetDetails, ++ RoleGetFiles, ++ RoleGetPackages, ++ RoleGetRepoList, ++ RoleGetRequires, ++ RoleGetUpdateDetail, ++ RoleGetUpdates, ++ RoleInstallFiles, ++ RoleInstallPackages, ++ RoleInstallSignature, ++ RoleRefreshCache, ++ RoleRemovePackages, ++ RoleRepoEnable, ++ RoleRepoSetData, ++ RoleResolve, ++ RoleSearchDetails, ++ RoleSearchFile, ++ RoleSearchGroup, ++ RoleSearchName, ++ RoleUpdatePackages, ++ RoleWhatProvides, ++ RoleAcceptEula, ++ RoleDownloadPackages, ++ RoleGetDistroUpgrades, ++ RoleGetCategories, ++ RoleGetOldTransactions, ++ RoleUpgradeSystem, // Since 0.6.11 ++ RoleRepairSystem // Since 0.7.2 ++ } Role; ++ typedef Bitfield Roles; + + /** + * Describes the different types of error +@@ -844,6 +844,12 @@ public: + * \sa searchGroups(const QStringList &groups, Filters filters = FilterNone) + */ + void searchGroup(const QString &group, Filters filters = FilterNone); ++ ++ /** ++ * Convenience function to search by group enum ++ * \sa searchGroups(const QStringList &groups, Filters filters = FilterNone) ++ */ ++ void searchGroup(PackageDetails::Group group, Filters filters = FilterNone); + + /** + * \brief Lists all the packages in the given \p group +diff --git a/lib/packagekit-qt2/transactionprivate.cpp b/lib/packagekit-qt2/transactionprivate.cpp +index 94b2832..564bd58 100644 +--- a/lib/packagekit-qt2/transactionprivate.cpp ++++ b/lib/packagekit-qt2/transactionprivate.cpp +@@ -202,7 +202,7 @@ QStringList TransactionPrivate::packageListToPids(const PackageList &packages) c + { + QStringList pids; + foreach (const Package &package, packages) { +- pids << package; ++ pids << package.id(); + } + return pids; + } +-- +1.7.12.1 + diff --git a/PackageKit.spec b/PackageKit.spec index b696845..a262101 100644 --- a/PackageKit.spec +++ b/PackageKit.spec @@ -3,7 +3,7 @@ Summary: Package management service Name: PackageKit Version: 0.8.4 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ and LGPLv2+ URL: http://www.packagekit.org Source0: http://www.packagekit.org/releases/%{name}-%{version}.tar.xz @@ -17,6 +17,10 @@ Patch1: PackageKit-0.4.4-Fedora-turn-off-time.conf.patch # Upstreamable? allow use of xulrunner2 for browser-plugin support Patch4: PackageKit-0.7.4-xulrunner2.patch +# upstream patches +Patch103: 0003-Change-the-priority-state-changed-timeout-to-2-secon.patch +Patch104: 0004-packagekit-qt-Break-ABI-to-make-pk-qt-more-closer-to.patch + Requires: %{name}-glib%{?_isa} = %{version}-%{release} Requires: PackageKit-backend Requires: shared-mime-info @@ -77,7 +81,7 @@ cross-architecture API. %package yum Summary: PackageKit YUM backend Group: System Environment/Libraries -Requires: yum >= 3.2.19 +Requires: yum >= 3.4.3-35 # python(gio) Requires: pygobject2 Requires: %{name}%{?_isa} = %{version}-%{release} @@ -254,6 +258,8 @@ user to restart the computer or remove and re-insert the device. %patch0 -p1 -b .fedora %patch1 -p1 -b .no-time %patch4 -p1 -b .xulrunner2 +%patch103 -p1 -b .0003 +%patch104 -p1 -b .0004 NOCONFIGURE=1 ./autogen.sh %build @@ -463,6 +469,12 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %{_libdir}/pkgconfig/packagekit-plugin.pc %changelog +* Tue Oct 02 2012 Rex Dieter +- 0.8.4-2 +- -yum: Requires: yum >= 3.4.3-35 +- PackageKit.conf: StateChangedTimeoutPriority=2 +- backport -qt api/abi change + * Mon Oct 01 2012 Richard Hughes - 0.8.4-1 - New upstream release - Suggest a Linux binary if the Solaris name is used