Bug 1639467 - dnf-plugins-core dropped dnf-utils without adding an Obsoletes
Summary: dnf-plugins-core dropped dnf-utils without adding an Obsoletes
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf-plugins-core
Version: 29
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-10-15 19:21 UTC by Stephen Gallagher
Modified: 2019-03-08 21:42 UTC (History)
12 users (show)

Fixed In Version: dnf-plugins-core-4.0.0-2.fc29
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-10-22 16:13:34 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Stephen Gallagher 2018-10-15 19:21:53 UTC
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:

Comment 1 Neal Gompa 2018-10-15 19:22:48 UTC
We're completely missing all the binaries provided by dnf-utils, which is problematic for tooling/integration stuff.

Comment 2 Neal Gompa 2018-10-15 19:25:23 UTC
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.

Comment 3 Jaroslav Mracek 2018-10-17 07:45:59 UTC
This is real issue

Comment 4 Björn 'besser82' Esser 2018-10-17 12:05:10 UTC
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

Comment 5 Jaroslav Mracek 2018-10-17 12:28:28 UTC
Here is a patch (https://github.com/rpm-software-management/dnf-plugins-core/pull/298). After merge I will release it immediately.

Comment 6 Jaroslav Mracek 2018-10-17 12:30:33 UTC
Here is a build (https://koji.fedoraproject.org/koji/taskinfo?taskID=30287543) and I am going to update a bodhi update.

Comment 7 Björn 'besser82' Esser 2018-10-17 12:52:40 UTC
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)

Comment 8 Fedora Update System 2018-10-17 13:00:34 UTC
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

Comment 9 Fedora Update System 2018-10-17 13:02:13 UTC
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

Comment 10 Fedora Update System 2018-10-17 23:31:05 UTC
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

Comment 11 Fedora Update System 2018-10-18 14:07:01 UTC
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

Comment 12 Fedora Update System 2018-10-20 19:22:34 UTC
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

Comment 13 Fedora Update System 2018-10-22 16:13:34 UTC
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.

Comment 14 Japheth Cleaver 2019-03-08 21:42:19 UTC
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


Note You need to log in before you can comment on or make changes to this bug.