* [gentoo-commits] proj/gnome:master commit in: app-admin/packagekit-base/, app-admin/packagekit-base/files/
@ 2015-11-27 13:57 Gilles Dartiguelongue
0 siblings, 0 replies; only message in thread
From: Gilles Dartiguelongue @ 2015-11-27 13:57 UTC (permalink / raw
To: gentoo-commits
commit: 903740134df3108d505ff0251afa8179931fdd60
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 27 13:51:34 2015 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Fri Nov 27 13:56:39 2015 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=90374013
app-admin/packagekit-base: version bump to 1.0.10
.../0001-Fix-typo-python-backend-detection.patch | 25 -
...-exception-handling-to-be-python2.7-compa.patch | 44 ++
.../0002-Sort-imports-according-to-PEP8.patch | 72 --
...2-portage-do-not-redefine-builtin-license.patch | 34 +
.../files/0003-Update-layman-API-usage-to-2.patch | 104 ---
.../files/0003-portage-drop-unused-imports.patch | 25 +
.../files/0004-Use-python-idioms.patch | 191 -----
...0004-portage-initialize-licenses-variable.patch | 26 +
.../0005-Enhance-get_repo_list-function.patch | 56 --
...-fix-a-typo-in-restoring-license-settings.patch | 30 +
...-_get_cpv_slotted-with-collections-module.patch | 41 --
...-PackageKitProgress-to-ease-progress-step.patch | 260 +++++++
.../files/0007-Simplify-_get_metadata.patch | 42 --
...ython-make-PackagekitProgress-an-Iterable.patch | 56 ++
.../files/0008-Remove-useless-instruction.patch | 24 -
...steps-on-PackagekitProgress-instanciation.patch | 49 ++
.../packagekit-base/files/0009-Cosmetics.patch | 800 ---------------------
...age-use-PackagekitProgress-as-an-iterable.patch | 222 ++++++
...010-Add-helper-to-change-portage-settings.patch | 73 --
...1-Remove-compatibility-with-older-portage.patch | 77 --
.../files/0011-portage-fix-a-typo.patch | 25 +
...PI-and-KEYWORDS-before-calling-setcpv-met.patch | 36 -
...2-portage-fix-step-percentage-computation.patch | 25 +
...not-refetch-package-listing-for-no-reason.patch | 32 +
...-1.0.6.ebuild => packagekit-base-1.0.10.ebuild} | 23 +-
25 files changed, 843 insertions(+), 1549 deletions(-)
diff --git a/app-admin/packagekit-base/files/0001-Fix-typo-python-backend-detection.patch b/app-admin/packagekit-base/files/0001-Fix-typo-python-backend-detection.patch
deleted file mode 100644
index 5786d87..0000000
--- a/app-admin/packagekit-base/files/0001-Fix-typo-python-backend-detection.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ff0e2a1fe4f32def11b74e9eb7ffa7989e3061d8 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 18:37:24 +0200
-Subject: [PATCH 01/12] Fix typo python backend detection
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 655507f..844c454 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -454,7 +454,7 @@ if test x$enable_hif = xyes; then
- fi
-
- have_python_backend="no"
--if test x$enable_entropy = xyes -o x$enable_pisi = xyes -o $enable_portage = xyes; then
-+if test x$enable_entropy = xyes -o x$enable_pisi = xyes -o x$enable_portage = xyes; then
- have_python_backend="yes"
- fi
- AM_CONDITIONAL(HAVE_PYTHON_BACKEND, test x$have_python_backend = xyes)
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0001-portage-fix-exception-handling-to-be-python2.7-compa.patch b/app-admin/packagekit-base/files/0001-portage-fix-exception-handling-to-be-python2.7-compa.patch
new file mode 100644
index 0000000..b834f2b
--- /dev/null
+++ b/app-admin/packagekit-base/files/0001-portage-fix-exception-handling-to-be-python2.7-compa.patch
@@ -0,0 +1,44 @@
+From 56a54a7bbf3b28546619a4d2b458ea50c3f5c3e9 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 13:32:23 +0200
+Subject: [PATCH 1/9] portage: fix exception handling to be python2.7+
+ compatible
+
+---
+ backends/portage/portageBackend.py | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index dc72bd9..d4726b6 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -1542,9 +1542,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ if not enable and self._is_repo_enabled(installed_layman_db, repoid):
+ try:
+ installed_layman_db.delete(installed_layman_db.select(repoid))
+- except Exception, e:
++ except Exception as exc:
+ self.error(ERROR_INTERNAL_ERROR,
+- "Failed to disable repository " + repoid + " : " + str(e))
++ "Failed to disable repository %s: %s" %
++ (repoid, str(exc)))
+ return
+
+ # enabling (adding) a db
+@@ -1555,10 +1556,11 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self._block_output()
+ installed_layman_db.add(available_layman_db.select(repoid))
+ self._unblock_output()
+- except Exception, e:
++ except Exception as exc:
+ self._unblock_output()
+ self.error(ERROR_INTERNAL_ERROR,
+- "Failed to enable repository " + repoid + " : " + str(e))
++ "Failed to enable repository %s: %s" %
++ (repoid, str(exc)))
+ return
+
+ def resolve(self, filters, pkgs):
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0002-Sort-imports-according-to-PEP8.patch b/app-admin/packagekit-base/files/0002-Sort-imports-according-to-PEP8.patch
deleted file mode 100644
index abb8720..0000000
--- a/app-admin/packagekit-base/files/0002-Sort-imports-according-to-PEP8.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 6d62155472c3ae1f85a756518e9014425354511d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 12:08:43 +0200
-Subject: [PATCH 02/12] Sort imports according to PEP8
-
----
- backends/portage/portageBackend.py | 39 ++++++++++++++++++--------------------
- 1 file changed, 18 insertions(+), 21 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 82bf6cd..f403986 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -22,37 +22,34 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- import os
-+import re
-+import signal
-+import sys
- import traceback
-+from itertools import izip
-
--
-+# layman imports
-+import layman.config
-+import layman.db
- # packagekit imports
-+from packagekit.backend import (
-+ PackageKitBaseBackend,
-+ get_package_id,
-+ split_package_id,
-+)
- from packagekit.enums import *
--
--from packagekit.backend import PackageKitBaseBackend, \
-- get_package_id, split_package_id
--from packagekit.progress import *
- from packagekit.package import PackagekitPackage
--
-+from packagekit.progress import *
- # portage imports
--import portage
--import portage.versions
--import portage.dep
-+import _emerge.AtomArg
- import _emerge.actions
--import _emerge.stdout_spinner
- import _emerge.create_depgraph_params
--import _emerge.AtomArg
-+import _emerge.stdout_spinner
-+import portage
-+import portage.dep
-+import portage.versions
- from portage.exception import InvalidAtom
-
--# layman imports
--import layman.db
--import layman.config
--
--# misc imports
--import sys
--import signal
--import re
--from itertools import izip
--
- # NOTES:
- #
- # Package IDs description:
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0002-portage-do-not-redefine-builtin-license.patch b/app-admin/packagekit-base/files/0002-portage-do-not-redefine-builtin-license.patch
new file mode 100644
index 0000000..8ef1e9a
--- /dev/null
+++ b/app-admin/packagekit-base/files/0002-portage-do-not-redefine-builtin-license.patch
@@ -0,0 +1,34 @@
+From 232519b102571933f034cee72979ecf834af4b46 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 14:14:03 +0200
+Subject: [PATCH 2/9] portage: do not redefine builtin license
+
+---
+ backends/portage/portageBackend.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index d4726b6..f40ca92 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -334,14 +334,14 @@ class PackageKitPortageMixin(object):
+ def _get_real_license_str(self, cpv, metadata):
+ # use conditionals info (w/ USE) in LICENSE and remove ||
+ ebuild_settings = self._get_ebuild_settings(cpv, metadata)
+- license = set(portage.flatten(
++ license_ = set(portage.flatten(
+ portage.dep.use_reduce(
+ portage.dep.paren_reduce(metadata["LICENSE"]),
+ uselist=ebuild_settings.get("USE", "").split()
+ )
+ ))
+- license.discard('||')
+- return ' '.join(license)
++ license_.discard('||')
++ return ' '.join(license_)
+
+ def _signal_config_update(self):
+ result = list(portage.util.find_updated_config_files(
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0003-Update-layman-API-usage-to-2.patch b/app-admin/packagekit-base/files/0003-Update-layman-API-usage-to-2.patch
deleted file mode 100644
index afd94a2..0000000
--- a/app-admin/packagekit-base/files/0003-Update-layman-API-usage-to-2.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From b41a8c225d5fc593a10f54e10eba829c58d410d6 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 12:48:13 +0200
-Subject: [PATCH 03/12] Update layman API usage to >=2
-
----
- backends/portage/portageBackend.py | 44 ++++++++++++++------------------------
- 1 file changed, 16 insertions(+), 28 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index f403986..7ad23ec 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -28,9 +28,10 @@ import sys
- import traceback
- from itertools import izip
-
--# layman imports
-+# layman imports (>=2)
- import layman.config
- import layman.db
-+import layman.remotedb
- # packagekit imports
- from packagekit.backend import (
- PackageKitBaseBackend,
-@@ -1050,17 +1051,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- self.allow_cancel(True)
- self.percentage(None)
-
-- # get installed and available dbs
-- if hasattr(layman.config, "Config"):
-- installed_layman_db = layman.db.DB(layman.config.Config())
-- else:
-- installed_layman_db = layman.db.DB(layman.config.BareConfig())
--
-- if hasattr(layman.config, "Config"):
-- available_layman_db = layman.db.RemoteDB(layman.config.Config())
-- else:
-- available_layman_db = layman.db.RemoteDB(layman.config.BareConfig())
--
-+ conf = layman.config.BareConfig()
-+ conf.set_option('quiet', True)
-+ installed_layman_db = layman.db.DB(conf)
-+ available_layman_db = layman.remotedb.RemoteDB(conf)
-
- # 'gentoo' is a dummy repo
- self.repo_detail('gentoo', 'Gentoo Portage tree', True)
-@@ -1386,15 +1380,9 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- myopts = {'--quiet': True}
-
-- # get installed and available dbs
-- if hasattr(layman.config, "Config"):
-- layman_opts = {"quiet": True}
-- installed_layman_db = layman.db.DB(layman.config.Config())
-- else:
-- layman_opts = {}
-- conf = layman.config.BareConfig()
-- conf.set_option("quiet", True)
-- installed_layman_db = layman.db.DB(conf)
-+ conf = layman.config.BareConfig()
-+ conf.set_option('quiet', True)
-+ installed_layman_db = layman.db.DB(conf)
-
- if force:
- timestamp_path = os.path.join(
-@@ -1404,8 +1392,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- try:
- self._block_output()
-- for o in installed_layman_db.overlays.keys():
-- installed_layman_db.sync(o, **layman_opts)
-+ for overlay in installed_layman_db.overlays.keys():
-+ installed_layman_db.sync(overlay)
- _emerge.actions.action_sync(self.pvar.settings, self.pvar.trees,
- self.pvar.mtimedb, myopts, "")
- except:
-@@ -1541,9 +1529,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- "gentoo repository can't be disabled")
- return
-
-- # get installed and available dbs
-- installed_layman_db = layman.db.DB(layman.config.Config())
-- available_layman_db = layman.db.RemoteDB(layman.config.Config())
-+ conf = layman.config.BareConfig()
-+ conf.set_option('quiet', True)
-+ installed_layman_db = layman.db.DB(conf)
-+ available_layman_db = layman.remotedb.RemoteDB(conf)
-
- # check now for repoid so we don't have to do it after
- if not repoid in available_layman_db.overlays.keys():
-@@ -1567,8 +1556,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- try:
- # TODO: clean the trick to prevent outputs from layman
- self._block_output()
-- installed_layman_db.add(available_layman_db.select(repoid),
-- quiet=True)
-+ installed_layman_db.add(available_layman_db.select(repoid))
- self._unblock_output()
- except Exception, e:
- self._unblock_output()
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0003-portage-drop-unused-imports.patch b/app-admin/packagekit-base/files/0003-portage-drop-unused-imports.patch
new file mode 100644
index 0000000..2b99528
--- /dev/null
+++ b/app-admin/packagekit-base/files/0003-portage-drop-unused-imports.patch
@@ -0,0 +1,25 @@
+From 6b2592232d9ed2713df874d3bb770f68ef701841 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 14:14:45 +0200
+Subject: [PATCH 3/9] portage: drop unused imports
+
+---
+ backends/portage/portageBackend.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index f40ca92..4301c14 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -40,8 +40,6 @@ from packagekit.backend import (
+ split_package_id,
+ )
+ from packagekit.enums import *
+-from packagekit.package import PackagekitPackage
+-from packagekit.progress import *
+ # portage imports
+ import _emerge.AtomArg
+ import _emerge.actions
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0004-Use-python-idioms.patch b/app-admin/packagekit-base/files/0004-Use-python-idioms.patch
deleted file mode 100644
index dc9c982..0000000
--- a/app-admin/packagekit-base/files/0004-Use-python-idioms.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From e8520218790e939ee69891e1031ba7c9934959a1 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 12:49:15 +0200
-Subject: [PATCH 04/12] Use python idioms
-
----
- backends/portage/portageBackend.py | 80 ++++++++++++--------------------------
- 1 file changed, 25 insertions(+), 55 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 7ad23ec..f37542e 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -191,10 +191,10 @@ class PortageBridge():
- self.settings.backup_changes("ACCEPT_PROPERTIES")
-
- # do not log with mod_echo (cleanly prevent some outputs)
-- def filter_echo(x): return x != 'echo'
-- elogs = self.settings["PORTAGE_ELOG_SYSTEM"].split()
-- elogs = filter(filter_echo, elogs)
-- self.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join(elogs)
-+ self.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join([
-+ elog for elog in self.settings["PORTAGE_ELOG_SYSTEM"].split()
-+ if elog != 'echo'
-+ ])
- self.settings.backup_changes("PORTAGE_ELOG_SYSTEM")
-
- # finally, regenerate settings and lock them again
-@@ -237,9 +237,7 @@ class PackageKitPortageMixin(object):
- return TRANSACTION_FLAG_ONLY_DOWNLOAD in transaction_flags
-
- def _is_repo_enabled(self, layman_db, repo_name):
-- if repo_name in layman_db.overlays.keys():
-- return True
-- return False
-+ return repo_name in layman_db.overlays.keys()
-
- def _get_search_list(self, keys_list):
- '''
-@@ -334,18 +332,10 @@ class PackageKitPortageMixin(object):
- return InternalPackageSet
-
- def _is_installed(self, cpv):
-- if self.pvar.vardb.cpv_exists(cpv):
-- return True
-- return False
-+ return self.pvar.vardb.cpv_exists(cpv)
-
- def _is_cpv_valid(self, cpv):
-- if self._is_installed(cpv):
-- # actually if is_installed return True that means cpv is in db
-- return True
-- elif self.pvar.portdb.cpv_exists(cpv):
-- return True
--
-- return False
-+ return any([self._is_installed(cpv), self.pvar.portdb.cpv_exists(cpv)])
-
- def _get_real_license_str(self, cpv, metadata):
- # use conditionals info (w/ USE) in LICENSE and remove ||
-@@ -354,9 +344,7 @@ class PackageKitPortageMixin(object):
- portage.dep.paren_reduce(metadata["LICENSE"]),
- uselist=ebuild_settings.get("USE", "").split())))
- license.discard('||')
-- license = ' '.join(license)
--
-- return license
-+ return ' '.join(license)
-
- def _signal_config_update(self):
- result = list(portage.util.find_updated_config_files(
-@@ -472,10 +460,7 @@ class PackageKitPortageMixin(object):
- vartree=self.pvar.vardb)
-
- contents = db.getcontents()
-- if not contents:
-- return []
--
-- return db.getcontents().keys()
-+ return contents.keys() if contents else []
-
- def _cmp_cpv(self, cpv1, cpv2):
- '''
-@@ -535,10 +520,7 @@ class PackageKitPortageMixin(object):
- size = 0
- if self._is_installed(cpv):
- size = self._get_metadata(cpv, ["SIZE"])[0]
-- if size == '':
-- size = 0
-- else:
-- size = int(size)
-+ size = int(size) if size else 0
- else:
- self
- metadata = self._get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
-@@ -553,8 +535,7 @@ class PackageKitPortageMixin(object):
-
- fetch_file = self.pvar.portdb.getfetchsizes(package[2],
- package.use.enabled)
-- for f in fetch_file:
-- size += fetch_file[f]
-+ size = sum(fetch_file)
-
- return size
-
-@@ -670,14 +651,12 @@ class PackageKitPortageMixin(object):
- if FILTER_INSTALLED in filters:
- cpv_list = self.pvar.vardb.match(cp)
- elif FILTER_NOT_INSTALLED in filters:
-- for cpv in self.pvar.portdb.match(cp):
-- if not self._is_installed(cpv):
-- cpv_list.append(cpv)
-+ cpv_list = [cpv for cpv in self.pvar.portdb.match(cp)
-+ if not self._is_installed(cpv)]
- else:
- cpv_list = self.pvar.vardb.match(cp)
-- for cpv in self.pvar.portdb.match(cp):
-- if cpv not in cpv_list:
-- cpv_list.append(cpv)
-+ cpv_list.extend(self.pvar.portdb.match(cp))
-+ cpv_list = set(cpv_list)
-
- # free filter
- cpv_list = self._filter_free(cpv_list, filters)
-@@ -714,22 +693,18 @@ class PackageKitPortageMixin(object):
- pkg_keywords, repo, slot = self._get_metadata(cpv,
- ["KEYWORDS", "repository", "SLOT"])
-
-- pkg_keywords = pkg_keywords.split()
-- sys_keywords = self.pvar.settings["ACCEPT_KEYWORDS"].split()
-- keywords = []
--
-- for x in sys_keywords:
-- if x in pkg_keywords:
-- keywords.append(x)
-+ # filter accepted keywords
-+ keywords = list(set(pkg_keywords.split()).intersection(
-+ set(self.pvar.settings["ACCEPT_KEYWORDS"].split())
-+ ))
-
- # if no keywords, check in package.keywords
- if not keywords:
- key_dict = self.pvar.settings.pkeywordsdict.get(
- portage.dep.dep_getkey(cpv))
- if key_dict:
-- for _, keys in key_dict.iteritems():
-- for x in keys:
-- keywords.append(x)
-+ for keys in key_dict.values():
-+ keyword.extend(keys)
-
- if not keywords:
- keywords.append("no keywords")
-@@ -942,9 +917,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- # now we can change cpv_list to a real cpv list
- tmp_list = cpv_list[:]
-- cpv_list = []
-- for x in tmp_list:
-- cpv_list.append(x[2])
-+ cpv_list = [x[2] for x in tmp_list]
- del tmp_list
-
- # free filter
-@@ -1100,12 +1073,9 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- cpv_input.append(cpv)
-
-- packages_list = self._get_required_packages(cpv_input, recursive)
--
- # now we can populate cpv_list
-- cpv_list = []
-- for p in packages_list:
-- cpv_list.append(p.cpv)
-+ packages_list = self._get_required_packages(cpv_input, recursive)
-+ cpv_list = [package.cpv for package in packages_list]
- del packages_list
-
- # free filter
-@@ -1535,7 +1505,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- available_layman_db = layman.remotedb.RemoteDB(conf)
-
- # check now for repoid so we don't have to do it after
-- if not repoid in available_layman_db.overlays.keys():
-+ if repoid not in available_layman_db.overlays.keys():
- self.error(ERROR_REPO_NOT_FOUND,
- "Repository %s was not found" % repoid)
- return
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0004-portage-initialize-licenses-variable.patch b/app-admin/packagekit-base/files/0004-portage-initialize-licenses-variable.patch
new file mode 100644
index 0000000..5c31b26
--- /dev/null
+++ b/app-admin/packagekit-base/files/0004-portage-initialize-licenses-variable.patch
@@ -0,0 +1,26 @@
+From 438fd88070860f858d09758daf5ff379a4d788a5 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 14:33:48 +0200
+Subject: [PATCH 4/9] portage: initialize licenses variable
+
+It should not be possible for licenses to be undefined but cleans up
+static analysis warnings.
+---
+ backends/portage/portageBackend.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index 4301c14..f36695a 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -554,6 +554,7 @@ class PackageKitPortageMixin(object):
+ return not self.pvar.settings._getMissingLicenses(cpv, metadata)
+
+ if FILTER_FREE in filters or FILTER_NOT_FREE in filters:
++ licenses = ""
+ free_licenses = "@FSF-APPROVED"
+ if FILTER_FREE in filters:
+ licenses = "-* " + free_licenses
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0005-Enhance-get_repo_list-function.patch b/app-admin/packagekit-base/files/0005-Enhance-get_repo_list-function.patch
deleted file mode 100644
index 4f093e2..0000000
--- a/app-admin/packagekit-base/files/0005-Enhance-get_repo_list-function.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 97afdc42a3cd50de94d824fab06b8c4a13a20c29 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 12:58:40 +0200
-Subject: [PATCH 05/12] Enhance get_repo_list function
-
-Adds a PEP257 docstring and use layman API to provide a description to
-repositories.
----
- backends/portage/portageBackend.py | 24 +++++++++++++++---------
- 1 file changed, 15 insertions(+), 9 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index f37542e..ddeca0d 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -1016,10 +1016,14 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- self.percentage(100)
-
- def get_repo_list(self, filters):
-- # NOTES:
-- # use layman API
-- # returns only official and supported repositories
-- # and creates a dummy repo for portage tree
-+ """ Get list of repository.
-+
-+ Get the list of repository tagged as official and supported by current
-+ setup of layman.
-+
-+ Adds a dummy entry for gentoo-x86 official tree even though it appears
-+ in layman's listing nowadays.
-+ """
- self.status(STATUS_INFO)
- self.allow_cancel(True)
- self.percentage(None)
-@@ -1033,11 +1037,13 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- self.repo_detail('gentoo', 'Gentoo Portage tree', True)
-
- if FILTER_NOT_DEVELOPMENT not in filters:
-- for o in available_layman_db.overlays.keys():
-- if available_layman_db.overlays[o].is_official() \
-- and available_layman_db.overlays[o].is_supported():
-- self.repo_detail(o, o,
-- self._is_repo_enabled(installed_layman_db, o))
-+ for repo_name, overlay in available_layman_db.overlays.items():
-+ if overlay.is_official() and overlay.is_supported():
-+ self.repo_detail(
-+ repo_name,
-+ overlay.name,
-+ self._is_repo_enabled(installed_layman_db, repo_name)
-+ )
-
- def required_by(self, filters, pkgs, recursive):
- # TODO: manage non-installed package
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0005-portage-fix-a-typo-in-restoring-license-settings.patch b/app-admin/packagekit-base/files/0005-portage-fix-a-typo-in-restoring-license-settings.patch
new file mode 100644
index 0000000..885c90f
--- /dev/null
+++ b/app-admin/packagekit-base/files/0005-portage-fix-a-typo-in-restoring-license-settings.patch
@@ -0,0 +1,30 @@
+From d42390d7c78e622a8051d47f86a422a1861d7eef Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 14:35:40 +0200
+Subject: [PATCH 5/9] portage: fix a typo in restoring license settings
+
+---
+ backends/portage/portageBackend.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index f36695a..9b572e9 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -560,11 +560,11 @@ class PackageKitPortageMixin(object):
+ licenses = "-* " + free_licenses
+ elif FILTER_NOT_FREE in filters:
+ licenses = "* -" + free_licenses
+- backup_license = self.pvar.settings["ACCEPT_LICENSE"]
++ backup_licenses = self.pvar.settings["ACCEPT_LICENSE"]
+
+ self.pvar.apply_settings({'ACCEPT_LICENSE': licences})
+ cpv_list = filter(_has_validLicense, cpv_list)
+- self.pvar.apply_settings({'ACCEPT_LICENSE': backup_licence})
++ self.pvar.apply_settings({'ACCEPT_LICENSE': backup_licenses})
+
+ return cpv_list
+
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0006-Simplify-_get_cpv_slotted-with-collections-module.patch b/app-admin/packagekit-base/files/0006-Simplify-_get_cpv_slotted-with-collections-module.patch
deleted file mode 100644
index 6f47b1d..0000000
--- a/app-admin/packagekit-base/files/0006-Simplify-_get_cpv_slotted-with-collections-module.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From d581bea1699a8d9982e91a5de2b8dd315b6c2c54 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 13:05:27 +0200
-Subject: [PATCH 06/12] Simplify _get_cpv_slotted with collections module
-
----
- backends/portage/portageBackend.py | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index ddeca0d..773256a 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -26,6 +26,7 @@ import re
- import signal
- import sys
- import traceback
-+from collections import defaultdict
- from itertools import izip
-
- # layman imports (>=2)
-@@ -540,14 +541,11 @@ class PackageKitPortageMixin(object):
- return size
-
- def _get_cpv_slotted(self, cpv_list):
-- cpv_dict = {}
-+ cpv_dict = defaultdict(list)
-
- for cpv in cpv_list:
- slot = self._get_metadata(cpv, ["SLOT"])[0]
-- if slot not in cpv_dict:
-- cpv_dict[slot] = [cpv]
-- else:
-- cpv_dict[slot].append(cpv)
-+ cpv_dict[slot].append(cpv)
-
- return cpv_dict
-
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0006-portage-use-PackageKitProgress-to-ease-progress-step.patch b/app-admin/packagekit-base/files/0006-portage-use-PackageKitProgress-to-ease-progress-step.patch
new file mode 100644
index 0000000..8d6a51c
--- /dev/null
+++ b/app-admin/packagekit-base/files/0006-portage-use-PackageKitProgress-to-ease-progress-step.patch
@@ -0,0 +1,260 @@
+From 3c002cb530493664f94405c408b27203c7355cad Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 15:09:50 +0200
+Subject: [PATCH 6/9] portage: use PackageKitProgress to ease progress steps
+ manipulations
+
+---
+ backends/portage/portageBackend.py | 91 +++++++++++++++++++++-----------------
+ 1 file changed, 51 insertions(+), 40 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index 9b572e9..5cb64f6 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -40,6 +40,7 @@ from packagekit.backend import (
+ split_package_id,
+ )
+ from packagekit.enums import *
++from packagekit.progress import PackagekitProgress
+ # portage imports
+ import _emerge.AtomArg
+ import _emerge.actions
+@@ -68,6 +69,11 @@ from portage.exception import InvalidAtom
+ # Map Gentoo categories to the PackageKit group name space
+
+
++def compute_equal_steps(iterable):
++ return [idx * (100.0 / len(iterable)) / 100.0
++ for idx, _ in enumerate(iterable, start=1)]
++
++
+ class PortagePackageGroups(dict):
+
+ """
+@@ -932,10 +938,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ def get_details(self, pkgs):
+ self.status(STATUS_INFO)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+- nb_pkg = float(len(pkgs))
+- pkg_processed = 0.0
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(pkgs))
++ self.percentage(progress.percent)
+
+ for pkg in pkgs:
+ cpv = self._id_to_cpv(pkg)
+@@ -961,18 +967,18 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self._get_size(cpv)
+ )
+
+- pkg_processed += 100.0
+- self.percentage(int(pkg_processed / nb_pkg))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+ def get_files(self, pkgs):
+ self.status(STATUS_INFO)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+- nb_pkg = float(len(pkgs))
+- pkg_processed = 0.0
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(pkgs))
++ self.percentage(progress.percent)
+
+ for pkg in pkgs:
+ cpv = self._id_to_cpv(pkg)
+@@ -990,19 +996,20 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+
+ self.files(pkg, ';'.join(sorted(self._get_file_list(cpv))))
+
+- pkg_processed += 100.0
+- self.percentage(int(pkg_processed / nb_pkg))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+ def get_packages(self, filters):
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+ cp_list = self._get_all_cp(filters)
+- nb_cp = float(len(cp_list))
+- cp_processed = 0.0
++
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(cp_list))
++ self.percentage(progress.percent)
+
+ for cp in self._get_all_cp(filters):
+ for cpv in self._get_all_cpv(cp, filters):
+@@ -1011,8 +1018,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ except InvalidAtom:
+ continue
+
+- cp_processed += 100.0
+- self.percentage(int(cp_processed / nb_cp))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+@@ -1565,11 +1572,11 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ def resolve(self, filters, pkgs):
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+ cp_list = self._get_all_cp(filters)
+- nb_cp = float(len(cp_list))
+- cp_processed = 0.0
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(cp_list))
++ self.percentage(progress.percent)
+
+ reg_expr = []
+ for pkg in pkgs:
+@@ -1584,8 +1591,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ for cpv in self._get_all_cpv(cp, filters):
+ self._package(cpv)
+
+- cp_processed += 100.0
+- self.percentage(int(cp_processed / nb_cp))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+@@ -1593,13 +1600,14 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ # NOTES: very bad performance
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+ cp_list = self._get_all_cp(filters)
+- nb_cp = float(len(cp_list))
+- cp_processed = 0.0
+ search_list = self._get_search_list(keys)
+
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(cp_list))
++ self.percentage(progress.percent)
++
+ for cp in cp_list:
+ # unfortunatelly, everything is related to cpv, not cp
+ # can't filter cp
+@@ -1635,8 +1643,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ for cpv in cpv_list:
+ self._package(cpv)
+
+- cp_processed += 100.0
+- self.percentage(int(cp_processed / nb_cp))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+@@ -1647,7 +1655,6 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ # - newest: as only installed, by himself
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+ if FILTER_NOT_INSTALLED in filters:
+ self.error(ERROR_CANNOT_GET_FILELIST,
+@@ -1655,10 +1662,12 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ return
+
+ cpv_list = self.pvar.vardb.cpv_all()
+- nb_cpv = 0.0
+- cpv_processed = 0.0
+ is_full_path = True
+
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(cpv_list))
++ self.percentage(progress.percent)
++
+ count = 0
+ values_len = len(values)
+ for key in values:
+@@ -1679,8 +1688,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self._package(cpv)
+ break
+
+- count += 1
+- self.percentage(float(count) / values_len)
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+@@ -1688,11 +1697,12 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ # TODO: filter unknown groups before searching ? (optimization)
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+ cp_list = self._get_all_cp(filters)
+- nb_cp = float(len(cp_list))
+- cp_processed = 0.0
++
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(cp_list))
++ self.percentage(progress.percent)
+
+ for cp in cp_list:
+ for group in groups:
+@@ -1700,8 +1710,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ for cpv in self._get_all_cpv(cp, filters):
+ self._package(cpv)
+
+- cp_processed += 100.0
+- self.percentage(int(cp_processed / nb_cp))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+@@ -1711,7 +1721,6 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ # keys contain more than one category name, no results can be found
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+- self.percentage(0)
+
+ categories = []
+ for k in keys_list[:]:
+@@ -1736,8 +1745,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ search_list.append(re.compile(k, re.IGNORECASE))
+
+ cp_list = self._get_all_cp(filters)
+- nb_cp = float(len(cp_list))
+- cp_processed = 0.0
++
++ progress = PackagekitProgress()
++ progress.set_steps(compute_equal_steps(cp_list))
++ self.percentage(progress.percent)
+
+ for cp in cp_list:
+ if category_filter:
+@@ -1757,8 +1768,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ for cpv in self._get_all_cpv(cp, filters):
+ self._package(cpv)
+
+- cp_processed += 100.0
+- self.percentage(int(cp_processed / nb_cp))
++ progress.step()
++ self.percentage(progress.percent)
+
+ self.percentage(100)
+
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0007-Simplify-_get_metadata.patch b/app-admin/packagekit-base/files/0007-Simplify-_get_metadata.patch
deleted file mode 100644
index ed158fe..0000000
--- a/app-admin/packagekit-base/files/0007-Simplify-_get_metadata.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From fa38519e8b0785199a1181e5cc7287190a29fc44 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 17:54:15 +0200
-Subject: [PATCH 07/12] Simplify _get_metadata
-
----
- backends/portage/portageBackend.py | 16 ++++++----------
- 1 file changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 773256a..fc2d45a 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -497,19 +497,15 @@ class PackageKitPortageMixin(object):
- If in_dict is True, metadata is returned in a dict object.
- If add_cache_keys is True, cached keys are added to keys in parameter.
- '''
-- if self._is_installed(cpv):
-- aux_get = self.pvar.vardb.aux_get
-- if add_cache_keys:
-- keys.extend(list(self.pvar.vardb._aux_cache_keys))
-- else:
-- aux_get = self.pvar.portdb.aux_get
-- if add_cache_keys:
-- keys.extend(list(self.pvar.portdb._aux_cache_keys))
-+ db = self.pvar.vardb if self._is_installed(cpv) else self.pvar.portdb
-+
-+ if add_cache_keys:
-+ keys.extend(list(db._aux_cache_keys))
-
- if in_dict:
-- return dict(izip(keys, aux_get(cpv, keys)))
-+ return dict(izip(keys, db.aux_get(cpv, keys)))
- else:
-- return aux_get(cpv, keys)
-+ return db.aux_get(cpv, keys)
-
- def _get_size(self, cpv):
- '''
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0007-python-make-PackagekitProgress-an-Iterable.patch b/app-admin/packagekit-base/files/0007-python-make-PackagekitProgress-an-Iterable.patch
new file mode 100644
index 0000000..ca78c62
--- /dev/null
+++ b/app-admin/packagekit-base/files/0007-python-make-PackagekitProgress-an-Iterable.patch
@@ -0,0 +1,56 @@
+From eb52dc157c5dbda9630b448dab06fb05cdf1060c Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 15:26:05 +0200
+Subject: [PATCH 7/9] python: make PackagekitProgress an Iterable
+
+---
+ lib/python/packagekit/progress.py | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/lib/python/packagekit/progress.py b/lib/python/packagekit/progress.py
+index 7a5d363..d0c0c26 100644
+--- a/lib/python/packagekit/progress.py
++++ b/lib/python/packagekit/progress.py
+@@ -17,7 +17,13 @@
+ # Copyright (C) 2008
+ # Richard Hughes <richard@hughsie.com>
+
+-class PackagekitProgress:
++try:
++ from collections import Iterable
++except ImportError:
++ from collections.abc import Iterable
++
++
++class PackagekitProgress(Iterable):
+ '''
+ Progress class there controls the total progress of a transaction
+ the transaction is divided in n milestones. the class contains
+@@ -42,6 +48,7 @@ class PackagekitProgress:
+ #TODO: Add support for elapsed/remaining time
+
+ def __init__(self):
++ super(PackagekitProgress, self).__init__()
+ self.percent = 0
+ self.steps = []
+ self.current_step = 0
+@@ -68,8 +75,16 @@ class PackagekitProgress:
+ self.current_step += 1
+ self.percent = self.steps[self.current_step]
+ else:
++ self.current_step = len(self.steps)
+ self.percent = 100
+
++ def __iter__(self):
++ while self.current_step < len(self.steps):
++ yield self.percent
++ self.step()
++
++ raise StopIteration
++
+ def _update_percent(self):
+ '''
+ Increment percentage based on current step
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0008-Remove-useless-instruction.patch b/app-admin/packagekit-base/files/0008-Remove-useless-instruction.patch
deleted file mode 100644
index e568727..0000000
--- a/app-admin/packagekit-base/files/0008-Remove-useless-instruction.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 775b16156373b08a7bdd50c446d740051db93a8d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 14:27:08 +0200
-Subject: [PATCH 08/12] Remove useless instruction
-
----
- backends/portage/portageBackend.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index fc2d45a..4ca4fb5 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -519,7 +519,6 @@ class PackageKitPortageMixin(object):
- size = self._get_metadata(cpv, ["SIZE"])[0]
- size = int(size) if size else 0
- else:
-- self
- metadata = self._get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
-
- package = _emerge.Package.Package(
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0008-python-set-steps-on-PackagekitProgress-instanciation.patch b/app-admin/packagekit-base/files/0008-python-set-steps-on-PackagekitProgress-instanciation.patch
new file mode 100644
index 0000000..b15df47
--- /dev/null
+++ b/app-admin/packagekit-base/files/0008-python-set-steps-on-PackagekitProgress-instanciation.patch
@@ -0,0 +1,49 @@
+From 3c046f4586605f51a55c82f81861adcf5e408488 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 16:10:32 +0200
+Subject: [PATCH 8/9] python: set steps on PackagekitProgress instanciation
+
+---
+ lib/python/packagekit/progress.py | 18 ++++++++----------
+ 1 file changed, 8 insertions(+), 10 deletions(-)
+
+diff --git a/lib/python/packagekit/progress.py b/lib/python/packagekit/progress.py
+index d0c0c26..b5c7e52 100644
+--- a/lib/python/packagekit/progress.py
++++ b/lib/python/packagekit/progress.py
+@@ -34,24 +34,22 @@ class PackagekitProgress(Iterable):
+ from packagekit import PackagekitProgress
+
+ steps = [10, 30, 50, 70] # Milestones in %
+- progress = PackagekitProgress()
+- progress.set_steps(steps)
+- for milestone in range(len(steps)):
++ progress = PackagekitProgress(steps)
++ for milestone in progress:
+ # do the action is this step
+ for i in range(100):
+ # do some action
+- print "progress : %s " % progress.percent
+- progress.step() # step to next milestone
+-
++ print "progress : %s " % milestone
+ '''
+
+ #TODO: Add support for elapsed/remaining time
+
+- def __init__(self):
++ def __init__(self, steps=None):
+ super(PackagekitProgress, self).__init__()
+- self.percent = 0
+- self.steps = []
+- self.current_step = 0
++ if not steps:
++ self.reset()
++ else:
++ self.set_steps(steps)
+
+ def set_steps(self, steps):
+ '''
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0009-Cosmetics.patch b/app-admin/packagekit-base/files/0009-Cosmetics.patch
deleted file mode 100644
index e3bf255..0000000
--- a/app-admin/packagekit-base/files/0009-Cosmetics.patch
+++ /dev/null
@@ -1,800 +0,0 @@
-From 53ff394fdadfccc90f24d35f3c6333d853825a74 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 14:26:20 +0200
-Subject: [PATCH 09/12] Cosmetics
-
----
- backends/portage/portageBackend.py | 348 ++++++++++++++++++++-----------------
- 1 file changed, 191 insertions(+), 157 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 4ca4fb5..9775466 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -84,8 +84,8 @@ class PortagePackageGroups(dict):
- 'name': "Office",
- 'description': "Applications used in office environments",
- 'categories': ['app-office', 'app-pda', 'app-mobilephone',
-- 'app-cdr', 'app-antivirus', 'app-laptop', 'mail-',
-- ],
-+ 'app-cdr', 'app-antivirus', 'app-laptop',
-+ 'mail-'],
- },
- 'development': {
- 'name': "Development",
-@@ -104,56 +104,47 @@ class PortagePackageGroups(dict):
- },
- 'gnome': {
- 'name': "GNOME Desktop",
-- 'description': \
-- "Applications and libraries for the GNOME Desktop",
-+ 'description': "Applications and libraries for the GNOME Desktop",
- 'categories': ['gnome-'],
- },
- 'kde': {
- 'name': "KDE Desktop",
-- 'description': \
-- "Applications and libraries for the KDE Desktop",
-+ 'description': "Applications and libraries for the KDE Desktop",
- 'categories': ['kde-'],
- },
- 'xfce': {
- 'name': "XFCE Desktop",
-- 'description': \
-- "Applications and libraries for the XFCE Desktop",
-+ 'description': "Applications and libraries for the XFCE Desktop",
- 'categories': ['xfce-'],
- },
- 'lxde': {
- 'name': "LXDE Desktop",
-- 'description': \
-- "Applications and libraries for the LXDE Desktop",
-+ 'description': "Applications and libraries for the LXDE Desktop",
- 'categories': ['lxde-'],
- },
- 'multimedia': {
- 'name': "Multimedia",
-- 'description': \
-- "Applications and libraries for Multimedia",
-+ 'description': "Applications and libraries for Multimedia",
- 'categories': ['media-'],
- },
- 'networking': {
- 'name': "Networking",
-- 'description': \
-- "Applications and libraries for Networking",
-+ 'description': "Applications and libraries for Networking",
- 'categories': ['net-', 'www-'],
- },
- 'science': {
- 'name': "Science",
-- 'description': \
-- "Scientific applications and libraries",
-+ 'description': "Scientific applications and libraries",
- 'categories': ['sci-'],
- },
- 'security': {
- 'name': "Security",
-- 'description': \
-- "Security orientend applications",
-+ 'description': "Security orientend applications",
- 'categories': ['app-antivirus', 'net-analyzer', 'net-firewall'],
- },
- 'x11': {
- 'name': "X11",
-- 'description': \
-- "Applications and libraries for X11",
-+ 'description': "Applications and libraries for X11",
- 'categories': ['x11-'],
- },
- }
-@@ -179,7 +170,7 @@ class PortageBridge():
-
- def update(self):
- self.settings, self.trees, self.mtimedb = \
-- _emerge.actions.load_emerge_config()
-+ _emerge.actions.load_emerge_config()
- self.vardb = self.trees[self.settings['ROOT']]['vartree'].dbapi
- self.portdb = self.trees[self.settings['ROOT']]['porttree'].dbapi
- self.root_config = self.trees[self.settings['ROOT']]['root_config']
-@@ -299,8 +290,8 @@ class PackageKitPortageMixin(object):
- Return PackageKit group belonging to given Portage package.
- """
- category = portage.versions.catsplit(cp)[0]
-- group_data = [key for key, data in self._get_portage_groups().items() \
-- if category in data['categories']]
-+ group_data = [key for key, data in self._get_portage_groups().items()
-+ if category in data['categories']]
- try:
- generic_group_name = group_data.pop(0)
- except IndexError:
-@@ -341,9 +332,12 @@ class PackageKitPortageMixin(object):
- def _get_real_license_str(self, cpv, metadata):
- # use conditionals info (w/ USE) in LICENSE and remove ||
- ebuild_settings = self._get_ebuild_settings(cpv, metadata)
-- license = set(portage.flatten(portage.dep.use_reduce(
-- portage.dep.paren_reduce(metadata["LICENSE"]),
-- uselist=ebuild_settings.get("USE", "").split())))
-+ license = set(portage.flatten(
-+ portage.dep.use_reduce(
-+ portage.dep.paren_reduce(metadata["LICENSE"]),
-+ uselist=ebuild_settings.get("USE", "").split()
-+ )
-+ ))
- license.discard('||')
- return ' '.join(license)
-
-@@ -353,10 +347,12 @@ class PackageKitPortageMixin(object):
- self.pvar.settings.get('CONFIG_PROTECT', '').split()))
-
- if result:
-- message = "Some configuration files need updating."
-- message += ";You should use Gentoo's tools to update them (dispatch-conf)"
-- message += ";If you can't do that, ask your system administrator."
-- self.message(MESSAGE_CONFIG_FILES_CHANGED, message)
-+ self.message(
-+ MESSAGE_CONFIG_FILES_CHANGED,
-+ "Some configuration files need updating."
-+ ";You should use Gentoo's tools to update them (dispatch-conf)"
-+ ";If you can't do that, ask your system administrator."
-+ )
-
- def _get_restricted_fetch_files(self, cpv, metadata):
- '''
-@@ -374,28 +370,32 @@ class PackageKitPortageMixin(object):
- ebuild_settings = self._get_ebuild_settings(cpv, metadata)
-
- files = self.pvar.portdb.getFetchMap(cpv,
-- ebuild_settings['USE'].split())
-+ ebuild_settings['USE'].split())
-
- for f in files:
- file_path = os.path.join(ebuild_settings["DISTDIR"], f)
- if not os.access(file_path, os.F_OK):
- missing_files.append([file_path, files[f]])
-
-- if len(missing_files) > 0:
-- return missing_files
--
-- return None
-+ return missing_files if missing_files else None
-
- def _check_fetch_restrict(self, packages_list):
-- for p in packages_list:
-- if 'fetch' in p.metadata['RESTRICT']:
-- files = self._get_restricted_fetch_files(p.cpv, p.metadata)
-- if files:
-- message = "Package %s can't download some files." % p.cpv
-- message += ";Please, download manually the followonig file(s):"
-- for x in files:
-- message += ";- %s then copy it to %s" % (' '.join(x[1]), x[0])
-- self.error(ERROR_RESTRICTED_DOWNLOAD, message)
-+ for pkg in packages_list:
-+ if 'fetch' not in pkg.metadata['RESTRICT']:
-+ continue
-+
-+ files = self._get_restricted_fetch_files(pkg.cpv, pkg.metadata)
-+ if files:
-+ message = (
-+ "Package {0} can't download some files."
-+ ";Please, download manually the following file(s): "
-+ ).format(pkg.cpv)
-+ message += ''.join([
-+ ";- {0} then copy it to {1}"
-+ .format(' '.join(file_info[1]), file_info[0])
-+ for file_info in files
-+ ])
-+ self.error(ERROR_RESTRICTED_DOWNLOAD, message)
-
- def _elog_listener(self, settings, key, logentries, fulltext):
- '''
-@@ -440,12 +440,12 @@ class PackageKitPortageMixin(object):
- # EAPI-2 compliant (at least)
- # 'other' phase is ignored except this one, every phase should be there
- if self._error_phase in ("setup", "unpack", "prepare", "configure",
-- "nofetch", "config", "info"):
-+ "nofetch", "config", "info"):
- error_type = ERROR_PACKAGE_FAILED_TO_CONFIGURE
- elif self._error_phase in ("compile", "test"):
- error_type = ERROR_PACKAGE_FAILED_TO_BUILD
- elif self._error_phase in ("install", "preinst", "postinst",
-- "package"):
-+ "package"):
- error_type = ERROR_PACKAGE_FAILED_TO_INSTALL
- elif self._error_phase in ("prerm", "postrm"):
- error_type = ERROR_PACKAGE_FAILED_TO_REMOVE
-@@ -457,8 +457,8 @@ class PackageKitPortageMixin(object):
- def _get_file_list(self, cpv):
- cat, pv = portage.versions.catsplit(cpv)
- db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
-- self.pvar.settings, treetype="vartree",
-- vartree=self.pvar.vardb)
-+ self.pvar.settings, treetype="vartree",
-+ vartree=self.pvar.vardb)
-
- contents = db.getcontents()
- return contents.keys() if contents else []
-@@ -470,7 +470,7 @@ class PackageKitPortageMixin(object):
- returns -1 if cpv1 < cpv2
- '''
- return portage.versions.pkgcmp(portage.versions.pkgsplit(cpv1),
-- portage.versions.pkgsplit(cpv2))
-+ portage.versions.pkgsplit(cpv2))
-
- def _get_newest_cpv(self, cpv_list, installed):
- newer = ""
-@@ -491,7 +491,7 @@ class PackageKitPortageMixin(object):
-
- return newer
-
-- def _get_metadata(self, cpv, keys, in_dict = False, add_cache_keys = False):
-+ def _get_metadata(self, cpv, keys, in_dict=False, add_cache_keys=False):
- '''
- This function returns required metadata.
- If in_dict is True, metadata is returned in a dict object.
-@@ -522,15 +522,15 @@ class PackageKitPortageMixin(object):
- metadata = self._get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
-
- package = _emerge.Package.Package(
-- type_name="ebuild",
-- built=False,
-- installed=False,
-- root_config=self.pvar.root_config,
-- cpv=cpv,
-- metadata=metadata)
--
-+ type_name="ebuild",
-+ built=False,
-+ installed=False,
-+ root_config=self.pvar.root_config,
-+ cpv=cpv,
-+ metadata=metadata
-+ )
- fetch_file = self.pvar.portdb.getfetchsizes(package[2],
-- package.use.enabled)
-+ package.use.enabled)
- size = sum(fetch_file)
-
- return size
-@@ -668,10 +668,11 @@ class PackageKitPortageMixin(object):
-
- if len(ret) < 4:
- self.error(ERROR_PACKAGE_ID_INVALID,
-- "The package id %s does not contain 4 fields" % pkgid)
-+ "The package id %s does not contain 4 fields" % pkgid)
- if '/' not in ret[0]:
- self.error(ERROR_PACKAGE_ID_INVALID,
-- "The first field of the package id must contain a category")
-+ "The first field of the package id must contain"
-+ " a category")
-
- # remove slot info from version field
- version = ret[1].split(':')[0]
-@@ -683,8 +684,9 @@ class PackageKitPortageMixin(object):
- Transform the cpv (portage) to a package id (packagekit)
- '''
- package, version, rev = portage.versions.pkgsplit(cpv)
-- pkg_keywords, repo, slot = self._get_metadata(cpv,
-- ["KEYWORDS", "repository", "SLOT"])
-+ pkg_keywords, repo, slot = self._get_metadata(
-+ cpv, ["KEYWORDS", "repository", "SLOT"]
-+ )
-
- # filter accepted keywords
- keywords = list(set(pkg_keywords.split()).intersection(
-@@ -694,7 +696,8 @@ class PackageKitPortageMixin(object):
- # if no keywords, check in package.keywords
- if not keywords:
- key_dict = self.pvar.settings.pkeywordsdict.get(
-- portage.dep.dep_getkey(cpv))
-+ portage.dep.dep_getkey(cpv)
-+ )
- if key_dict:
- for keys in key_dict.values():
- keyword.extend(keys)
-@@ -702,7 +705,7 @@ class PackageKitPortageMixin(object):
- if not keywords:
- keywords.append("no keywords")
- self.message(MESSAGE_UNKNOWN,
-- "No keywords have been found for %s" % cpv)
-+ "No keywords have been found for %s" % cpv)
-
- # don't want to see -r0
- if rev != "r0":
-@@ -728,19 +731,23 @@ class PackageKitPortageMixin(object):
- myopts["--selective"] = True
- myopts["--deep"] = True
-
-- myparams = _emerge.create_depgraph_params.create_depgraph_params(
-- myopts, "remove")
-+ myparams = _emerge.create_depgraph_params \
-+ .create_depgraph_params(myopts, "remove")
- depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
-- self.pvar.trees, myopts, myparams, None)
-+ self.pvar.trees, myopts,
-+ myparams, None)
-
- # TODO: atm, using FILTER_INSTALLED because it's quicker
- # and we don't want to manage non-installed packages
- for cp in self._get_all_cp([FILTER_INSTALLED]):
- for cpv in self._get_all_cpv(cp, [FILTER_INSTALLED]):
- depgraph._dynamic_config._dep_stack.append(
-- _emerge.Dependency.Dependency(
-- atom=portage.dep.Atom('=' + cpv),
-- root=self.pvar.settings["ROOT"], parent=None))
-+ _emerge.Dependency.Dependency(
-+ atom=portage.dep.Atom('=' + cpv),
-+ root=self.pvar.settings["ROOT"],
-+ parent=None
-+ )
-+ )
-
- if not depgraph._complete_graph():
- self.error(ERROR_INTERNAL_ERROR, "Error when generating depgraph")
-@@ -851,23 +858,24 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- cpv = self._id_to_cpv(pkg)
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
- cpv_input.append('=' + cpv)
-
- myopts = {}
- myopts["--selective"] = True
- myopts["--deep"] = True
-- myparams = _emerge.create_depgraph_params.create_depgraph_params(
-- myopts, "")
-+ myparams = _emerge.create_depgraph_params \
-+ .create_depgraph_params(myopts, "")
-
-- depgraph = _emerge.depgraph.depgraph(
-- self.pvar.settings, self.pvar.trees, myopts, myparams, None)
-+ depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
-+ self.pvar.trees, myopts,
-+ myparams, None)
- retval, fav = depgraph.select_files(cpv_input)
-
- if not retval:
- self.error(ERROR_DEP_RESOLUTION_FAILED,
-- "Wasn't able to get dependency graph")
-+ "Wasn't able to get dependency graph")
- return
-
- def _add_children_to_list(cpv_list, node):
-@@ -937,18 +945,23 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
-
-- metadata = self._get_metadata(cpv,
-- ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT"],
-- in_dict=True)
-- license = self._get_real_license_str(cpv, metadata)
-+ metadata = self._get_metadata(
-+ cpv, ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT"],
-+ in_dict=True
-+ )
-
-- self.details(self._cpv_to_id(cpv), '', license,
-+ self.details(
-+ self._cpv_to_id(cpv),
-+ '',
-+ self._get_real_license_str(cpv, metadata),
- self._get_pk_group(cpv),
-- metadata["DESCRIPTION"], metadata["HOMEPAGE"],
-- self._get_size(cpv))
-+ metadata["DESCRIPTION"],
-+ metadata["HOMEPAGE"],
-+ self._get_size(cpv)
-+ )
-
- pkg_processed += 100.0
- self.percentage(int(pkg_processed/nb_pkg))
-@@ -968,19 +981,16 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
-
- if not self._is_installed(cpv):
- self.error(ERROR_CANNOT_GET_FILELIST,
-- "get-files is only available for installed packages")
-+ "get-files is only available for installed"
-+ " packages")
- continue
-
-- files = self._get_file_list(cpv)
-- files = sorted(files)
-- files = ";".join(files)
--
-- self.files(pkg, files)
-+ self.files(pkg, ';'.join(sorted(self._get_file_list(cpv))))
-
- pkg_processed += 100.0
- self.percentage(int(pkg_processed/nb_pkg))
-@@ -1055,7 +1065,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if FILTER_NOT_INSTALLED in filters:
- self.error(ERROR_CANNOT_GET_REQUIRES,
-- "required-by returns only installed packages at the moment")
-+ "required-by returns only installed packages"
-+ " at the moment")
- return
-
- for pkg in pkgs:
-@@ -1063,11 +1074,12 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
- if not self._is_installed(cpv):
- self.error(ERROR_CANNOT_GET_REQUIRES,
-- "required-by is only available for installed packages at the moment")
-+ "required-by is only available for installed"
-+ " packages at the moment")
- continue
-
- cpv_input.append(cpv)
-@@ -1105,7 +1117,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- cpv = self._id_to_cpv(pkg)
-
- if not self.pvar.portdb.cpv_exists(cpv):
-- self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "could not find %s" % pkg)
-+ self.message(MESSAGE_COULD_NOT_FIND_PACKAGE,
-+ "could not find %s" % pkg)
-
- for cpv in self.pvar.vardb.match(portage.versions.pkgsplit(cpv)[0]):
- updates.append(cpv)
-@@ -1117,9 +1130,11 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- issued = ""
- updated = ""
-
-- self.update_detail(pkg, updates, obsoletes, vendor_url, bugzilla_url,
-- cve_url, "none", "No update text", "No ChangeLog",
-- UPDATE_STATE_STABLE, issued, updated)
-+ self.update_detail(
-+ pkg, updates, obsoletes, vendor_url, bugzilla_url, cve_url,
-+ "none", "No update text", "No ChangeLog", UPDATE_STATE_STABLE,
-+ issued, updated
-+ )
-
- def get_updates(self, filters):
- # NOTES:
-@@ -1150,7 +1165,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # get system and world packages
- for s in ["system", "world"]:
- sets = self._get_internal_package_set_class()(
-- initial_atoms=self.pvar.root_config.setconfig.getSetAtoms(s))
-+ initial_atoms=self.pvar.root_config.setconfig.getSetAtoms(s)
-+ )
- for atom in sets:
- update_candidates.append(atom.cp)
-
-@@ -1214,8 +1230,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- cpv_downgra[cp] = dict_down
-
- # get security updates
-- for atom in self._get_internal_package_set_class()(
-- initial_atoms=self.pvar.root_config.setconfig.getSetAtoms("security")):
-+ for atom in self._get_internal_package_set_class(
-+ initial_atoms=self.pvar.root_config.setconfig
-+ .getSetAtoms("security")
-+ ):
- # send update message and remove atom from cpv_updates
- if atom.cp in cpv_updates:
- slot = self._get_metadata(atom.cpv, ["SLOT"])[0]
-@@ -1269,12 +1287,12 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
-
- if self._is_installed(cpv):
- self.error(ERROR_PACKAGE_ALREADY_INSTALLED,
-- "Package %s is already installed" % pkg)
-+ "Package %s is already installed" % pkg)
- continue
-
- cpv_list.append('=' + cpv)
-@@ -1283,7 +1301,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # but better to show it after important errors
- if only_trusted:
- self.error(ERROR_MISSING_GPG_SIGNATURE,
-- "Portage backend does not support GPG signature")
-+ "Portage backend does not support GPG signature")
- return
-
- # creating installation depgraph
-@@ -1292,17 +1310,18 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- myopts['--fetchonly'] = True
-
- favorites = []
-- myparams = _emerge.create_depgraph_params.create_depgraph_params(
-- myopts, "")
-+ myparams = _emerge.create_depgraph_params \
-+ .create_depgraph_params(myopts, "")
-
- self.status(STATUS_DEP_RESOLVE)
-
- depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
-- self.pvar.trees, myopts, myparams, None)
-+ self.pvar.trees, myopts,
-+ myparams, None)
- retval, favorites = depgraph.select_files(cpv_list)
- if not retval:
- self.error(ERROR_DEP_RESOLUTION_FAILED,
-- "Wasn't able to get dependency graph")
-+ "Wasn't able to get dependency graph")
- return
-
- # check fetch restrict, can stop the function via error signal
-@@ -1319,9 +1338,11 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- try:
- self._block_output()
- # compiling/installing
-- mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
-- self.pvar.trees, self.pvar.mtimedb, myopts, None,
-- depgraph.altlist(), favorites, depgraph.schedulerGraph())
-+ mergetask = _emerge.Scheduler.Scheduler(
-+ self.pvar.settings, self.pvar.trees, self.pvar.mtimedb,
-+ myopts, None, depgraph.altlist(), favorites,
-+ depgraph.schedulerGraph()
-+ )
- rval = mergetask.merge()
- finally:
- self._unblock_output()
-@@ -1354,8 +1375,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- installed_layman_db = layman.db.DB(conf)
-
- if force:
-- timestamp_path = os.path.join(
-- self.pvar.settings["PORTDIR"], "metadata", "timestamp.chk")
-+ timestamp_path = os.path.join(self.pvar.settings["PORTDIR"],
-+ "metadata", "timestamp.chk")
- if os.access(timestamp_path, os.F_OK):
- os.remove(timestamp_path)
-
-@@ -1364,7 +1385,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- for overlay in installed_layman_db.overlays.keys():
- installed_layman_db.sync(overlay)
- _emerge.actions.action_sync(self.pvar.settings, self.pvar.trees,
-- self.pvar.mtimedb, myopts, "")
-+ self.pvar.mtimedb, myopts, "")
- except:
- self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
- finally:
-@@ -1397,18 +1418,22 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
-
- if not self._is_installed(cpv):
- self.error(ERROR_PACKAGE_NOT_INSTALLED,
-- "Package %s is not installed" % pkg)
-+ "Package %s is not installed" % pkg)
- continue
-
- # stop removal if a package is in the system set
- if portage.versions.pkgsplit(cpv)[0] in system_packages:
-- self.error(ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
-- "Package %s is a system package. If you really want to remove it, please use portage" % pkg)
-+ self.error(
-+ ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
-+ "Package %s is a system package. "
-+ "If you really want to remove it, please use portage" %
-+ pkg
-+ )
- continue
-
- cpv_list.append(cpv)
-@@ -1416,41 +1441,45 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # backend do not implement autoremove
- if autoremove:
- self.message(MESSAGE_AUTOREMOVE_IGNORED,
-- "Portage backend do not implement autoremove option")
-+ "Portage backend do not implement autoremove option")
-
- # get packages needing candidates for removal
-- required_packages = self._get_required_packages(cpv_list, recursive=True)
-+ required_packages = self._get_required_packages(cpv_list,
-+ recursive=True)
-
- # if there are required packages, allowdep must be on
- if required_packages and not allowdep:
- self.error(ERROR_DEP_RESOLUTION_FAILED,
-- "Could not perform remove operation has packages are needed by other packages")
-+ "Could not perform remove operation has packages "
-+ "are needed by other packages")
- return
-
- # first, we add required packages
- for p in required_packages:
- package = _emerge.Package.Package(
-- type_name=p.type_name,
-- built=p.built,
-- installed=p.installed,
-- root_config=p.root_config,
-- cpv=p.cpv,
-- metadata=p.metadata,
-- operation='uninstall')
-+ type_name=p.type_name,
-+ built=p.built,
-+ installed=p.installed,
-+ root_config=p.root_config,
-+ cpv=p.cpv,
-+ metadata=p.metadata,
-+ operation='uninstall'
-+ )
- packages.append(package)
-
- # and now, packages we want really to remove
- for cpv in cpv_list:
- metadata = self._get_metadata(cpv, [],
-- in_dict=True, add_cache_keys=True)
-+ in_dict=True, add_cache_keys=True)
- package = _emerge.Package.Package(
-- type_name="ebuild",
-- built=True,
-- installed=True,
-- root_config=self.pvar.root_config,
-- cpv=cpv,
-- metadata=metadata,
-- operation="uninstall")
-+ type_name="ebuild",
-+ built=True,
-+ installed=True,
-+ root_config=self.pvar.root_config,
-+ cpv=cpv,
-+ metadata=metadata,
-+ operation="uninstall"
-+ )
- packages.append(package)
-
- if simulate:
-@@ -1467,9 +1496,11 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # now, we can remove
- try:
- self._block_output()
-- mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
-- self.pvar.trees, self.pvar.mtimedb, mergelist=packages,
-- myopts={}, spinner=None, favorites=favorites, digraph=None)
-+ mergetask = _emerge.Scheduler.Scheduler(
-+ self.pvar.settings, self.pvar.trees, self.pvar.mtimedb,
-+ mergelist=packages, myopts={}, spinner=None,
-+ favorites=favorites, digraph=None
-+ )
- rval = mergetask.merge()
- finally:
- self._unblock_output()
-@@ -1495,7 +1526,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- if repoid == 'gentoo':
- if not enable:
- self.error(ERROR_CANNOT_DISABLE_REPOSITORY,
-- "gentoo repository can't be disabled")
-+ "gentoo repository can't be disabled")
- return
-
- conf = layman.config.BareConfig()
-@@ -1506,7 +1537,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # check now for repoid so we don't have to do it after
- if repoid not in available_layman_db.overlays.keys():
- self.error(ERROR_REPO_NOT_FOUND,
-- "Repository %s was not found" % repoid)
-+ "Repository %s was not found" % repoid)
- return
-
- # disabling (removing) a db
-@@ -1516,7 +1547,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- installed_layman_db.delete(installed_layman_db.select(repoid))
- except Exception, e:
- self.error(ERROR_INTERNAL_ERROR,
-- "Failed to disable repository "+repoid+" : "+str(e))
-+ "Failed to disable repository "+repoid+" : "+str(e))
- return
-
- # enabling (adding) a db
-@@ -1530,7 +1561,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- except Exception, e:
- self._unblock_output()
- self.error(ERROR_INTERNAL_ERROR,
-- "Failed to enable repository "+repoid+" : "+str(e))
-+ "Failed to enable repository "+repoid+" : "+str(e))
- return
-
- def resolve(self, filters, pkgs):
-@@ -1581,10 +1612,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # and newest filter could be alterated
- for cpv in self._get_all_cpv(cp, filters, filter_newest=False):
- match = True
-- metadata = self._get_metadata(cpv,
-- ["DESCRIPTION", "HOMEPAGE", "IUSE",
-- "LICENSE", "repository", "SLOT"],
-- in_dict=True)
-+ metadata = self._get_metadata(
-+ cpv, ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE",
-+ "repository", "SLOT"], in_dict=True
-+ )
- # update LICENSE to correspond to system settings
- metadata["LICENSE"] = self._get_real_license_str(cpv, metadata)
- for s in search_list:
-@@ -1621,7 +1652,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if FILTER_NOT_INSTALLED in filters:
- self.error(ERROR_CANNOT_GET_FILELIST,
-- "search-file isn't available with ~installed filter")
-+ "search-file isn't available with ~installed filter")
- return
-
- cpv_list = self.pvar.vardb.cpv_all()
-@@ -1759,7 +1790,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
-
- if not self._is_cpv_valid(cpv):
- self.error(ERROR_UPDATE_NOT_FOUND,
-- "Package %s was not found" % pkg)
-+ "Package %s was not found" % pkg)
- continue
-
- cpv_list.append('=' + cpv)
-@@ -1768,7 +1799,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- # but better to show it after important errors
- if only_trusted:
- self.error(ERROR_MISSING_GPG_SIGNATURE,
-- "Portage backend does not support GPG signature")
-+ "Portage backend does not support GPG signature")
- return
-
- # creating update depgraph
-@@ -1776,17 +1807,18 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- if only_download:
- myopts['--fetchonly'] = True
- favorites = []
-- myparams = _emerge.create_depgraph_params.create_depgraph_params(
-- myopts, "")
-+ myparams = _emerge.create_depgraph_params \
-+ .create_depgraph_params(myopts, "")
-
- self.status(STATUS_DEP_RESOLVE)
-
- depgraph = _emerge.depgraph.depgraph(self.pvar.settings,
-- self.pvar.trees, myopts, myparams, None)
-+ self.pvar.trees, myopts,
-+ myparams, None)
- retval, favorites = depgraph.select_files(cpv_list)
- if not retval:
- self.error(ERROR_DEP_RESOLUTION_FAILED,
-- "Wasn't able to get dependency graph")
-+ "Wasn't able to get dependency graph")
- return
-
- # check fetch restrict, can stop the function via error signal
-@@ -1803,9 +1835,11 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- try:
- self._block_output()
- # compiling/installing
-- mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
-- self.pvar.trees, self.pvar.mtimedb, myopts, None,
-- depgraph.altlist(), favorites, depgraph.schedulerGraph())
-+ mergetask = _emerge.Scheduler.Scheduler(
-+ self.pvar.settings, self.pvar.trees, self.pvar.mtimedb,
-+ myopts, None, depgraph.altlist(), favorites,
-+ depgraph.schedulerGraph()
-+ )
- rval = mergetask.merge()
- finally:
- self._unblock_output()
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0009-portage-use-PackagekitProgress-as-an-iterable.patch b/app-admin/packagekit-base/files/0009-portage-use-PackagekitProgress-as-an-iterable.patch
new file mode 100644
index 0000000..435bb09
--- /dev/null
+++ b/app-admin/packagekit-base/files/0009-portage-use-PackagekitProgress-as-an-iterable.patch
@@ -0,0 +1,222 @@
+From 5a3b0b213c53aca26f91f0a3eae65518f1376235 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Sun, 6 Sep 2015 16:10:06 +0200
+Subject: [PATCH 9/9] portage: use PackagekitProgress as an iterable
+
+---
+ backends/portage/portageBackend.py | 73 +++++++++++++++-----------------------
+ 1 file changed, 29 insertions(+), 44 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index 5cb64f6..de1c490 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -27,7 +27,10 @@ import signal
+ import sys
+ import traceback
+ from collections import defaultdict
+-from itertools import izip
++try:
++ from itertools import izip
++except ImportError:
++ izip = zip
+
+ # layman imports (>=2)
+ import layman.config
+@@ -939,11 +942,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self.status(STATUS_INFO)
+ self.allow_cancel(True)
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(pkgs))
++ progress = PackagekitProgress(compute_equal_steps(pkgs))
+ self.percentage(progress.percent)
+
+- for pkg in pkgs:
++ for percentage, pkg in izip(progress, pkgs):
+ cpv = self._id_to_cpv(pkg)
+
+ if not self._is_cpv_valid(cpv):
+@@ -967,8 +969,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self._get_size(cpv)
+ )
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -976,11 +977,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self.status(STATUS_INFO)
+ self.allow_cancel(True)
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(pkgs))
++ progress = PackagekitProgress(compute_equal_steps(pkgs))
+ self.percentage(progress.percent)
+
+- for pkg in pkgs:
++ for percentage, pkg in izip(progress, pkgs):
+ cpv = self._id_to_cpv(pkg)
+
+ if not self._is_cpv_valid(cpv):
+@@ -996,8 +996,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+
+ self.files(pkg, ';'.join(sorted(self._get_file_list(cpv))))
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -1007,19 +1006,17 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+
+ cp_list = self._get_all_cp(filters)
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(cp_list))
++ progress = PackagekitProgress(compute_equal_steps(cp_list))
+ self.percentage(progress.percent)
+
+- for cp in self._get_all_cp(filters):
++ for percentage, cp in izip(progress, self._get_all_cp(filters)):
+ for cpv in self._get_all_cpv(cp, filters):
+ try:
+ self._package(cpv)
+ except InvalidAtom:
+ continue
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -1574,8 +1571,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self.allow_cancel(True)
+
+ cp_list = self._get_all_cp(filters)
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(cp_list))
++ progress = PackagekitProgress(compute_equal_steps(cp_list))
+ self.percentage(progress.percent)
+
+ reg_expr = []
+@@ -1586,13 +1582,12 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ # specifications says "be case sensitive"
+ s = re.compile(reg_expr)
+
+- for cp in cp_list:
++ for percentage, cp in izip(progress, cp_list):
+ if s.match(cp):
+ for cpv in self._get_all_cpv(cp, filters):
+ self._package(cpv)
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -1604,11 +1599,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ cp_list = self._get_all_cp(filters)
+ search_list = self._get_search_list(keys)
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(cp_list))
++ progress = PackagekitProgress(compute_equal_steps(cp_list))
+ self.percentage(progress.percent)
+
+- for cp in cp_list:
++ for percentage, cp in izip(progress, cp_list):
+ # unfortunatelly, everything is related to cpv, not cp
+ # can't filter cp
+ cpv_list = []
+@@ -1643,8 +1637,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ for cpv in cpv_list:
+ self._package(cpv)
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -1664,13 +1657,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ cpv_list = self.pvar.vardb.cpv_all()
+ is_full_path = True
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(cpv_list))
+- self.percentage(progress.percent)
++ progress = PackagekitProgress(compute_equal_steps(values))
++ self.percentage(progress.percentage)
+
+- count = 0
+- values_len = len(values)
+- for key in values:
++ for percentage, key in izip(progress, values):
+
+ if key[0] != "/":
+ is_full_path = False
+@@ -1688,8 +1678,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ self._package(cpv)
+ break
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -1700,18 +1689,16 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+
+ cp_list = self._get_all_cp(filters)
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(cp_list))
++ progress = PackagekitProgress(compute_equal_steps(cp_list))
+ self.percentage(progress.percent)
+
+- for cp in cp_list:
++ for percentage, cp in izip(progress, cp_list):
+ for group in groups:
+ if self._get_pk_group(cp) == group:
+ for cpv in self._get_all_cpv(cp, filters):
+ self._package(cpv)
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+@@ -1746,11 +1733,10 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+
+ cp_list = self._get_all_cp(filters)
+
+- progress = PackagekitProgress()
+- progress.set_steps(compute_equal_steps(cp_list))
++ progress = PackagekitProgress(compute_equal_steps(cp_list))
+ self.percentage(progress.percent)
+
+- for cp in cp_list:
++ for percentage, cp in izip(progress, cp_list):
+ if category_filter:
+ cat, pkg_name = portage.versions.catsplit(cp)
+ if cat != category_filter:
+@@ -1768,8 +1754,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ for cpv in self._get_all_cpv(cp, filters):
+ self._package(cpv)
+
+- progress.step()
+- self.percentage(progress.percent)
++ self.percentage(percentage)
+
+ self.percentage(100)
+
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0010-Add-helper-to-change-portage-settings.patch b/app-admin/packagekit-base/files/0010-Add-helper-to-change-portage-settings.patch
deleted file mode 100644
index af81129..0000000
--- a/app-admin/packagekit-base/files/0010-Add-helper-to-change-portage-settings.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From ecd21674a814926e31ad70613f927c73f19c3d3d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 15:32:53 +0200
-Subject: [PATCH 10/12] Add helper to change portage settings
-
----
- backends/portage/portageBackend.py | 39 +++++++++++++++++---------------------
- 1 file changed, 17 insertions(+), 22 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 9775466..1a6d855 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -175,21 +175,24 @@ class PortageBridge():
- self.portdb = self.trees[self.settings['ROOT']]['porttree'].dbapi
- self.root_config = self.trees[self.settings['ROOT']]['root_config']
-
-- # doing all the changes to settings
-+ self.apply_settings({
-+ # we don't want interactive ebuilds
-+ 'ACCEPT_PROPERTIES': '-interactive',
-+ # do not log with mod_echo (cleanly prevent some outputs)
-+ 'PORTAGE_ELOG_SYSTEM': ' '.join([
-+ elog for elog in self.settings["PORTAGE_ELOG_SYSTEM"].split()
-+ if elog != 'echo'
-+ ]),
-+ })
-+
-+ def apply_settings(self, mapping):
-+ """Set portage settings."""
- self.settings.unlock()
-
-- # we don't want interactive ebuilds
-- self.settings["ACCEPT_PROPERTIES"] = "-interactive"
-- self.settings.backup_changes("ACCEPT_PROPERTIES")
-+ for key, value in mapping.items():
-+ self.settings[key] = value
-+ self.settings.backup_changes(key)
-
-- # do not log with mod_echo (cleanly prevent some outputs)
-- self.settings["PORTAGE_ELOG_SYSTEM"] = ' '.join([
-- elog for elog in self.settings["PORTAGE_ELOG_SYSTEM"].split()
-- if elog != 'echo'
-- ])
-- self.settings.backup_changes("PORTAGE_ELOG_SYSTEM")
--
-- # finally, regenerate settings and lock them again
- self.settings.regenerate()
- self.settings.lock()
-
-@@ -560,17 +563,9 @@ class PackageKitPortageMixin(object):
- licenses = "* -" + free_licenses
- backup_license = self.pvar.settings["ACCEPT_LICENSE"]
-
-- self.pvar.settings.unlock()
-- self.pvar.settings["ACCEPT_LICENSE"] = licenses
-- self.pvar.settings.backup_changes("ACCEPT_LICENSE")
-- self.pvar.settings.regenerate()
--
-+ self.pvar.apply_settings({'ACCEPT_LICENSE': licences})
- cpv_list = filter(_has_validLicense, cpv_list)
--
-- self.pvar.settings["ACCEPT_LICENSE"] = backup_license
-- self.pvar.settings.backup_changes("ACCEPT_LICENSE")
-- self.pvar.settings.regenerate()
-- self.pvar.settings.lock()
-+ self.pvar.apply_settings({'ACCEPT_LICENSE': backup_licence})
-
- return cpv_list
-
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0011-Remove-compatibility-with-older-portage.patch b/app-admin/packagekit-base/files/0011-Remove-compatibility-with-older-portage.patch
deleted file mode 100644
index 222f9bf..0000000
--- a/app-admin/packagekit-base/files/0011-Remove-compatibility-with-older-portage.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 6b8db81b43eaba3e331725227252f9d363d1b695 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 15:39:07 +0200
-Subject: [PATCH 11/12] Remove compatibility with older portage
-
----
- backends/portage/portageBackend.py | 26 ++++++++------------------
- 1 file changed, 8 insertions(+), 18 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 1a6d855..9ce2b79 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -50,6 +50,7 @@ import _emerge.stdout_spinner
- import portage
- import portage.dep
- import portage.versions
-+from portage._sets.base import InternalPackageSet
- from portage.exception import InvalidAtom
-
- # NOTES:
-@@ -319,13 +320,6 @@ class PackageKitPortageMixin(object):
- settings.setcpv(cpv, mydb=metadata)
- return settings
-
-- def _get_internal_package_set_class(self):
-- try:
-- from portage._sets.base import InternalPackageSet
-- except ImportError:
-- from portage.sets.base import InternalPackageSet
-- return InternalPackageSet
--
- def _is_installed(self, cpv):
- return self.pvar.vardb.cpv_exists(cpv)
-
-@@ -1158,10 +1152,9 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- cpv_downgra = {}
-
- # get system and world packages
-- for s in ["system", "world"]:
-- sets = self._get_internal_package_set_class()(
-- initial_atoms=self.pvar.root_config.setconfig.getSetAtoms(s)
-- )
-+ for pkg_set in ["system", "world"]:
-+ sets = InternalPackageSet(initial_atoms=self.pvar.root_config
-+ .setconfig.getSetAtoms(pkg_set))
- for atom in sets:
- update_candidates.append(atom.cp)
-
-@@ -1225,10 +1218,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- cpv_downgra[cp] = dict_down
-
- # get security updates
-- for atom in self._get_internal_package_set_class(
-- initial_atoms=self.pvar.root_config.setconfig
-- .getSetAtoms("security")
-- ):
-+ for atom in InternalPackageSet(initial_atoms=self.pvar.root_config
-+ .setconfig.getSetAtoms("security")):
- # send update message and remove atom from cpv_updates
- if atom.cp in cpv_updates:
- slot = self._get_metadata(atom.cpv, ["SLOT"])[0]
-@@ -1402,9 +1393,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- system_packages = []
-
- # get system packages
-- sets = self._get_internal_package_set_class()(
-- initial_atoms=self.pvar.root_config.setconfig.getSetAtoms("system"))
-- for atom in sets:
-+ for atom in InternalPackageSet(initial_atoms=self.pvar.root_config
-+ .setconfig.getSetAtoms("system")):
- system_packages.append(atom.cp)
-
- # create cpv_list
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0011-portage-fix-a-typo.patch b/app-admin/packagekit-base/files/0011-portage-fix-a-typo.patch
new file mode 100644
index 0000000..6b41d7c
--- /dev/null
+++ b/app-admin/packagekit-base/files/0011-portage-fix-a-typo.patch
@@ -0,0 +1,25 @@
+From 782b68eb1b381fe9bda602da7d0b951827d489a1 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 27 Nov 2015 11:36:40 +0100
+Subject: [PATCH 1/3] portage: fix a typo
+
+---
+ backends/portage/portageBackend.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index de1c490..004c18b 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -1658,7 +1658,7 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ is_full_path = True
+
+ progress = PackagekitProgress(compute_equal_steps(values))
+- self.percentage(progress.percentage)
++ self.percentage(progress.percent)
+
+ for percentage, key in izip(progress, values):
+
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0012-Retrieve-EAPI-and-KEYWORDS-before-calling-setcpv-met.patch b/app-admin/packagekit-base/files/0012-Retrieve-EAPI-and-KEYWORDS-before-calling-setcpv-met.patch
deleted file mode 100644
index 08c7626..0000000
--- a/app-admin/packagekit-base/files/0012-Retrieve-EAPI-and-KEYWORDS-before-calling-setcpv-met.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c08ca43ca45d55471f014dee93592b5448950aea Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Sun, 3 May 2015 17:54:59 +0200
-Subject: [PATCH 12/12] Retrieve EAPI and KEYWORDS before calling setcpv method
-
----
- backends/portage/portageBackend.py | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
-index 9ce2b79..79b8449 100755
---- a/backends/portage/portageBackend.py
-+++ b/backends/portage/portageBackend.py
-@@ -938,7 +938,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- continue
-
- metadata = self._get_metadata(
-- cpv, ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT"],
-+ cpv, ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT",
-+ "EAPI", "KEYWORDS"],
- in_dict=True
- )
-
-@@ -1599,7 +1600,8 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
- match = True
- metadata = self._get_metadata(
- cpv, ["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE",
-- "repository", "SLOT"], in_dict=True
-+ "repository", "SLOT", "EAPI", "KEYWORDS"],
-+ in_dict=True
- )
- # update LICENSE to correspond to system settings
- metadata["LICENSE"] = self._get_real_license_str(cpv, metadata)
---
-2.3.6
-
diff --git a/app-admin/packagekit-base/files/0012-portage-fix-step-percentage-computation.patch b/app-admin/packagekit-base/files/0012-portage-fix-step-percentage-computation.patch
new file mode 100644
index 0000000..301b56d
--- /dev/null
+++ b/app-admin/packagekit-base/files/0012-portage-fix-step-percentage-computation.patch
@@ -0,0 +1,25 @@
+From b76a5ee07912e0a739a5ba39aef6d96e85e58a98 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 27 Nov 2015 13:00:38 +0100
+Subject: [PATCH 2/3] portage: fix step percentage computation
+
+---
+ backends/portage/portageBackend.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index 004c18b..12918b9 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -73,7 +73,7 @@ from portage.exception import InvalidAtom
+
+
+ def compute_equal_steps(iterable):
+- return [idx * (100.0 / len(iterable)) / 100.0
++ return [idx * (100.0 / len(iterable))
+ for idx, _ in enumerate(iterable, start=1)]
+
+
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/files/0013-portage-do-not-refetch-package-listing-for-no-reason.patch b/app-admin/packagekit-base/files/0013-portage-do-not-refetch-package-listing-for-no-reason.patch
new file mode 100644
index 0000000..0e46401
--- /dev/null
+++ b/app-admin/packagekit-base/files/0013-portage-do-not-refetch-package-listing-for-no-reason.patch
@@ -0,0 +1,32 @@
+From 284dd27dc9f73415f49e7502de7ed0bddedcb8c0 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Fri, 27 Nov 2015 13:01:37 +0100
+Subject: [PATCH 3/3] portage: do not refetch package listing for no reason
+
+---
+ backends/portage/portageBackend.py | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
+index 12918b9..505feec 100755
+--- a/backends/portage/portageBackend.py
++++ b/backends/portage/portageBackend.py
+@@ -1003,13 +1003,12 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+ def get_packages(self, filters):
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
++ self.percentage(0)
+
+ cp_list = self._get_all_cp(filters)
+-
+ progress = PackagekitProgress(compute_equal_steps(cp_list))
+- self.percentage(progress.percent)
+
+- for percentage, cp in izip(progress, self._get_all_cp(filters)):
++ for percentage, cp in izip(progress, cp_list):
+ for cpv in self._get_all_cpv(cp, filters):
+ try:
+ self._package(cpv)
+--
+2.6.3
+
diff --git a/app-admin/packagekit-base/packagekit-base-1.0.6.ebuild b/app-admin/packagekit-base/packagekit-base-1.0.10.ebuild
similarity index 85%
rename from app-admin/packagekit-base/packagekit-base-1.0.6.ebuild
rename to app-admin/packagekit-base/packagekit-base-1.0.10.ebuild
index 2abd7cb..844e6b6 100644
--- a/app-admin/packagekit-base/packagekit-base-1.0.6.ebuild
+++ b/app-admin/packagekit-base/packagekit-base-1.0.10.ebuild
@@ -7,8 +7,9 @@ EAPI="5"
# PackageKit supports 3.2+, but entropy and portage backends are untested
# Future note: use --enable-python3
PYTHON_COMPAT=( python2_7 )
+VALA_USE_DEPEND="vapigen"
-inherit autotools bash-completion-r1 eutils multilib nsplugins python-single-r1 systemd
+inherit bash-completion-r1 eutils multilib nsplugins python-single-r1 systemd vala
MY_PN="PackageKit"
MY_P=${MY_PN}-${PV}
@@ -20,8 +21,11 @@ SRC_URI="http://www.freedesktop.org/software/${MY_PN}/releases/${MY_P}.tar.xz"
LICENSE="GPL-2"
SLOT="0/18"
KEYWORDS="~alpha ~amd64 ~arm ~mips ~ppc ~ppc64 ~x86"
-IUSE="connman cron command-not-found +introspection networkmanager nsplugin entropy systemd test"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+IUSE="connman cron command-not-found +introspection networkmanager nsplugin entropy systemd test vala"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ vala? ( introspection )
+"
# While not strictly needed, consolekit is the alternative to systemd-login
# to get current session's user.
@@ -51,6 +55,7 @@ DEPEND="${CDEPEND}
sys-devel/gettext
virtual/pkgconfig
nsplugin? ( >=net-misc/npapi-sdk-0.27 )
+ vala? ( $(vala_depend) )
"
RDEPEND="${CDEPEND}
>=app-portage/layman-2[${PYTHON_USEDEP}]
@@ -64,11 +69,10 @@ S="${WORKDIR}/${MY_P}"
RESTRICT="test"
src_prepare() {
- # Fix python backend detection
- # Make portage backend work with newer layman/portage
+ # Upstreamed portage backend patches
epatch "${FILESDIR}"/*
- eautoreconf
+ use vala && vala_src_prepare
}
src_configure() {
@@ -92,6 +96,7 @@ src_configure() {
$(use_enable nsplugin browser-plugin) \
$(use_enable systemd) \
$(use_enable test daemon-tests) \
+ $(use_enable vala) \
$(systemd_with_unitdir)
#$(use_enable test local)
}
@@ -100,8 +105,10 @@ src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
prune_libtool_files --all
- dodoc AUTHORS MAINTAINERS NEWS README || die "dodoc failed"
- dodoc ChangeLog || die "dodoc failed"
+ einstalldocs
+
+ #dodoc AUTHORS MAINTAINERS NEWS README || die "dodoc failed"
+ #dodoc ChangeLog || die "dodoc failed"
if use nsplugin; then
dodir "/usr/$(get_libdir)/${PLUGINS_DIR}"
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-11-27 13:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-27 13:57 [gentoo-commits] proj/gnome:master commit in: app-admin/packagekit-base/, app-admin/packagekit-base/files/ Gilles Dartiguelongue
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox