--mP3DRpeJDSE+ciuQ
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
* Christopher Martin [Sun, 27 Mar 2005 18:41:27 -0500]:> Hello team,
Hi!
> By adding a copy of disable_no_undefined.diff, I got kdenetwork 3.3.2 to
> build with the xmms/dlopen patch written by dato, and which is currently in
> use as part of the 3.4 packages. I''ve made the necessary
modifications to
> the control, rules, changelog files, etc., but wanted feedback on whether
> this should be committed to trunk.
Curiously, when I first prepared the dlopen patch, I did it against 3.3.2,
which resulted in me becoming a little frustrated with the build failures
until I realized that it would work out of the box on 3.4 precisely because
of disable_no_undefined.
At the time I added the ''TODO: backport ...'' to
kdenetwork''s changelog,
I tried some Makefile tricks to get it to compile without having to apply
disable_no_undefined to all of kdenetwork, which didn''t feel
appropriate
to me (in a "just fix important stuff" upload, that is).
If others _really_ feel that a global disable_no_undefined is the way
to go, fine with me; it''s cleaner. I''ve nonetheless
struggled another bit
with Makefiles, and I attach a second solution that only changes the linker
flags for kopete_nowlistening.la (sort of a "local
disable_no_undefined").
Patch attached, is basically the one in r712 with an extra hack in the
Makefile.am hunk.
So, one of the two solutions can be committed, and the upload happen.
Cheers,
--
Adeodato Simó
EM: asp16 [ykwim] alu.ua.es | PK: DA6AE621
Listening to: Placebo - Bulletproof Cupid
Hanlon''s Razor: Never attribute to malice that which is adequately
explained by stupidity.
--mP3DRpeJDSE+ciuQ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="kopete_dlopen_3.3.diff"
--- a/kopete/plugins/nowlistening/Makefile.am
+++ b/kopete/plugins/nowlistening/Makefile.am
@@ -5,8 +5,9 @@
kde_module_LTLIBRARIES = kopete_nowlistening.la kcm_kopete_nowlistening.la
kopete_nowlistening_la_SOURCES = nowlisteningconfig.cpp nowlisteningplugin.cpp
nlkscd.cpp nlnoatun.cpp nlxmms.cpp nowlisteningguiclient.cpp nljuk.cpp
nlamarok.cpp nlkaffeine.cpp
-kopete_nowlistening_la_LDFLAGS = -module $(KDE_PLUGIN)
-kopete_nowlistening_la_LIBADD = ../../libkopete/libkopete.la $(XMMS_LIBS)
+coma = ,
+kopete_nowlistening_la_LDFLAGS = -module $(subst
$(KDE_NO_UNDEFINED),,$(KDE_PLUGIN))
+kopete_nowlistening_la_LIBADD = ../../libkopete/libkopete.la
kcm_kopete_nowlistening_la_SOURCES = nowlisteningprefs.ui
nowlisteningpreferences.cpp nowlisteningconfig.cpp
kcm_kopete_nowlistening_la_LDFLAGS = -module -no-undefined $(KDE_PLUGIN)
$(all_libraries)
--- a/kopete/plugins/nowlistening/nlxmms.h~
+++ b/kopete/plugins/nowlistening/nlxmms.h
@@ -31,7 +31,11 @@
{
public:
NLXmms();
+ ~NLXmms();
virtual void update();
+
+ private:
+ void *xmmslib;
};
#endif
--- a/kopete/plugins/nowlistening/nlxmms.cpp~
+++ b/kopete/plugins/nowlistening/nlxmms.cpp
@@ -26,19 +26,28 @@
+#include <dlfcn.h>
#include <kdebug.h>
#include <xmmsctrl.h> // need to fix Makefile.am for this?
#include "nlmediaplayer.h"
#include "nlxmms.h"
NLXmms::NLXmms() : NLMediaPlayer()
{
m_name = "Xmms";
+
+ xmmslib = dlopen("libxmms.so.1", RTLD_LAZY | RTLD_GLOBAL);
}
+NLXmms::~NLXmms()
+{
+ if (xmmslib)
+ dlclose(xmmslib);
+}
void NLXmms::update()
{
//look for running xmms
- if ( xmms_remote_get_version( 0 ) )
+ if ( xmmslib &&
+ xmms_remote_get_version( 0 ) )
{
QString newTrack;
// see if it''s playing
--mP3DRpeJDSE+ciuQ--