Bug 698991 - cdrkit contains an outdated copy of the cdparanoia library
Summary: cdrkit contains an outdated copy of the cdparanoia library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: cdrkit
Version: rawhide
Hardware: All
OS: All
unspecified
medium
Target Milestone: ---
Assignee: Honza Horak
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-04-22 14:55 UTC by Manfred Spraul
Modified: 2012-08-09 23:32 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-08-09 23:24:38 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Propsal: do not use libparanoia II, update icedax man page (4.88 KB, patch)
2012-07-29 11:56 UTC, Manfred Spraul
no flags Details | Diff
Patch to use system-wide cdparanoia library (16.81 KB, patch)
2012-07-30 15:20 UTC, Honza Horak
no flags Details | Diff

Description Manfred Spraul 2011-04-22 14:55:25 UTC
Description of problem:
cdrkit contains a copy of libparanoia II (probably from 1997)
libparanoia II is outdated, there is a libparanoia III (with improved anti-cache detection)
In addition, the manpage of cdrkit does not mention the use of an outdated library. Users could check their drive with 'cdparanoia -A' and expect that icedax would work as well (because the manpage of icedax claims that icedax uses the cdparanoia libraries)

Version-Release number of selected component (if applicable):
cdrkit-1.1.11

How reproducible:
N/A: just look into cdrkit-1.1.11/libparanoia/README.paranoia

Steps to Reproduce:
  
Actual results:
There is libparanoia II

Expected results:
There should be some glue code that links to libcdda_paranoia.so or libcdio_paranoia.so

Additional info:

Comment 1 Eric Smith 2012-07-22 06:27:45 UTC
If this is true, cdrkit is in violation of Fedora packaging standards, which disallow use of bundled libraries.  The relevant packaging policy page does not list cdrkit has having been granted an exception.

http://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries

Comment 2 Honza Horak 2012-07-26 14:43:20 UTC
Unfortunately this is true. cdrkit bundles paranoia for a long time and what's more, it changed it's behaviour a lot, even though the API has been changed only a little.

I've tried to unbundle the library and use the one from cdparanoia package instead, but I haven't manage to get it to work. It's possible to build, but reading audio files doesn't work. The main issue is that cdrkit uses own structures to communicate with device and these structures are not compatible with those used in cdparanoia package.

It is also possible to build package even without paranoia extension, but I wouldn't go that way, because icedax utility would lost a really nice feature.

It's possible someone will be more successful, but right now I'm thinking of filling a FPC ticket to get an exception.

Thoughts?

Comment 3 Eric Smith 2012-07-26 14:50:25 UTC
If they've made incompatible changes to the bundled cdparanoia which can't be pushed upstream, it does sound like a good candidate for an exception.

Comment 4 Manfred Spraul 2012-07-26 19:32:37 UTC
a) As I wrote, icedax uses libparanoia II - which is broken on modern drives.

A broken option does not make any sense - thus removing -paranoia would make more sense than adding an exception.

b) For my own scripts for readings CDs, I now use icedax for looking up cddb and then I call cdparanoia to read the content.
Would it be possible to call cdparanoia and then use a pipe to get it into icedax?

Comment 5 Eric Smith 2012-07-26 19:51:56 UTC
Removing -paranoia doesn't make sense as it will remove functionality for those of us that do have drives that work with it.  The proposed bundling exception would only be intended to be used until someone (who?) does the work of getting cdrkit to use the non-bundled Paranoia III.

Comment 6 Honza Horak 2012-07-27 07:04:17 UTC
(In reply to comment #4)
> b) For my own scripts for readings CDs, I now use icedax for looking up cddb
> and then I call cdparanoia to read the content.
> Would it be possible to call cdparanoia and then use a pipe to get it into
> icedax?

I was trying to do something like this on the code basis, but haven't succeeded yet. But I'll keep trying.

Comment 7 Manfred Spraul 2012-07-29 11:55:48 UTC
(In reply to comment #5)
> Removing -paranoia doesn't make sense as it will remove functionality for
> those of us that do have drives that work with it.

That would be one option, but at least in must be documented as BUGS:
Something like:
> 
> - "-paranoia" uses libparanoia II, which is on most drives
>   reports every read operation as "perfect", regardless of
>   amount of scratches. There is no automatic way to detect
>   if your drive works or not. Especially, using "cdparanoia -A"
>   is not sufficient because cdparanoia uses better algorithms
>   that the library bundled with icedax.
>

Or drop it entirely - a silent misbehavior is the worst possible behavior.

Attached is a patch that disables libparanoia, just as a proposal.
The "-paranoia" option is still accepted, the "standard" icedax algorithm is used.

Comment 8 Manfred Spraul 2012-07-29 11:56:53 UTC
Created attachment 601019 [details]
Propsal: do not use libparanoia II, update icedax man page

Comment 9 Honza Horak 2012-07-30 15:20:20 UTC
Created attachment 601296 [details]
Patch to use system-wide cdparanoia library

Things seem better today, I believe unbundling of paranoia library was successful, at least in my random testing.

With the attached patch icedax should use cdrkit's tools only for track reading and cdparanoia library for reading data itself, in case -paranoia option is used.

Guys, if you can test the patch in your use cases, I'd be glad for any feedback.

Comment 10 Fedora Update System 2012-07-31 13:51:08 UTC
cdrkit-1.1.11-12.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/cdrkit-1.1.11-12.fc17

Comment 11 Fedora Update System 2012-07-31 13:53:09 UTC
cdrkit-1.1.11-12.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/cdrkit-1.1.11-12.fc16

Comment 12 Fedora Update System 2012-08-01 18:26:14 UTC
Package cdrkit-1.1.11-12.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing cdrkit-1.1.11-12.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-11365/cdrkit-1.1.11-12.fc17
then log in and leave karma (feedback).

Comment 13 Manfred Spraul 2012-08-02 18:31:54 UTC
Hi,

icedax-1.1.11-12.fc17 fixes the issue:
"-paranoia" now works properly.

I.e.: read a CD:
icedax-1.1.11-11, with "-paranoia": no warnings at all
icedax-1.11.11-12, with "-paranoia": some warnings (as it should be), audible retries (as it should be).

Test system: 
Fedora release 17 (Beefy Miracle)
AMD Phenom
3.4.4-5.fc17.x86_64


Thanks a lot!
--
  Manfred

Comment 14 Fedora Update System 2012-08-09 23:24:38 UTC
cdrkit-1.1.11-12.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2012-08-09 23:32:50 UTC
cdrkit-1.1.11-12.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.


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