diff --git a/.dnf.metadata b/.dnf.metadata index ef2895a..9216042 100644 --- a/.dnf.metadata +++ b/.dnf.metadata @@ -1 +1 @@ -7eddc7df8445995116724afa47bc468c32c33aba SOURCES/dnf-4.2.6.tar.gz +535f46b9a5242a315e1269a59372362013a5a6f0 SOURCES/dnf-4.2.17.tar.gz diff --git a/.gitignore b/.gitignore index 6a5e042..56393f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dnf-4.2.6.tar.gz +SOURCES/dnf-4.2.17.tar.gz diff --git a/SOURCES/0001-Do-a-substitution-of-variables-in-repo_id-RhBug1748841.patch b/SOURCES/0001-Do-a-substitution-of-variables-in-repo_id-RhBug1748841.patch new file mode 100644 index 0000000..13def6c --- /dev/null +++ b/SOURCES/0001-Do-a-substitution-of-variables-in-repo_id-RhBug1748841.patch @@ -0,0 +1,101 @@ +From 8bcd196fd95e70fd1f0be16d2c274e39a1cabe2e Mon Sep 17 00:00:00 2001 +From: Jaroslav Rohel +Date: Thu, 21 Nov 2019 11:45:03 +0100 +Subject: [PATCH] Do a substitution of variables in repo_id (RhBug:1748841) + +Example of repo file: +[test-$basearch-$releasever] +Name=Test-$basearch-$releasever +baseurl=file:///mnt/ +gpgcheck=0 +enabled=1 + +https://bugzilla.redhat.com/show_bug.cgi?id=1748841 +--- + dnf/conf/read.py | 40 +++++++++++++++++++++++++++------------- + 1 file changed, 27 insertions(+), 13 deletions(-) + +diff --git a/dnf/conf/read.py b/dnf/conf/read.py +index a526a71..1efac22 100644 +--- a/dnf/conf/read.py ++++ b/dnf/conf/read.py +@@ -43,7 +43,7 @@ class RepoReader(object): + + # read .repo files from directories specified by conf.reposdir + for repofn in (repofn for reposdir in self.conf.reposdir +- for repofn in sorted(glob.glob('%s/*.repo' % reposdir))): ++ for repofn in sorted(glob.glob('{}/*.repo'.format(reposdir)))): + try: + for r in self._get_repos(repofn): + yield r +@@ -54,17 +54,38 @@ class RepoReader(object): + def _build_repo(self, parser, id_, repofn): + """Build a repository using the parsed data.""" + +- repo = dnf.repo.Repo(id_, self.conf) ++ substituted_id = libdnf.conf.ConfigParser.substitute(id_, self.conf.substitutions) ++ ++ # Check the repo.id against the valid chars ++ invalid = dnf.repo.repo_id_invalid(substituted_id) ++ if invalid is not None: ++ if substituted_id != id_: ++ msg = _("Bad id for repo: {} ({}), byte = {} {}").format(substituted_id, id_, ++ substituted_id[invalid], ++ invalid) ++ else: ++ msg = _("Bad id for repo: {}, byte = {} {}").format(id_, id_[invalid], invalid) ++ raise dnf.exceptions.ConfigError(msg) ++ ++ repo = dnf.repo.Repo(substituted_id, self.conf) + try: + repo._populate(parser, id_, repofn, dnf.conf.PRIO_REPOCONFIG) + except ValueError as e: +- msg = _("Repository '%s': Error parsing config: %s") % (id_, e) ++ if substituted_id != id_: ++ msg = _("Repository '{}' ({}): Error parsing config: {}").format(substituted_id, ++ id_, e) ++ else: ++ msg = _("Repository '{}': Error parsing config: {}").format(id_, e) + raise dnf.exceptions.ConfigError(msg) + + # Ensure that the repo name is set + if repo._get_priority('name') == dnf.conf.PRIO_DEFAULT: +- msg = _("Repository '%s' is missing name in configuration, using id.") +- logger.warning(msg, id_) ++ if substituted_id != id_: ++ msg = _("Repository '{}' ({}) is missing name in configuration, using id.").format( ++ substituted_id, id_) ++ else: ++ msg = _("Repository '{}' is missing name in configuration, using id.").format(id_) ++ logger.warning(msg) + repo.name = ucd(repo.name) + repo._substitutions.update(self.conf.substitutions) + repo.cfg = parser +@@ -80,23 +101,16 @@ class RepoReader(object): + try: + parser.read(repofn) + except RuntimeError as e: +- raise dnf.exceptions.ConfigError(_('Parsing file "%s" failed: %s') % (repofn, e)) ++ raise dnf.exceptions.ConfigError(_('Parsing file "{}" failed: {}').format(repofn, e)) + except IOError as e: + logger.warning(e) + + # Check sections in the .repo file that was just slurped up + for section in parser.getData(): + + if section == 'main': + continue + +- # Check the repo.id against the valid chars +- invalid = dnf.repo.repo_id_invalid(section) +- if invalid is not None: +- logger.warning(_("Bad id for repo: %s, byte = %s %d"), section, +- section[invalid], invalid) +- continue +- + try: + thisrepo = self._build_repo(parser, ucd(section), repofn) + except (dnf.exceptions.RepoError, dnf.exceptions.ConfigError) as e: +-- +libgit2 0.28.2 + diff --git a/SOURCES/0002-Fix-and-document-order-of-config-files-in-aliasesd-RhBug1680489.patch b/SOURCES/0002-Fix-and-document-order-of-config-files-in-aliasesd-RhBug1680489.patch new file mode 100644 index 0000000..993040f --- /dev/null +++ b/SOURCES/0002-Fix-and-document-order-of-config-files-in-aliasesd-RhBug1680489.patch @@ -0,0 +1,67 @@ +From ba3615c600532a0ce8693a626a9cbe71a458399a Mon Sep 17 00:00:00 2001 +From: Pavla Kratochvilova +Date: Thu, 23 May 2019 14:48:29 +0200 +Subject: [PATCH 1/2] Respect order of config files in aliases.d + (RhBug:1680489) + +https://bugzilla.redhat.com/show_bug.cgi?id=1680489 +The aliases config files were read in arbitrary order (os.listdir does not +give sorted output). It is better to define clear order (i.e. all config files +except USER.conf are ordered alphabetically, USER.conf is the last). + +Closes: #1542 +Approved by: kontura +--- + dnf/cli/aliases.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dnf/cli/aliases.py b/dnf/cli/aliases.py +index 0b3ba8f6b..b5283d0f3 100644 +--- a/dnf/cli/aliases.py ++++ b/dnf/cli/aliases.py +@@ -143,7 +143,7 @@ class Aliases(object): + try: + if not os.path.exists(ALIASES_DROPIN_DIR): + os.mkdir(ALIASES_DROPIN_DIR) +- for fn in os.listdir(ALIASES_DROPIN_DIR): ++ for fn in sorted(os.listdir(ALIASES_DROPIN_DIR)): + if _ignore_filename(fn): + continue + filenames.append(os.path.join(ALIASES_DROPIN_DIR, fn)) +-- +2.21.0 + + +From e292de84fcdec844530099a6c37ef29e1a330003 Mon Sep 17 00:00:00 2001 +From: Pavla Kratochvilova +Date: Thu, 23 May 2019 15:04:34 +0200 +Subject: [PATCH 2/2] [doc] Describe priorities of config files in aliases.d + (RhBug:1680489) + +https://bugzilla.redhat.com/show_bug.cgi?id=1680489 + +Closes: #1542 +Approved by: kontura +--- + doc/command_ref.rst | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/doc/command_ref.rst b/doc/command_ref.rst +index 7141fc2aa..637ccf96b 100644 +--- a/doc/command_ref.rst ++++ b/doc/command_ref.rst +@@ -424,7 +424,10 @@ for aliases. The alias processing stops when the first found command is not a na + Also, like in shell aliases, if the result starts with a ``\``, the alias processing will stop. + + All aliases are defined in configuration files in the ``/etc/dnf/aliases.d/`` directory in the [aliases] section, +-and aliases created by the alias command are written to the ``USER.conf`` file. ++and aliases created by the alias command are written to the ``USER.conf`` file. In case of conflicts, ++the ``USER.conf`` has the highest priority, and alphabetical ordering is used for the rest of the ++configuration files. ++ + Optionally, there is the ``enabled`` option in the ``[main]`` section defaulting to True. This can be set for each + file separately in the respective file, or globally for all aliases in the ``ALIASES.conf`` file. + +-- +2.21.0 + diff --git a/SOURCES/0003-doc-Remove-note-about-whitelist.patch b/SOURCES/0003-doc-Remove-note-about-whitelist.patch new file mode 100644 index 0000000..2b0d987 --- /dev/null +++ b/SOURCES/0003-doc-Remove-note-about-whitelist.patch @@ -0,0 +1,32 @@ +From 3c473306e5e1b630a3030791fb1ef7ea0c0cd823 Mon Sep 17 00:00:00 2001 +From: Michal Domonkos +Date: Tue, 26 Nov 2019 13:22:15 +0100 +Subject: [PATCH] [doc] Remove note about whitelist + +The whitelist mechanism has been recently removed from libdnf. + +Closes: #1543 +Approved by: Conan-Kudo +--- + doc/conf_ref.rst | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/doc/conf_ref.rst b/doc/conf_ref.rst +index d3ea11d..cb95e47 100644 +--- a/doc/conf_ref.rst ++++ b/doc/conf_ref.rst +@@ -806,11 +806,6 @@ configuration. + + libdnf (Fedora 31; server; Linux.x86_64) + +- To avoid leaking identifiable data, the variant in the above string will be +- replaced by "generic" if the value is not an official Fedora variant. +- Likewise, the whole OS part (enclosed in parenthesis) will be omitted if +- this is a non-Fedora system. +- + ================= + Types of Options + ================= +-- +libgit2 0.28.2 + diff --git a/SOURCES/0004-Fix-detection-of-the-latest-module-RhBug1781769.patch b/SOURCES/0004-Fix-detection-of-the-latest-module-RhBug1781769.patch new file mode 100644 index 0000000..89a9e19 --- /dev/null +++ b/SOURCES/0004-Fix-detection-of-the-latest-module-RhBug1781769.patch @@ -0,0 +1,157 @@ +From c8d79c0b9956aeeb8cd3a0422656b030d4656578 Mon Sep 17 00:00:00 2001 +From: Jaroslav Mracek +Date: Mon, 9 Dec 2019 12:32:18 +0100 +Subject: [PATCH 1/2] Fix detection of the latest module (RhBug:1781769) + +The code originally compared module version as a string, but it should +be compared as a int. + +https://bugzilla.redhat.com/show_bug.cgi?id=1781769 + +Closes: #1548 +Approved by: m-blaha +--- + dnf/module/module_base.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dnf/module/module_base.py b/dnf/module/module_base.py +index 8093ab443..64bad84b6 100644 +--- a/dnf/module/module_base.py ++++ b/dnf/module/module_base.py +@@ -285,7 +285,7 @@ class ModuleBase(object): + if module_list: + latest = module_list[0] + for module in module_list[1:]: +- if module.getVersion() > latest.getVersion(): ++ if module.getVersionNum() > latest.getVersionNum(): + latest = module + return latest + +-- +2.21.0 + + +From 44e9095404569dbf8a19726eb79be8e580bed60c Mon Sep 17 00:00:00 2001 +From: Jaroslav Mracek +Date: Wed, 11 Dec 2019 09:52:16 +0100 +Subject: [PATCH 2/2] Improve transaction table formatting + +It improves formatting of transaction table in case when terminal has +unknown width. + +Closes: #1548 +Approved by: m-blaha +--- + dnf/cli/output.py | 45 ++++++++++++++++++++++++--------------------- + 1 file changed, 24 insertions(+), 21 deletions(-) + +diff --git a/dnf/cli/output.py b/dnf/cli/output.py +index a03df610c..2ff41b625 100644 +--- a/dnf/cli/output.py ++++ b/dnf/cli/output.py +@@ -224,16 +224,32 @@ class Output(object): + if total_width is None: + total_width = self.term.real_columns + ++ # We start allocating 1 char to everything but the last column, and a ++ # space between each (again, except for the last column). Because ++ # at worst we are better with: ++ # |one two three| ++ # | four | ++ # ...than: ++ # |one two three| ++ # | f| ++ # |our | ++ # ...the later being what we get if we pre-allocate the last column, and ++ # thus. the space, due to "three" overflowing it's column by 2 chars. ++ if columns is None: ++ columns = [1] * (cols - 1) ++ columns.append(0) ++ + # i'm not able to get real terminal width so i'm probably + # running in non interactive terminal (pipe to grep, redirect to file...) + # avoid splitting lines to enable filtering output + if not total_width: + full_columns = [] +- for col in data: ++ for d in xrange(0, cols): ++ col = data[d] + if col: + full_columns.append(col[-1][0]) + else: +- full_columns.append(0) ++ full_columns.append(columns[d] + 1) + full_columns[0] += len(indent) + # if possible, try to keep default width (usually 80 columns) + default_width = self.term.columns +@@ -241,20 +257,6 @@ class Output(object): + return full_columns + total_width = default_width + +- # We start allocating 1 char to everything but the last column, and a +- # space between each (again, except for the last column). Because +- # at worst we are better with: +- # |one two three| +- # | four | +- # ...than: +- # |one two three| +- # | f| +- # |our | +- # ...the later being what we get if we pre-allocate the last column, and +- # thus. the space, due to "three" overflowing it's column by 2 chars. +- if columns is None: +- columns = [1] * (cols - 1) +- columns.append(0) + + total_width -= (sum(columns) + (cols - 1) + exact_width(indent)) + if not columns[-1]: +@@ -1273,7 +1275,7 @@ class Output(object): + skip_str = skip_str % _(" or part of a group") + + pkglist_lines.append((skip_str, lines)) +- ++ output_width = self.term.columns + if not data['n'] and not self.base._moduleContainer.isChanged() and not \ + (self.base._history and (self.base._history.group or self.base._history.env)): + return u'' +@@ -1283,6 +1285,8 @@ class Output(object): + columns = self.calcColumns(data, indent=" ", columns=columns, + remainder_column=2, total_width=total_width) + (n_wid, a_wid, v_wid, r_wid, s_wid) = columns ++ real_width = sum(columns) + 5 ++ output_width = output_width if output_width >= real_width else real_width + + # Do not use 'Package' without context. Using context resolves + # RhBug 1302935 as a side effect. +@@ -1325,13 +1329,13 @@ class Output(object): + # Translators: This is the full (unabbreviated) term 'Size'. + C_('long', 'Size')) + +- out = [u"%s\n%s\n%s\n" % ('=' * self.term.columns, ++ out = [u"%s\n%s\n%s\n" % ('=' * output_width, + self.fmtColumns(((msg_package, -n_wid), + (msg_arch, -a_wid), + (msg_version, -v_wid), + (msg_repository, -r_wid), + (msg_size, s_wid)), u" "), +- '=' * self.term.columns)] ++ '=' * output_width)] + + for (action, lines) in pkglist_lines: + if lines: +@@ -1349,11 +1353,10 @@ class Output(object): + + if lines: + out.append(totalmsg) +- + out.append(_(""" + Transaction Summary + %s +-""") % ('=' * self.term.columns)) ++""") % ('=' * output_width)) + summary_data = ( + (_('Install'), len(list_bunch.installed) + + len(list_bunch.installed_group) + +-- +2.21.0 + diff --git a/SPECS/dnf.spec b/SPECS/dnf.spec index 910f959..14e397f 100644 --- a/SPECS/dnf.spec +++ b/SPECS/dnf.spec @@ -1,11 +1,11 @@ # default dependencies -%global hawkey_version 0.32.0 +%global hawkey_version 0.39.1 %global libcomps_version 0.1.8 %global libmodulemd_version 1.4.0 %global rpm_version 4.14.0 # conflicts -%global conflicts_dnf_plugins_core_version 4.0.6 +%global conflicts_dnf_plugins_core_version 4.0.12 %global conflicts_dnf_plugins_extras_version 4.0.4 %global conflicts_dnfdaemon_version 0.3.19 @@ -47,6 +47,8 @@ %global yum_compat_level full %global yum_subpackage_name yum %if 0%{?fedora} + # Avoid file conflict with yum < 4 in all Fedoras + # It can be resolved by pretrans scriptlet but they are not recommended in Fedora %global yum_compat_level minimal %if 0%{?fedora} < 31 # Avoid name conflict with yum < 4 @@ -79,13 +81,17 @@ It supports RPMs, modules and comps groups & environments. Name: dnf -Version: 4.2.6 -Release: 1%{?dist} +Version: 4.2.17 +Release: 3%{?dist} Summary: %{pkg_summary} # For a breakdown of the licensing, see PACKAGE-LICENSING License: GPLv2+ and GPLv2 and GPL URL: https://github.com/rpm-software-management/dnf Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz +Patch1: 0001-Do-a-substitution-of-variables-in-repo_id-RhBug1748841.patch +Patch2: 0002-Fix-and-document-order-of-config-files-in-aliasesd-RhBug1680489.patch +Patch3: 0003-doc-Remove-note-about-whitelist.patch +Patch4: 0004-Fix-detection-of-the-latest-module-RhBug1781769.patch BuildArch: noarch BuildRequires: cmake @@ -111,7 +117,6 @@ Recommends: (python2-dbus if NetworkManager) %endif Recommends: (%{_bindir}/sqlite3 if bash-completion) %endif -%{?systemd_requires} Provides: dnf-command(alias) Provides: dnf-command(autoremove) Provides: dnf-command(check-update) @@ -155,12 +160,14 @@ Common data and configuration files for DNF %package -n %{yum_subpackage_name} Requires: %{name} = %{version}-%{release} Summary: %{pkg_summary} +%if 0%{?fedora} %if 0%{?fedora} >= 31 Provides: %{name}-yum = %{version}-%{release} -Obsoletes: %{name}-yum < %{version}-%{release} +Obsoletes: %{name}-yum < 5 %else Conflicts: yum < 3.4.3-505 %endif +%endif %description -n %{yum_subpackage_name} %{pkg_description} @@ -324,6 +331,13 @@ mv %{buildroot}%{_bindir}/dnf-automatic-2 %{buildroot}%{_bindir}/dnf-automatic %endif rm -vf %{buildroot}%{_bindir}/dnf-automatic-* +# Strict conf distribution +%if 0%{?rhel} +mv -f %{buildroot}%{confdir}/%{name}-strict.conf %{buildroot}%{confdir}/%{name}.conf +%else +rm -vf %{buildroot}%{confdir}/%{name}-strict.conf +%endif + # YUM compat layer ln -sr %{buildroot}%{confdir}/%{name}.conf %{buildroot}%{_sysconfdir}/yum.conf %if %{with python3} @@ -399,6 +413,7 @@ ln -sr %{buildroot}%{confdir}/vars %{buildroot}%{_sysconfdir}/yum/vars %endif %{_mandir}/man8/%{name}.8* %{_mandir}/man8/yum2dnf.8* +%{_mandir}/man7/dnf.modularity.7* %{_unitdir}/%{name}-makecache.service %{_unitdir}/%{name}-makecache.timer %{_var}/cache/%{name}/ @@ -500,6 +515,109 @@ ln -sr %{buildroot}%{confdir}/vars %{buildroot}%{_sysconfdir}/yum/vars %endif %changelog +* Thu Dec 12 2019 Pavla Kratochvilova - 4.2.17-3 +- Do a substitution of variables in repo_id (RhBug:1748841) +- Respect order of config files in aliases.d (RhBug:1680489) +- [doc] Remove note about user-agent whitelist (RhBug:1777255) +- Fix detection of the latest module (RhBug:1781769) + +* Mon Nov 25 2019 Ales Matej - 4.2.17-2 +- Update to 4.2.17 +- Enable versionlock for check-update command (RhBug:1750620) +- Add error message when no active modules matched (RhBug:1696204) +- Log mirror failures as warning when repo load fails (RhBug:1713627) +- dnf-automatic: Change all systemd timers to a fixed time of day (RhBug:1754609) +- DNF can use config from the remote location (RhBug:1721091) +- [doc] update reference to plugin documentation (RhBug:1706386) +- [yum compatibility] Report all packages in repoinfo +- [doc] Add definition of active/inactive module stream +- repoquery: Add a switch to disable modular excludes +- Report more informative messages when no match for argument (RhBug:1709563) +- [doc] Add description of excludes in dnf +- Report more descriptive message when removed package is excluded +- Add module repoquery command +- Fix assumptions about ARMv8 and the way the rpm features work (RhBug:1691430) +- Add Requires information into module info commands +- Enhance inheritance of transaction reasons (RhBug:1672618,1769788) + +* Wed Nov 13 2019 Ales Matej - 4.2.16-1 +- Update to 4.2.16 +- Fix downloading local packages into destdir (RhBug:1727137) +- Report skipped packages with identical nevra only once (RhBug:1643109) +- Restore functionality of dnf remove --duplicates (RhBug:1674296) +- Improve API documentation +- Document NEVRA parsing in the man page +- Do not wrap output when no terminal (RhBug:1577889) +- Allow to ship alternative dnf.conf (RhBug:1752249) +- Don't check if repo is expired if it doesn't have loaded metadata (RhBug:1745170) +- Remove duplicate entries from "dnf search" output (RhBug:1742926) +- Set default value of repo name attribute to repo id (RhBug:1669711) +- Allow searching in disabled modules using "dnf module provides" (RhBug:1629667) +- Group install takes obsoletes into account (RhBug:1761137) +- Improve handling of vars +- Do not load metadata for repolist commands (RhBug:1697472,1713055,1728894) +- Fix messages for starting and failing scriptlets (RhBug:1724779) +- Don't show older install-only pkgs updates in updateinfo (RhBug:1649383,1728004) +- Add --ids option to the group command (RhBug:1706382) +- Add --with_cve and --with_bz options to the updateinfo command (RhBug:1750528) + +* Tue Oct 22 2019 Ales Matej - 4.2.11-1 +- Update to 4.2.11 +- Improve modularity documentation (RhBug:1730162,1730162,1730807,1734081) +- Fix detection whether system is running on battery (used by metadata caching timer) (RhBug:1498680) +- New repoquery queryformat: %{reason} +- Print rpm errors during test transaction (RhBug:1730348) +- Fix incorrectly marked profile and stream after failed rpm transaction check (RhBug:1719679) +- Show transaction errors inside dnf shell (RhBug:1743644) +- dnf-automatic now respects versionlock excludes (RhBug:1746562) +- [doc] Add user_agent and countme options +- [history] Don't store failed transactions as succeeded +- [history] Do not require root for informative commands +- [dnssec] Fix UnicodeWarning when using new rpm (RhBug:1699650) +- Apply excludes before modular excludes (RhBug:1709453) +- Improve help for command line arguments (RhBug:1659328) +- Add new modular API method ModuleBase.get_modules +- Mark features used by ansible, anaconda and subscription-manager as an API + +* Mon Oct 21 2019 Pavla Kratochvilova - 4.2.7-7 +- Prevent reinstalling modified packages with same NEVRA (RhBug:1728252,1644241,1760825) + +* Tue Sep 03 2019 Jaroslav Mracek - 4.2.7-6 +- Remove patch to not fail when installing modular RPMs without modular metadata + +* Fri Aug 30 2019 Pavla Kratochvilova - 4.2.7-5 +- Fix: --setopt and repo with dots (RhBug:1746349) + +* Wed Aug 14 2019 Pavla Kratochvilova - 4.2.7-4 +- Prevent printing empty Error Summary (RhBug:1690414) + +* Tue Aug 06 2019 Pavla Kratochvilova - 4.2.7-3 +- Update localizations from zanata (RhBug:1689982) +- Accept multiple specs in repoquery options (RhBug:1667898,1656801) +- Prevent switching modules in all cases (RhBug:1706215) +- Change synchronization of rpm transaction to swdb (RhBug:1737328) +- Print rpm error messages during transaction (RhBug:1677199) +- Report missing default profile as an error (RhBug:1669527,1724564) +- Describe a behavior when plugin is removed (RhBug:1700741) + +* Thu Jul 04 2019 Pavla Kratochvilova - 4.2.7-2 +- Add patch to not fail when installing modular RPMs without modular metadata + +* Tue Jun 11 2019 Pavla Kratochvilova - 4.2.7-1 +- Update to 4.2.7 +- Fix package reinstalls during yum module remove (RhBug:1700529) +- Fail when "-c" option is given nonexistent file (RhBug:1512457) +- Reuse empty lock file instead of stopping dnf (RhBug:1581824) +- Propagate comps 'default' value correctly (RhBug:1674562) +- Better search of provides in /(s)bin/ (RhBug:1657993) +- Add detection for armv7hcnl (RhBug:1691430) +- Fix group install/upgrade when group is not available (RhBug:1707624) +- Report not matching plugins when using --enableplugin/--disableplugin + (RhBug:1673289) (RhBug:1467304) +- Add support of modular FailSafe (RhBug:1623128) +- Replace logrotate with build-in log rotation for dnf.log and dnf.rpm.log + (RhBug:1702690) + * Mon May 13 2019 Pavla Kratochvilova - 4.2.6-1 - Update to 4.2.6 - Use improved config parser that preserves order of data @@ -534,7 +652,7 @@ ln -sr %{buildroot}%{confdir}/vars %{buildroot}%{_sysconfdir}/yum/vars - [provides] Enhanced detecting of file provides (RhBug:1702621) - [provides] Sort the output packages alphabetically -* Thu Apr 08 2019 Pavla Kratochvilova - 4.0.9.2-6 +* Mon Apr 08 2019 Pavla Kratochvilova - 4.0.9.2-6 - Backport patch to unify --help with man for module-spec (RhBug:1678689) * Thu Feb 14 2019 Jaroslav Mracek - 4.0.9.2-5