Friday 22 October 2010

LFS - Firefox 4 Beta from Source

The new version of Firefox is nearly out, and I wanted to try it with my LFS system. I figured that it should not be too different to Firefox 3.6 which I have installed. I encountered two problems when installing FF4. Firstly, for some strange reason, it can't use the libpng that I have installed. I updated libpng to the latest version, but still nada. It also needed the yasm software which is some programming language stuff.

So:
cd /sources/extras
wget http://www.tortall.net/projects/yasm/releases/yasm-0.8.0.tar.gz
cd /dev/shm
tar -xzvf /sources/extras/yasm-0.8.0.tar.gz
cd yasm-0.8.0
CC="gcc -fPIC" ./configure --prefix=/usr
time make $CORES_TO_USE
make install

And then:

cd /sources/extras
wget ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/4.0b6/source/firefox-4.0b6.source.tar.bz2
cd /dev/shm
tar -xjvf /sources/extras/firefox-4.0b6.source.tar.bz2
cd moz*
cat > .mozconfig << "EOF"
ac_add_options --enable-application=browser
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox-build
mk_add_options MOZ_MAKE_FLAGS="-j4"
ac_add_options --prefix=/opt/firefox4
ac_add_options --enable-optimize
ac_add_options --enable-system-cairo
ac_add_options --with-system-jpeg
#ac_add_options --with-system-png
ac_add_options --with-pthreads
ac_add_options --with-system-zlib
ac_add_options --disable-accessibility
ac_add_options --disable-crashreporter
ac_add_options --disable-dbus
ac_add_options --disable-gnomevfs
ac_add_options --disable-necko-wifi
ac_add_options --disable-installer
ac_add_options --disable-javaxpcom
ac_add_options --disable-tests
ac_add_options --disable-updater
ac_add_options --disable-libnotify
ac_add_options --enable-official-branding
ac_add_options --enable-safe-browsing
ac_add_options --enable-strip
EOF
Note - the "-j4" line. Make this j2 for a dual core, or leave it out altogether for single core. I have commented out the libpng line, because I will want it back if I ever find out what is screwed up. I have also changed the install directory so I can install it alongside FF3. Now run:
time make -f client.mk build
make -f client.mk install
cd ..
rm -rvf moz*
I think I may have found the problem with Flash 10. My system is missing some dependencies. Running [ldd] on the library reports the following as missing:
libssl3.so => not found
libsmime3.so => not found
libnss3.so => not found
libplds4.so => not found
libplc4.so => not found
libnspr4.so => not found
All of these libraries are in the Firefox folder - but are NOT available to the system as a whole. So I need to somehow tell the system it can look in the firefox folders to get these things. They way to do this is by adding the firefox path to following file:
cat >> /etc/ld.so.conf << "EOF"
# Extra Path so Firefox's libraries can be used by Flash10
/opt/firefox4/lib/firefox-4.0b6
# End of Extra Path.
EOF
OK. We now get a fucking different problem. It can't find the cURL library. Which it DOESN'T FUCKING ASK FOR when you [ldd] the fucker. OK.
wget http://curl.haxx.se/download/curl-7.20.0.tar.bz2
tar -xjvf curl-7.20.0.tar.bz2
cd curl-7.20.0
./configure --prefix=/usr
make $CORES_TO_USE
Holy fuck the [make check] is the best I have ever seen! It gives you an actual ETA of how long the test is going to take to run! It is awesome. And then it ruins everything by not giving you a final report. Bastard.
make install
find docs -name "Makefile*" -o -name "*.1" -o -name "*.3" | xargs rm
install -v -d -m755 /usr/share/doc/curl-7.20.0
cp -v -R docs/* /usr/share/doc/curl-7.20.0
And, finally, the fucker works. You just install Flashplayer 10 using the following instructions:
wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz
tar -xzvf install_flash_player_10_linux.tar.gz
mkdir -v /opt/firefox4/lib/firefox-4.0b6/plugins
cp -v libflashplayer.so /opt/firefox4/lib/firefox-4.0b6/plugins
If you have already installed Java, just link it to the new plugins directory:
ln -sv /opt/jdk/jre/lib/i386/libnpjp2.so /opt/firefox4/lib/firefox-4.0b6/plugins

No comments:

Post a Comment