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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> + +-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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> -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 <[email protected]> +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 <[email protected]> -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 <[email protected]> +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 <[email protected]> +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}"
