By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.

Bug 1853

Summary: Build issue: kaffeine FTBFS - libcdio 0.90-2 drops <cdio/cdda.h>
Product: TDE Reporter: David C. Rankin <trin>
Component: non-core programsAssignee: Timothy Pearson <kb9vqf>
Status: RESOLVED FIXED    
Severity: critical CC: albator78, bugwatch, darrella, kb9vqf, slavek.banko, trin
Priority: P5    
Version: R14.0.0 [Trinity]   
Hardware: All   
OS: Linux   
Compiler Version: TDE Version String:
Application Version: Application Name:
Attachments: patch that solves the problem for libcdio >= 0.9

Description David C. Rankin 2014-01-23 00:31:08 CST
kaffeine fails ./configure with libcdio >= 0.83 with the following:

checking for GStreamer... yes
checking cdio/cdda.h usability... no
checking cdio/cdda.h presence... no
checking for cdio/cdda.h... no

-----------------------------------------
ERROR: Could not find cdparanoia headers.
-----------------------------------------

configure: error: could not find cdparanoia headers

  Beginning with libcdio 0.90, the cdda.h header file is no longer present in libcdio which causes kaffeine to fail to configure with the above error. I do not know what functions/modules are not available to kaffeine due to not having cdda.h, but that is what will have to be determined and fixed. Searching "libcdio cdda.h" on StartPage returns a wealth of information on the topic.
Comment 1 David C. Rankin 2014-01-23 00:34:44 CST
Bumped to critical as this will break kaffeine for everyone who updated to libcdio > 0.83. You guys evaluate if you want to adjust importance, but since it looks like Arch is the only distro using current libcdio, I chose not to raise to 'blocker'. Just be aware, kaffeine (and anything else relying on cdda.h) will break when anyone updates to current libcdio.
Comment 2 David C. Rankin 2014-01-23 01:28:58 CST
SOLVED - But how to properly fix in code??

The problem:

  cdio-paranoia is removed from libcdio > 0.83. A new package 'libcdio-paranoia' provides all old cdio-paranoia headers, BUT the header file location has moved from:

  ../cdio

to

  ../cdio/paranoia

  I successfully built kaffeine on Arch with libcdio & libcdio-paranoia by softlinking the needed paranoia headers to ../cdio:

cdda.h -> paranoia/cdda.h
paranoia.h -> paranoia/paranoia.h

  How do we patch kaffeine to properly handle this change? kaffeine/src/input/disc/paranoia.h already includes:

#include <cdio/cdda.h>
#include <cdio/paranoia.h>

  The only other files that need fixing are:

configure.in:303:KDE_CHECK_HEADER([cdio/cdda.h], [with_cdparanoia=yes], [with_cdparanoia=no])
kaffeine/configure.in.in:223:KDE_CHECK_HEADER([cdio/cdda.h], [with_cdparanoia=yes], [with_cdparanoia=no])

  But how to do this with preprocessor checks so that it will work with both libcdio <= 0.83 and those systems with libcdio > 0.83 that will also need libcdio-paranoia?
Comment 3 David C. Rankin 2014-01-29 00:49:06 CST
Created attachment 1905 [details]
patch that solves the problem for libcdio >= 0.9

SOLVED FOR libcdio >= 0.9 - need automake conditional or preprocessor check to allow fix to work with both libcdio <= 0.83 and >= 0.9:

  Here is a patch that solves the problem for libcdio >= 0.9 where paranioa headers were removed from upstream libcdio and moved to a separate package libcdio-paranoia where they are installed in cdio/paranoia instead of cdio/
Comment 4 David C. Rankin 2014-01-29 00:50:43 CST
*** Bug 1885 has been marked as a duplicate of this bug. ***
Comment 5 Timothy Pearson 2014-01-29 12:33:48 CST
This should be fixed in GIT hash aa821e9.  Can you confirm?

Thanks!
Comment 6 Francois Andriot 2014-01-31 00:09:32 CST
Now FTBFS with libcdio 0.90

Caused by Git Hash aa821e98.
Type in "#include", missing slash.

Should be:
  #include <cdio/paranoia/cdda.h>
Not:
  #include <cdio/paranoiacdda.h>

See below:

diff --git a/kaffeine/src/input/disc/paranoia.h b/kaffeine/src/input/disc/paranoia.h
index 485be28..3f0eee3 100644
--- a/kaffeine/src/input/disc/paranoia.h
+++ b/kaffeine/src/input/disc/paranoia.h
@@ -32,8 +32,13 @@
 
 extern "C"
 {
+#ifdef HAVE_LIBCDIO_090
+#include <cdio/paranoiacdda.h>
+#include <cdio/paranoia/paranoia.h>
+#else // HAVE_LIBCDIO_090
 #include <cdio/cdda.h>
 #include <cdio/paranoia.h>
+#endif // HAVE_LIBCDIO_090
 }
 
 class KiloConfig : public ParanoiaSettings
Comment 7 Slávek Banko 2014-02-08 19:45:25 CST
Comment on attachment 1905 [details]
patch that solves the problem for libcdio >= 0.9

First pushed into the GIT in hash aa821e98, fixed in hash
597daea6.
Comment 8 David C. Rankin 2014-02-08 20:55:16 CST
Builds fine with libcdio 0.90. see commit 597daea6. Bug closed.