# default dependencies %global hawkey_version 0.22.5 %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.2 %global conflicts_dnf_plugins_extras_version 3.0.2 %global conflicts_dnfdaemon_version 0.3.19 %global conflicts_librepo_version 1.8.1 # override dependencies for rhel 7 %if 0%{?rhel} == 7 %global rpm_version 4.11.3-32 %endif %if 0%{?rhel} == 7 && 0%{?centos} %global rpm_version 4.11.3-25.el7.centos.1 %endif # override dependencies for fedora 26 %if 0%{?fedora} == 26 %global rpm_version 4.13.0.1-7 %endif %if 0%{?rhel} && 0%{?rhel} <= 7 %bcond_with python3 %else %bcond_without python3 %endif %if 0%{?rhel} >= 8 || 0%{?fedora} > 29 # Disable python2 build %bcond_with python2 %else %bcond_without python2 %endif # configurable name for the compat yum package %global yum_subpackage_name %{name}-yum # provide nextgen-yum4 on rhel <= 7 to avoid conflict with existing yum %if 0%{?rhel} && 0%{?rhel} <= 7 %global yum_subpackage_name nextgen-yum4 %endif # provide yum on rhel >= 8, it replaces old yum %if 0%{?rhel} && 0%{?rhel} >= 8 %global yum_subpackage_name yum %endif # paths %global confdir %{_sysconfdir}/%{name} %global pluginconfpath %{confdir}/plugins %if %{with python2} %global py2pluginpath %{python2_sitelib}/%{name}-plugins %endif %if %{with python3} %global py3pluginpath %{python3_sitelib}/%{name}-plugins %endif # Use the same directory of the main package for subpackage licence and docs %global _docdir_fmt %{name} %global pkg_summary Package manager %global pkg_description Utility that allows users to manage packages on their systems. \ It supports RPMs, modules and comps groups & environments. Name: dnf Version: 4.0.9.2 Release: 2%{?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 Patch0: 1293.patch BuildArch: noarch BuildRequires: cmake BuildRequires: gettext # Documentation BuildRequires: %{_bindir}/sphinx-build BuildRequires: systemd BuildRequires: bash-completion %if %{with python3} Requires: python3-%{name} = %{version}-%{release} %else Requires: python2-%{name} = %{version}-%{release} %endif %if 0%{?rhel} && 0%{?rhel} <= 7 Requires: python-dbus Requires: %{_bindir}/sqlite3 %else %if %{with python3} Recommends: (python3-dbus if NetworkManager) %else 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) Provides: dnf-command(clean) Provides: dnf-command(distro-sync) Provides: dnf-command(downgrade) Provides: dnf-command(group) Provides: dnf-command(history) Provides: dnf-command(info) Provides: dnf-command(install) Provides: dnf-command(list) Provides: dnf-command(makecache) Provides: dnf-command(mark) Provides: dnf-command(provides) Provides: dnf-command(reinstall) Provides: dnf-command(remove) Provides: dnf-command(repolist) Provides: dnf-command(repoquery) Provides: dnf-command(repository-packages) Provides: dnf-command(search) Provides: dnf-command(updateinfo) Provides: dnf-command(upgrade) Provides: dnf-command(upgrade-to) Conflicts: python2-dnf-plugins-core < %{conflicts_dnf_plugins_core_version} Conflicts: python3-dnf-plugins-core < %{conflicts_dnf_plugins_core_version} Conflicts: python2-dnf-plugins-extras < %{conflicts_dnf_plugins_extras_version} Conflicts: python3-dnf-plugins-extras < %{conflicts_dnf_plugins_extras_version} %description %{pkg_description} %package data Summary: Common data and configuration files for DNF Requires: libreport-filesystem Obsoletes: %{name}-conf <= %{version}-%{release} Provides: %{name}-conf = %{version}-%{release} %description data 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} >= 30 Conflicts: yum %else Conflicts: yum < 3.4.3-505 %endif %endif %description -n %{yum_subpackage_name} %{pkg_description} %if %{with python2} %package -n python2-%{name} Summary: Python 2 interface to DNF %{?python_provide:%python_provide python2-%{name}} BuildRequires: python2-devel BuildRequires: python2-hawkey >= %{hawkey_version} BuildRequires: python2-libdnf >= %{hawkey_version} BuildRequires: python2-libcomps >= %{libcomps_version} BuildRequires: python2-libdnf BuildRequires: python2-nose BuildRequires: libmodulemd >= %{libmodulemd_version} Requires: libmodulemd >= %{libmodulemd_version} %if (0%{?rhel} && 0%{?rhel} <= 7) BuildRequires: pygpgme Requires: pygpgme BuildRequires: python-enum34 Requires: python-enum34 %else BuildRequires: python2-gpg Requires: python2-gpg BuildRequires: python2-enum34 Requires: python2-enum34 %endif BuildRequires: pyliblzma Requires: pyliblzma Requires: %{name}-data = %{version}-%{release} %if 0%{?fedora} Recommends: deltarpm Recommends: python2-unbound %endif %if 0%{?centos} Requires: deltarpm %endif Requires: python2-hawkey >= %{hawkey_version} Requires: python2-libdnf >= %{hawkey_version} Requires: python2-libcomps >= %{libcomps_version} Requires: python2-libdnf %if 0%{?rhel} && 0%{?rhel} <= 7 BuildRequires: python-iniparse Requires: python-iniparse BuildRequires: rpm-python >= %{rpm_version} Requires: rpm-python >= %{rpm_version} %else BuildRequires: python2-iniparse Requires: python2-iniparse BuildRequires: python2-rpm >= %{rpm_version} Requires: python2-rpm >= %{rpm_version} Recommends: rpm-plugin-systemd-inhibit %endif Conflicts: dnfdaemon < %{conflicts_dnfdaemon_version} Conflicts: librepo < %{conflicts_librepo_version} %description -n python2-%{name} Python 2 interface to DNF. %endif # %%{with python2} %if %{with python3} %package -n python3-%{name} Summary: Python 3 interface to DNF %{?python_provide:%python_provide python3-%{name}} BuildRequires: python3-devel BuildRequires: python3-hawkey >= %{hawkey_version} BuildRequires: python3-libdnf >= %{hawkey_version} BuildRequires: python3-iniparse BuildRequires: python3-libcomps >= %{libcomps_version} BuildRequires: python3-libdnf BuildRequires: libmodulemd >= %{libmodulemd_version} Requires: libmodulemd >= %{libmodulemd_version} BuildRequires: python3-nose BuildRequires: python3-gpg Requires: python3-gpg Requires: %{name}-data = %{version}-%{release} %if 0%{?fedora} Recommends: deltarpm %endif %if 0%{?centos} Requires: deltarpm %endif Requires: python3-hawkey >= %{hawkey_version} Requires: python3-libdnf >= %{hawkey_version} Requires: python3-iniparse Requires: python3-libcomps >= %{libcomps_version} Requires: python3-libdnf BuildRequires: python3-rpm >= %{rpm_version} Requires: python3-rpm >= %{rpm_version} Recommends: python3-unbound %if 0%{?rhel} && 0%{?rhel} <= 7 Requires: rpm-plugin-systemd-inhibit %else Recommends: rpm-plugin-systemd-inhibit %endif %description -n python3-%{name} Python 3 interface to DNF. %endif %package automatic Summary: %{pkg_summary} - automated upgrades BuildRequires: systemd Requires: %{name} = %{version}-%{release} %{?systemd_requires} %description automatic Systemd units that can periodically download package upgrades and apply them. %prep %autosetup -p1 mkdir build-py2 mkdir build-py3 %build %if %{with python2} pushd build-py2 %cmake .. -DPYTHON_DESIRED:FILEPATH=%{__python2} %make_build make doc-man popd %endif %if %{with python3} pushd build-py3 %cmake .. -DPYTHON_DESIRED:FILEPATH=%{__python3} %make_build make doc-man popd %endif %install %if %{with python2} pushd build-py2 %make_install popd %endif %if %{with python3} pushd build-py3 %make_install popd %endif %find_lang %{name} mkdir -p %{buildroot}%{confdir}/vars mkdir -p %{buildroot}%{confdir}/aliases.d mkdir -p %{buildroot}%{pluginconfpath}/ mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules.d mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules.defaults.d %if %{with python2} mkdir -p %{buildroot}%{py2pluginpath}/ %endif %if %{with python3} mkdir -p %{buildroot}%{py3pluginpath}/__pycache__/ %endif ln -sr %{buildroot}%{confdir}/%{name}.conf %{buildroot}%{_sysconfdir}/yum.conf mkdir -p %{buildroot}%{_localstatedir}/log/ mkdir -p %{buildroot}%{_var}/cache/dnf/ touch %{buildroot}%{_localstatedir}/log/%{name}.log %if %{with python3} ln -sr %{buildroot}%{_bindir}/dnf-3 %{buildroot}%{_bindir}/dnf mv %{buildroot}%{_bindir}/dnf-automatic-3 %{buildroot}%{_bindir}/dnf-automatic ln -sr %{buildroot}%{_bindir}/dnf-3 %{buildroot}%{_bindir}/yum %else ln -sr %{buildroot}%{_bindir}/dnf-2 %{buildroot}%{_bindir}/dnf mv %{buildroot}%{_bindir}/dnf-automatic-2 %{buildroot}%{_bindir}/dnf-automatic %if 0%{?rhel} && 0%{?rhel} <= 7 ln -sr %{buildroot}%{_bindir}/dnf-2 %{buildroot}%{_bindir}/yum4 ln -sr %{buildroot}%{_mandir}/man8/dnf.8.gz %{buildroot}%{_mandir}/man8/yum4.8.gz rm -f %{buildroot}%{_mandir}/man8/yum.8.gz %else ln -sr %{buildroot}%{_bindir}/dnf-2 %{buildroot}%{_bindir}/yum %endif %endif rm -vf %{buildroot}%{_bindir}/dnf-automatic-* %if "%{yum_subpackage_name}" == "yum" mkdir -p %{buildroot}%{_sysconfdir}/yum ln -sr %{buildroot}%{pluginconfpath} %{buildroot}%{_sysconfdir}/yum/pluginconf.d ln -sr %{buildroot}%{confdir}/protected.d %{buildroot}%{_sysconfdir}/yum/protected.d ln -sr %{buildroot}%{confdir}/vars %{buildroot}%{_sysconfdir}/yum/vars %endif %check %if %{with python2} pushd build-py2 ctest -VV popd %endif %if %{with python3} pushd build-py3 ctest -VV popd %endif %post %systemd_post dnf-makecache.timer %preun %systemd_preun dnf-makecache.timer %postun %systemd_postun_with_restart dnf-makecache.timer %post automatic %systemd_post dnf-automatic.timer %systemd_post dnf-automatic-notifyonly.timer %systemd_post dnf-automatic-download.timer %systemd_post dnf-automatic-install.timer %preun automatic %systemd_preun dnf-automatic.timer %systemd_preun dnf-automatic-notifyonly.timer %systemd_preun dnf-automatic-download.timer %systemd_preun dnf-automatic-install.timer %postun automatic %systemd_postun_with_restart dnf-automatic.timer %systemd_postun_with_restart dnf-automatic-notifyonly.timer %systemd_postun_with_restart dnf-automatic-download.timer %systemd_postun_with_restart dnf-automatic-install.timer %files -f %{name}.lang %{_bindir}/%{name} %if 0%{?rhel} && 0%{?rhel} <= 7 %{_sysconfdir}/bash_completion.d/%{name} %else %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/%{name} %endif %{_mandir}/man8/%{name}.8* %{_mandir}/man8/yum2dnf.8* %{_unitdir}/%{name}-makecache.service %{_unitdir}/%{name}-makecache.timer %{_var}/cache/%{name}/ %files data %license COPYING PACKAGE-LICENSING %doc AUTHORS README.rst %dir %{confdir} %dir %{confdir}/modules.d %dir %{confdir}/modules.defaults.d %dir %{pluginconfpath} %dir %{confdir}/protected.d %dir %{confdir}/vars %dir %{confdir}/aliases.d %config(noreplace) %{confdir}/%{name}.conf %config(noreplace) %{confdir}/protected.d/%{name}.conf %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} %ghost %attr(644,-,-) %{_localstatedir}/log/hawkey.log %ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.log %ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.librepo.log %ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.rpm.log %ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.plugin.log %ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name} %ghost %attr(644,-,-) %{_sharedstatedir}/%{name}/groups.json %ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}/yumdb %ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}/history %{_mandir}/man5/%{name}.conf.5* %{_tmpfilesdir}/%{name}.conf %{_sysconfdir}/libreport/events.d/collect_dnf.conf %files -n %{yum_subpackage_name} %if "%{yum_subpackage_name}" == "yum" %{_bindir}/yum %{_mandir}/man8/yum.8* %{_sysconfdir}/yum.conf %{_sysconfdir}/yum/pluginconf.d %{_sysconfdir}/yum/protected.d %{_sysconfdir}/yum/vars %{_mandir}/man5/yum.conf.5.* %{_mandir}/man8/yum.8* %{_mandir}/man8/yum-shell.8* %{_mandir}/man1/yum-aliases.1* %else %exclude %{_mandir}/man8/yum-shell.8* %exclude %{_mandir}/man1/yum-aliases.1* %exclude %{_sysconfdir}/yum/pluginconf.d %exclude %{_sysconfdir}/yum/protected.d %exclude %{_sysconfdir}/yum/vars %endif %if "%{yum_subpackage_name}" == "nextgen-yum4" %{_bindir}/yum4 %{_mandir}/man8/yum4.8* %exclude %{_sysconfdir}/yum.conf %exclude %{_mandir}/man5/yum.conf.5.* %exclude %{_mandir}/man8/yum.8* %endif %if "%{yum_subpackage_name}" == "%{name}-yum" %{_bindir}/yum %{_mandir}/man8/yum.8* %if 0%{?fedora} >= 30 %{_sysconfdir}/yum.conf %{_mandir}/man5/yum.conf.5* %else %exclude %{_sysconfdir}/yum.conf %exclude %{_mandir}/man5/yum.conf.5* %endif %endif %if %{with python2} %files -n python2-%{name} %{_bindir}/%{name}-2 %exclude %{python2_sitelib}/%{name}/automatic %{python2_sitelib}/%{name}/ %dir %{py2pluginpath} %endif %if %{with python3} %files -n python3-%{name} %{_bindir}/%{name}-3 %exclude %{python3_sitelib}/%{name}/automatic %{python3_sitelib}/%{name}/ %dir %{py3pluginpath} %dir %{py3pluginpath}/__pycache__ %endif %files automatic %{_bindir}/%{name}-automatic %config(noreplace) %{confdir}/automatic.conf %{_mandir}/man8/%{name}.automatic.8* %{_unitdir}/%{name}-automatic.service %{_unitdir}/%{name}-automatic.timer %{_unitdir}/%{name}-automatic-notifyonly.service %{_unitdir}/%{name}-automatic-notifyonly.timer %{_unitdir}/%{name}-automatic-download.service %{_unitdir}/%{name}-automatic-download.timer %{_unitdir}/%{name}-automatic-install.service %{_unitdir}/%{name}-automatic-install.timer %if %{with python3} %{python3_sitelib}/%{name}/automatic/ %else %{python2_sitelib}/%{name}/automatic/ %endif %changelog * Thu Feb 25 2021 Daniel Mach - 4.0.9.2-2 - Add conflict with librepo < 1.8.1 to enforce librepo upgrade (RhBug:1932228) * Tue Jan 08 2019 Daniel Mach - 4.0.9.2-1 - Update to 4.0.9.2 * Thu Nov 08 2018 Jaroslav Mracek - 2.7.5-19 - Backport patches for RHBZ#1643129 from upstream dnf-2-modularity * Mon Sep 24 2018 Marek Blaha - 2.7.5-18 - Exclude system and commandline pkg from filtering (RhBug:1630226) * Mon Jul 23 2018 Marek Blaha - 2.7.5-17 - Rename yum4 subpackage to nextgen-yum4 - Correct Source0 URL * Tue May 29 2018 Martin Hatina - 2.7.5-16 - Apply util-Correctly-source-errno.EEXIST patch * Mon May 28 2018 Martin Hatina - 2.7.5-15 - Do not require libdnf * Fri May 25 2018 Martin Hatina - 2.7.5-14 - Fix patch applying. * Fri May 25 2018 Martin Hatina - 2.7.5-13 - Rebase to dnf from dnf-2-modularity-6 release. * Wed Apr 18 2018 Daniel Mach - 2.7.5-12 - Fix defaults loading. * Tue Apr 17 2018 Martin Hatina - 2.7.5-11 - Rebase to dnf from dnf-2-modularity-4 release. * Mon Mar 26 2018 Martin Hatina - 2.7.5-10 - Require libmodulemd. * Mon Mar 26 2018 Martin Hatina - 2.7.5-9 - Rebase to dnf from dnf-2-modularity-3 release. * Mon Feb 12 2018 Daniel Mach - 2.7.5-8 - Rebase to dnf from dnf-2-modularity branch. * Thu Feb 08 2018 Igor Gnatenko - 2.7.5-7 - Demote deltarpm to weak dependencies * Wed Feb 07 2018 Fedora Release Engineering - 2.7.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Wed Jan 03 2018 Igor Gnatenko - 2.7.5-5 - Use %%systemd_requires - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) * Wed Nov 29 2017 Jaroslav Mracek - 2.7.5-4 - Fix problem with demands.cacheonly that caused problems for system-upgrade * Tue Nov 07 2017 Igor Gnatenko - 2.7.5-3 - Remove platform-python subpackage * Fri Oct 27 2017 Igor Gnatenko - 2.7.5-2 - Enable usage of rich deps for NM integration * Wed Oct 18 2017 Igor Gnatenko - 2.7.5-1 - Improve performance for excludes and includes handling (RHBZ #1500361) - Fixed problem of handling checksums for local repositories (RHBZ #1502106) - Fix traceback when using dnf.Base.close() (RHBZ #1503575) * Mon Oct 16 2017 Jaroslav Mracek - 2.7.4-1 - Update to 2.7.4-1 - Enhanced performance for excludes and includes handling - Solved memory leaks at time of closing of dnf.Base() - Resolves: rhbz#1480979 - I thought it abnormal that dnf crashed. - Resolves: rhbz#1461423 - Memory leak in python-dnf - Resolves: rhbz#1499564 - dnf list installed crashes - Resolves: rhbz#1499534 - dnf-2 is much slower than dnf-1 when handling groups - Resolves: rhbz#1499623 - Mishandling stderr vs stdout (dnf search, dnf repoquery) * Fri Oct 06 2017 Igor Gnatenko - 2.7.3-1 - Fix URL detection (RHBZ #1472847) - Do not remove downloaded files with --destdir option (RHBZ #1498426) - Fix handling of conditional packages in comps (RHBZ #1427144) * Mon Oct 02 2017 Jaroslav Mracek - 2.7.2-1 - Update to 2.7.2-1 - Added new option ``--comment=`` that adds a comment to transaction in history - :meth:`dnf.Base.pre_configure_plugin` configure plugins by running their pre_configure() method - Added pre_configure() methotd for plugins and commands to configure dnf before repos are loaded - Resolves: rhbz#1421478 - dnf repository-packages: error: unrecognized arguments: -x rust-rpm-macros - Resolves: rhbz#1491560 - 'dnf check' reports spurious "has missing requires of" errors - Resolves: rhbz#1465292 - DNF remove protected duplicate package - Resolves: rhbz#1279001 - [RFE] Missing dnf --downloaddir option - Resolves: rhbz#1212341 - [RFE] Allow plugins to override the core configuration - Resolves: rhbz#1299482 - mock --init fails with message "Failed calculating RPMDB checksum" - Resolves: rhbz#1488398 - dnf upstream tests failures on f26 - Resolves: rhbz#1192811 - dnf whatprovides should show which provides matched a pattern - Resolves: rhbz#1288845 - "dnf provides" wildcard matching is unreliable (not all packages with matches listed) - Resolves: rhbz#1473933 - [abrt] dnf-automatic: resolved(): rpm_conf.py:58:resolved:AttributeError: 'Rpmconf' object has no attribute '_interactive' - Resolves: rhbz#1237349 - dnf autoremove not removing what dnf list extras shows - Resolves: rhbz#1470050 - the 'priority=' option in /etc/yum.repos.d/*.repo is not respected - Resolves: rhbz#1347927 - dnf --cacheonly downloads packages - Resolves: rhbz#1478115 - [abrt] dnf: _hcmd_undo(): __init__.py:888:_hcmd_undo:IndexError: list index out of range - Resolves: rhbz#1461171 - RFE: support --advisory= with install - Resolves: rhbz#1448874 - "dnf needs-restarting" vanished from bash completion - Resolves: rhbz#1495116 - Dnf version fails with traceback in container * Mon Aug 07 2017 Jaroslav Mracek 2.6.3-1 - Fix problem with dnf.Package().remote_location() (RhBug:1476215) (Jaroslav Mracek) - Change behavior of -C according to documentation (RhBug:1473964) (Jaroslav Mracek) - It should prevent to ask attribute of None (RhBug:1359482) (Jaroslav Mracek) - Solve a problems with --arch options (RhBug:1476834) (Jaroslav Mracek) - Use security plugin code for dnf-automatic (Jaroslav Mracek) - Fix unicode error for python2 (Jaroslav Mracek) - Inform about packages installed for group (Jaroslav Mracek) - Provide info if pkg is removed due to dependency (RhBug:1244755) (Jaroslav Mracek) - Unify format of %%{_mandir} paths in dnf.spec (Jaroslav Mracek) - Remove test_yumlayer.py as unneeded test (Jaroslav Mracek) - Provide yum4 package for rhel7 build (Jaroslav Mracek) - Make yum compatible layer very minimal (RhBug:1476748) (Jaroslav Mracek) - Remove metadata_expire from yum compatible layer (Jaroslav Mracek) - Remove keepcache from yum compatibility layer (Jaroslav Mracek) - Remove options from yum conf (Jaroslav Mracek) - Remove unused functionality from yum compatible layer (Jaroslav Mracek) - Add deplist command for dnf (Jaroslav Mracek) - Fix problems with --downloaddir options (RhBug:1476464) (Jaroslav Mracek) - Move description of --forcearch into proper place (Jaroslav Mracek) - Provide description of --downloaddir option (Jaroslav Mracek) - Fix if in spec file (Jaroslav Mracek) - Add description of "test" tsflags (Jaroslav Mracek) - Enable import gpg_keys with tsflag test (RhBug:1464192) (Jaroslav Mracek) - Keep old reason when undoing erase (RhBug:1463107) (Eduard Čuba) - spec: eliminate other weak dependencies for el<=7 (Igor Gnatenko) - spec: do not strongly require inhibit plugin (Igor Gnatenko) - Inform that packages are only downloaded (RhBug:1426196) (Jaroslav Mracek) - Move releasever check after the etc/dnf/vars substitutions. (Alexander Kanavin) - Provide substitution for Repodict.add_new_repo() (RhBug:1457507) (Jaroslav Mracek) * Mon Jul 24 2017 Jaroslav Mracek 2.6.2-1 - Remove autodeglob optimization (Jaroslav Rohel) - Integrate --destdir with --destdir from download plugin (Ondřej Sojka) - Add CLI option --destdir (RhBug:1279001) (Ondřej Sojka) - Add myself to the AUTHORS file (Nathaniel McCallum) - Add the --forcearch CLI flag (Nathaniel McCallum) - Add 'ignorearch' option (Nathaniel McCallum) - Provide an API for setting 'arch' and 'basearch' (Nathaniel McCallum) - Add nevra forms for repoquery command (Jaroslav Rohel) - Fix UnicodeDecodeError during checkSig() on non UTF-8 locale (RhBug:1397848) (Jaroslav Rohel) - Add dnf option --noautoremove (RhBug:1361424) (Jaroslav Mracek) - Add group argument for mark command (Jaroslav Mracek) - Report problems for each pkg during gpgcheck (RhBug:1387925) (Jaroslav Mracek) - fix minor spelling mistakes (René Genz) - Print warning when wrong delimiter in cache (RhBug:1332099) (Vítek Hoch) - Fix the loading of config for dnf-automatic command_email (RhBug:1470116) (Jaroslav Rohel) - Enable download progress bar if redirected output (RhBug:1161950) (Jaroslav Mracek) - Support short abbrevations of commands (RhBug:1320254) (Vítek Hoch) - Remove unused variables kwargs (Jaroslav Mracek) - Not reinstall packages if install from repository-pkgs used (Jaroslav Mracek) - bump dnf version to 2.6.0 (Igor Gnatenko) - spec: use python2- prefix for hawkey (Igor Gnatenko) - spec: use sphinx-build binary rather than package name (Igor Gnatenko) - spec: python-bugzilla is not needed for building (Igor Gnatenko) - spec: fix instructions about generating tarball (Igor Gnatenko) - po: Update translations (Igor Gnatenko) - Add an example of installation without weak-deps (RhBug:1424723) (Jaroslav Mracek) - Add detection if mirrorlist is used for metalink (Jaroslav Mracek) - Rename variable (Jaroslav Mracek) - Add --groupmember option to repoquery (RhBug:1462486) (Jaroslav Mracek) - Check checksum for local repositories (RhBug:1314405) (Jaroslav Mracek) - Spelling fixes (Ville Skyttä) - repoquery --obsoletes prints obsoletes (RhBug:1457368) (Matěj Cepl) - Provide pkg name hint for icase (RhBug:1339280) (RhBug:1138978) (Jaroslav Mracek) - Return only latest pkgs for "dnf list upgrades" (RhBug:1423472) (Jaroslav Mracek) - cleanup code not executed in case of exception (Marek Blaha) - Allow to modify message for user confirmation (Jaroslav Mracek) - Add autocheck_running_kernel config option (Štěpán Smetana) - Inform about skipped packages for group install (RhBug:1427365) (Jaroslav Mracek) - Remove group remove unneeded pkgs (RhBug:1398871) (RhBug:1432312) (Jaroslav Mracek) - po: update translations (Igor Gnatenko) * Mon Jun 12 2017 Jaroslav Mracek 2.5.1-1 - bump version to 2.5.1 + update release notes (Jaroslav Mracek) - Fix: dnf update --refresh fails for repo_gpgcheck=1 (RhBug:1456419) (Daniel Mach) - Don't try to cut datetime message (Jaroslav Rohel) - Use localized datetime format (RhBug:1445021) (Jaroslav Rohel) - Work with locale date (Jaroslav Rohel) - Use ISO 8601 time format in logfile (Jaroslav Rohel) - Add unitest to prevent callbacks breakage (Jaroslav Mracek) - Provide compatibility for tools that do not use total_drpms (Jaroslav Mracek) - Requires strict usage of repoquery --recursive (Jaroslav Mracek) - Fix output for --resolve with --installed for repoquery (Jaroslav Mracek) - Remove unnecessary inheritance of yum conf options (Martin Hatina) - Remove alwaysprompt option support (RhBug:1400714) (Jaroslav Rohel) - Allow to install groups with multilib_policy=all (RhBug:1250702) (Jaroslav Mracek) - Redesign Base.install() to provide alternatives (Jaroslav Mracek) - Report excludes includes into logger.debug (RhBug:1381988) (Jaroslav Mracek) - Provide new API to parse string to NEVRA () (Jaroslav Mracek) - Add more repoquery querytags (Jaroslav Rohel) - Not hide tracebacks (Jaroslav Mracek) - Solve error handling for get attr in yumdb (RhBug:1397848) (Jaroslav Mracek) - Provide a better error if throttle to low (RhBug:1321407) (Jaroslav Mracek) - Change timeout to 30s (RhBug:1291867) (Jaroslav Mracek) - Add pre_transaction hook for plugins (Jaroslav Rohel) - Not download metadata if "dnf history [info|list|userinstalled]" (Jaroslav Mracek) - Not download metadata if "dnf repo-pkgs list --installed" (Jaroslav Mracek) - Not download metadata if "dnf list --installed" (RhBug:1372895) (Jaroslav Mracek) - Format pkg str for repoquery --tree due to -qf (RhBug:1444751) (Jaroslav Mracek) * Mon May 22 2017 Jaroslav Mracek 2.5.0-1 - Update release notes (Jaroslav Mracek) - Change documentation for history --userinstalled (RhBug:1370062) (Jaroslav Mracek) - Change example to install plugin using versionlock (Jaroslav Mracek) - Remove unused method Goal.best_run_diff() (Jaroslav Mracek) - Change recommendations if some problems appear (RhBug:1293067) (Jaroslav Mracek) - Report problems for goals with optional=True (Jaroslav Mracek) - Format resolve problem messages in method in dnf.util (Jaroslav Mracek) - Enhance reports about broken dep (RhBug:1398040)(RhBug:1393814) (Jaroslav Mracek) - search: do not generate error if not match anything (RhBug:1342157) (Jaroslav Rohel) - Check if any plugin is removed in transaction (RhBug:1379906) (Jaroslav Mracek) - Show progress for DRPM (RhBug:1198975) (Jaroslav Mracek) - Fix disabledplugin option (Iavael) - [history]: fixed info command merged output (Eduard Čuba) * Thu May 11 2017 Jaroslav Mracek 2.4.1-1 - bump version to 2.4.1 + update release notes (Jaroslav Mracek) - goal: do not mark weak dependencies as userinstalled (Igor Gnatenko) - fix typo in supplements (RhBug:1446756) (Igor Gnatenko) - Describe present behavior of installonly_limit conf option (Jaroslav Mracek) - Reset all transaction for groups if Base.reset() (RhBug:1446432) (Jaroslav Mracek) - Explain how add negative num for --latest-limit (RhBug:1446641) (Jaroslav Mracek) - trivial: don't duplicate option names (Igor Gnatenko) - Add support for --userinstalled for repoquery command (RhBug:1278124) (Jaroslav Rohel) - Fix header of search result sections (RhBug:1301868) (Jaroslav Rohel) - Filter out src for get_best_selector (Jaroslav Mracek) - Add minor changes in formating of documentation (Jaroslav Mracek) * Tue May 02 2017 Jaroslav Mracek 2.4.0-1 - po: Update translations (Igor Gnatenko) - po: Update translations (Igor Gnatenko) - introduce '--enableplugin' option (Martin Hatina) - Improve detection of file patterns (Jaroslav Mracek) - Add method _get_nevra_solution() for subject (Jaroslav Mracek) - Do not add "*" into query filter in _nevra_to_filters() (Jaroslav Mracek) - Remove usage of nevra_possibilities_real() (Jaroslav Mracek) - Increase performance for downgrade_to() (Jaroslav Mracek) - Add additional keys for get_best_query() (Jaroslav Mracek) - Increase performance for get_best_selector() (Jaroslav Mracek) - Increase performance for get_best_query() (Jaroslav Mracek) - Fix "Package" text translation (RhBug:1302935) (Jaroslav Rohel) - Create a warning if releasever is None (Jaroslav Mracek) - Adds cost, excludepkgs, and includepkgs to Doc (RhBug:1248684) (Jaroslav Mracek) - Change auto-detection of releasever in empty installroot (Jaroslav Mracek) - Do not load system repo for makecache command (RhBug:1441636) (Jaroslav Mracek) - Do not raise assertion if group inst and rmv pkgs (RhBug:1438438) (Jaroslav Mracek) - yum layer using python3 (Martin Hatina) - Filter url protocols for baseurl in Package.remote_location (Jaroslav Mracek) - Add armv5tl to arm basearch (Neal Gompa) - Setup additional parameters for handler for remote packages (Jaroslav Mracek) - Use same method for user/password setting of every librepo.handle (Jaroslav Mracek) - Fix PEP8 violations and remove unused import (Jaroslav Mracek) - Handle unknown file size in download progress (Jaroslav Mracek) - Allow to delete cashed files from command line by clean command (Jaroslav Mracek) - Save command line packages into chachedir (RhBug:1256313) (Jaroslav Mracek) - Add progress bar for download of commandline pkgs (RhBug:1161950) (Jaroslav Mracek) - Fix minor typo Closes: #781 Approved by: ignatenkobrain (Yuri Chornoivan) - Mark unremoved packages as failed (RhBug:1421244) (Jaroslav Mracek) * Mon Apr 10 2017 Jaroslav Mracek 2.3.0-1 - update release notes (Jaroslav Mracek) - po: Update translations (Igor Gnatenko) - Add require of subcommand for repo-pkgs command (Jaroslav Rohel) - shell: Fix commands initialization (Jaroslav Rohel) - po: Update translations (Igor Gnatenko) - Add support for --location for repoquery command (RhBug:1290137) (Jaroslav Mracek) - Add support of --recursive with --resolve in repoquery (Jaroslav Mracek) - Add --recursive option for repoquery (Jaroslav Mracek) - Add --whatconflicts for repoquery (Jaroslav Mracek) - Add support for multiple options for repoquery (Jaroslav Mracek) - Add multiple format option for repoquery (Jaroslav Mracek) - Fix problem with "dnf repoquery --querytags" (Jaroslav Mracek) - Add support of 3 options into updateinfo command (Jaroslav Mracek) - Add inheritance of reason for obsoleting packages (Jaroslav Mracek) - Mark installonlypkgs correctly as user installed (RhBug:1349314) (Jaroslav Mracek) - Solve a problem with None names in callbacks (Jaroslav Mracek) - Solve a problem for callbacks (Jaroslav Mracek) - Revert "remove: CLI: --randomwait" (RhBug:1247122) (Ondřej Sojka) - po: update translations (Igor Gnatenko) - po: update translations (Igor Gnatenko) - Set strings for translations (RhBug:1298717) (Jaroslav Mracek) * Mon Mar 27 2017 Jaroslav Mracek 2.2.0-1 - bump version to 2.2.0 + update release notes (Jaroslav Mracek) - Add documentation of new API callback actions (RhBug:1411432) (Jaroslav Mracek) - Fix python2 doesn't have e.__traceback__ attribute (Jaroslav Mracek) - Do not report erasing package as None. (Jaroslav Mracek) - Display scriplet for transaction (RhBug:1411423) (RhBug:1406130) (Jaroslav Mracek) - Add support for rpmcallbacks (Jaroslav Mracek) - AUTHORS: updated (Jaroslav Rohel) - Not show expiration check if no repo enabled (RhBug:1369212) (Jaroslav Mracek) - Fix changelog in dnf spec file (Jaroslav Mracek) - po: update translations (Igor Gnatenko) - Add myself (mhatina) to AUTHORS (Martin Hatina) - po: Update translations (Igor Gnatenko) * Tue Mar 21 2017 Jaroslav Mracek 2.1.1-1 - bump version to 2.1.1 + update release notes (Jaroslav Mracek) - Sync the translation with locale (Jaroslav Rohel) - Disable exceptions in logging (Jaroslav Rohel) - Fix severity info in "updateinfo info" (Jaroslav Mracek) - Add help for shell commands (Jaroslav Rohel) - shell: no crash if missing args (Jaroslav Rohel) - proper check of releasever, when using installroot (RhBug:1417542) (Martin Hatina) - Inform about "Cache was expired" with "dnf clean" (RhBug:1401446) (Jaroslav Mracek) - crypto: port to the official gpgme bindings (Igor Gnatenko) - Fix doc example for `fill_sack` method (Lubomír Sedlář) - po: update translations (Igor Gnatenko) - Not try to install src package (RhBug:1416699) (Jaroslav Mracek) - Add usage for add_new_repo() with repofrompath option (Jaroslav Mracek) - Add new API add_new_repo() in RepoDict() (RhBug:1427132) (Jaroslav Mracek) - docs: adds documentation for dnf-automatic's Command and CommandEmail emitters. (rhn) - docs: fixes typo in section description in automatic (rhn) - Adds new emitters for dnf-automatic. (rhn) - po: update translations (Igor Gnatenko) - Ensure that callback will not kill dnf transaction (Jaroslav Mracek) - Ensure that name will be not requested on None (RhBug:1397047) (Jaroslav Mracek) - Python 3.6 invalid escape sequence deprecation fix (Ville Skyttä) - display severity information in updateinfo (#741) (Michael Mraka) - po: update translations (Igor Gnatenko) - Add --nodocs option for dnf (RhBug:1379628) (Jaroslav Mracek) - Replace passive plugin noroot (Jaroslav Mracek) - Fix incorrect formating of string for logger.info (Jaroslav Mracek) - Not print help if empty line in script for shell command (Jaroslav Mracek) - Run fill_sack after all repos have changed status (Jaroslav Mracek) - Remove Hawkey object from repo if rerun of dnf.fill_sack (Jaroslav Mracek) - util/on_metered_connection: be more polite to failures (Igor Gnatenko) - cosmetic: i18n: rewording of 'Login user' (RhBug:1424939) (Jan Silhan) - Fix problem with --whatprovides in repoquery (RhBug:1396992) (Jaroslav Mracek) - Add -a and --all option for repoquery (RhBug:1412970) (Jaroslav Mracek) - Change camel-case of output of grouplist (Jaroslav Mracek) - Minor correction in release notes (Jaroslav Mracek) - Minor correction in release notes (Jaroslav Mracek) * Thu Feb 16 2017 Jaroslav Mracek 2.1.0-1 - bump version to 2.1.0 + update release notes (Jaroslav Mracek) - Fix problem with --recent option in repoquery (Jaroslav Mracek) - Fix problem with duplicated --obsoletes (RhBug:1421835) (Jaroslav Mracek) - Python 3.6 invalid escape sequence deprecation fixes (Ville Skyttä) - Add --repoid as alias for --repo (Jaroslav Mracek) - introduce dnf.base.Base.update_cache() (Martin Hatina) - Try to install uninstalled packages if group installed (Jaroslav Mracek) - Enable search of provides in /usr/(s)bin (RgBug:1421618) (Jaroslav Mracek) - style: ignore E261 (Igor Gnatenko) - makecache: do not run on metered connections (RhBug:1415711) (Igor Gnatenko) - change '--disableplugins' to '--disableplugin' (Martin Hatina) - cosmetic: removed unused import (Jan Silhan) - show hint how to display why package was skipped (RhBug:1417627) (Jan Silhan) - spec: add information how to obtain archive (Igor Gnatenko) - fix messages (UX) (Jaroslav Rohel) - zanata update (Jan Silhan) * Thu Feb 09 2017 Jaroslav Mracek 2.0.1-1 - bump version to 2.0.1 + update release notes (Jaroslav Mracek) - introduce cli 'obsoletes' option (Martin Hatina) - swap tids if they are in wrong order (RhBug:1409361) (Michael Mraka) - Disable shell command recursion (Jaroslav Rohel) - Honor additional arguments for DNF shell repo list command (Jaroslav Rohel) - don't traceback when bug title is not set (Michael Mraka) - introducing list-security, info-security etc. commands (Michael Mraka) - Add lsedlar to contributors list (Lubomír Sedlář) - Return just name from Package.source_name (Lubomír Sedlář) - introduce dnf.conf.config.MainConf.exclude() (Martin Hatina) - systemd: Disable daemons on ostree-managed systems (Colin Walters) - introduced dnf.base.Base.autoremove() (RhBug:1414512) (Martin Hatina) - po: update translations (Igor Gnatenko) - build: use relative directory for translations (Igor Gnatenko) - Temporary eliminate a problem with install remove loop (Jaroslav Mracek) - Handle info message when DRPM wastes data (RhBug:1238808) (Daniel Aleksandersen) - Fix output for better translation (RhBug:1386085) (Abhijeet Kasurde) - yum layer refactored (Martin Hatina) - return values changed to match yum's (Martin Hatina) - Reword sentence after removing package (RhBug:1286553) (Abhijeet Kasurde) - Minor documentation revisions (Mark Szymanski) - Minor code fix (Abhijeet Kasurde) - automatic: email emitter date header (David Greenhouse) - Solve problem when no repo and only rpms with upgrade command (Jaroslav Mracek) - bash_completion: use system-python if it's available (Igor Gnatenko) - spec: use system-python for dnf-yum as well (Igor Gnatenko) - comps/groups: fix tests (Michal Luscon) - comps: adjust group_upgrade to new CompsTransPkg style (Michal Luscon) - groups: refactored installation (RhBug:1337731, RhBug:1336879) (Michal Luscon) - Increase requirement for hawkey (Jaroslav Mracek) - Change reporting problems for downgradePkgs() (Jaroslav Mracek) - Use selector for base.package_upgrade() (Jaroslav Mracek) - Add usage of selectors for base.package_install() (Jaroslav Mracek) - Use selector for base.package_downgrade() (Jaroslav Mracek) - Redirect base.downgrade() to base.downgrade_to() (Jaroslav Mracek) - Enable wildcard for downgrade command (RhBug:1173349) (Jaroslav Mracek) - Refactor downgrade cmd behavior (RhBug:1329617)(RhBug:1283255) (Jaroslav Mracek) - Redirect logger.info into stderr for repolist (RhBug:1369411) (Jaroslav Mracek) - Redirect logger.info into stderr for repoquery (RhBug:1243393) (Jaroslav Mracek) - Add possibility for commands to redirect logger (Jaroslav Mracek) - Put information about metadata expiration into stdout (Jaroslav Mracek) - Change warning about added repo into info (RhBug:1243393) (Jaroslav Mracek) - Move grouplist output from logger into stdout (Jaroslav Mracek) - let repo exclude work the same way as global exclude (Michael Mraka) - Fix wrong assumptions about metalinks (RhBug:1411349) (Jaroslav Mracek) - handle --disablerepo/--enablerepo properly with strict (RhBug:1345976) (Štěpán Smetana) - Add fix to notify user about no repos (RhBug:1369212) (Abhijeet Kasurde) - Add information about "hidden" option in dnf doc (RhBug:1349247) (Abhijeet Kasurde) - Fix for 'history package-list' (Amit Upadhye) - Enable multiple args for repoquery -f (RhBug:1403930) (Jaroslav Mracek) - Set default repo.name as repo._section (Jaroslav Mracek) - Create from self.forms value forms in cmd.run() (Jaroslav Mracek) - Add description of swap command into documentation (Jaroslav Mracek) - Add swap command (RhBug:1403465) (RhBug:1110780) (Jaroslav Mracek) - Solve a problem with shell when empty line or EOF (Jaroslav Mracek) - shell: add history of commands (RhBug:1405333) (Michal Luscon) - Add info if no files with repoquery -l (RhBug:1254879) (Jaroslav Mracek) - po: update translations (Igor Gnatenko) - po: migrate to zanata python client and trivial fixes in build (Igor Gnatenko) - po: include all possible languages from zanata (Igor Gnatenko) - po: include comments for translations (Igor Gnatenko) - shell: catch exceptions from depsolving (Michal Luscon) - shell: update documentation (Michal Luscon) - shell: add transaction reset cmd (Michal Luscon) - shell: add transaction resolve cmd (Michal Luscon) - shell: provide rewritable demands for cmds (Michal Luscon) - shell: catch tracebacks from shlex (Michal Luscon) - shell: handle ctrl+D more gracefully (Michal Luscon) - groups: set demands in configure instead of run (Michal Luscon) - shell: implement config cmd (Michal Luscon) - shell: add help (Michal Luscon) - shell: make alias repo list -> repolist (Michal Luscon) - shell: catch exceptions from do_transaction (Michal Luscon) - shell: resolve transaction in ts run (Michal Luscon) - shell: add default value for internal methods argument (Michal Luscon) - shell: create run alias for ts run (Michal Luscon) - shell: add ts list cmd (Michal Luscon) - shell: refill sack after every successful repo cmd (Michal Luscon) - shell: allow running multiple transaction in one session (Michal Luscon) - shell: add ts command (Michal Luscon) - shell: catch cmd parsing and run exceptions (Michal Luscon) - shell: allow to run scripts (Michal Luscon) - shell: add repo cmd (Michal Luscon) - shell: add resolving + transaction run support (Michal Luscon) - shell: implement quit method (Michal Luscon) - shell: add custom cmds stubs (Michal Luscon) - shell: implement basic logic (Michal Luscon) - shell: register new cmd (Michal Luscon) * Wed Dec 14 2016 Michal Luscon 2.0.0-1 - tests: catch ModuleNotFoundError as well (Igor Gnatenko) - Switch out automatic service for automatic-download and automatic-install (Pat Riehecky) - Make upgrade-to alias for upgrade (RhBug:1327999) (Jaroslav Mracek) - skip appending an empty option (RhBug: 1400081) (Michael Mraka) - Add description of nevra foems for commands and autoremove args (Jaroslav Mracek) - Add support of arguments nevra forms for autoremove command (Jaroslav Mracek) - Add nevra forms for remove command (Jaroslav Mracek) - Add nevra forms for install command (Jaroslav Mracek) - add bin/yum into .gitignore (Michal Luscon) - clean: acquire all locks before cleaning (RhBug:1293782) (Michal Luscon) - Change hawkey version requirement (Jaroslav Mracek) - Add information for translators (RhBug:1386078) (Jaroslav Mracek) - Change info to warning for clean repoquery output (RhBug:1358245) (Jaroslav Mracek) - Add description of pkg flag for Query (RhBug:1243393) (Jaroslav Mracek) - Add minor changes in documentation (Jaroslav Mracek) - Do not always overwrite the name with the repo ID (Neal Gompa) * Fri Dec 02 2016 Martin Hatina 2.0.0-0.rc2.1 - See http://dnf.readthedocs.io/en/latest/release_notes.html * Thu Sep 29 2016 Michal Luscon 2.0.0-0.rc1.1 - See http://dnf.readthedocs.io/en/latest/release_notes.html