Description of problem: dnf-plugins-core 3.x provided a dnf-utils package for compatibility with older yum commands. It is no longer provided by 4.0.0 and the upgrade path is broken. Version-Release number of selected component (if applicable): dnf-plugins-core-4.0.0-1.fc29 How reproducible: Every time Steps to Reproduce: 1. Install dnf-utils on F29 2. Update to dnf-plugins-core-4.0.0 Actual results: Problem: problem with installed package dnf-utils-3.0.4-1.fc29.noarch - package dnf-utils-3.0.4-1.fc29.noarch requires dnf-plugins-core = 3.0.4-1.fc29, but none of the providers can be installed - cannot install both dnf-plugins-core-4.0.0-1.fc29.noarch and dnf-plugins-core-3.0.4-1.fc29.noarch - cannot install the best update candidate for package dnf-plugins-core-3.0.4-1.fc29.noarch Expected results: Successful upgrade. Either a newer dnf-utils or a properly-obsoleted package. Additional info:
We're completely missing all the binaries provided by dnf-utils, which is problematic for tooling/integration stuff.
It looks like this change was brought on by the reworking of the bconds upstream to make dnf-utils only available when yum-utils was being obsoleted. This is the wrong behavior, and makes it so dnf-utils doesn't exist at all in F29. yum-utils already suffixes its man pages and binaries with -deprecated so that both can live in parallel. For F29, we just need dnf-utils restored without the yum-utils Obsoletes+Provides statements.
This is real issue
The fix is trivial. See patch below. If there are no objections, I'll apply the patch to dist-git (master, fc29 branches), trigger builds and edit the update. Scratch build (fc29): https://koji.fedoraproject.org/koji/taskinfo?taskID=30287471 *** commit 2fbfd42b91fde585b2b568ecfa0bd6b22165d774 (HEAD -> master) Author: Björn Esser <besser82> Date: Wed Oct 17 13:29:12 2018 +0200 Fix dnf-utils package being dropped for Fedora 29 (RhBug:1639467) diff --git a/dnf-plugins-core.spec b/dnf-plugins-core.spec index ee1b377..3f53225 100644 --- a/dnf-plugins-core.spec +++ b/dnf-plugins-core.spec @@ -13,12 +13,16 @@ %bcond_without yumcompatibility %else %bcond_without python2 +%if 0%{?fedora} >= 29 +%bcond_without yumcompatibility +%else %bcond_with yumcompatibility %endif +%endif Name: dnf-plugins-core Version: 4.0.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Core Plugins for DNF License: GPLv2+ URL: https://github.com/rpm-software-management/dnf-plugins-core @@ -139,7 +143,7 @@ reposync commands. Additionally provides generate_completion_cache passive plugi %if %{with yumcompatibility} %package -n dnf-utils -Conflicts: yum-utils < 1.1.31-513 +Conflicts: yum-utils < 1.1.31-518 %if 0%{?rhel} != 7 Provides: yum-utils = %{version}-%{release} %endif @@ -643,6 +647,9 @@ PYTHONPATH=./plugins nosetests-%{python3_version} -s tests/ %endif %changelog +* Wed Oct 17 2018 Björn Esser <besser82> - 4.0.0-2 +- Fix dnf-utils package being dropped for Fedora 29 (RhBug:1639467) + * Mon Oct 15 2018 Jaroslav Mracek <jmracek> - 4.0.0-1 - Update to 4.0.0 - Enhance documentation
Here is a patch (https://github.com/rpm-software-management/dnf-plugins-core/pull/298). After merge I will release it immediately.
Here is a build (https://koji.fedoraproject.org/koji/taskinfo?taskID=30287543) and I am going to update a bodhi update.
This patch is needed for yum-utils to prevent clashes with dnf-utils: *** commit a1c76d6394e1464cb21c65ad065598c234214b95 Author: Björn Esser <besser82> Date: Wed Oct 17 14:20:27 2018 +0200 Add deprectated suffix to binaries and manpages to prevent clashes on Fedora >= 29 diff --git a/yum-utils.spec b/yum-utils.spec index 37d2d5c..be4b601 100644 --- a/yum-utils.spec +++ b/yum-utils.spec @@ -7,10 +7,16 @@ %{!?python_sitelib: %define python_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %define pluginhome /usr/lib/yum-plugins +%if 0%{?fedora} >= 29 +%global prg_suffix -deprecated +%endif + +%global __python %{__python2} + Summary: Utilities based around the yum package manager Name: yum-utils Version: 1.1.31 -Release: 517%{?dist} +Release: 518%{?dist} License: GPLv2+ Group: Development/Tools Source: http://yum.baseurl.org/download/yum-utils/%{name}-%{version}.tar.gz @@ -435,6 +441,19 @@ install -m 644 versionlock/versionlock.list $RPM_BUILD_ROOT/%{_sysconfdir}/yum/p mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/yum.repos.d touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo +# add suffix to prevent clashes on Fedora >= 29. +%if 0%{?prg_suffix:1} +for f in $RPM_BUILD_ROOT%{_bindir}/*; do + mv -f $f $f%{prg_suffix} +done +for f in $RPM_BUILD_ROOT%{_mandir}/man1/*; do + mv -f $f $(echo $f | sed -e 's!\.1$!%{prg_suffix}.1!g') +done +%endif + +# use explicit python2 shebang. +grep -Rl '#!.*/usr/bin/python' $RPM_BUILD_ROOT | \ +xargs sed -i -e 's~#!.*/usr/bin/python~#!%{__python2}~g' %check # To execute: ./test/test-all @@ -446,60 +465,60 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %doc COPYING %doc plugins/README %{_sysconfdir}/bash_completion.d -%{_bindir}/debuginfo-install -%{_bindir}/find-repos-of-install -%{_bindir}/needs-restarting -%{_bindir}/package-cleanup -%{_bindir}/repoclosure -%{_bindir}/repodiff -%{_bindir}/repomanage -%{_bindir}/repoquery -%{_bindir}/repotrack -%{_bindir}/reposync -%{_bindir}/repo-graph -%{_bindir}/repo-rss -%{_bindir}/verifytree -%{_bindir}/yumdownloader -%{_bindir}/yum-builddep -%{_bindir}/yum-config-manager -%{_bindir}/yum-debug-dump -%{_bindir}/yum-debug-restore -%{_bindir}/yum-groups-manager -%{_bindir}/show-installed -%{_bindir}/show-changed-rco +%{_bindir}/debuginfo-install%{?prg_suffix} +%{_bindir}/find-repos-of-install%{?prg_suffix} +%{_bindir}/needs-restarting%{?prg_suffix} +%{_bindir}/package-cleanup%{?prg_suffix} +%{_bindir}/repoclosure%{?prg_suffix} +%{_bindir}/repodiff%{?prg_suffix} +%{_bindir}/repomanage%{?prg_suffix} +%{_bindir}/repoquery%{?prg_suffix} +%{_bindir}/repotrack%{?prg_suffix} +%{_bindir}/reposync%{?prg_suffix} +%{_bindir}/repo-graph%{?prg_suffix} +%{_bindir}/repo-rss%{?prg_suffix} +%{_bindir}/verifytree%{?prg_suffix} +%{_bindir}/yumdownloader%{?prg_suffix} +%{_bindir}/yum-builddep%{?prg_suffix} +%{_bindir}/yum-config-manager%{?prg_suffix} +%{_bindir}/yum-debug-dump%{?prg_suffix} +%{_bindir}/yum-debug-restore%{?prg_suffix} +%{_bindir}/yum-groups-manager%{?prg_suffix} +%{_bindir}/show-installed%{?prg_suffix} +%{_bindir}/show-changed-rco%{?prg_suffix} %{_sbindir}/yum-complete-transaction %{_sbindir}/yumdb %{python2_sitelib}/yumutils/ -%{_mandir}/man1/yum-utils.1.* -%{_mandir}/man1/debuginfo-install.1.* -%{_mandir}/man1/package-cleanup.1.* -%{_mandir}/man1/repo-rss.1.* -%{_mandir}/man1/repoquery.1.* -%{_mandir}/man1/repodiff.1.* -%{_mandir}/man1/reposync.1.* -%{_mandir}/man1/show-changed-rco.1.* -%{_mandir}/man1/show-installed.1.* -%{_mandir}/man1/yum-builddep.1.* -%{_mandir}/man1/yum-debug-dump.1.* -%{_mandir}/man1/yum-debug-restore.1.* +%{_mandir}/man1/yum-utils%{?prg_suffix}.1.* +%{_mandir}/man1/debuginfo-install%{?prg_suffix}.1.* +%{_mandir}/man1/package-cleanup%{?prg_suffix}.1.* +%{_mandir}/man1/repo-rss%{?prg_suffix}.1.* +%{_mandir}/man1/repoquery%{?prg_suffix}.1.* +%{_mandir}/man1/repodiff%{?prg_suffix}.1.* +%{_mandir}/man1/reposync%{?prg_suffix}.1.* +%{_mandir}/man1/show-changed-rco%{?prg_suffix}.1.* +%{_mandir}/man1/show-installed%{?prg_suffix}.1.* +%{_mandir}/man1/yum-builddep%{?prg_suffix}.1.* +%{_mandir}/man1/yum-debug-dump%{?prg_suffix}.1.* +%{_mandir}/man1/yum-debug-restore%{?prg_suffix}.1.* %{_mandir}/man8/yum-complete-transaction.8.* -%{_mandir}/man1/yum-groups-manager.1.* +%{_mandir}/man1/yum-groups-manager%{?prg_suffix}.1.* %{_mandir}/man8/yumdb.8.* -%{_mandir}/man1/yumdownloader.1.* -%{_mandir}/man1/find-repos-of-install.1.* -%{_mandir}/man1/needs-restarting.1.* -%{_mandir}/man1/repo-graph.1.* -%{_mandir}/man1/repoclosure.1.* -%{_mandir}/man1/repomanage.1.* -%{_mandir}/man1/repotrack.1.* -%{_mandir}/man1/verifytree.1.* -%{_mandir}/man1/yum-config-manager.1.* +%{_mandir}/man1/yumdownloader%{?prg_suffix}.1.* +%{_mandir}/man1/find-repos-of-install%{?prg_suffix}.1.* +%{_mandir}/man1/needs-restarting%{?prg_suffix}.1.* +%{_mandir}/man1/repo-graph%{?prg_suffix}.1.* +%{_mandir}/man1/repoclosure%{?prg_suffix}.1.* +%{_mandir}/man1/repomanage%{?prg_suffix}.1.* +%{_mandir}/man1/repotrack%{?prg_suffix}.1.* +%{_mandir}/man1/verifytree%{?prg_suffix}.1.* +%{_mandir}/man1/yum-config-manager%{?prg_suffix}.1.* %files -n yum-plugin-changelog %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/changelog.conf %doc COPYING %{pluginhome}/changelog.* -%{_mandir}/man1/yum-changelog.1.* +%{_mandir}/man1/yum-changelog%{?prg_suffix}.1.* %{_mandir}/man5/yum-changelog.conf.5.* %files -n yum-plugin-fastestmirror @@ -517,7 +536,7 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/versionlock.conf %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/versionlock.list %{pluginhome}/versionlock.* -%{_mandir}/man1/yum-versionlock.1.* +%{_mandir}/man1/yum-versionlock%{?prg_suffix}.1.* %{_mandir}/man5/yum-versionlock.conf.5.* %files -n yum-plugin-tsflags @@ -552,19 +571,19 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/aliases.conf %config(noreplace) %{_sysconfdir}/yum/aliases.conf %{pluginhome}/aliases.* -%{_mandir}/man1/yum-aliases.1.* +%{_mandir}/man1/yum-aliases%{?prg_suffix}.1.* %files -n yum-plugin-list-data %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/list-data.conf %{pluginhome}/list-data.* -%{_mandir}/man1/yum-list-data.1.* +%{_mandir}/man1/yum-list-data%{?prg_suffix}.1.* %files -n yum-plugin-filter-data %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/filter-data.conf %{pluginhome}/filter-data.* -%{_mandir}/man1/yum-filter-data.1.* +%{_mandir}/man1/yum-filter-data%{?prg_suffix}.1.* %files -n yum-plugin-tmprepo %doc COPYING @@ -575,7 +594,7 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/verify.conf %{pluginhome}/verify.* -%{_mandir}/man1/yum-verify.1.* +%{_mandir}/man1/yum-verify%{?prg_suffix}.1.* %files -n yum-plugin-keys %doc COPYING @@ -624,7 +643,7 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %doc COPYING %config(noreplace) %{_sysconfdir}/yum/pluginconf.d/fs-snapshot.conf %{pluginhome}/fs-snapshot.* -%{_mandir}/man1/yum-fs-snapshot.1.* +%{_mandir}/man1/yum-fs-snapshot%{?prg_suffix}.1.* %{_mandir}/man5/yum-fs-snapshot.conf.5.* %files -n yum-plugin-ps @@ -649,6 +668,10 @@ touch $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d/_local.repo %{pluginhome}/ovl.* %changelog +* Wed Oct 17 2018 Björn Esser <besser82> - 1.1.31-518 +- Add deprectated suffix to binaries and manpages to prevent clashes + on Fedora >= 29 + * Fri Aug 31 2018 Michal Domonkos <mdomonko> - 1.1.31-517 - Use explicit python2 executable at build time - reposync: prevent path traversal (CVE-2018-10897)
dnf-4.0.4-1.fc29 dnf-plugins-core-4.0.0-2.fc29 libdnf-0.22.0-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-2789f6b6e7
dnf-4.0.4-1.fc29, dnf-plugins-core-4.0.0-2.fc29, libdnf-0.22.0-2.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-2789f6b6e7
anaconda-29.24.6-1.fc29 dnf-4.0.4-1.fc29 dnf-plugins-core-4.0.0-2.fc29 libblockdev-2.20-2.fc29 libdnf-0.22.0-2.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-2789f6b6e7
anaconda-29.24.7-1.fc29, dnf-4.0.4-1.fc29, dnf-plugins-core-4.0.0-2.fc29, libblockdev-2.20-2.fc29, libdnf-0.22.0-5.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-2789f6b6e7
anaconda-29.24.7-1.fc29, dnf-4.0.4-1.fc29, dnf-plugins-core-4.0.0-2.fc29, libblockdev-2.20-2.fc29, libdnf-0.22.0-5.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.
I can't tell if this is the same root cause or not, but I'm receiving this on an F29 upgrade: * file /usr/share/man/man8/yum-copr.8.gz from install of dnf-utils-4.0.4-1.fc29.noarch conflicts with file from package yum-plugin-copr-1.1.31-518.fc29.noarch yum-plugin-copr was built from yum-utils, so possibly this was missed in dnf-utils? Source RPM : yum-utils-1.1.31-518.fc29.src.rpm