Bug 786946 - libchromaprint upgrade breaks dependencies
Summary: libchromaprint upgrade breaks dependencies
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: chromaprint
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ismael Olea
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-02-02 18:13 UTC by Michael Schwendt
Modified: 2012-08-24 18:09 UTC (History)
4 users (show)

Fixed In Version: chromaprint-0.6-4.fc16
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-02-25 08:24:34 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Michael Schwendt 2012-02-02 18:13:59 UTC
The update at

  https://admin.fedoraproject.org/updates/FEDORA-2012-0798/chromaprint-0.6-2.fc16

no longer builds the python-chromaprint package, which existed in older releases of this package in Fedora 16. This breaks dependencies,

  python-chromaprint-0.5-4.fc16.x86_64 requires libchromaprint(x86-64) = 0:0.5-4.fc16 

and also makes it impossible to install the python-chromaprint package, which is still available in the Fedora 16 repositories. Note that in the future, broken dependencies may make it impossible for you to release such an update.

It is a package bug to not add proper "Obsoletes: python-chromaprint < appropriate-version-release" to the update. This is covered in the Fedora Packaging Guidelines:

https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages

| If a package supersedes/replaces an existing package without
| being a compatible enough replacement as defined in above,
| use only the Obsoletes from above.

Comment 1 Michael Schwendt 2012-02-02 21:20:08 UTC
> Name:           chromaprint
> Version:        0.6

> %description
> ...
> [...] and the package also includes bindings for
> the Python language. [...]

The binding have been removed, so the description needs to be updated.


> %package -n libchromaprint
> Summary:        Library implementing the AcoustID fingerprinting
> Group:          Development/Libraries

Base libraries normally enter group "System Environment/Libraries"


> %description -n libchromaprint
> ...
> [...] and the package also includes bindings for
> the Python language. [...]

As above.


> %package -n libchromaprint-devel
> ...
> Requires:       libchromaprint%{?_isa} = %{version}-%{release}
> Requires:       pkgconfig

This is automatic unless you want to package for EL5 (or older). There are more items you could drop if you only want to package for Fedora or EL6.
https://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#Distribution_specific_guidelines


> %description -n libchromaprint-devel
> This package contains the headers that programmers will need to develop
> applications which will use %{name}. 
> 
> Requires:       libchromaprint%{?_isa} = %{version}-%{release}

This dependency is duplicate and specified a few lines above already.

Comment 2 Toshio Ernie Kuratomi 2012-02-05 05:38:50 UTC
Ismael I did a little looking at this when I noticed the broken dep as well.  Looks like there's a new, separate upstream project, pyacoustid, that replaces python-chromaprint.  If you are planning on getting this into Fedora, that package could obsolete the current python-chromaprint.

If you're not planning on doing that, though (and I see that there is no such package proposed for review currently), then you should definitely follow Michael Schwendt's advice and Obsolete the package from the chromaprint package.  Until some package Obsoletes the python-chromaprint package, updates for this library will remain broken.

Comment 3 Alex Lancaster 2012-02-05 17:36:48 UTC
Yes, hitting this now:

--> Finished Dependency Resolution
Error: Package: python-chromaprint-0.5-4.fc16.x86_64 (@/python-chromaprint-0.5-4.fc16.x86_64)
           Requires: libchromaprint(x86-64) = 0.5-4.fc16
           Removing: libchromaprint-0.5-4.fc16.x86_64 (@/libchromaprint-0.5-4.fc16.x86_64)
               libchromaprint(x86-64) = 0.5-4.fc16
           Updated By: libchromaprint-0.6-2.fc16.x86_64 (updates)
               libchromaprint(x86-64) = 0.6-2.fc16
 You could try using --skip-broken to work around the problem

Comment 4 Alex Lancaster 2012-02-05 17:37:43 UTC
Workaround is to remove the python-chromaprint package.

Comment 5 Ismael Olea 2012-02-07 12:14:38 UTC
Ok. I've done a little mess here. First my apologies to Michael since I didn't get how important his comment were.

I've added the obsolete tag to 0.6-3

(In reply to comment #1)
> The binding have been removed, so the description needs to be updated.

done

> Base libraries normally enter group "System Environment/Libraries"

done

> > Requires:       pkgconfig
> 
> This is automatic unless you want to package for EL5 (or older). There are more
> items you could drop if you only want to package for Fedora or EL6.

done

> This dependency is duplicate and specified a few lines above already.

done too

(In reply to comment #2)
> Until some package Obsoletes the python-chromaprint package, updates
> for this library will remain broken.

Just to fix this I'll look for some time to get pyacoustid and fix this.

P.S.: is there any clean way to proceed in a case like this without the new package? I had no plan to submit it since there is not current python-chromaprint dependency in Fedora.

Comment 6 Ismael Olea 2012-02-07 12:27:07 UTC
Build against F17

http://koji.fedoraproject.org/koji/taskinfo?taskID=3768615

Comment 7 Michael Schwendt 2012-02-07 13:14:32 UTC
> I've added the obsolete tag to 0.6-3

Not yet. You've added it to the non-existing "chromaprint" package. Your package only builds "libchromaprint" and "libchromaprint-devel".

> is there any clean way to proceed in a case like this without the new package?

Yes, a properly versioned "Obsoletes" tag in the base package. Especially for the released dists. Even if there is nothing else that depends on python-chromaprint, users may have installed the package out of interest or via wildcards.

> pyacoustid

Theoretically, that one could be the better candidate for the Obsoletes tag. Perhaps even the additional "Provides: python-chromaprint = ..." tag, in case it is sufficiently compatible. If it isn't compatible, however, no such Provides tag should be added.

Comment 8 Fedora Update System 2012-02-07 16:04:51 UTC
chromaprint-0.6-4.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/chromaprint-0.6-4.fc15

Comment 9 Fedora Update System 2012-02-07 16:04:59 UTC
chromaprint-0.6-4.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/chromaprint-0.6-4.fc16

Comment 10 Fedora Update System 2012-02-08 02:26:25 UTC
Package chromaprint-0.6-4.fc15:
* should fix your issue,
* was pushed to the Fedora 15 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing chromaprint-0.6-4.fc15'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-1431/chromaprint-0.6-4.fc15
then log in and leave karma (feedback).

Comment 11 Fedora Update System 2012-02-25 08:24:34 UTC
chromaprint-0.6-4.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 Fedora Update System 2012-03-06 19:32:19 UTC
chromaprint-0.6-4.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 13 Terje Røsten 2012-08-24 18:09:40 UTC
(In reply to comment #2)
> Ismael I did a little looking at this when I noticed the broken dep as well.
> Looks like there's a new, separate upstream project, pyacoustid, that
> replaces python-chromaprint.  If you are planning on getting this into
> Fedora, that package could obsolete the current python-chromaprint.

I have submitted python-acoustid, for review, #851702.

Reviewers welcome :-)


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