FirefoxBuildNotes
From Inveneo
InveneoPuppyLinux | PackagesAdded
Firefox is built from source in order to have an optimised build for this low-memory environment.
Latest stable source: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.1/source/firefox-1.5.0.1-source.tar.bz2
Build process:
(1) Boot Puppy with usr_devx.sfs to ensure that a development environment is available
- either place on CD or with pup001
(2) Prepare source tree:
# Assuming you have a hard disk to compile on cd /mnt/home wget ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.1/source/firefox-1.5.0.1-source.tar.bz2 tar jxvf firefox-1.5.0.1-source.tar.bz2 cd mozilla
(3) Customise a suitable .mozconfig:
See discussion: http://www.murga.org/%7Epuppy/viewtopic.php?t=2198
# See http://www.mozilla.org/build/ for build instructions. # # Options for 'configure' (same as command-line options). # Use separate Object directory to keep build tree clean mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-ff-@CONFIG_GUESS@ # We're building firefox ac_add_options --enable-application=browser ac_add_options --with-default-mozilla-five-home=/usr/lib/firefox # Extensions #ac_add_options --enable-extensions=cookie,xml-rpc,xmlextras,pref,universalchardet ac_add_options --enable-extensions=cookie,xmlextras,pref,universalchardet # Small system ac_add_options --enable-necko-small-buffers #ac_add_options --disable-necko-disk-cache # Use gtk1.2 toolkit ac_add_options --disable-toolkit-qt ac_add_options --disable-toolkit-xlib ac_add_options --enable-toolkit-gtk ac_add_options --disable-toolkit-gtk2 ac_add_options --enable-default-toolkit=gtk # Use system libs ac_add_options --with-system-jpeg ac_add_options --with-system-zlib ac_add_options --with-system-png # Disable ac_add_options --disable-mailnews ac_add_options --disable-composer ac_add_options --disable-irc ac_add_options --disable-calendar ac_add_options --disable-ldap ac_add_options --disable-gnomevfs ac_add_options --disable-gnomeui ac_add_options --disable-installer ac_add_options --disable-updater ac_add_options --disable-tests ac_add_options --disable-freetype2 ac_add_options --disable-xprint ac_add_options --disable-jsd # We want Java plugin to work #ac_add_options --disable-oji ac_add_options --disable-accessibility ac_add_options --disable-svg ac_add_options --disable-mathml ac_add_options --disable-logging ac_add_options --disable-profilesharing # Enable ac_add_options --enable-crypto ac_add_options --enable-single-profile # Compile options ac_add_options --enable-optimize="-Os" ac_add_options --disable-debug ac_add_options --enable-strip
(4) Compile:
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/X11R6/lib export LD_LIBRARY_PATH gmake -f client.mk build gmake -C obj-ff-i686-pc-linux-gnu/browser/installer
Installation:
cd /usr/lib tar zxvf /mnt/home/mozilla/obj-ff-i686-pc-linux-gnu/dist/firefox-1.5.0.1.en-US.linux-i686-gtk1.tar.gz cp mozstart /usr/lib/firefox chmod +x /usr/lib/firefox/mozstart ln -sf /usr/lib/firefox/mozstart /usr/local/bin/mozstart
mozstart:
#!/bin/sh # We don't want more than one instance running. COMTAIL="$@" URLPREFIX="`echo "$COMTAIL" | grep --extended-regexp "http://|ftp://|https://|file://|-mail|-edit|-addressbook|-calendar|-remote"`" if [ "$URLPREFIX" = "" ];then [ "$COMTAIL" = "" ] || COMTAIL="file://${COMTAIL}" fi ps | grep "firefox\-bin" > /dev/null 2>&1 if [ $? -eq 0 ];then #=0 if found. exec /usr/lib/firefox/firefox-bin -a firefox -remote "openURL($COMTAIL,new-tab)" else exec /usr/lib/firefox/firefox-bin $COMTAIL fi
Packaging for Puppy:
DotPup used instead of PupGet since both neither can use script-based functionality with PCCC & DotPups are more easily added to a live system (can simply double-click in ROX)
dotpup.sh:
#!/bin/bash # unzip the files using absolute paths tar -xzpvP --no-same-owner -f firefox-1.5.0.1.tar.gz # post-unzip tasks ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox/plugins/libflashplayer.so ln -sf /usr/lib/mozilla/plugins/flashplayer.xpt /usr/lib/firefox/plugins/flashplayer.xpt ln -sf /usr/lib/firefox/firefox /usr/local/bin/firefox echo "/usr/lib/firefox" >> /etc/ld.so.conf ldconfig # Set as default Browser ln -sf /usr/lib/firefox/mozstart /usr/local/bin/mozstart # Register with PupGet as an alien package echo '"firefox-1.5.0.1" "firefox-1.5.0.1" on "GTK1APPS 7.3M" \' >> /root/.packages/alienpackages.txt echo "firefox-1.5.0.1" > /root/.packages/firefox-1.5.0.1.keyword mv /tmp/firefox-1.5.0.1.files /root/.packages/firefox-1.5.0.1.files # Register with menus /usr/sbin/fixmenus /root +Firefox exit 0
tar cvfP firefox-1.5.0.1.tar /usr/lib/firefox find /usr/lib/firefox > /tmp/firefox-1.5.0.1.files find /tmp/firefox-1.5.0.1.files >> /tmp/firefox-1.5.0.1.files tar rvfP firefox-1.5.0.1.tar /tmp/firefox-1.5.0.1.files gzip -9 firefox-1.5.0.1.tar md5sum dotpup.sh > md5sum.txt md5sum firefox-1.5.0.1.tar.gz >> md5sum.txt zip -r -9 firefox-1.5.0.1.pup dotpup.sh md5sum.txt firefox-1.5.0.1.tar.gz
Install package:
dotpuprox.sh firefox-1.5.0.1.pup

