summaryrefslogtreecommitdiff
path: root/community/gnome-packagekit
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2013-12-27 23:55:53 +0000
committerNicolás Reynolds <fauno@endefensadelsl.org>2013-12-27 23:55:53 +0000
commit65eeff79fff8a1bfdf67ca51d147384f46f4d5c0 (patch)
treefbfdff322b28d9a3c37e6e31c94caf1d8e48dac1 /community/gnome-packagekit
parentd53c44f055929b18d7d1b25f8367ee5836c435fc (diff)
Fri Dec 27 23:54:04 UTC 2013
Diffstat (limited to 'community/gnome-packagekit')
-rw-r--r--community/gnome-packagekit/PKGBUILD19
-rw-r--r--community/gnome-packagekit/packagekit-0.8.patch65
2 files changed, 78 insertions, 6 deletions
diff --git a/community/gnome-packagekit/PKGBUILD b/community/gnome-packagekit/PKGBUILD
index 00e64e742..f4a24191e 100644
--- a/community/gnome-packagekit/PKGBUILD
+++ b/community/gnome-packagekit/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 99773 2013-10-30 23:37:38Z allan $
+# $Id: PKGBUILD 102874 2013-12-23 07:07:51Z bgyorgy $
# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
pkgname=gnome-packagekit
-pkgver=3.8.2
+pkgver=3.10.1
pkgrel=1
pkgdesc='Collection of graphical tools for PackageKit to be used in the GNOME desktop'
arch=('i686' 'x86_64')
@@ -11,12 +11,19 @@ license=('GPL')
depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'libnotify'
'packagekit')
makedepends=('gconf' 'gtk-doc' 'intltool' 'itstool' 'libcanberra' 'upower')
-optdepends=('polkit-gnome: required for privileged actions'
- 'gnome-settings-daemon-updates: update and message notifications')
+optdepends=('gnome-settings-daemon-updates: update and message notifications')
options=('!emptydirs')
install="$pkgname.install"
-source=("http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz")
-sha256sums=('f13481d477a47295fa204b73ae7590f61d5576a8c889e5644cee0bc1f5cf530c')
+source=("http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
+ "packagekit-0.8.patch")
+sha256sums=('40f11968e6a40606486f232fd6f61348eb75dc465f25deb2f157f6546bbe4e26'
+ '717ba4d281adbafc9409202538ad1c8ce9a2bb41a6a0bc127e8dd5c4c1da1d65')
+
+prepare() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -RNp1 -i "$srcdir/packagekit-0.8.patch"
+}
build() {
cd "$srcdir/$pkgname-$pkgver"
diff --git a/community/gnome-packagekit/packagekit-0.8.patch b/community/gnome-packagekit/packagekit-0.8.patch
new file mode 100644
index 000000000..e1b1b2f97
--- /dev/null
+++ b/community/gnome-packagekit/packagekit-0.8.patch
@@ -0,0 +1,65 @@
+From 4077ba3ea30354ef070d640a5af4b6a913e97f4b Mon Sep 17 00:00:00 2001
+From: Richard Hughes <richard@hughsie.com>
+Date: Tue, 18 Jun 2013 12:56:05 +0000
+Subject: Ignore package progress updates when the transaction is being simulated
+
+PackageKit backends do not have to issue INFO_FINISHED when simulating, and most
+don't bother. As we didn't special-case simulation, we set up the activity
+spinner on the Package(INFO_UPDATING) event and do not cancel the signal.
+
+This leaves every row in the update viewer with a spinning cursor, which due to
+the way the code was structured lead to an O(n*n) exposion of updates to the
+cell renderers for each update. For a dozen or so updates it was not noticable,
+and nobody noticed the slight increase of CPU usage.
+
+Now that TeX Live has officially jumped the shark and has many hundreds of
+sub-packages, it's quite plausible to have *thousands* of small packages to
+update. This means that the O(n*n) bug stops being a minor increase in CPU and
+starts to use the CPU at 100% for many hours before completing.
+
+Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=969852
+---
+diff --git a/src/gpk-update-viewer.c b/src/gpk-update-viewer.c
+index 53be9cf..a2182a1 100644
+--- a/src/gpk-update-viewer.c
++++ b/src/gpk-update-viewer.c
+@@ -841,6 +841,7 @@ gpk_update_viewer_progress_cb (PkProgress *progress,
+ gchar *text;
+ gint percentage;
+ GtkWidget *widget;
++ guint64 transaction_flags;
+ PkInfoEnum info;
+ PkRoleEnum role;
+ PkStatusEnum status;
+@@ -853,6 +854,7 @@ gpk_update_viewer_progress_cb (PkProgress *progress,
+ "percentage", &percentage,
+ "package", &package,
+ "allow-cancel", &allow_cancel,
++ "transaction-flags", &transaction_flags,
+ NULL);
+
+ if (type == PK_PROGRESS_TYPE_PACKAGE) {
+@@ -864,6 +866,10 @@ gpk_update_viewer_progress_cb (PkProgress *progress,
+ GtkTreePath *path;
+ gboolean scroll;
+
++ /* ignore simulation phase */
++ if (pk_bitfield_contain (transaction_flags, PK_TRANSACTION_FLAG_ENUM_SIMULATE))
++ goto out;
++
+ /* add the results, not the progress */
+ if (role == PK_ROLE_ENUM_GET_UPDATES)
+ goto out;
+@@ -1040,6 +1046,10 @@ gpk_update_viewer_progress_cb (PkProgress *progress,
+ guint size_display;
+ PkItemProgress *item_progress;
+
++ /* ignore simulation phase */
++ if (pk_bitfield_contain (transaction_flags, PK_TRANSACTION_FLAG_ENUM_SIMULATE))
++ goto out;
++
+ g_object_get (progress,
+ "item-progress", &item_progress,
+ NULL);
+--
+cgit v0.9.2