Bug 169365 - phonon-xine doesn't compile with xine-lib-1.1.15
Summary: phonon-xine doesn't compile with xine-lib-1.1.15
Status: RESOLVED NOT A BUG
Alias: None
Product: Phonon
Classification: Frameworks and Libraries
Component: Xine backend (show other bugs)
Version: unspecified
Platform: Gentoo Packages Unspecified
: NOR normal
Target Milestone: ---
Assignee: Matthias Kretz
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-18 14:45 UTC by Jorge Manuel B. S. Vicetto
Modified: 2008-08-19 00:27 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jorge Manuel B. S. Vicetto 2008-08-18 14:45:53 UTC
Version:            (using KDE 4.1.0)
Installed from:    Gentoo Packages

phonon-xine-4.1.0 fails to compile with xine-lib-1.1.15 with the following error:

In file included from /usr/include/xine/input_plugin.h:35,                      
                 from /usr/include/xine/xine_internal.h:55,                     
                 from
/var/tmp/paludis/kde-base-phonon-xine-4.1.0/work/phonon-xine-4.1.0/phonon/xine/net_buf_ctrl.c:37: 
/usr/include/xine/buffer.h:679: error: expected '=', ',', ';', 'asm' or
'__attribute__' before '_x_is_fourcc'                             
/var/tmp/paludis/kde-base-phonon-xine-4.1.0/work/phonon-xine-4.1.0/phonon/xine/net_buf_ctrl.c:
In function 'nbc_init':                    
/var/tmp/paludis/kde-base-phonon-xine-4.1.0/work/phonon-xine-4.1.0/phonon/xine/net_buf_ctrl.c:550:
warning: 'xine_xmalloc' is deprecated (declared at
/usr/include/xine/xineutils.h:624)                                              
make[2]: *** [phonon/xine/CMakeFiles/phonon_xine.dir/net_buf_ctrl.o] Error 1

You can follow this bug that also affects kdemultimedia-3.5.9 on https://bugs.gentoo.org/show_bug.cgi?id=234926

As previous versions of xine-lib are affected by (CVE-2008-3231), masking 1.1.15 is not a valid solution for us.
Comment 1 Jorge Manuel B. S. Vicetto 2008-08-18 15:54:15 UTC
The above compilation issue seems to be caused by the use of the ansi flag which is set in the following snippet at /usr/kde/4.1/share/apps/cmake/modules/FindKDE4Internal.cmake

   if (CMAKE_SYSTEM_NAME MATCHES Linux)
     set ( CMAKE_C_FLAGS     "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990 -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-
arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
     set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-ex
ceptions -fno-check-new -fno-common")
     add_definitions (-D_BSD_SOURCE)
   endif (CMAKE_SYSTEM_NAME MATCHES Linux)
Comment 2 Jorge Manuel B. S. Vicetto 2008-08-18 17:14:19 UTC
I got the verbose output from another user. Here is the offending line:

[0m/usr/lib/ccache/bin/x86_64-pc-linux-gnu-g++   -Dkcm_phonon_EXPORTS -march=native -O2 -pipe -fomit-frame-pointer  -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG -DQT_NO_DEBUG -fPIC -I/var/tmp/portage/kde-base/phonon-xine-4.1.0/work/phonon-xine_build/phonon/kcm -I/var/tmp/portage/kde-base/phonon-xine-4.1.0/work/phonon-xine-4.1.0/phonon/kcm -I/var/tmp/portage/kde-base/phonon-xine-4.1.0/work/phonon-xine-4.1.0 -I/var/tmp/portage/kde-base/phonon-xine-4.1.0/work/phonon-xine_build -I/usr/kde/4.1/include -I/usr/kde/4.1/include/KDE -I/usr/include/KDE -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtWebKit -I/usr/include/qt4/QtHelp -I/usr/include/qt4/QtAssistant -I/usr/include/qt4/QtDBus -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtUiTools -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtDesigner -I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/Qt -I/usr/share/qt4/mkspecs/default -I/usr/include/qt4   -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -o phonon/kcm/CMakeFiles/kcm_phonon.dir/main.o -c /var/tmp/portage/kde-base/phonon-xine-4.1.0/work/phonon-xine-4.1.0/phonon/kcm/main.cpp
Comment 3 Matthias Kretz 2008-08-19 00:27:46 UTC
This is a bug in the xine header and has already been fixed in latest libxine mercurial. Packagers might want to patch their libxine with

--- a/src/xine-engine/buffer.h  Mon Aug 18 18:27:55 2008 +0100
+++ b/src/xine-engine/buffer.h  Tue Aug 19 00:26:52 2008 +0200
@@ -676,7 +676,7 @@ void _x_bmiheader_le2me( xine_bmiheader
 /* convert xine_waveformatex struct from little endian */
 void _x_waveformatex_le2me( xine_waveformatex *wavex ) XINE_PROTECTED;

-static inline _x_is_fourcc(void *ptr, void *tag) {
+static __inline int _x_is_fourcc(void *ptr, void *tag) {
   return memcmp(ptr, tag, 4) == 0;
 }