Open GoogleCodeExporter opened 8 years ago
I second this.
Could you kindly provide a Makefile ?
Or at least specify which files need to be included/compiled?
My current attempt at producing a .so ends with an
"Error: undefined symbol: jabber_iq_signal_register".
Thank you very much.
Original comment by doktor....@gmail.com
on 23 Nov 2012 at 6:25
I tried compiling both with "make xmpp-ignore-groups.so" inside the source tree
and with "gcc xmpp-ignore-groups.c -O2 -Wall -fpic `pkg-config --cflags
glib-2.0` -I/usr/include/libpurple -L/usr/lib64/purple-2 -o
xmpp-ignore-groups.so". Both cases led to failure. Anyone have any luck?
Original comment by pou...@gmail.com
on 4 Dec 2012 at 9:30
Oh, it looks like I just got it to work with the following:
gcc xmpp-ignore-groups.c /usr/lib64/purple-2/libjabber.so -O2 -Wall -fpic
`pkg-config --cflags glib-2.0` -shared -I/usr/include/libpurple -o
xmpp-ignore-groups.so
Original comment by pou...@gmail.com
on 4 Dec 2012 at 9:34
@pouyak: well, of course, what an idiot I am. I simply forgot to link against
libjabber.
So for everybody else, here's my (updated, thanks to pouyak) Makefile:
(Note: I don't use hard coded paths like "/usr/lib64", but pkg-config's path,
so the makefile should work, no matter where pidgin's lib purple is installed:
"/usr/local", "/opt", "/usr/lib64", "/usr/lib32", etc.)
Original comment by doktor....@gmail.com
on 8 Dec 2012 at 10:20
Attachments:
[deleted comment]
http://code.google.com/p/pidgin-xmpp-ignore-groups/issues/detail?id=2#c6
Original comment by br.renatosilva
on 13 Dec 2012 at 2:22
Can someone please post the linux64 .so?
Original comment by era...@gmail.com
on 11 Jan 2013 at 10:15
Here is my .so
But given the possible dependency problems, I would recommend *AGAINST* using
it.
Better try my *Makefile* I posted in comment 4, and build you own.
Original comment by doktor....@gmail.com
on 13 Jan 2013 at 7:20
Attachments:
Hello. This is an awesome plugin. I have no idea why it is not included by
default, it is essential for facebook.
My question is connected to compiling.
I was able to use the attached .so file, but anyhow I tried to compile it
myself, it did not work.
At first it did not compile, but that I solved, so now I have even 2 ways to
successfully compile it (with and without makefile). But my .so file shows an
error in pidgin: "undefined symbol: jabber_iq_signal_register"
Do you know why is that ?
Original comment by bxa...@gmail.com
on 27 Mar 2013 at 2:51
You need to link your .so file against the libjabber plug-in.
(Obviously as this plug-in changes the behaviour of xmpp, it needs to call a
few functions inside the jabber plug-in)
So either add it explicitly ('/usr/lib64/purple-2/libjabber.so') or use -l if
it in your linker's library search path ('-ljabber').
See my Makefile attached in comment number #4.
It would be nice if eionrobb could add this make file to the source, to help
people compile the plugin.
Original comment by doktor....@gmail.com
on 27 Mar 2013 at 7:00
Hi. Thanks the answer. I don't have much experience with makefiles yet.
The Makefile from comment 4 did not work for me directly, I had to add
"purple-2", "purple" alone did not work (not sure this is correct).
I give the command "make" and it compiles fine. But in pidgin I get the error
"undefined symbol: jabber_iq_signal_register".
As I see the ljabber is inside, and I don't know where should I put the
explixit path. Why it compiles if the linking is incorrect ?
Even though the attached .so from comment 8 works for me, maybe there are
others like me who are not familiar with makefiles, so it could be good to
clarify why this is not working. (if it matters, I mention that I use fedora 18)
thanks, cheers.
Original comment by bxa...@gmail.com
on 28 Mar 2013 at 4:27
[deleted comment]
[deleted comment]
> Why it compiles if the linking is incorrect ?
Because its a dynamic library. It's not a self-contained executable.
You don't run pidgin by simply calling "libjabber.so". You don't call a game by
simply calling SDL.
So there are symbols which aren't in one .so but could be elsewhere (in another
.so, in the main executable). (the game will very probably also need symbols
present in opengl and co). It's the job of the caller to make sure that
everything is loaded.
Most of the time that works because a dynamic executable has a table of
everything it needs and the dynamic loader will load all the necessary .so at
run time. So by the time code in a given .so is called, all the needed symbol
are here.
this plug-in is an exception, because it's a plug-in. It's not loaded by a
dynamic loader when the dynamic executable is loaded. It's loaded much later
when pidgin decides to load it. It's not a .so loaded at start time, it's a
plugin that pidgin is free to load any time later it want.
So it works like a self contained executable, if it doesn't have references to
libjabber, it won't load it on its own.
> The Makefile from comment 4 did not work for me directly, I had to add
"purple-2", "purple" alone did not work
Hm... you mean the mention of "purple" at each call of "pkg-config"? (lines 3,
7, 8)
That's strange.
Could you please give me your output of the following command ?
pkg-config --list-all | grep purple
> I don't know where should I put the explixit path
The way pouyak did it in comment #3 : instead of just "-ljabber" you give the
whole path to the .so file. For exemple:
"/usr/lib64/purple-2/libjabber.so"
Note: This location may change depending on your distro, build tools and so on.
It might be "lib", "lib32" or "lib64", and it will be "/usr/local/lib.." or
"/usr/lib.." depending on whether you compiled pidgin yourself or are using the
official package from your distro.
Original comment by doktor....@gmail.com
on 28 Mar 2013 at 5:27
Hello. Your description helped, I understood more about the concept, I found
the problem and fixed it.
I think the problem was specific to my computer, because in my purple folder I
had libjabber.so.0 linked to libjabber.so.0.0, but no linkjabber.so link or
file.
So I copied the libjabber.so.0.0 to linkjabber.so, and now the plugin compiles
and works fine. (the same situation was with liboscar and libymsgr)
I guess the problem appeared because before I compiled and installed the
complete pidgin from source, and uninstalled, and reinstalled the original.
(because I planned to write this plugin before I found it :) )
So the original makefile from comment 4 is fine, I had a local problem here.
(the command output is:
purple libpurple - libpurple is a GLib-based instant
messenger library.)
Thanks, I enjoy now the self-compiled plugin, and I already shared a post on
facebook about it :) I insist that this plugin has to be part of the default
pidgin installation.
Original comment by bxa...@gmail.com
on 28 Mar 2013 at 6:04
I still don't exactly get what you substituted from "purple" to "purle-2"...
The pkg-config is here and should provide the paths needed.
messed-up installation: yup, indeed, you're missing a few symlinks.
Original comment by doktor....@gmail.com
on 28 Mar 2013 at 10:48
Could somebody provide a 32 bit .so?
I can't make it myself (dependencies' issues).
Thanks in advance.
Original comment by goncalos...@gmail.com
on 11 May 2013 at 12:22
I managed to correct my dependences issue and compile a 32 bit .so .
So, here it is for anyone having any trouble compiling their own.
Original comment by goncalos...@gmail.com
on 20 May 2013 at 12:10
Attachments:
Original issue reported on code.google.com by
tanim.is...@gmail.com
on 23 Nov 2012 at 12:29