commit dnf-plugins-core for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dnf-plugins-core for openSUSE:Factory checked in at 2021-11-03 17:26:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dnf-plugins-core (Old) and /work/SRC/openSUSE:Factory/.dnf-plugins-core.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "dnf-plugins-core" Wed Nov 3 17:26:35 2021 rev:18 rq:929012 version:4.0.24 Changes: -------- --- /work/SRC/openSUSE:Factory/dnf-plugins-core/dnf-plugins-core.changes 2021-08-27 21:44:56.454042918 +0200 +++ /work/SRC/openSUSE:Factory/.dnf-plugins-core.new.1890/dnf-plugins-core.changes 2021-11-03 17:27:31.385378477 +0100 @@ -1,0 +2,10 @@ +Wed Nov 3 11:50:23 UTC 2021 - Neal Gompa <ngompa13@gmail.com> + +- Update to 4.0.24 + + [copr] Avoid using deprecated function distro.linux_distribution() (rh#2011550) + + [copr] don't traceback on empty lines in /etc/os-release + + [leaves] Show strongly connected components + + [needs-restarting] Fix wrong boot time (rh#1960437) + + [playground] Disable playground command, since it doesn't work + +------------------------------------------------------------------- Old: ---- dnf-plugins-core-4.0.22.tar.gz New: ---- dnf-plugins-core-4.0.24.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dnf-plugins-core.spec ++++++ --- /var/tmp/diff_new_pack.tLIqG8/_old 2021-11-03 17:27:31.801378705 +0100 +++ /var/tmp/diff_new_pack.tLIqG8/_new 2021-11-03 17:27:31.805378707 +0100 @@ -2,7 +2,7 @@ # spec file for package dnf-plugins-core # # Copyright (c) 2020 SUSE LLC -# Copyright (c) 2020-2021 Neal Gompa <ngompa13@gmail.com>. +# Copyright (c) 2021 Neal Gompa <ngompa13@gmail.com>. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -56,7 +56,7 @@ #global prerel rc1 Name: dnf-plugins-core -Version: 4.0.22 +Version: 4.0.24 Release: 0 Summary: Core Plugins for DNF License: GPL-2.0-or-later ++++++ dnf-plugins-core-4.0.22.tar.gz -> dnf-plugins-core-4.0.24.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/AUTHORS new/dnf-plugins-core-4.0.24/AUTHORS --- old/dnf-plugins-core-4.0.22/AUTHORS 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/AUTHORS 2021-10-21 08:38:48.000000000 +0200 @@ -35,3 +35,4 @@ Tomas Babej <tomasbabej@gmail.com> Vladan Kudlac <vladankudlac@gmail.com> Wieland Hoffmann <themineo@gmail.com> + Otto Urpelainen <oturpe@iki.fi> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/dnf-plugins-core.spec new/dnf-plugins-core-4.0.24/dnf-plugins-core.spec --- old/dnf-plugins-core-4.0.22/dnf-plugins-core.spec 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/dnf-plugins-core.spec 2021-10-21 08:38:48.000000000 +0200 @@ -33,7 +33,7 @@ %endif Name: dnf-plugins-core -Version: 4.0.22 +Version: 4.0.24 Release: 1%{?dist} Summary: Core Plugins for DNF License: GPLv2+ @@ -763,6 +763,16 @@ %endif %changelog +* Thu Oct 21 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.0.24-1 +- [copr] on CentOS Stream, enable centos stream chroot instead of not epel 8 (RhBug:1994154) +- [copr] Avoid using deprecated function distro.linux_distribution() (RhBug:2011550) +- [copr] don't traceback on empty lines in /etc/os-release + +* Thu Sep 16 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.0.23-1 +- [leaves] Show strongly connected components +- [needs-restarting] Fix wrong boot time (RhBug:1960437) +- [playground] Disable playground command, since it doesn't work + * Mon Jun 14 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 4.0.22-1 - [repomanage] Allow running only with metadata - [repomanage] Enhance documentation (RhBug:1898293) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/doc/release_notes.rst new/dnf-plugins-core-4.0.24/doc/release_notes.rst --- old/dnf-plugins-core-4.0.22/doc/release_notes.rst 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/doc/release_notes.rst 2021-10-21 08:38:48.000000000 +0200 @@ -22,6 +22,35 @@ .. contents:: ==================== +4.0.24 Release Notes +==================== + +- Bug fixes: + - [copr] on CentOS Stream, enable centos stream chroot instead of not epel 8 (RhBug:1994154) + - [copr] Avoid using deprecated function distro.linux_distribution() (RhBug:2011550) + - [copr] don't traceback on empty lines in /etc/os-release + +Bugs fixed in 4.0.24: + +* :rhbug:`1994154` +* :rhbug:`2011550` + +==================== +4.0.23 Release Notes +==================== + +- New features: + - [leaves] Show strongly connected components + +- Bug fixes: + - [needs-restarting] Fix wrong boot time (RhBug:1960437) + - [playground] Disable playground command, since it doesn't work + +Bugs fixed in 4.0.23: + +* :rhbug:`1960437` + +==================== 4.0.22 Release Notes ==================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/doc/summaries_cache new/dnf-plugins-core-4.0.24/doc/summaries_cache --- old/dnf-plugins-core-4.0.22/doc/summaries_cache 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/doc/summaries_cache 2021-10-21 08:38:48.000000000 +0200 @@ -626,5 +626,17 @@ [ 1898293, "repomanage --old does not list the oldest package per module" + ], + [ + 1960437, + "needs-restarting calculating wrong boot time" + ], + [ + 1994154, + "wrong baseurl / dnf copr enable / centos stream" + ], + [ + 2011550, + "dnf-plugins-core uses distro.linux_distribution(), deprecated in distro 1.6.0" ] ] \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/plugins/copr.py new/dnf-plugins-core-4.0.24/plugins/copr.py --- old/dnf-plugins-core-4.0.22/plugins/copr.py 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/plugins/copr.py 2021-10-21 08:38:48.000000000 +0200 @@ -38,7 +38,11 @@ # If that fails, attempt to import the deprecated implementation # from the platform module. try: - from distro import linux_distribution, os_release_attr + from distro import name, version, codename, os_release_attr + + # Re-implement distro.linux_distribution() to avoid a deprecation warning + def linux_distribution(): + return (name(), version(), codename()) except ImportError: def os_release_attr(_): return "" @@ -50,8 +54,13 @@ with open('/etc/os-release') as os_release_file: os_release_data = {} for line in os_release_file: - os_release_key, os_release_value = line.rstrip().split('=') - os_release_data[os_release_key] = os_release_value.strip('"') + try: + os_release_key, os_release_value = line.rstrip().split('=') + os_release_data[os_release_key] = os_release_value.strip('"') + except ValueError: + # Skip empty lines and everything that is not a simple + # variable assignment + pass return (os_release_data['NAME'], os_release_data['VERSION_ID'], None) PLUGIN_CONF = 'copr' @@ -117,6 +126,8 @@ parser.add_argument('arg', nargs='*') def configure(self): + if self.cli.command.opts.command != "copr": + return copr_hub = None copr_plugin_config = ConfigParser() config_files = [] @@ -350,9 +361,10 @@ "Re-enable the project to fix this.")) def _list_user_projects(self, user_name): - # http://copr.fedorainfracloud.org/api/coprs/ignatenkobrain/ - api_path = "/api/coprs/{}/".format(user_name) - res = self.base.urlopen(self.copr_url + api_path, mode='w+') + # https://copr.fedorainfracloud.org/api_3/project/list?ownername=ignatenkobrai... + api_path = "/api_3/project/list?ownername={0}".format(user_name) + url = self.copr_url + api_path + res = self.base.urlopen(url, mode='w+') try: json_parse = json.loads(res.read()) except ValueError: @@ -362,21 +374,18 @@ self._check_json_output(json_parse) section_text = _("List of {} coprs").format(user_name) self._print_match_section(section_text) - i = 0 - while i < len(json_parse["repos"]): - msg = "{0}/{1} : ".format(user_name, - json_parse["repos"][i]["name"]) - desc = json_parse["repos"][i]["description"] - if not desc: - desc = _("No description given") + + for item in json_parse["items"]: + msg = "{0}/{1} : ".format(user_name, item["name"]) + desc = item["description"] or _("No description given") msg = self.base.output.fmtKeyValFill(ucd(msg), desc) print(msg) - i += 1 def _search(self, query): - # http://copr.fedorainfracloud.org/api/coprs/search/tests/ - api_path = "/api/coprs/search/{}/".format(query) - res = self.base.urlopen(self.copr_url + api_path, mode='w+') + # https://copr.fedorainfracloud.org/api_3/project/search?query=tests + api_path = "/api_3/project/search?query={}".format(query) + url = self.copr_url + api_path + res = self.base.urlopen(url, mode='w+') try: json_parse = json.loads(res.read()) except ValueError: @@ -385,16 +394,12 @@ self._check_json_output(json_parse) section_text = _("Matched: {}").format(query) self._print_match_section(section_text) - i = 0 - while i < len(json_parse["repos"]): - msg = "{0}/{1} : ".format(json_parse["repos"][i]["username"], - json_parse["repos"][i]["coprname"]) - desc = json_parse["repos"][i]["description"] - if not desc: - desc = _("No description given.") + + for item in json_parse["items"]: + msg = "{0} : ".format(item["full_name"]) + desc = item["description"] or _("No description given.") msg = self.base.output.fmtKeyValFill(ucd(msg), desc) print(msg) - i += 1 def _print_match_section(self, text): formatted = self.base.output.fmtSection(text) @@ -431,7 +436,7 @@ dist = linux_distribution() # Get distribution architecture distarch = self.base.conf.substitutions['basearch'] - if "Fedora" in dist: + if any([name in dist for name in ["Fedora", "Fedora Linux"]]): if "Rawhide" in dist: chroot = ("fedora-rawhide-" + distarch) # workaround for enabling repos in Rawhide when VERSION in os-release @@ -456,6 +461,8 @@ chroot = ("opensuse-tumbleweed-{}".format(distarch)) else: chroot = ("opensuse-leap-{0}-{1}".format(dist[1], distarch)) + elif "CentOS Stream" in dist: + chroot = ("centos-stream-{0}-{1}".format(dist[1], distarch)) else: chroot = ("epel-%s-x86_64" % dist[1].split(".", 1)[0]) return chroot @@ -619,7 +626,7 @@ @classmethod def _check_json_output(cls, json_obj): - if json_obj["output"] != "ok": + if "error" in json_obj: raise dnf.exceptions.Error("{}".format(json_obj["error"])) @classmethod @@ -681,6 +688,7 @@ choices=['enable', 'disable', 'upgrade']) def run(self): + raise dnf.exceptions.Error("Playground is temporarily unsupported") subcommand = self.opts.subcommand[0] chroot = self._guess_chroot() if subcommand == "enable": diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/plugins/leaves.py new/dnf-plugins-core-4.0.24/plugins/leaves.py --- old/dnf-plugins-core-4.0.22/plugins/leaves.py 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/plugins/leaves.py 2021-10-21 08:38:48.000000000 +0200 @@ -72,8 +72,7 @@ def kosaraju(self, graph, rgraph): """ Run Kosaraju's algorithm to find strongly connected components - in the graph, and return the list of nodes in the components - without any incoming edges. + in the graph, and return the components without any incoming edges. """ N = len(graph) rstack = [] @@ -140,7 +139,7 @@ sccredges.difference_update(scc) if not sccredges: - leaves.extend(scc) + leaves.append(scc.copy()) del scc[:] sccredges.clear() @@ -148,8 +147,18 @@ def findleaves(self): (packages, depends, rdepends) = self.buildgraph() - return [packages[i] for i in self.kosaraju(depends, rdepends)] + return [packages[i] for scc in self.kosaraju(depends, rdepends) for i in scc] def run(self): - for pkg in sorted(map(str, self.findleaves())): - print(pkg) + (packages, depends, rdepends) = self.buildgraph() + leaves = self.kosaraju(depends, rdepends) + for scc in leaves: + for i, pkg in enumerate(scc): + scc[i] = str(packages[pkg]) + scc.sort() + leaves.sort(key=lambda scc: scc[0]) + for scc in leaves: + mark = '-' + for pkg in scc: + print("{} {}".format(mark, pkg)) + mark = ' ' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/plugins/needs_restarting.py new/dnf-plugins-core-4.0.24/plugins/needs_restarting.py --- old/dnf-plugins-core-4.0.22/plugins/needs_restarting.py 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/plugins/needs_restarting.py 2021-10-21 08:38:48.000000000 +0200 @@ -199,7 +199,7 @@ @staticmethod def get_boot_time(): - return int(os.stat('/proc/1/cmdline').st_mtime) + return int(os.stat('/proc/1').st_mtime) @staticmethod def get_sc_clk_tck(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dnf-plugins-core-4.0.22/po/CMakeLists.txt new/dnf-plugins-core-4.0.24/po/CMakeLists.txt --- old/dnf-plugins-core-4.0.22/po/CMakeLists.txt 2021-06-14 15:29:37.000000000 +0200 +++ new/dnf-plugins-core-4.0.24/po/CMakeLists.txt 2021-10-21 08:38:48.000000000 +0200 @@ -38,6 +38,15 @@ ) endif() +add_custom_target(gettext-pot + COMMENT "Generating fresh dnf.pot file from sources" + + COMMAND find ./plugins -iname '*.py' | + xargs xgettext -F --from-code=UTF-8 --keyword=P_:1,2 --keyword=C_:1c,2 -c --output=${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pot + + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) + IF (GETTEXT_FOUND) # this process unfortunately reformats .po files so copy them
participants (1)
-
Source-Sync