Bug 952424 - Broken update path
Summary: Broken update path
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: flac
Version: 19
Hardware: All
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Miroslav Lichvar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-04-15 23:35 UTC by Ankur Sinha (FranciscoD)
Modified: 2013-04-16 10:07 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-04-16 10:07:43 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Ankur Sinha (FranciscoD) 2013-04-15 23:35:14 UTC
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

Comment 1 Ankur Sinha (FranciscoD) 2013-04-15 23:36:50 UTC
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?

Comment 2 Rex Dieter 2013-04-16 00:34:25 UTC
Curious, can you reproduce this with yum too?

Comment 3 Rex Dieter 2013-04-16 00:39:10 UTC
nevermind, you posted yum too.

Comment 4 Rex Dieter 2013-04-16 00:44:33 UTC
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.

Comment 5 Ankur Sinha (FranciscoD) 2013-04-16 00:55:30 UTC
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

Comment 6 Rex Dieter 2013-04-16 01:12:20 UTC
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

Comment 7 Rex Dieter 2013-04-16 01:13:32 UTC
Ah, steam is what confuses things for you, since it Requires: flac

ok, back to my suggestions from comment #4 then

Comment 8 Ankur Sinha (FranciscoD) 2013-04-16 01:30:09 UTC
(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

Comment 9 Miroslav Lichvar 2013-04-16 07:16:42 UTC
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.

Comment 10 Miroslav Lichvar 2013-04-16 08:00:06 UTC
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.

Comment 11 Ankur Sinha (FranciscoD) 2013-04-16 09:30:01 UTC
(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

Comment 12 Miroslav Lichvar 2013-04-16 09:42:38 UTC
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)

Comment 13 Ankur Sinha (FranciscoD) 2013-04-16 10:02:53 UTC
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)

Comment 14 Miroslav Lichvar 2013-04-16 10:07:43 UTC
Yes, flac-libs is only in f19.

So it looks it's fixed in the f19 steam package. I'm closing this bug.


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