LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Mozilla Lightning fails after Seamonkey update (http://www.linuxquestions.org/questions/slackware-14/mozilla-lightning-fails-after-seamonkey-update-4175472838/)

ljb643 08-09-2013 09:25 PM

Mozilla Lightning fails after Seamonkey update
 
Does anyone use the Lightning calendar extension with Seamonkey?

After applying the recent Slackware 14 update to seamonkey-2.20, I had to upgrade to the compatible version of lightning-2.5b2 (always have to upgrade lightning after seamonkey, as only specific versions play together). I've done this before without problems, but it won't work at all this time.

Trying to open the Mail/News window in Seamonkey-2.20 with Lightning-2.5b2 crashes out of seamonkey with an error that looks like this:

Code:

seamonkey: relocation error:
.../components/Linux_x86-gcc3/libcalbasecomps.so:
symbol _ZN2js13CheckedUnwrapEP8JSObjectb, version xul23.0 not defined in file libxul.so with link time reference


elesmod 08-10-2013 11:02 AM

I've never used Lightning, but I've installed it in my Seamonkey just for you :)

I can report that I'm encountering the same crash.

ljb643 08-10-2013 01:31 PM

Thanks! I appreciate the effort.

I'm now pretty sure this is a Slackware problem, not a Mozilla problem. Something seems wrong in the libxul.so shipped with the Slackware 14.0 patch to seamonkey-2.20.

The error message (see above) says it was looking for CheckedUnwrap version xul23.0 in libxul.so and not finding it.

This is from libxul.so in Slackware 14 seamonkey-2.20-i486-1_slack14.0:
Code:

$ objdump --dynamic-syms --demangle libxul.so  | grep CheckedUnwrap
00000000      DF *UND*        00000000  mozjs      js::CheckedUnwrap(JSObject*, bool)

Same command on seamonkey-2.20 as downloaded from www.seamonkey-project.org:
Code:

$ objdump --dynamic-syms --demangle libxul.so  | grep CheckedUnwrap
01863030 g    DF .text        0000003d  xul23.0    js::CheckedUnwrap(JSObject*, bool)

The version is correct (xul23.0) in the one from seamonkey-project, but wrong (mozjs) in the Slackware one. That's as far as I got so far. I haven't tried running the 'official' seamonkey release. I took a quick looks at the seamonkey.SlackBuild script but that didn't help.

John VV 08-10-2013 02:26 PM

seamonkey-2.20-i486-1_slack14.0 --- i486 version of seamonkey ?
A question ?
are you running a 32 bit OS or a 64 bit OS

i have only seen that error
" not defined in file libxul.so with link time reference"
on multi lib OS's
and normally as a linker error

ljb643 08-10-2013 03:37 PM

Quote:

Originally Posted by John VV (Post 5006879)
seamonkey-2.20-i486-1_slack14.0 --- i486 version of seamonkey ?
A question ?
are you running a 32 bit OS or a 64 bit OS

Plain 32-bit Slackware 14, not multilib.

adriv 08-10-2013 03:45 PM

Same here on 64-bits SW-14...

D1ver 08-11-2013 12:14 AM

Can confirm here on 14.0, 64 bit with multilib. Same crash :(

ljb643 08-11-2013 06:20 PM

I confirmed that lightning-2.5b2 extension works with seamonkey-2.20 as downloaded from seamonkey-project.org (the Mozilla binary release).

(And, as an aside, I see that the binary release from seamonkey-project.org does seem to work OK on Slackware 14. Didn't Slackware once ship the Mozilla binaries of this - and firefox - rather than rebuilding from source? I wonder when/why that changed.)

One possibly suspicious difference is that the Slackware seamonkey-2.20 was built with gcc-4.7.1 and the released seamonkey-project Linux binary seamonkey-2.20 was built with gcc-4.5.2.

volkerdi 08-11-2013 06:28 PM

Quote:

Originally Posted by ljb643 (Post 5007428)
I confirmed that lightning-2.5b2 extension works with seamonkey-2.20 as downloaded from seamonkey-project.org (the Mozilla binary release).

(And, as an aside, I see that the binary release from seamonkey-project.org does seem to work OK on Slackware 14. Didn't Slackware once ship the Mozilla binaries of this - and firefox - rather than rebuilding from source? I wonder when/why that changed.)

One possibly suspicious difference is that the Slackware seamonkey-2.20 was built with gcc-4.7.1 and the released seamonkey-project Linux binary seamonkey-2.20 was built with gcc-4.5.2.

We have never shipped Seamonkey compiled by Mozilla.

Is this extension that's running into problems something that is a binary (I'm assuming that is the case). If so, that's very likely the root of the problem. It's possible that recompiling Seamonkey with the exact configure flags used by Mozilla might clear up the issue, but we've never known what those are for any of the binaries they post.

ljb643 08-11-2013 07:34 PM

Yes the Lightning extension has a binary component. In fact it is the one named in the error message a the top: libcalbasecomps.so. (I think this explains why it needs to upgraded for each version of the browser.)

I believe using about:buildconfig in Seamonkey gives one the exact configure line that was used, and also the CFLAGS and compiler versions. I considered getting the seamonkey-2.20 source, and building it on Slackware-14 with gcc-4.7.1 using the same configure as they use for their released binaries, as seen by about:buildconfig from their binary release. This should indicate if the problem is the build environment or not. But I balked at the the 83MB source download (or is it 107MB, as on a Slackware mirror?) Maybe I'll go ahead and try it, though.

ljb643 08-11-2013 07:50 PM

Quote:

Originally Posted by volkerdi (Post 5007433)
We have never shipped Seamonkey compiled by Mozilla.

I stand corrected. It was firefox and thunderbird, but not seamonkey (nor its ancestor, mozilla).

ljb643 08-12-2013 05:05 PM

I found the cause: the configure option --enable-shared-js

The Slackware build script uses this, and the Mozilla-supplied release does not. When this option is used, Seamonkey gets built with an additional library: libmozjs.so which contains some functions which would otherwise be in libxul.so, I think. This seems to cause the issue with the 'version tag' (not sure if that is the right term) for a function used by the Lightning extension to use 'mozjs' instead of 'xul23.0'.

Using seamonkey.SlackBuild without --enable-shared-js to build seamonkey results in a build that does work with lightning-2.5b2.

It is possible that building Lightning from source on a system that has the Slackware-built seamonkey would work too, but it seems a lot of trouble to get Lightning source so I didn't try that.

I will probably open a mozilla bug report on this option, but I'm not hopeful it would do much good. Perhaps Pat would consider dropping --enable-shared-js for the next seamonkey release, unless there is something out there that relies on it.

cwizardone 08-15-2013 11:40 AM

Looks like that has been fixed:

Quote:

Thu Aug 15 03:46:12 UTC 2013

l/seamonkey-solibs-2.20-x86_64-2.txz: Rebuilt.
Recompiled without the --enable-shared-js option to fix the Mozilla
Lightning plugin. This removes libmozjs.so, but there's a standalone js
package now anyway.
Thanks to ljb643.

xap/seamonkey-2.20-x86_64-2.txz: Rebuilt.
Recompiled without the --enable-shared-js option to fix the Mozilla
Lightning plugin. This removes libmozjs.so, but there's a standalone js
package now anyway.
Thanks to ljb643.

ljb643 08-17-2013 10:56 AM

Great! Tested seamonkey-2.20-2 with lightning-2.5b2 and everything seems to be working. (Not counting the new seamonkey-2.20 crash on my bank's web site, but that seems not to be Slackware specific.)


All times are GMT -5. The time now is 09:04 AM.