[PackageKit] Backport another fix from master to fix the offline updates feature.

Kalev Lember kalev at fedoraproject.org
Sun Jun 23 12:28:01 UTC 2013


commit c1b32df01c0a84dd0cd8ad0574a33cb2dabf6657
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Jun 13 13:14:31 2013 +0100

    Backport another fix from master to fix the offline updates feature.
    
    - Resolves: #968936

 PackageKit-git-fixes.patch |   52 ++++++++++++++++++++++++++++++++++++++++++++
 PackageKit.spec            |    8 +++++-
 2 files changed, 58 insertions(+), 2 deletions(-)
---
diff --git a/PackageKit-git-fixes.patch b/PackageKit-git-fixes.patch
index e01a430..a9a17e0 100644
--- a/PackageKit-git-fixes.patch
+++ b/PackageKit-git-fixes.patch
@@ -69,3 +69,55 @@ index 3440be5..c09c8d2 100644
  
  # How long the transaction is valid before it's destroyed, in seconds
  #
+commit cac9936e0950831905039c25f4b8e25ee4db3ce1
+Author: Richard Hughes <richard at hughsie.com>
+Date:   Thu Jun 13 13:05:07 2013 +0100
+
+    yum: Use yb.downloadPkgs() to download updates
+    
+    There were two bugs here:
+    
+    - Using repo.getPackage() did not check the package checksum, only the size,
+      so it was possible to download a corrupt package and then not be able to
+      apply the updates
+    
+    - By restricting to TS_UPDATE and TS_INSTALL we were ignoring any package that
+      was obsoleting another which could miss out packages.
+    
+    Many thanks to Zdenek Pavlas for all the help in finding these issues.
+    
+    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=968936
+
+diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
+index 289f10f..49a0f7b 100755
+--- a/backends/yum/yumBackend.py
++++ b/backends/yum/yumBackend.py
+@@ -2365,22 +2365,16 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
+             self.percentage(100)
+             return
+ 
++        # just download packages ready for the actual transaction
+         if TRANSACTION_FLAG_ONLY_DOWNLOAD in transaction_flags:
+-            package_list = []
+             for txmbr in self.yumbase.tsInfo:
+-                if txmbr.output_state in (TS_UPDATE, TS_INSTALL):
+-                    self._show_package(txmbr.po, INFO_DOWNLOADING)
+-                    repo = self.yumbase.repos.getRepo(txmbr.po.repoid)
++                if txmbr.output_state in TS_INSTALL_STATES:
+                     try:
+-                        path = repo.getPackage(txmbr.po)
+-                    except yum.Errors.RepoError, e:
+-                        self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, "Cannot download file: %s" % _to_unicode(e), exit=False)
+-                        return
+-                    except IOError, e:
+-                        self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, "Cannot write to file: %s" % _to_unicode(e), exit=False)
+-                        return
++                        self._show_package(txmbr.po, INFO_DOWNLOADING)
++                        self.yumbase.downloadPkgs([txmbr.po])
+                     except Exception, e:
+-                        raise PkError(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
++                        self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, "Cannot download packages: %s" % _to_unicode(e), exit=False)
++                        return
+             self.percentage(100)
+             return
+ 
diff --git a/PackageKit.spec b/PackageKit.spec
index 3f79750..0ea0872 100644
--- a/PackageKit.spec
+++ b/PackageKit.spec
@@ -6,7 +6,7 @@
 Summary:   Package management service
 Name:      PackageKit
 Version:   0.8.9
-Release:   4%{?dist}
+Release:   5%{?dist}
 License:   GPLv2+ and LGPLv2+
 URL:       http://www.packagekit.org
 Source0:   http://www.packagekit.org/releases/%{name}-%{version}.tar.xz
@@ -445,9 +445,13 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 %{_libdir}/pkgconfig/packagekit-plugin.pc
 
 %changelog
-* Sat Jun 22 2013 Matthias Clasen <mclasen at redhat.com> - 0.8.9-4
+* Sat Jun 22 2013 Matthias Clasen <mclasen at redhat.com> - 0.8.9-5
 - Trim %%changelog
 
+* Thu Jun 13 2013 Richard Hughes <rhughes at redhat.com> - 0.8.9-4
+- Backport another fix from master to fix the offline updates feature.
+- Resolves: #968936
+
 * Thu Jun 06 2013 Richard Hughes <rhughes at redhat.com> - 0.8.9-3
 - Backport 2 fixes from master to increase the maximum number of packages that
   can be processed, and also to fix a race in the offline updates feature.


More information about the scm-commits mailing list