--- kdemultimedia-3.4.2/akode/lib/crossfader.cpp	2005-05-23 08:06:53.000000000 -0400
+++ kdemultimedia-3.4.2-patched/akode/lib/crossfader.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -28,7 +28,7 @@
 
 // T is the input/output type, S is the fast arithmetics type, Div is a division method
 template<typename T, typename S, template<typename S> class Arithm>
-static bool _doFrame(AudioFrame* in, int& pos, AudioFrame* frame)
+bool _doFrame(AudioFrame* in, int& pos, AudioFrame* frame)
 {
     T** indata1 = (T**)in->data;
     T** indata2 = (T**)frame->data;
@@ -67,7 +67,7 @@
 
 // T is the input/output type, S is the fast arithmetics type, Arithm defines devisions
 template<typename T, typename S, template<typename S> class Arithm>
-static bool _readFrame(AudioFrame* in, int& pos, AudioFrame* frame)
+bool _readFrame(AudioFrame* in, int& pos, AudioFrame* frame)
 {
     T** indata = (T**)frame->data;
     T** outdata = (T**)in->data;
@@ -97,7 +97,7 @@
 }
 
 template<typename T>
-static void _writeFrame(AudioFrame* in, AudioFrame* source)
+void _writeFrame(AudioFrame* in, AudioFrame* source)
 {
     T** indata = (T**)in->data;
     T** outdata = (T**)source->data;
--- kdemultimedia-3.4.2/arts/modules/synth/synth_play_pat_impl.cc	2005-05-23 08:06:47.000000000 -0400
+++ kdemultimedia-3.4.2-patched/arts/modules/synth/synth_play_pat_impl.cc	2005-09-02 23:30:27.000000000 -0400
@@ -439,7 +439,7 @@
 			list<CachedPat::Data*>::iterator i;
 			for(i = pat->dList.begin(); i != pat->dList.end(); i++)
 			{
-				int diff = ::abs(double(ifreq - (*i)->patch.origFreq));
+				int diff = static_cast<int>(::fabs(double(ifreq - (*i)->patch.origFreq)));
 				if(diff < bestdiff)
 				{
 					selected = *i;
--- kdemultimedia-3.4.2/configure.in.in	2005-05-23 08:07:11.000000000 -0400
+++ kdemultimedia-3.4.2-patched/configure.in.in	2005-09-03 00:00:56.000000000 -0400
@@ -480,3 +480,5 @@
 KDE_CHECK_THEORA
 KDE_CHECK_ALSA
 AC_PATH_CDPARANOIA
+
+DO_NOT_COMPILE="$DO_NOT_COMPILE arts kmid krec"
--- kdemultimedia-3.4.2/juk/Makefile.am	2005-07-20 06:00:51.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/Makefile.am	2005-09-02 23:30:27.000000000 -0400
@@ -81,7 +81,7 @@
 ##################################################
 
 juk_LDADD = -lm $(LDADD_GST) $(mblibs) $(LIB_KIO) $(taglib_libs) $(LIB_KHTML) $(LIB_ARTS) ../akode/lib/libakode.la
-juk_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LDFLAGS_GST)
+juk_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LDFLAGS_GST) -Xlinker -framework -Xlinker CoreFoundation
 
 KDE_CXXFLAGS = $(USE_EXCEPTIONS)
 
--- kdemultimedia-3.4.2/juk/actioncollection.cpp	2005-05-23 08:07:04.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/actioncollection.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -13,6 +13,7 @@
  *                                                                         *
  ***************************************************************************/
 
+#include <kactionclasses.h>
 #include <kactioncollection.h>
 #include <kdebug.h>
 
@@ -38,4 +39,5 @@
         return actions()->action(key);
 #endif
     }
+
 }
--- kdemultimedia-3.4.2/juk/actioncollection.h	2005-05-23 08:07:04.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/actioncollection.h	2005-09-02 23:30:27.000000000 -0400
@@ -16,6 +16,9 @@
 #ifndef JUK_ACTIONCOLLECTION_H
 #define JUK_ACTIONCOLLECTION_H
 
+#include <kactionclasses.h>
+#include <kactioncollection.h>
+
 class KActionCollection;
 class KAction;
 
