Description of problem: The upgrade path to flac seems to be broken Version-Release number of selected component (if applicable): flac-1.2.1-10.fc18 How reproducible: Always Steps to Reproduce: 1. Try to update to F19 using yum/dnf 2. 3. Actual results: Fails at flac update. Result below Expected results: Should update correctly and not fail at package Additional info: [root@localhost yum.repos.d]# dnf --releasever=19 --disablerepo=updates --enablerepo=updates-testing update flac -y --nogpg Setting up Update Process Resolving Dependencies --> Starting dependency resolution ---> Package flac-libs.x86_64 1.3.0-0.1.pre1.fc19 will be installed ---> Package flac.x86_64 1.2.1-10.fc18 will be updated ---> Package flac.x86_64 1.3.0-0.1.pre1.fc19 will be an update --> Finished dependency resolution Dependencies Resolved ======================================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================================== Installing: flac-libs x86_64 1.3.0-0.1.pre1.fc19 fedora 168 k Updating: flac x86_64 1.3.0-0.1.pre1.fc19 fedora 562 k Transaction Summary ======================================================================================================================================================================== Install 1 Package Upgrade 1 Package Total size: 730 k Downloading Packages: Running Transaction Check ERROR with transaction check vs depsolve: flac < 1.2.1-11 is obsoleted by flac-libs-1.3.0-0.1.pre1.fc19.x86_64 To diagnose the problem, try running: 'rpm -Va --nofiles --nodigest'. To fix inconsistent RPMDB, try running: 'rpm --rebuilddb'. If the above doesn't help please report this error at 'https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf'. [root@localhost yum.repos.d]# yum --releasever=19 update flac --disablerepo=updates --enablerepo=updates-testing Loaded plugins: changelog, langpacks, merge-conf, presto, refresh-packagekit Resolving Dependencies --> Running transaction check ---> Package flac.i686 0:1.2.1-10.fc18 will be obsoleted --> Processing Dependency: flac(x86-32) for package: steam-1.0.0.36-1.fc18.i686 ---> Package flac.x86_64 0:1.2.1-10.fc18 will be obsoleted ---> Package flac-libs.i686 0:1.3.0-0.1.pre1.fc19 will be obsoleting ---> Package flac-libs.x86_64 0:1.3.0-0.1.pre1.fc19 will be obsoleting --> Finished Dependency Resolution Error: Package: steam-1.0.0.36-1.fc18.i686 (@steam/18) Requires: flac(x86-32) Removing: flac-1.2.1-10.fc18.i686 (@fedora/18) flac(x86-32) = 1.2.1-10.fc18 Obsoleted By: flac-libs-1.3.0-0.1.pre1.fc19.x86_64 (fedora) Not found You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest [root@localhost yum.repos.d]# Maybe a tiny error in the spec somewhere that's borking the update path? https://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages#.28n:m.29_Many_to_many_replacement says a compat package should be used when splitting into subpackages for instance. Thanks, Warm regards, Ankur
This could've possibly gone undetected because F18 didn't see the new version update as per the update guidelines. However, this might possibly break upgrades via fedup in the future too and therefore should be looked into?
Curious, can you reproduce this with yum too?
nevermind, you posted yum too.
I would suggest doing at least one of the following to make this Obsoletes safer: 1. move the Obsoletes to the main pkg (preferable) or 2. to -libs, add Requires: %{name} = %{version}-%{release} In the meantime, things work better if you do yum ... update flac flac-libs in this case too.
Hi Rex, yum ... update flac flac-libs doesn't work either. Seems like the splitting wasn't done correctly to maintain a sane enough upgrade path: [root@localhost yum.repos.d]# yum --releasever=19 update flac flac-libs --disablerepo=updates --enablerepo=updates-testing Loaded plugins: changelog, langpacks, merge-conf, presto, refresh-packagekit Resolving Dependencies --> Running transaction check ---> Package flac.i686 0:1.2.1-10.fc18 will be obsoleted --> Processing Dependency: flac(x86-32) for package: steam-1.0.0.36-1.fc18.i686 ---> Package flac.x86_64 0:1.2.1-10.fc18 will be obsoleted ---> Package flac-libs.i686 0:1.3.0-0.1.pre1.fc19 will be obsoleting ---> Package flac-libs.x86_64 0:1.3.0-0.1.pre1.fc19 will be obsoleting --> Finished Dependency Resolution Error: Package: steam-1.0.0.36-1.fc18.i686 (@steam/18) Requires: flac(x86-32) Removing: flac-1.2.1-10.fc18.i686 (@fedora/18) flac(x86-32) = 1.2.1-10.fc18 Obsoleted By: flac-libs-1.3.0-0.1.pre1.fc19.x86_64 (fedora) Not found You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest [root@localhost yum.repos.d]# The requires is missing, as you've noted in point #2 in the above comment. I'm not sure if a compat package is required here. Maybe adding the requires will be sufficient. Could the maintainers please check the update path after whatever fix they decide to go with? Thanks, Warm regards, Ankur
It worked for me, yum --releasever=19 update flac flac-libs --disablerepo=updates --enablerepo=updates-testing ... Resolving Dependencies --> Running transaction check ---> Package flac.i686 0:1.2.1-10.fc18 will be obsoleted --> Processing Dependency: flac = 1.2.1-10.fc18 for package: flac-devel-1.2.1-10.fc18.x86_64 ---> Package flac.x86_64 0:1.2.1-10.fc18 will be obsoleted ---> Package flac-libs.i686 0:1.3.0-0.1.pre1.fc19 will be obsoleting ---> Package flac-libs.x86_64 0:1.3.0-0.1.pre1.fc19 will be obsoleting --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================================================= Installing: flac-libs i686 1.3.0-0.1.pre1.fc19 fedora 171 k replacing flac.i686 1.2.1-10.fc18 replacing flac.x86_64 1.2.1-10.fc18 flac-libs x86_64 1.3.0-0.1.pre1.fc19 fedora 168 k replacing flac.i686 1.2.1-10.fc18 replacing flac.x86_64 1.2.1-10.fc18 Transaction Summary ================================================================================================================================================================= Install 2 Packages
Ah, steam is what confuses things for you, since it Requires: flac ok, back to my suggestions from comment #4 then
(In reply to comment #7) > Ah, steam is what confuses things for you, since it Requires: flac > > ok, back to my suggestions from comment #4 then In this case yes, but I'm assuming anything that requires flac will break updates in general in a similar manner? I think your comments should fix it. I'll try and provide a patch sometime today if I can finish university early. Thanks, Warm regards, Ankur
That seems odd. Does the steam package have a versioned dependency on flac (rpm -q --requires steam)? Adding dependency on the main package to -libs would create a dependency cycle, I'd like to avoid that.
I think I see now what's the problem. The steam package requires i686 flac, which is no longer available in the x86_64 repository. Adding a provide to flac-libs would probably fix it, but I don't think that's an acceptable solution. The steam package should be fixed instead, it should require the libflac soname instead of the package name.
(In reply to comment #9) > That seems odd. Does the steam package have a versioned dependency on flac > (rpm -q --requires steam)? > > Adding dependency on the main package to -libs would create a dependency > cycle, I'd like to avoid that. Hi, Here's the output: [ankur@localhost dump]$ rpm -qp --requires steam-1.0.0.36-1.fc19.i686.rpm /bin/sh /bin/sh /bin/sh /usr/bin/env SDL(x86-32) >= 1.2.10 SDL2(x86-32) alsa-lib(x86-32) >= 1.0.23 atk(x86-32) avahi-libs(x86-32) cairo(x86-32) >= 1.6.0 cups-libs(x86-32) >= 1.4.0 dbus-libs(x86-32) >= 1.2.14 expat(x86-32) flac-libs(x86-32) fontconfig(x86-32) >= 2.8.0 freetype(x86-32) >= 2.3.9 gdk-pixbuf2(x86-32) >= 2.22.0 glib2(x86-32) >= 2.14.0 glibc(x86-32) >= 2.15 gnutls(x86-32) gsm(x86-32) gtk2(x86-32) >= 2.24.0 harfbuzz(x86-32) json-c(x86-32) keyutils-libs(x86-32) krb5-libs(x86-32) libICE(x86-32) libSM(x86-32) libX11(x86-32) >= 1.4.99.1 libXau(x86-32) libXcomposite(x86-32) libXcursor(x86-32) libXdamage(x86-32) libXdmcp(x86-32) libXext(x86-32) libXfixes(x86-32) libXi(x86-32) >= 1.2.99.4 libXinerama(x86-32) libXrandr(x86-32) >= 1.2.99.3 libXrender(x86-32) libXtst(x86-32) libXxf86vm(x86-32) libasyncns(x86-32) libcom_err(x86-32) libcurl(x86-32) >= 7.16.2-1 libdrm(x86-32) libffi(x86-32) libgcc(x86-32) >= 4.1.1 libgcrypt(x86-32) libgcrypt(x86-32) >= 1.4.5 libgpg-error(x86-32) libicu(x86-32) libjpeg-turbo(x86-32) libogg(x86-32) >= 1.0 libpng12(x86-32) >= 1.2.13 libselinux(x86-32) libsndfile(x86-32) libstdc++(x86-32) >= 4.6 libtasn1(x86-32) libtheora(x86-32) >= 1.0 libuuid(x86-32) libvorbis(x86-32) >= 1.1.2 libwayland-client(x86-32) libwayland-server(x86-32) libxcb(x86-32) mesa-dri-drivers(x86-32) mesa-libEGL(x86-32) mesa-libGL(x86-32) mesa-libgbm(x86-32) mesa-libglapi(x86-32) nspr(x86-32) >= 1.8.0.10 nss(x86-32) >= 3.12.3 openal-soft(x86-32) >= 1.13 p11-kit(x86-32) pango(x86-32) >= 1.22.0 pcre(x86-32) pixman(x86-32) >= 0.24.4 pulseaudio-libs(x86-32) >= 0.99.1 rpm-python rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 systemd-libs(x86-32) tcp_wrappers-libs(x86-32) xterm xz zlib(x86-32) >= 1.2.3.3 rpmlib(PayloadIsXz) <= 5.2-1 If you can tell me what the fix to steam is to be, I can mail spot and let him know. Thanks, Warm regards, Ankur
Hm, that looks good, it requires flac-libs instead of flac. Any chance this was fixed in steam-1.0.0.36-1.fc19? (the original report mentions steam-1.0.0.36-1.fc18)
Hrm, the f18 package does require flac, instead of flac-libs. However, that's correct, since f18 doesn't have a flac-libs package, right? [ankur@localhost dump]$ rpm -qp --requires steam-1.0.0.36-1.fc18.i686.rpm | egrep flac flac(x86-32)
Yes, flac-libs is only in f19. So it looks it's fixed in the f19 steam package. I'm closing this bug.