Open GoogleCodeExporter opened 9 years ago
What operating system are you on? What version of libnss do you have installed?
Original comment by eionrobb
on 16 Nov 2013 at 2:55
I'm getting the same error, i updated the Adium plugin for OSX to use a newer
version of pidgin-opensteamworks
https://github.com/tripplet/Adium-Steam-IM
I'm using OSX 10.9 with nss version 13.14.1 installed with homebrew
(https://github.com/mxcl/homebrew/blob/master/Library/Formula/nss.rb)
Original comment by tobias.t...@gmail.com
on 16 Nov 2013 at 6:27
Same problem on Sabayon Linux x86-64. I also tried to compile it myself, the
build goes well (a few warnings for unused variables), but I get the same error
message. libnss is installed as dev-libs/nss-3.15.3.
Original comment by de...@gmx.it
on 9 Dec 2013 at 2:30
Similar error on OpenSUSE 13.1 x86-64, compiled the plugin myself and tried the
provided .so and both produce "Unable to RSA encrypt the password"
Original comment by Echtol...@gmail.com
on 10 Dec 2013 at 9:54
I'm not sure what is causing the problem with nss, but in the Adium-Steam-IM
plugin the problem seems to be completly fixed by using openssl instead of nss.
It should be fairly easy to port the modifications in steam_rsa.c back into
opensteamworks.
https://github.com/tripplet/Adium-Steam-IM/blob/master/opensteamworks/steam-mobi
le/steam_rsa.c
Original comment by tobias.t...@gmail.com
on 10 Dec 2013 at 10:37
@tobias.tangemann unfortunately the use of OpenSSL on anything other than OSX
isn't GPL-compatible
Original comment by eionrobb
on 11 Dec 2013 at 2:52
I didn't know about this issue. Could you include a exception for openssl as
stated here: http://en.wikipedia.org/wiki/OpenSSL#Licensing, or what is the
licensing state of my derived work "Adium-Steam-IM" which includes the GPL
opensteamworks code?
Original comment by tobias.t...@gmail.com
on 11 Dec 2013 at 8:49
@tobias, unfortunately not as the plugin is a derivative of Pidgin and must
follow its licence (which doesn't include the exception and probably never
will).
Original comment by eionrobb
on 12 Dec 2013 at 2:19
I ported the code to polarssl to fix this possible license issue.
The new code should now be GPL compatible.
As an additional bonus polarssl is linked static so it should work under linux
and windows too.
https://github.com/tripplet/Adium-Steam-IM/blob/master/opensteamworks/steam-mobi
le/steam_rsa.c
Hopefully everything should now be hunky-dory.
Original comment by tobias.t...@gmail.com
on 17 Dec 2013 at 3:02
I'm getting this with spectrum2. Got any pointers? I don't know where to start.
Original comment by sdfgste...@gmail.com
on 3 May 2014 at 11:29
@tobias I don't suppose you have the .so of your fix? The current one from
here still doesn't seem to work, and I can't see how to extract it from the
Adium OS X package (I need the so for libpurple directly for use with Spectrum.)
Original comment by sdfgste...@gmail.com
on 24 Jul 2014 at 5:41
OSX uses a completely different format (.dylib) which you can not use under
linux.
In addition I do not compile the complete code only the part which is needed to
integrate it into Adium (for pidgin you need everything) and I also compile the
pidgin-opensteamworks directly into the adium plugin, so no separate lib is
generated.
Original comment by tobias.t...@gmail.com
on 25 Jul 2014 at 2:31
@sdfgste You should start here:
https://developer.pidgin.im/wiki/CHowTo/BasicPluginHowto and try to compile it
yourself or ask the project maintainer eionrobb
Original comment by tobias.t...@gmail.com
on 25 Jul 2014 at 2:37
Ok, I'm on a source distro, but I had to rewrite the package to apply a patch
to the tarball source (which it fetches) to the svn source.
Now that I've done that, and forced PolarSSL to be defined, I get the following
when libpurple tries to load the plugin.
plugins:/usr/lib64/purple-2/libsteam.so is not loadable: undefined symbol:
ctr_drbg_random
From what I can see, that's a polarssl function. Is there something else that's
looking for this function? libpurple itself?
Original comment by sdfgste...@gmail.com
on 25 Jul 2014 at 10:18
You need to link the polarssl library by adding -lpolarssl to the gcc command
line in the Makefile.
Hope that helps!
Original comment by alexanderfb
on 25 Jul 2014 at 10:23
What about -I/usr/include/polarssl, will I need that too?
Original comment by sdfgste...@gmail.com
on 25 Jul 2014 at 10:36
Includes are only used during compilation. If you're getting undefined
reference errors then your object code is already compiled. IOW, it shouldn't
really make a difference either way.
Original comment by alexanderfb
on 25 Jul 2014 at 10:39
I added -lpolarssl, and I'm getting the same error. The CFLAGS line looks like
this:
CFLAGS += -Wall -fPIC -DUSE_POLARSSL_CRYPTO -lpolarssl
The Makefile I'm using is here: http://bpaste.net/show/501489/
Any pointers would be greatly appreciated.
Original comment by sdfgste...@gmail.com
on 25 Jul 2014 at 10:51
This is the Gentoo version, isn't it? Gentoo has the ebuild for 1.4 but 1.4
doesn't have the PolarSSL code in it yet (you can check this by grepping for
USE_POLARSSL_CRYPTO in steam_rsa.c). You need to compile the SVN version
directly from the repo.
The simplest way to do this would be to clone the repo using the "Source" tab
at the top of this page and then follow the instructions under "Checkout". You
might need to emerge subversion first. Then compile it (after tweaking the
Makefile to use -DUSE_POLARSSL_CRYPTO and -lpolarssl) and put the resulting
libsteam.so in ~/.purple/plugins.
That should do the trick for now.
Original comment by alexanderfb
on 25 Jul 2014 at 10:57
Actually, now that I think of it, if this was the straight Gentoo version, you
wouldn't be getting as far as the undefined reference errors. Perplexing.
Original comment by alexanderfb
on 25 Jul 2014 at 10:58
Oh! My bad. I just took another look at the Makefile you're using. You need to
put -lpolarssl in LDFLAGS since it's a linker flag. Sorry I missed that.
Original comment by alexanderfb
on 25 Jul 2014 at 10:59
Yes, it's the Gentoo version. However what I spent most of the evening doing
was writing an ebuild that patched the differences between the 1.4 and the svn
versions. I also incorporated the Makefile patch as well.
https://github.com/sdfg2/sdfg-overlay/tree/master/x11-plugins/pidgin-opensteamwo
rks is the ebuild in my overlay.
I moved -lpolarssl to LDFLAGS (as you can see), but I'm still getting the same
error.
Original comment by sdfgste...@gmail.com
on 25 Jul 2014 at 11:04
This might be an argument order thing with gcc. Try putting it in LIBS instead.
Original comment by alexanderfb
on 25 Jul 2014 at 11:09
Same again :(
Original comment by sdfgste...@gmail.com
on 25 Jul 2014 at 11:11
Can you try doing an ldd on the library you created and pasting the list of
linked libraries?
ldd /usr/lib/pidgin/libsteam.so ?
Original comment by alexanderfb
on 25 Jul 2014 at 11:15
linux-vdso.so.1 (0x00007ffff35ff000)
libc.so.6 => /lib64/libc.so.6 (0x00007fe1533a4000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe153980000)
So it's not linked, right?
(I totally meant to go down this road earlier, sorry, should have thought of it)
Original comment by sdfgste...@gmail.com
on 25 Jul 2014 at 11:17
That's it? Yeah, it's not linked. It must be something simple I'm missing since
I'm tired and preoccupied.
For reference, here's my libsteam.so's links:
linux-vdso.so.1 (0x00007fff781ff000)
libjson-glib-1.0.so.0 => /usr/lib64/libjson-glib-1.0.so.0 (0x00007f66a81ba000)
libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007f66a7e54000)
libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f66a7c02000)
libpurple.so.0 => /usr/lib64/libpurple.so.0 (0x00007f66a78cd000)
libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f66a75a1000)
libssl3.so => /usr/lib64/libssl3.so (0x00007f66a7355000)
libsmime3.so => /usr/lib64/libsmime3.so (0x00007f66a7127000)
libnss3.so => /usr/lib64/libnss3.so (0x00007f66a6de8000)
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f66a6bbb000)
libplds4.so => /usr/lib64/libplds4.so (0x00007f66a69b7000)
libplc4.so => /usr/lib64/libplc4.so (0x00007f66a67b2000)
libnspr4.so => /usr/lib64/libnspr4.so (0x00007f66a6572000)
libpolarssl.so.0 => /usr/lib64/libpolarssl.so.0 (0x00007f66a631b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f66a60fe000)
libc.so.6 => /lib64/libc.so.6 (0x00007f66a5d4d000)
libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007f66a5b49000)
libz.so.1 => /lib64/libz.so.1 (0x00007f66a5933000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f66a571b000)
libffi.so.6 => /usr/lib64/libffi.so.6 (0x00007f66a5512000)
libdbus-glib-1.so.2 => /usr/lib64/libdbus-glib-1.so.2 (0x00007f66a52ea000)
libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007f66a50ac000)
libgstfarsight-0.10.so.0 => /usr/lib64/libgstfarsight-0.10.so.0 (0x00007f66a4e97000)
libgstinterfaces-0.10.so.0 => /usr/lib64/libgstinterfaces-0.10.so.0 (0x00007f66a4c84000)
libgstreamer-0.10.so.0 => /usr/lib64/libgstreamer-0.10.so.0 (0x00007f66a4999000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f66a4631000)
libm.so.6 => /lib64/libm.so.6 (0x00007f66a4333000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f66a412e000)
librt.so.1 => /lib64/librt.so.1 (0x00007f66a3f26000)
/lib64/ld-linux-x86-64.so.2 (0x00000034c8200000)
libgstbase-0.10.so.0 => /usr/lib64/libgstbase-0.10.so.0 (0x00007f66a3ccf000)
libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f66a3acd000)
libicuuc.so.52 => /usr/lib64/libicuuc.so.52 (0x00007f66a3753000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f66a3530000)
libicudata.so.52 => /usr/lib64/libicudata.so.52 (0x00007f66a1cc2000)
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/libstdc++.so.6 (0x00007f66a19bb000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f66a17a5000)
Original comment by alexanderfb
on 25 Jul 2014 at 11:22
So it's not even linked to the other normal stuff, never mind polarssl :(
No idea how to fix this.
Original comment by sdfgste...@gmail.com
on 26 Jul 2014 at 11:47
Now that I'm more awake, I took another look at your patch
(https://github.com/sdfg2/sdfg-overlay/blob/master/x11-plugins/pidgin-opensteamw
orks/files/pidgin-opensteamworks-1.4-r1.patch).
On line 36, the -lpolarssl is *inside* the parentheses defining the shell call
to pkg-config. This passes -lpolarssl to pkg-config as a shell argument which
probably confuses it as it's not a valid pkg-config argument. Try putting the
-lpolarssl *outside* the closing paren:
! LIBS += $(shell $(PKG_CONFIG) --libs glib-2.0 json-glib-1.0 purple nss
polarssl) -lpolarssl
Original comment by alexanderfb
on 26 Jul 2014 at 1:19
Well, progress, of some description. Now it's undefined symbol:
json_object_get_boolean_member. ldd says it's now got libpolarssl and libz
linked, along with the first three. So I'm guessing there's a lot else that's
not linked.
I don't get why it's not linked to the other things though, none of the
Makefiles I've looked at have a huge list of -l statements. Is it a wider
configuration issue due to emerge?
Original comment by sdfgste...@gmail.com
on 26 Jul 2014 at 1:26
You could try seeing what you get from pkg-config --libs glib-2.0 json-glib-1.0
purple nss polarssl
Original comment by alexanderfb
on 26 Jul 2014 at 1:28
Ah, got it now. polarssl isn't a library in pkg-config, so the pkg-config
returned an error. I would have expected it to return what it could, but meh.
All works now! Thank you for those pointers, they will come in handy in other
ebuilds I just know I'll be faced with :-D
Now to tidy up the package.
Original comment by sdfgste...@gmail.com
on 26 Jul 2014 at 1:37
Glad to help. And hopefully this exchange on the tracker will exhaust
solutions/outline a process for future searchers trying to solve the same issue.
Original comment by alexanderfb
on 26 Jul 2014 at 1:41
Original issue reported on code.google.com by
weedy2...@gmail.com
on 15 Nov 2013 at 12:41