Google Gears 64 bits for Firefox 3.6 (64 bits) on Slackware 64
by BenV on Jan.28, 2010, under Software
Yesterday Slackware64-current gave me Firefox 3.6. So far I’m happy to note that this broke more than half my addons, but that’s to be expected with that addon-hell.
Wonder when they clean up that act and start including required stuff like firebug. Anyway, a while ago I built google gears for firefox 3.5. Since Google is too incompetent to provide a 64 bit linux version, you have to do it yourself, which I did. However, with the Firefox 3.6 upgrade this addon also broke.
Last time I explained in detail the steps needed to build it on slackware 64. So I’ll only summarize and tell you about the new problems I ran into.
First, install libnotify. The new xpcom stuff seems to require it.
root@janeman:/usr/src# slackbuild.pl http://galago-project.org/files/releases/source/libnotify/libnotify-0.4.5.tar.bz2
root@janeman:/usr/src# installpkg /usr/src/packages/libnotify-0.4.5-x86_64-1.tgz
How I love my slackbuild sometimes 🙂
Next, get the FF3.6 source and build the xpcom stuff:
cd /usr/src ; wget ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/latest/source/firefox-3.6.source.tar.bz2 ; tar jxvf firefox-3.6.source.tar.bz2
cd /usr/src/mozilla-1.9.2 # dir name differs from tarball, idiots.
./configure --prefix=/usr --enable-application=xpcom
make -C config
make -C nsprpub
make -C xpcom
make tools_tier_xpcom install
Finally, symlink the newly built xpcom tools over the google provided ones and build gears. I assume you can check out the google gears sources yourself, otherwise see my previous rant on this.
cd /usr/src/google-gears-svn/gears
svn up
make clean
cd /usr/src/google-gears-svn/gears
for k in xpidl xpt_link xpt_dump regxpcom
do
rm -f /usr/src/google-gears-svn/third_party/gecko_1.9.2/linux/gecko_sdk/bin/$k
cp /usr/src/mozilla-1.9.2/dist/bin/$k /usr/src/google-gears-svn/third_party/gecko_1.9.2/linux/gecko_sdk/bin/$k
done
for k in libxpcom.so libnspr4.so libxpcomglue_s.a
do
mkdir /usr/src/google-gears-svn/third_party/gecko_1.9.2/linux/gecko_sdk/lib64 2> /dev/null
cp /usr/src/mozilla-1.9.2/dist/lib/$k /usr/src/google-gears-svn/third_party/gecko_1.9.2/linux/gecko_sdk/lib64/$k
done
# Xul is also needed
cp /usr/lib64/firefox-3.6/libxul.so /usr/src/google-gears-svn/third_party/gecko_1.9.2/linux/gecko_sdk/lib64
CPPFLAGS="-include /usr/include/stdio.h -include /usr/include/stdlib.h -include /usr/include/string.h -include /usr/include/limits.h -include /usr/include/pthread.h -D_XOPEN_SOURCE=600" make MODE=opt BROWSER=FF36
If you’re wondering about the CPPFLAGS, if you skip this the thing will break down completely. THAT’s why intelligent people use a configure script for that shit. Too difficult for google I suppose.
Anyhow, now we still want a nice .xpi installer.
CPPFLAGS="-include /usr/include/stdio.h -include /usr/include/stdlib.h -include /usr/include/string.h -include /usr/include/limits.h -include /usr/include/pthread.h -D_XOPEN_SOURCE=600" make MODE=opt BROWSER=FF36 installers
Which barfs because some slut thought it also needed ff3(1) junk. Which I don’t agree with. So note that this breaks the .xpi for firefox ancient edition.
mkdir -p bin-opt/linux-x86_64/ff31/ bin-opt/linux-x86_64/ff3
cp bin-opt/linux-x86_64/ff36/libgears.so bin-opt/linux-x86_64/ff31/libgears.so
cp bin-opt/linux-x86_64/ff36/libgears.so bin-opt/linux-x86_64/ff3/libgears.so
CPPFLAGS="-include /usr/include/stdio.h -include /usr/include/stdlib.h -include /usr/include/string.h -include /usr/include/limits.h -include /usr/include/pthread.h -D_XOPEN_SOURCE=600" make MODE=opt BROWSER=FF36 installers
Tada. Installer at bin-opt/installers/gears-linux-x86_64-opt-0.5.34.0.xpi.