Bug 70269

Summary: mpeglib_artsplug does not compile
Product: [Unmaintained] kdemultimedia Reporter: Aaron Williams <aaronw>
Component: generalAssignee: Multimedia Developers <kde-multimedia>
Status: RESOLVED FIXED    
Severity: normal CC: drutitsky, stevee
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Solaris   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Aaron Williams 2003-12-13 03:03:42 UTC
Version:            (using KDE KDE 3.1.94)
Installed from:    Compiled From Sources
Compiler:          gcc 3.3.2 Sparc Solaris 2.8
OS:          Solaris

make[1]: Entering directory `/var/tmp/kde/archive/3.2beta/kdemultimedia-3.1.94/mpeglib_artsplug'
if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../mpeglib/lib -I/opt/kde3/3.2beta/include/artsc -D_REENTRANT -I/opt/kdeshared/include/glib-2.0 -I/opt/kdeshared/lib/glib-2.0/include -I/opt/kde3/3.2beta/include/arts -I/opt/kde3/3.2beta/include -I/opt/qt/qt-3.2.2/include   -I/opt/kdeshared/include  -DQT_THREAD_SUPPORT  -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -O2 -fno-exceptions -ftemplate-depth-99 -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -MT libarts_mpeglib_la.all_cpp.lo -MD -MP -MF ".deps/libarts_mpeglib_la.all_cpp.Tpo" \
  -c -o libarts_mpeglib_la.all_cpp.lo `test -f 'libarts_mpeglib_la.all_cpp.cpp' || echo './'`libarts_mpeglib_la.all_cpp.cpp; \
then mv -f ".deps/libarts_mpeglib_la.all_cpp.Tpo" ".deps/libarts_mpeglib_la.all_cpp.Plo"; \
else rm -f ".deps/libarts_mpeglib_la.all_cpp.Tpo"; exit 1; \
fi
In file included from decoderBaseObject_impl.cpp:19,
                 from libarts_mpeglib_la.all_cpp.cpp:2:
decoderBaseObject_impl.h:67: error: syntax error before `*' token
In file included from libarts_mpeglib_la.all_cpp.cpp:2:
decoderBaseObject_impl.cpp: In constructor `
   DecoderBaseObject_impl::DecoderBaseObject_impl()':
decoderBaseObject_impl.cpp:49: error: `m_packetQueue' undeclared (first use
   this function)
decoderBaseObject_impl.cpp:49: error: (Each undeclared identifier is reported
   only once for each function it appears in.)
In file included from libarts_mpeglib_la.all_cpp.cpp:9:
nullPlayObject_impl.cpp: In member function `virtual bool
   NULLPlayObject_impl::loadMedia(const std::string&)':
nullPlayObject_impl.cpp:26: warning: unused parameter `const
   std::string&filename'
make[1]: *** [libarts_mpeglib_la.all_cpp.lo] Error 1
make[1]: Leaving directory `/var/tmp/kde/archive/3.2beta/kdemultimedia-3.1.94/mpeglib_artsplug'
make: *** [all] Error 2


For some reason, GCC doesn't like the line


  queue<DataPacket<mcopbyte>*> *m_packetQueue;


in decoderBaseObject_impl.cpp line 67.  I'm not a C++ expert so I don't know what's wrong with this.
Comment 1 Thiago Macieira 2003-12-13 05:14:53 UTC
If you add a space before the second >, does it work?

Does it work if you compile without --enable-final?
Comment 2 Aaron Williams 2003-12-15 21:57:00 UTC
Adding the space did not help.  Neither did compiling without --enable-final.

if /bin/bash ../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../mpeglib/lib -I/opt/kde3/3.2beta/include/artsc -D_REENTRANT -I/opt/kdeshared/include/glib-2.0 -I/opt/kdeshared/lib/glib-2.0/include -I/opt/kde3/3.2beta/include/arts -I/opt/kde3/3.2beta/include -I/opt/qt/qt-3.2.2/include   -I/opt/kdeshared/include  -DQT_THREAD_SUPPORT  -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4  -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -O2 -fno-exceptions -ftemplate-depth-99 -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -MT decoderBaseObject_impl.lo -MD -MP -MF ".deps/decoderBaseObject_impl.Tpo" \
  -c -o decoderBaseObject_impl.lo `test -f 'decoderBaseObject_impl.cpp' || echo './'`decoderBaseObject_impl.cpp; \
then mv -f ".deps/decoderBaseObject_impl.Tpo" ".deps/decoderBaseObject_impl.Plo"; \
else rm -f ".deps/decoderBaseObject_impl.Tpo"; exit 1; \
fi
In file included from decoderBaseObject_impl.cpp:19:
decoderBaseObject_impl.h:67: error: syntax error before `*' token
decoderBaseObject_impl.cpp: In constructor `
   DecoderBaseObject_impl::DecoderBaseObject_impl()':
decoderBaseObject_impl.cpp:49: error: `m_packetQueue' undeclared (first use
   this function)
