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
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.
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).
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.
libsolv-0.6.14-5.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2015-a250f4b24a
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.
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
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?
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.
(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.
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.