Bug 1263230 - python2-solv does not obsolete python-solv
Summary: python2-solv does not obsolete python-solv
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: libsolv
Version: 23
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Packaging Maintenance Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F23BetaFreezeException Beta0Day, F23Beta0Day
TreeView+ depends on / blocked
 
Reported: 2015-09-15 11:28 UTC by Kamil Páral
Modified: 2015-11-26 22:24 UTC (History)
8 users (show)

Fixed In Version: libsolv-0.6.14-5.fc23
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-11-22 02:22:02 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Kamil Páral 2015-09-15 11:28:36 UTC
Description of problem:
If you have python-solv installed, you can't cleanly upgrade from Fedora 22 to Fedora 23:

$ rpm -q python-solv
python-solv-0.6.11-2.fc22.x86_64

$ sudo dnf system-upgrade download --releasever=23
<snip>
Skipping packages with broken dependencies:
 libsolv                                     x86_64   0.6.11-3.git1f9abfb.fc23                 fedora    339 k
<snip>

$ sudo dnf system-upgrade download --releasever=23 --best
Error: package python-solv-0.6.11-2.fc22.x86_64 requires libsolv(x86-64) = 0.6.11-2.fc22, but none of the providers can be installed.


That's because in Fedora 23 that package has been replaced by python2-solv, but it doesn't obsolete it properly:

$ rpm -q python2-solv
python2-solv-0.6.11-3.git1f9abfb.fc23.x86_64

$ rpm -q --provides python2-solv 
python-solv = 0.6.11-3.git1f9abfb.fc23
python2-solv = 0.6.11-3.git1f9abfb.fc23
python2-solv(x86-64) = 0.6.11-3.git1f9abfb.fc23

$ rpm -q --obsoletes python2-solv 


Version-Release number of selected component (if applicable):
python-solv-0.6.11-2.fc22.x86_64
python2-solv-0.6.11-3.git1f9abfb.fc23.x86_64

How reproducible:
always

Comment 1 Kamil Páral 2015-09-15 11:31:08 UTC
Easy fix, package not part of the default install set, and holding back libsolv from upgrade is most probably something we don't want to see. Should be eligible at least for a FE.

Comment 2 Stephen Gallagher 2015-09-16 13:08:18 UTC
I don't think this really needs to be part of the frozen package set. This would be perfectly reasonable to resolve as a zero-day update. (i.e. as long as this is submitted for stable before the release happens, it'll be part of the zero-day push).

Comment 3 Adam Williamson 2015-11-18 23:38:53 UTC
This has still not been fixed. As it's been ignored by the packager for so long, I am going to fix it with provenpackager privs.

Comment 4 Fedora Update System 2015-11-19 00:07:46 UTC
libsolv-0.6.14-5.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2015-a250f4b24a

Comment 5 Kamil Páral 2015-11-19 09:19:20 UTC
Adam, I'm very confused here. I see the obsolete flag even with current stable version:
$ rpm -q python2-solv
python2-solv-0.6.14-2.fc23.x86_64
$ rpm -q --obsoletes python2-solv
python-solv < 0.6.14-2.fc23

However, I don't see any Obsoletes definition in the spec file that matches that build:
http://pkgs.fedoraproject.org/cgit/libsolv.git/tree/libsolv.spec?h=f23&id=29e11eeefc5b9148d2f92346752ec6dc77c3a931

I'm not sure how that is possible.

Comment 6 Fedora Update System 2015-11-19 15:25:56 UTC
libsolv-0.6.14-5.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
$ su -c 'dnf --enablerepo=updates-testing update libsolv'
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-a250f4b24a

Comment 7 Fedora Update System 2015-11-19 16:54:35 UTC
libsolv-0.6.14-5.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
$ su -c 'dnf --enablerepo=updates-testing update libsolv'
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2015-a250f4b24a

Comment 8 Adam Williamson 2015-11-20 21:55:25 UTC
I'm, uh, honestly not sure either. I just checked the spec file (when I came across this bug), I didn't actually test the package. I can only guess maybe %python_provide does it, but I didn't think it did that?

Comment 9 Fedora Update System 2015-11-22 02:21:58 UTC
libsolv-0.6.14-5.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 10 Kamil Páral 2015-11-23 08:53:30 UTC
(In reply to awilliam from comment #8)
> I'm, uh, honestly not sure either. I just checked the spec file (when I came
> across this bug), I didn't actually test the package. I can only guess maybe
> %python_provide does it, but I didn't think it did that?

It doesn't seem so:
$ rpm --eval '%{python_provide python-test}'
Provides: python2-test = %{version}-%{release}

But I saw the same behavior in yet another python-foo to python2-foo package transition, without any explicit obsoleted, and it remains a mystery to me.

Comment 11 Adam Williamson 2015-11-26 22:24:08 UTC
Actually, it does, you just tested with the wrong value:

[adamw@adam python-pyspf (master %)]$ rpm --eval '%{python_provide python2-test}'
Provides: python-test(x86-64) = %{version}-%{release}
Provides: python-test = %{version}-%{release}
Obsoletes: python-test(x86-64) < %{version}-%{release}
Obsoletes: python-test < %{version}-%{release}

python_provide has two 'modes' depending on whether the value you pass has a Python major version, because you're also allowed to use it something like this:

Name: python-foo
%python_provide python-foo

and what that will do is have it provide 'python2-foo' if the current python system version is 2, or 'python3-foo' if the current python system version is 3. See https://fedoraproject.org/wiki/Packaging:Python#The_.25python_provide_macro .

The 'Obsoletes' behaviour was added some time between 2015-08-27 and 2015-09-10, the trac ticket is https://fedorahosted.org/fpc/ticket/565 , but was not documented anywhere I can find. So this has in fact been fixed ever since libsolv-0.6.12-1.fc24 / libsolv-0.6.12-1.fc23 on 2015-09-10.


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