From 12685f8bf817e9f3808898347891da59c455ab9e Mon Sep 17 00:00:00 2001 From: Björn Esser Date: Mar 23 2017 17:30:55 +0000 Subject: Update URL to reflect new upstream Merge all patches More support for dnf >= 2.0.0 --- diff --git a/dnfdaemon-0.3.16-dnf_20.patch b/dnfdaemon-0.3.16-dnf_20.patch new file mode 100644 index 0000000..6cf6859 --- /dev/null +++ b/dnfdaemon-0.3.16-dnf_20.patch @@ -0,0 +1,249 @@ +From 11670a122dcdf906ce811204c911f1463fceb6de Mon Sep 17 00:00:00 2001 +From: Jaroslav Mracek +Date: Wed, 24 Aug 2016 09:41:09 +0200 +Subject: [PATCH 1/7] Optimize code for dnf-2.0 + +--- + dnfdaemon.spec | 2 +- + python/dnfdaemon/server/__init__.py | 2 +- + python/dnfdaemon/server/backend.py | 6 +++--- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/dnfdaemon.spec b/dnfdaemon.spec +index 9ece728..1054e1b 100644 +--- a/dnfdaemon.spec ++++ b/dnfdaemon.spec +@@ -1,5 +1,5 @@ + %global dnf_org org.baseurl.Dnf +-%global dnf_version 1.1.0 ++%global dnf_version 2.0.0 + + Name: dnfdaemon + Version: 0.3.16 +diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py +index 4700c50..d304f9f 100644 +--- a/python/dnfdaemon/server/__init__.py ++++ b/python/dnfdaemon/server/__init__.py +@@ -253,7 +253,7 @@ def get_groups(self): + grp = self.base.comps.group_by_pattern(obj.name) + if grp: + # FIXME: no dnf API to get if group is installed +- p_grp = self.base.group_persistor.group(grp.id) ++ p_grp = self.base._group_persistor.group(grp.id) + if p_grp: + installed = p_grp.installed + else: +diff --git a/python/dnfdaemon/server/backend.py b/python/dnfdaemon/server/backend.py +index ee5bbc6..706ac9b 100644 +--- a/python/dnfdaemon/server/backend.py ++++ b/python/dnfdaemon/server/backend.py +@@ -61,7 +61,7 @@ def __init__(self, parent): + def expire_cache(self): + """Make the current cache expire""" + for repo in self.repos.iter_enabled(): +- repo.md_expire_cache() ++ repo._md_expire_cache() + + def setup_base(self): + """Setup dnf Sack and init packages helper""" +@@ -126,7 +126,7 @@ def _sig_check_pkg(self, po): + might help. + 2 = Fatal GPG verification error, give up. + """ +- if po.from_cmdline: ++ if po._from_cmdline: + check = self.conf.localpkg_gpgcheck + hasgpgkey = 0 + else: +@@ -270,7 +270,7 @@ class Packages: + def __init__(self, base): + self._base = base + self._sack = base.sack +- self._inst_na = self._sack.query().installed().na_dict() ++ self._inst_na = self._sack.query().installed()._na_dict() + + def filter_packages(self, pkg_list, replace=True): + """Filter a list of package objects and replace + +From 2207e88fde6b5564bc5bd19fcd95b628aa86eba3 Mon Sep 17 00:00:00 2001 +From: Tim Lauridsen +Date: Wed, 22 Mar 2017 11:37:53 +0100 +Subject: [PATCH 2/7] Update README.md + +--- + README.md | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/README.md b/README.md +index 6f6eaa8..0ae6c4e 100644 +--- a/README.md ++++ b/README.md +@@ -1,3 +1,6 @@ ++23-03-2017: dnf-daemon if no longer under active development ++============================================================ ++ + dnf-daemon + =========== + + +From dda40e59a95dae95dc38eb9032317601690ba4fc Mon Sep 17 00:00:00 2001 +From: Angelo Naselli +Date: Tue, 7 Feb 2017 23:48:32 +0100 +Subject: [PATCH 3/7] Fixed GetRepo() call to work with DNF 2.0 + +--- + python/dnfdaemon/server/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py +index d304f9f..231aba3 100644 +--- a/python/dnfdaemon/server/__init__.py ++++ b/python/dnfdaemon/server/__init__.py +@@ -303,7 +303,7 @@ def get_repo(self, repo_id): + value = json.dumps(None) + repo = self.base.repos.get(repo_id, None) # get the repo object + if repo: +- repo_conf = dict([(c, getattr(repo, c)) for c in repo.iterkeys()]) ++ repo_conf = dict([(c, getattr(repo, c)) for c in repo._option.keys()]) + value = json.dumps(repo_conf) + return value + + +From 085832aaa47475a865ff540e40fdc909d33814f4 Mon Sep 17 00:00:00 2001 +From: Angelo Naselli +Date: Mon, 20 Feb 2017 22:54:54 +0100 +Subject: [PATCH 4/7] Fixed get_config() call to work with DNF 2.0 + +--- + python/dnfdaemon/server/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py +index 231aba3..58d1b8f 100644 +--- a/python/dnfdaemon/server/__init__.py ++++ b/python/dnfdaemon/server/__init__.py +@@ -286,7 +286,7 @@ def get_config(self, setting): + """ + if setting == '*': # Return all config + cfg = self.base.conf +- data = [(c, getattr(cfg, c)) for c in cfg.iterkeys()] ++ data = [(c, getattr(cfg, c)) for c in cfg._option.keys()] + all_conf = dict(data) + value = json.dumps(all_conf) + elif hasattr(self.base.conf, setting): + +From 34a4875f1ff12afed421ff5b0d072651d7bd124f Mon Sep 17 00:00:00 2001 +From: Angelo Naselli +Date: Sun, 19 Mar 2017 22:54:38 +0100 +Subject: [PATCH 5/7] DNF 2.0 API change for installation of RPMs from URI/file + path + +In DNF 2.0, add_remote_rpm became add_remote_rpms using and +returning list of packages, so Install() needed to change accordingly +--- + python/dnfdaemon/server/__init__.py | 19 ++++++++++++------- + 1 file changed, 12 insertions(+), 7 deletions(-) + +diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py +index 58d1b8f..700983b 100644 +--- a/python/dnfdaemon/server/__init__.py ++++ b/python/dnfdaemon/server/__init__.py +@@ -407,15 +407,20 @@ def group_remove(self, cmds): + def install(self, cmds): + """Install packages from pkg-specs.""" + value = 0 ++ local_rpms = [] ++ pkgs = [] + for cmd in cmds.split(' '): + if cmd.endswith('.rpm'): # install local .rpm +- po = self.base.add_remote_rpm(cmd) +- self.base.package_install(po) ++ local_rpms.append(cmd) + else: +- try: +- self.base.install(cmd) +- except dnf.exceptions.MarkingError: +- pass ++ pkgs.append(cmd) ++ for pkg in self.base.add_remote_rpms(local_rpms): ++ self.base.package_install(pkg) ++ for pkg in pkgs: ++ try: ++ self.base.install(cmd) ++ except dnf.exceptions.MarkingError: ++ pass + value = self.build_transaction() + return value + +@@ -495,7 +500,7 @@ def add_transaction(self, pkg_id, action): + elif action == 'downgrade': + rc = self.base.package_downgrade(po) + elif action == 'localinstall': +- po = self.base.add_remote_rpm(pkg_id) ++ po = self.base.add_remote_rpms([pkg_id]) + rc = self.base.package_install(po) + else: + logger.error("unknown action : %s", action) + +From 7a80869f6055098386c8d79ab18eb66d8ec9f6f1 Mon Sep 17 00:00:00 2001 +From: Angelo Naselli +Date: Mon, 20 Mar 2017 16:33:12 +0100 +Subject: [PATCH 6/7] fixed install method if not for local rpm + +--- + python/dnfdaemon/server/__init__.py | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py +index 700983b..7636eda 100644 +--- a/python/dnfdaemon/server/__init__.py ++++ b/python/dnfdaemon/server/__init__.py +@@ -408,19 +408,18 @@ def install(self, cmds): + """Install packages from pkg-specs.""" + value = 0 + local_rpms = [] +- pkgs = [] + for cmd in cmds.split(' '): + if cmd.endswith('.rpm'): # install local .rpm + local_rpms.append(cmd) + else: +- pkgs.append(cmd) ++ try: ++ self.base.install(cmd) ++ except dnf.exceptions.MarkingError: ++ pass ++ + for pkg in self.base.add_remote_rpms(local_rpms): + self.base.package_install(pkg) +- for pkg in pkgs: +- try: +- self.base.install(cmd) +- except dnf.exceptions.MarkingError: +- pass ++ + value = self.build_transaction() + return value + + +From e8a0d0431d4964d36e0a130f161445995e5af667 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Wed, 22 Mar 2017 09:51:01 -0400 +Subject: [PATCH 7/7] dnf-daemon is under active development again + +dnfdaemon development now is actively developed as part of +the manatools development. +--- + README.md | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/README.md b/README.md +index 0ae6c4e..6f6eaa8 100644 +--- a/README.md ++++ b/README.md +@@ -1,6 +1,3 @@ +-23-03-2017: dnf-daemon if no longer under active development +-============================================================ +- + dnf-daemon + =========== + diff --git a/dnfdaemon-0.3.16-fix_GetConfig_for_dnf_20.patch b/dnfdaemon-0.3.16-fix_GetConfig_for_dnf_20.patch deleted file mode 100644 index ec01aa1..0000000 --- a/dnfdaemon-0.3.16-fix_GetConfig_for_dnf_20.patch +++ /dev/null @@ -1,22 +0,0 @@ -From c347dd13e06da2ea8a9a242371aa8d43b7810d87 Mon Sep 17 00:00:00 2001 -From: Angelo Naselli -Date: Mon, 20 Feb 2017 22:54:54 +0100 -Subject: [PATCH] Fixed issue #12 get_config - ---- - python/dnfdaemon/server/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py -index d304f9f..efd3924 100644 ---- a/python/dnfdaemon/server/__init__.py -+++ b/python/dnfdaemon/server/__init__.py -@@ -286,7 +286,7 @@ def get_config(self, setting): - """ - if setting == '*': # Return all config - cfg = self.base.conf -- data = [(c, getattr(cfg, c)) for c in cfg.iterkeys()] -+ data = [(c, getattr(cfg, c)) for c in cfg._option.keys()] - all_conf = dict(data) - value = json.dumps(all_conf) - elif hasattr(self.base.conf, setting): diff --git a/dnfdaemon-0.3.16-fix_GetRepo_for_dnf_20.patch b/dnfdaemon-0.3.16-fix_GetRepo_for_dnf_20.patch deleted file mode 100644 index 201745c..0000000 --- a/dnfdaemon-0.3.16-fix_GetRepo_for_dnf_20.patch +++ /dev/null @@ -1,22 +0,0 @@ -From d4c9361dbd65aeac46ef8233ddbd0c4132291076 Mon Sep 17 00:00:00 2001 -From: Angelo Naselli -Date: Tue, 7 Feb 2017 23:48:32 +0100 -Subject: [PATCH] Fixed issue#11 - ---- - python/dnfdaemon/server/__init__.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py -index d304f9f..231aba3 100644 ---- a/python/dnfdaemon/server/__init__.py -+++ b/python/dnfdaemon/server/__init__.py -@@ -303,7 +303,7 @@ def get_repo(self, repo_id): - value = json.dumps(None) - repo = self.base.repos.get(repo_id, None) # get the repo object - if repo: -- repo_conf = dict([(c, getattr(repo, c)) for c in repo.iterkeys()]) -+ repo_conf = dict([(c, getattr(repo, c)) for c in repo._option.keys()]) - value = json.dumps(repo_conf) - return value - diff --git a/dnfdaemon-0.3.16-optimize_code_for_dnf_20.patch b/dnfdaemon-0.3.16-optimize_code_for_dnf_20.patch deleted file mode 100644 index 96c02af..0000000 --- a/dnfdaemon-0.3.16-optimize_code_for_dnf_20.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 11670a122dcdf906ce811204c911f1463fceb6de Mon Sep 17 00:00:00 2001 -From: Jaroslav Mracek -Date: Wed, 24 Aug 2016 09:41:09 +0200 -Subject: [PATCH] Optimize code for dnf-2.0 - ---- - dnfdaemon.spec | 2 +- - python/dnfdaemon/server/__init__.py | 2 +- - python/dnfdaemon/server/backend.py | 6 +++--- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/dnfdaemon.spec b/dnfdaemon.spec -index 9ece728..1054e1b 100644 ---- a/dnfdaemon.spec -+++ b/dnfdaemon.spec -@@ -1,5 +1,5 @@ - %global dnf_org org.baseurl.Dnf --%global dnf_version 1.1.0 -+%global dnf_version 2.0.0 - - Name: dnfdaemon - Version: 0.3.16 -diff --git a/python/dnfdaemon/server/__init__.py b/python/dnfdaemon/server/__init__.py -index 4700c50..d304f9f 100644 ---- a/python/dnfdaemon/server/__init__.py -+++ b/python/dnfdaemon/server/__init__.py -@@ -253,7 +253,7 @@ def get_groups(self): - grp = self.base.comps.group_by_pattern(obj.name) - if grp: - # FIXME: no dnf API to get if group is installed -- p_grp = self.base.group_persistor.group(grp.id) -+ p_grp = self.base._group_persistor.group(grp.id) - if p_grp: - installed = p_grp.installed - else: -diff --git a/python/dnfdaemon/server/backend.py b/python/dnfdaemon/server/backend.py -index ee5bbc6..706ac9b 100644 ---- a/python/dnfdaemon/server/backend.py -+++ b/python/dnfdaemon/server/backend.py -@@ -61,7 +61,7 @@ def __init__(self, parent): - def expire_cache(self): - """Make the current cache expire""" - for repo in self.repos.iter_enabled(): -- repo.md_expire_cache() -+ repo._md_expire_cache() - - def setup_base(self): - """Setup dnf Sack and init packages helper""" -@@ -126,7 +126,7 @@ def _sig_check_pkg(self, po): - might help. - 2 = Fatal GPG verification error, give up. - """ -- if po.from_cmdline: -+ if po._from_cmdline: - check = self.conf.localpkg_gpgcheck - hasgpgkey = 0 - else: -@@ -270,7 +270,7 @@ class Packages: - def __init__(self, base): - self._base = base - self._sack = base.sack -- self._inst_na = self._sack.query().installed().na_dict() -+ self._inst_na = self._sack.query().installed()._na_dict() - - def filter_packages(self, pkg_list, replace=True): - """Filter a list of package objects and replace diff --git a/dnfdaemon.spec b/dnfdaemon.spec index 52c7434..db4fe0c 100644 --- a/dnfdaemon.spec +++ b/dnfdaemon.spec @@ -3,15 +3,13 @@ Name: dnfdaemon Version: 0.3.16 -Release: 7%{?dist} +Release: 8%{?dist} Summary: DBus daemon for dnf package actions License: GPLv2+ -URL: https://github.com/timlau/dnf-daemon -Source0: https://github.com/timlau/dnf-daemon/releases/download/%{name}-%{version}/%{name}-%{version}.tar.xz +URL: https://github.com/manatools/dnf-daemon +Source0: %{url}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.xz -Patch1: %{url}/commit/bd300ab7195b4d5d7a26f19c49a75f03f2470a2b.patch#/%{name}-0.3.16-optimize_code_for_dnf_20.patch -Patch2: %{url}/pull/15.patch#/%{name}-0.3.16-fix_GetRepo_for_dnf_20.patch -Patch3: %{url}/pull/17.patch#/%{name}-0.3.16-fix_GetConfig_for_dnf_20.patch +Patch1: %{url}/compare/dnfdaemon-0.3.16...manatools-dev.patch#/%{name}-0.3.16-dnf_20.patch BuildArch: noarch BuildRequires: python3-devel @@ -103,6 +101,11 @@ fi %{python3_sitelib}/%{name}/client %changelog +* Thu Mar 23 2017 Björn Esser - 0.3.16-8 +- Update URL to reflect new upstream +- Merge all patches +- More support for dnf >= 2.0.0 + * Mon Feb 20 2017 Björn Esser - 0.3.16-7 - Add Patch3 for more support for dnf >= 2.0.0 @@ -214,5 +217,3 @@ fi - fix refactor issue (timlau@fedoraproject.org) - api: merged GetPackages with GetPackageWithAttributes. (timlau@fedoraproject.org) - -