This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 463009 - cdda_interface.h not compatible with C++
cdda_interface.h not compatible with C++
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: cdparanoia (Show other bugs)
rawhide
All Linux
medium Severity high
: ---
: ---
Assigned To: Kevin Kofler
Fedora Extras Quality Assurance
http://linux.dell.com/files/fedora/Fi...
: Patch
Depends On:
Blocks: F10FTBFS
  Show dependency treegraph
 
Reported: 2008-09-20 13:19 EDT by Kevin Kofler
Modified: 2008-09-30 09:30 EDT (History)
5 users (show)

See Also:
Fixed In Version: 10.2-2.fc10
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-09-30 09:30:05 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Kevin Kofler 2008-09-20 13:19:00 EDT
Description of problem:
The /usr/include/cdda/cdda_interface.h header in cdparanoia 10.2 tries to use "private" as a structure member (in line 87: cdda_private_data_t *private;). This is not allowed in C++ because "private" is a C++ keyword. This breaks the kdemultimedia build.

Version-Release number of selected component (if applicable):
cdparanoia-10.2-1.fc10

How reproducible:
Always

Steps to Reproduce:
1. Try to rebuild kdemultimedia 4.1.1 against cdparanoia 10.2.
  
Actual results:
In file included from /builddir/build/BUILD/kdemultimedia-4.1.1/kioslave/audiocd/audiocd.cpp:30:
/usr/include/cdda/cdda_interface.h:87: error: expected unqualified-id before 'private'
/usr/include/cdda/cdda_interface.h:87: error: expected ';' before 'private'

Expected results:
Successful build.

Additional info:
Full build log here:
http://linux.dell.com/files/fedora/FixBuildRequires/mock-results/i386/kdemultimedia-4.1.1-1.fc10.src.rpm/result/build.log
(and thanks to Matt Domsch for his regular rebuilds).

We could hack around this in kdemultimedia with a #define, but of course I'd much prefer cdparanoia to be fixed. :-)
Comment 1 Jarod Wilson 2008-09-23 12:47:48 EDT
This also breaks building at least one multimedia package in a 3rd-party repo...
Comment 2 Jarod Wilson 2008-09-23 13:09:40 EDT
Nb: in my case, even wrapping the cdda_interface.h include with extern "C" doesn't help.
Comment 3 Kevin Kofler 2008-09-23 13:44:52 EDT
extern "C" doesn't excuse the contained code from being valid C++.

This hack should work:
#define private cdparanoia_private
#include <cdda/cdda_interface.h>
#undef private

But instead of adding such hacks to our packages, we should just fix cdparanoia!
Comment 4 Jarod Wilson 2008-09-23 17:16:28 EDT
Gotcha. Hack does indeed work, employing it for the moment.

Any reason we can't simply rename 'private' to 'pvt' in cdparanoia and call it good? I mean, this breakage didn't exist in prior releases, so I doubt if anything outside of cdparanoia itself is actually using that part of that struct by name...
Comment 5 Ville Skyttä 2008-09-25 11:45:44 EDT
Also breaks kaffeine's build.

Upstream fix for cdparanoia: https://trac.xiph.org/changeset/15338
Comment 6 Kevin Kofler 2008-09-29 09:37:05 EDT
Ping? If you don't have the time to fix it, can you please open the package to the "packager" group so somebody else can make the trivial fix (just apply the patch from upstream)?
Comment 7 Kevin Kofler 2008-09-30 09:13:34 EDT
Thanks for having opened the ACL, I'm fixing this now.

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