@@ -27,19 +30,23 @@
     KActionCollection *actions();
 
     /**
-     * Returns the action for the associated key from the global action
-     * collection.
-     */
-    KAction *action(const char *key);
-
-    /**
      * Returns the action for the associated key but includes a cast to the
      * type \a T.  i.e. KSelectAction *a = action<KSelectAction>("chooser");
      */
-    template <class T> T *action(const char *key)
+    // i had to move this here because of SunProCC's pickiness with template
+    // instantiations ...
+    template <class T>
+    T* action(const char *key)
     {
+	const char* bogus = 0;
         return dynamic_cast<T *>(action(key));
     }
+
+    /**
+     * Returns the action for the associated key from the global action
+     * collection.
+     */
+    KAction *action(const char *key);
 }
 
 #endif
--- kdemultimedia-3.4.2/juk/historyplaylist.cpp	2005-05-23 08:07:04.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/historyplaylist.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -19,6 +19,7 @@
 
 #include "historyplaylist.h"
 #include "collectionlist.h"
+#include "playlistitem.h"
 #include "playermanager.h"
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -40,20 +41,6 @@
 
 }
 
-HistoryPlaylistItem *HistoryPlaylist::createItem(const FileHandle &file,
-                                                 QListViewItem *after, bool emitChanged)
-{
-    if(!after)
-        after = lastItem();
-    return Playlist::createItem<HistoryPlaylistItem, CollectionListItem,
-        CollectionList>(file, after, emitChanged);
-}
-
-void HistoryPlaylist::createItems(const PlaylistItemList &siblings)
-{
-    Playlist::createItems<CollectionListItem, HistoryPlaylistItem, PlaylistItem>(siblings);
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 // HistoryPlaylist protected members
 ////////////////////////////////////////////////////////////////////////////////
--- kdemultimedia-3.4.2/juk/historyplaylist.h	2005-05-23 08:07:04.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/historyplaylist.h	2005-09-02 23:30:27.000000000 -0400
@@ -19,6 +19,7 @@
 
 #include "playlist.h"
 #include "playlistitem.h"
+#include "collectionlist.h"
 
 class HistoryPlaylistItem : public PlaylistItem
 {
@@ -43,8 +44,17 @@
     virtual ~HistoryPlaylist();
 
     virtual HistoryPlaylistItem *createItem(const FileHandle &file, QListViewItem *after = 0,
-                                            bool emitChanged = true);
-    virtual void createItems(const PlaylistItemList &siblings);
+                                            bool emitChanged = true)
+    {
+	if (0 == after)
+	    after = lastItem();
+
+	return dynamic_cast<HistoryPlaylistItem*>(Playlist::createItem (file, after, emitChanged));
+    }
+    virtual void createItems(const PlaylistItemList &siblings)
+    {
+           Playlist::createItems(siblings);
+    }
     virtual int columnOffset() const { return 1; }
     virtual bool readOnly() const { return true; }
 
--- kdemultimedia-3.4.2/juk/playlist.h	2005-05-23 08:07:04.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/playlist.h	2005-09-02 23:30:27.000000000 -0400
@@ -680,6 +680,9 @@
 QDataStream &operator>>(QDataStream &s, Playlist &p);
 
 // template method implementations
+#include "historyplaylist.h"
+#include "collectionlist.h"
+#include "playlistitem.h"
 
 template <class ItemType, class CollectionItemType, class CollectionListType>
 ItemType *Playlist::createItem(const FileHandle &file, QListViewItem *after,
--- kdemultimedia-3.4.2/juk/stringhash.h	2005-05-23 08:07:04.000000000 -0400
+++ kdemultimedia-3.4.2-patched/juk/stringhash.h	2005-09-02 23:30:27.000000000 -0400
@@ -53,9 +53,11 @@
 
     int hash(T key) const;
 
-    static inline int tableSize() { return m_tableSize; }
+    static int tableSize() { return m_tableSize; }
 
+#if (!defined (__SUNPRO_CC))
 protected:
+#endif
 
     struct Node
     {
@@ -105,13 +107,16 @@
     }
 
 protected:
-
     void deleteNode(Node *n);
     
+public:
     QPtrVector<Node> m_table;
-    static const int m_tableSize = 5003;
+    static const int m_tableSize;
 };
 
+template<class T>
+const int Hash<T>::m_tableSize = 5003;
+
 ////////////////////////////////////////////////////////////////////////////////
 // helper functions
 ////////////////////////////////////////////////////////////////////////////////
--- kdemultimedia-3.4.2/kioslave/audiocd/audiocd.cpp	2005-07-20 06:00:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kioslave/audiocd/audiocd.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -24,6 +24,8 @@
 
 #include <config.h>
 
+#undef VERSION
+
 extern "C"
 {
 #include <cdda_interface.h>
--- kdemultimedia-3.4.2/kmix/kmix-platforms.cpp	2005-07-20 06:00:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kmix/kmix-platforms.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -28,7 +28,7 @@
 
 #include "mixer_backend.h"
 
-#if defined(sun) || defined(__sun__)
+#if defined(sun) || defined(__sun__) || defined (__sun)
 #define SUN_MIXER
 #endif
 
--- kdemultimedia-3.4.2/kmix/mixer_sun.cpp	2005-07-20 06:00:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kmix/mixer_sun.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -29,6 +29,8 @@
 #include <unistd.h>
 #include <stdlib.h>
 
+#include <klocale.h>
+
 #include "mixer_sun.h"
 
 
--- kdemultimedia-3.4.2/kmix/mixer_sun.h	2005-07-20 06:00:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kmix/mixer_sun.h	2005-09-02 23:30:27.000000000 -0400
@@ -25,6 +25,8 @@
 
 #include <qstring.h>
 
+#include <mixer.h>
+
 #include "mixer_backend.h"
 
 class Mixer_SUN : public Mixer_Backend
--- kdemultimedia-3.4.2/kmix/volume.cpp	2005-07-20 06:00:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kmix/volume.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -74,7 +74,11 @@
 void Volume::init( ChannelMask chmask, long maxVolume, long minVolume, long maxVolumeRec, long minVolumeRec )
 {
     for ( int i=0; i<= Volume::CHIDMAX; i++ ) {
+#if defined (__sun)
+	_volumes[i] = 50;
+#else
 	_volumes[i] = 0;
+#endif
     }
     _chmask     = chmask;
     _maxVolume  = maxVolume;
--- kdemultimedia-3.4.2/kscd/kscd.cpp	2005-07-20 06:00:50.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kscd/kscd.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -1000,7 +1000,7 @@
             QString errstring =
                 i18n("CD-ROM read or access error (or no audio disc in drive).\n"\
                      "Please make sure you have access permissions to:\n%1")
-                .arg(Prefs::cdDevice().isNull() ? wm_drive_device() : Prefs::cdDevice());
+                .arg(Prefs::cdDevice().isNull() ? wm_drive_device() : Prefs::cdDevice().latin1());
             KMessageBox::error(this, errstring, i18n("Error"));
         }
         return;
--- kdemultimedia-3.4.2/kscd/libwm/audio/audio_arts.c	2005-05-23 08:06:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kscd/libwm/audio/audio_arts.c	2005-09-02 23:30:27.000000000 -0400
@@ -24,6 +24,8 @@
 
 #include <config.h>
 
+#include <strings.h>
+
 #ifdef USE_ARTS
 
 #include <artsc.h>
@@ -31,6 +33,7 @@
 #include "audio.h"
 
 arts_stream_t arts_stream = NULL;
+static struct audio_oops arts_oops;
 
 int arts_open(void);
 int arts_close(void);
@@ -50,7 +53,7 @@
   DEBUGLOG("arts_open\n");
 
   if(!(arts_stream = arts_play_stream(44100, 16, 2, "cddaslave"))) {
-    ERRORLOG("cannot open ARTS stream for playback\n");
+    ERRORLOG("%s""cannot open ARTS stream for playback\n", "");
     return -1;
   }
   /* 1000 ms because we read 75 frames = 1 sec */
@@ -114,20 +117,18 @@
   return -1; /* not implemented yet for ARTS */
 }
 
-static struct audio_oops arts_oops = {
-  .wmaudio_open    = arts_open,
-  .wmaudio_close   = arts_close,
-  .wmaudio_play    = arts_play,
-  .wmaudio_stop    = arts_stop,
-  .wmaudio_state   = arts_state,
-  .wmaudio_balance = NULL,
-  .wmaudio_volume  = NULL
-};
-
 struct audio_oops*
 setup_arts(const char *dev, const char *ctl)
 {
-  int err;
+  int err = 0;
+  (void) bzero (&arts_oops, sizeof (struct audio_oops));
+  arts_oops.wmaudio_open    = arts_open;
+  arts_oops.wmaudio_close   = arts_close;
+  arts_oops.wmaudio_play    = arts_play;
+  arts_oops.wmaudio_stop    = arts_stop;
+  arts_oops.wmaudio_state   = arts_state;
+  arts_oops.wmaudio_balance = NULL;
+  arts_oops.wmaudio_volume  = NULL;
 
   if((err = arts_init())) {
     ERRORLOG("cannot initialize ARTS audio subsystem (%s)\n", arts_error_text(err));
@@ -139,3 +140,4 @@
   return &arts_oops;
 }
 #endif
+
--- kdemultimedia-3.4.2/kscd/libwm/cdda.c	2005-05-23 08:06:56.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kscd/libwm/cdda.c	2005-09-02 23:30:27.000000000 -0400
@@ -114,25 +114,25 @@
     dev.status = WM_CDM_UNKNOWN;
     dev.devname = d->cd_device;
 
-    if ((ret = wmcdda_init(&dev)))
+    if ((ret = wmcdda_init(&dev, 0L)))
         return ret;
 
     oops = setup_soundsystem(d->soundsystem, d->sounddevice, d->ctldevice);
     if (!oops) {
-        ERRORLOG("cdda: setup_soundsystem failed\n");
+        ERRORLOG("cdda: setup_soundsystem failed\n", "");
         wmcdda_close(&dev);
         return -1;
     }
 
     if(pthread_create(&thread_read, NULL, cdda_fct_read, &dev)) {
-        ERRORLOG("error by create pthread");
+        ERRORLOG("error by create pthread", "");
         oops->wmaudio_close();
         wmcdda_close(&dev);
         return -1;
     }
 
     if(pthread_create(&thread_play, NULL, cdda_fct_play, &dev)) {
-        ERRORLOG("error by create pthread");
+        ERRORLOG("error by create pthread", "");
         oops->wmaudio_close();
         wmcdda_close(&dev);
         return -1;
@@ -396,7 +396,7 @@
             result = wmcdda_read(cddadev, &blks[i]);
             
             if (result <= 0 && blks[i].status != WM_CDM_TRACK_DONE) {
-                ERRORLOG("cdda: wmcdda_read failed, stop playing\n");
+                ERRORLOG("cdda: wmcdda_read failed, stop playing\n", "");
                 cddadev->command = WM_CDM_STOPPED;
                 break;
             } else {
@@ -441,7 +441,7 @@
         
         if (oops->wmaudio_play(&blks[i])) {
             oops->wmaudio_stop();
-            ERRORLOG("cdda: wmaudio_play failed\n");
+            ERRORLOG("cdda: wmaudio_play failed\n", "");
             cddadev->command = WM_CDM_STOPPED;
         }
         cddadev->frame = blks[i].frame;
--- kdemultimedia-3.4.2/kscd/libwm/include/wm_cdda.h	2005-05-23 08:06:54.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kscd/libwm/include/wm_cdda.h	2005-09-02 23:30:27.000000000 -0400
@@ -91,6 +91,7 @@
 		#define WM_BIG_ENDIAN 1
 	#endif
 #elif defined(__sun) || defined(sun)
+#include <endian.h>
 # ifdef SYSV
 #  include <sys/types.h>
 #  include <sys/cdio.h>
@@ -167,7 +168,11 @@
 void cdda_set_loudness(struct wm_drive *d, int loud);
 
 
+#if defined (__sun)
+int wmcdda_init(struct cdda_device* pdev, struct cdda_block *block);
+#else
 int wmcdda_init(struct cdda_device*);
+#endif
 int wmcdda_open(const char*);
 int wmcdda_close(struct cdda_device*);
 int wmcdda_setup(int start, int end, int realstart);
@@ -194,10 +199,10 @@
 #include <stdio.h>
 
 #ifdef DEBUG
- #define DEBUGLOG(fmt, args...) fprintf(stderr, fmt, ##args)
+ #define DEBUGLOG(fmt, args,...) fprintf(stderr, fmt, ##args)
 #else
- #define DEBUGLOG(fmt, args...)
+ #define DEBUGLOG(fmt, args,...)
 #endif
-#define ERRORLOG(fmt, args...) fprintf(stderr, fmt, ##args)
+#define ERRORLOG(fmt, args,...) fprintf(stderr, fmt, ##args)
 
 #endif /* WM_CDDA_H */
--- kdemultimedia-3.4.2/kscd/libwm/plat_sun.c	2005-05-23 08:06:56.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kscd/libwm/plat_sun.c	2005-09-02 23:30:27.000000000 -0400
@@ -29,6 +29,10 @@
 
 #if defined(sun) || defined(__sun)
 
+#ifdef BUILD_CDDA
+#undef BUILD_CDDA
+#endif
+
 #include <errno.h>
 #include <stdio.h>
 #include <sys/types.h>
@@ -43,6 +47,7 @@
 #include "include/wm_helpers.h"
 #include "include/wm_cdrom.h"
 #include "include/wm_cdtext.h"
+#include "include/wm_cdda.h"
 
 #include <ustat.h>
 #include <unistd.h>
@@ -69,7 +74,7 @@
 # endif
 #endif
 
-#include "include/wm_struct.h"
+// #include "include/wm_struct.h"
 
 #define WM_MSG_CLASS WM_MSG_CLASS_PLATFORM
 
@@ -277,10 +282,9 @@
 /*
  * Re-Open the device if it is open.
  */
-int
-wmcd_reopen( struct wm_drive *d )
+int wmcd_reopen ( struct wm_drive* d )
 {
-  int status;
+  int status = 1;
   
   do {
     wm_lib_message(WM_MSG_LEVEL_DEBUG|WM_MSG_CLASS, "wmcd_reopen\n");
--- kdemultimedia-3.4.2/kscd/libwm/plat_sun_cdda.c	2005-05-23 08:06:56.000000000 -0400
+++ kdemultimedia-3.4.2-patched/kscd/libwm/plat_sun_cdda.c	2005-09-02 23:30:27.000000000 -0400
@@ -27,7 +27,7 @@
 
 #include "include/wm_cdda.h"
 
-#if defined(sun) || defined(__sun__) && defined(SYSV) && defined(BUILD_CDDA)
+#if defined(sun) || defined(__sun) && defined(SYSV) && defined(BUILD_CDDA)
 
 
 #include "include/wm_struct.h"
--- kdemultimedia-3.4.2/mpeglib/lib/input/cdromRawAccess.cpp	2005-05-23 08:06:47.000000000 -0400
+++ kdemultimedia-3.4.2-patched/mpeglib/lib/input/cdromRawAccess.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -12,11 +12,10 @@
 
 
 #include <iostream>
+using namespace std;
 
 #include "cdromRawAccess.h"
 
-using namespace std;
-
 CDRomRawAccess::CDRomRawAccess(CDRomToc* cdromToc) {
   cdfile=NULL;
   lOpen=false;
@@ -55,7 +54,7 @@
   if (strlen(filename) <= 1) {
     filename="/dev/cdrom";
   } 
-  char* openfile=strchr(filename,'/');
+  char* openfile = const_cast<char*>(::strchr(filename,'/'));
   cout << "openfile:"<<openfile<<endl;
   cdfile=fopen(openfile, "rb");
   lOpen=false;
--- kdemultimedia-3.4.2/mpeglib/lib/input/fileAccessWrapper.cpp	2005-05-23 08:06:47.000000000 -0400
+++ kdemultimedia-3.4.2-patched/mpeglib/lib/input/fileAccessWrapper.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -30,13 +30,14 @@
 
 int FileAccessWrapper::open(const char*) {
   cout << "FileAccessWrapper open not implemented"<<endl;
-  exit(0);
+  ::exit(0);
+  return (0);
 }
 
 
 void FileAccessWrapper::close() {
   cout << "FileAccessWrapper close not implemented"<<endl;
-  exit(0);
+  ::exit(0);
 }
 
 
--- kdemultimedia-3.4.2/mpeglib/lib/input/inputDetector.cpp	2005-05-23 08:06:47.000000000 -0400
+++ kdemultimedia-3.4.2-patched/mpeglib/lib/input/inputDetector.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -119,7 +119,7 @@
     return NULL;
   } 
   char* back=NULL;
-  char* extStart=strrchr(url,'.');
+  char* extStart=const_cast<char*>(::strrchr(url,'.'));
   if (extStart != NULL) {
     cout << "extStart:"<<extStart<<endl;
     back=strdup(extStart);
@@ -172,7 +172,7 @@
   if (url == NULL) {
     return NULL;
   }
-  char* startSlash=strrchr(url,'/');
+  char* startSlash=const_cast<char*>(::strrchr(url,'/'));
   if (startSlash == NULL) {
     return NULL;
   }
--- kdemultimedia-3.4.2/mpeglib_artsplug/decoderBaseObject_impl.h	2005-05-23 08:07:07.000000000 -0400
+++ kdemultimedia-3.4.2-patched/mpeglib_artsplug/decoderBaseObject_impl.h	2005-09-02 23:30:27.000000000 -0400
@@ -15,14 +15,20 @@
 #define __DECODERBASEOBJECT_IMPL_H
 
 
-#include <math.h>
+#include <cstdlib>
+#include <cstring>
+#include <cmath>
+#include <queue>
+#include <deque>
+using namespace std;
+
 #include "decoderBaseObject.h"
 #include "stdsynthmodule.h"
 #include "convert.h"
 #include <X11/Xlib.h>
 #include <audiosubsys.h>
-#include <stdio.h>
-#include <string.h>
+// #include <stdio.h>
+// #include <string.h>
 
 #include <arts/kmedia2.h>
 
@@ -32,7 +38,7 @@
 #define _THREADSTATE_PLAYING      3
 #define _THREADSTATE_CLOSED       4
 
-#include <queue>
+// #include <queue>
 
 class DecoderPlugin;
 class InputStream;
@@ -64,7 +70,7 @@
 
   bool m_streaming;
 
-  queue<DataPacket<mcopbyte>*> *m_packetQueue;
+  std::queue<DataPacket<mcopbyte>* >* m_packetQueue;
 
 public:
 
--- kdemultimedia-3.4.2/noatun/library/noatunarts/Makefile.am	2005-05-23 08:06:28.000000000 -0400
+++ kdemultimedia-3.4.2-patched/noatun/library/noatunarts/Makefile.am	2005-09-02 23:30:27.000000000 -0400
@@ -6,7 +6,7 @@
                            FFTScopes.cpp StereoEffectStack_impl.cpp \
                            StereoVolumeControl_impl.cpp Session_impl.cpp
 
-libnoatunarts_la_LDFLAGS = $(all_libraries) -avoid-version -no-undefined
+libnoatunarts_la_LDFLAGS = $(all_libraries) -no-undefined
 libnoatunarts_la_LIBADD =  -lkmedia2_idl -lsoundserver_idl -lartsflow
 libnoatunarts_la_METASOURCES = AUTO
 
--- kdemultimedia-3.4.2/noatun/modules/Makefile.am	2005-05-23 08:06:39.000000000 -0400
+++ kdemultimedia-3.4.2-patched/noatun/modules/Makefile.am	2005-09-02 23:33:41.000000000 -0400
@@ -1,4 +1,4 @@
-SUBDIRS = artseffects \
+SUBDIRS = \
 	dcopiface excellent htmlexport infrared kaiman keyz kjofol-skin \
 	marquis metatag monoscope net noatunui splitplaylist systray \
 	voiceprint winskin simple
--- kdemultimedia-3.4.2/noatun/modules/voiceprint/voiceprint.cpp	2005-05-23 08:06:29.000000000 -0400
+++ kdemultimedia-3.4.2-patched/noatun/modules/voiceprint/voiceprint.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -95,8 +95,8 @@
 	{
 		float b=data[bands-i-1]+1.0;
 		// the more bands there are, the dimmer each becomes
-		b=log10(b)/log(2) * 16 * brightness;
-		int band=int(b);
+		b = static_cast<float>(::log10(static_cast<double>(b)) / ::log(static_cast<double>(2)) * 16 * brightness);
+		int band=static_cast<int>(b);
 		if (band>255) band=255;
 		else if (band<0) band=0;
 		
--- kdemultimedia-3.4.2/noatun/modules/winskin/vis/Makefile.am	2005-05-23 08:06:30.000000000 -0400
+++ kdemultimedia-3.4.2-patched/noatun/modules/winskin/vis/Makefile.am	2005-09-02 23:30:27.000000000 -0400
@@ -14,7 +14,7 @@
 				realFFTFilter.cpp visQueue.cpp
 
 
-libwinskinvis_la_LDFLAGS=	$(all_libraries) -avoid-version \
+libwinskinvis_la_LDFLAGS=	$(all_libraries) \
 				-no-undefined
 
 libwinskinvis_la_LIBADD =	-lkmedia2_idl -lsoundserver_idl -lartsflow
--- kdemultimedia-3.4.2/noatun/modules/winskin/vis/winSkinFFT_impl.cpp	2005-05-23 08:06:30.000000000 -0400
+++ kdemultimedia-3.4.2-patched/noatun/modules/winskin/vis/winSkinFFT_impl.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -96,7 +96,7 @@
     tmp=re*re+im*im;  
     // Here I check a new idea. We remove all low values
     // and all values over xyz to xyz.
-    fftArray[pos]=(int)(::sqrt(::sqrt(tmp)));
+    fftArray[pos]=static_cast<int>(::sqrt(::sqrt(static_cast<double>(tmp))));
     
     if (fftArray[pos]<=15) {
       max+=fftArray[pos];
--- kdemultimedia-3.4.2/oggvorbis_artsplugin/oggPlayObject_impl.cpp	2005-05-23 08:06:41.000000000 -0400
+++ kdemultimedia-3.4.2-patched/oggvorbis_artsplugin/oggPlayObject_impl.cpp	2005-09-02 23:30:27.000000000 -0400
@@ -30,11 +30,12 @@
 #include <convert.h>
 #include <debug.h>
 
-
 #include "oggPlayObject_impl.h"
 
 using namespace Arts;
 
+const int oggPlayObject_impl::BACKBUFSIZ = 4096;
+
 oggPlayObject_impl::oggPlayObject_impl()
 {
 	struct shmid_ds bleh;
--- kdemultimedia-3.4.2/oggvorbis_artsplugin/oggPlayObject_impl.h	2005-05-23 08:06:41.000000000 -0400
+++ kdemultimedia-3.4.2-patched/oggvorbis_artsplugin/oggPlayObject_impl.h	2005-09-02 23:30:27.000000000 -0400
@@ -1,7 +1,7 @@
 #ifndef OGGPLAYER_IMPL_H
 #define OGGPLAYER_IMPL_H "$Id: oggPlayObject_impl.h 185834 2002-10-27 01:10:28Z pfeiffer $"
 
-#if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)
+#if (defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED)) || defined(__APPLE__)
 /* union semun is defined by including <sys/sem.h> */
 #else
 /* according to X/OPEN we have to define it ourselves */
@@ -39,9 +39,7 @@
 	void calculateBlock(unsigned long samples);
 	void streamEnd();
 
- protected:
-
-	static const int BACKBUFSIZ=4096;
+	static const int BACKBUFSIZ;
 	OggVorbis_File vf;
 	std::string currentFile;
 
@@ -50,8 +48,8 @@
 
 	poState mState;
 	struct buf_t{
-		float left[BACKBUFSIZ];
-		float right[BACKBUFSIZ];
+		float left[4096];
+		float right[4096];
 	} *shm_buf;
 	int shm_id, child_pid;
 	int buflen_sem;
--- kdemultimedia-3.4.2/xine_artsplugin/xinePlayObject_impl.h	2005-05-23 08:07:11.000000000 -0400
+++ kdemultimedia-3.4.2-patched/xine_artsplugin/xinePlayObject_impl.h	2005-09-02 23:30:27.000000000 -0400
@@ -62,6 +62,7 @@
     {
 	((xinePlayObject_impl *)obj)->eventLoop();
 	pthread_exit( 0 );
+	return ((void *) 0);
     }
 
     // C -> C++ wrapper for xine API