decoderBaseObject_impl.cpp:49: error: (Each undeclared identifier is reported
   only once for each function it appears in.)
make[1]: *** [decoderBaseObject_impl.lo] Error 1
make[1]: Leaving directory `/var/tmp/kde/archive/3.2beta/kdemultimedia-3.1.94/mpeglib_artsplug'
make: *** [all] Error 2

Note that I am compiling this with gcc 3.3.2.
Comment 3 Aaron Williams 2003-12-18 02:31:25 UTC
I was able to get this to compile by changing the order of include files in decoderBaseObject_impl.cpp.  By moving decoderBaseObject_impl.h before ../mpeglib/lib/decoder/decoderPlugin.h fixes the problem.  The new include lines look like the following:

 #include <connect.h> 	 #include <connect.h>
  	 
 #include "decoderBaseObject_impl.h" 	 
 #include "../mpeglib/lib/decoder/decoderPlugin.h"

Basically this is just reverting a change made between 1.25 and 1.27.
Comment 4 Dustin Marquess 2004-01-09 20:50:27 UTC
I can verify both the problem and the solution.
Comment 5 Aaron Williams 2004-05-03 21:30:29 UTC
This is STILL broken in 3.2.2.  The fix also works with GCC 3.3.3 and 3.4.
Comment 6 Aaron Williams 2004-06-17 00:10:03 UTC
This is STILL broken in 3.2.3.  Please patch this!
Comment 7 Bernd Kuhls 2004-10-15 15:24:30 UTC
Still broken in KDE-3.3.1
Comment 8 Steve Evans 2004-10-19 14:51:07 UTC
An alternative fix is to add std:: before the queue, so the line looks like:

std::queue<DataPacket<mcopbyte>*> *m_packetQueue;

This suggests that something is messing up the using namespace std; that occurs earlier in the header file.
Comment 9 Aaron Williams 2005-01-26 23:29:29 UTC
Still broken in KDE-3.3.2.  This should be easy to fix... why can't someone just check in the fix?
Comment 10 Stefan Gehn 2005-01-27 09:19:52 UTC
nobody cares about mpeglib, it should be removed. use aKode.
Comment 11 Bernd Kuhls 2005-02-22 15:10:02 UTC
Is there really nobody with CVS access who can just swap these two lines? Should be easy to achieve.
Comment 12 Scott Wheeler 2005-02-22 15:40:24 UTC
CVS commit by wheeler: 

Fix compile on Solaris.

BUG:70269


  M +1 -1      decoderBaseObject_impl.cpp   1.28


--- kdemultimedia/mpeglib_artsplug/decoderBaseObject_impl.cpp  #1.27:1.28
@@ -16,6 +16,6 @@
 #include <connect.h>
 
-#include "../mpeglib/lib/decoder/decoderPlugin.h"
 #include "decoderBaseObject_impl.h"
+#include "../mpeglib/lib/decoder/decoderPlugin.h"
 #include "debug.h"
 


Comment 13 Bernd Kuhls 2005-02-22 15:43:05 UTC
Big thanks to you, Scott!
Comment 14 Thiago Macieira 2005-02-23 01:41:26 UTC
*** Bug 72385 has been marked as a duplicate of this bug. ***