# mozilla 1.7.13 and plugins
# ==========================
# The Mozilla Suite is aka. SeaMonkey.
# FYI, I was going to add instructions here for building Enigmail
# into it, but it's either not possible, or not worth the trouble to do when
# you use an objdir to build mozilla.
# Source instructions are provided below.
#
# The binary download is smaller and it takes A LOT less time to set it up.
# If your primary concern is the time/effort it takes to install Mozilla,
# go with a binary installation. There's a seperate howto covering the
# binary installer.
#
# If you'd like features that the binary doesn't offer, want Mozilla built
# specifically for your system, and don't mind the extra time, go for the
# source.
# Slackware 9.0's 'mozilla' package includes version 1.3, 9.1's includes 1.4,
# 10.0's includes 1.7 and 1.7.3 in 'patches', 10.1 includes 1.7.5, and 10.2
# includes 1.7.11. 9.1 and up also have a 'mozilla-plugins' package.
# Using the instructions below, I was able to build Mozilla 1.7.13 from source
# with the following environment:
# Slackware 10.2 (_heavily_ modified)
# Linux kernel 2.6.17.11
# gcc 4.0.3 (from source)
# X.org 6.8.2 (from Slackware)
# GTK+ 2.8.20 (from source)
# ...and the latest stable version of the other listed prerequisites
mkdir -p -m 0700 src/mozilla
cd src/mozilla
test -L ./mozilla && rm ./mozilla
find -maxdepth 1 -type l -name "mozilla-*" -exec rm {} \;
test -d ./mozilla && rm -r ./mozilla
find -maxdepth 1 -type d -name "mozilla-*" -exec rm -r {} \;
tar xjvf ~/mozilla-1.7.13-source.tar.bz2
ln -s mozilla mozilla-1.7.13-source
cd mozilla
test $UID = 0 && chown -R root:root .
# Make sure you leave the extracted directory named "mozilla" (or be
# prepared to fix (at least) client.mk)
# Add a few missing spaces to extensions/p3p/Makefile.in
cat extensions/p3p/Makefile.in | sed \
-e 's%-DHAS_CALL_OURS\\$%-DHAS_CALL_OURS \\%' \
-e 's%-DHAS_TMPL_RETENTION\\$%-DHAS_TMPL_RETENTION \\%' \
-e 's%-DHAS_PURPOSE_SRC\\$%-DHAS_PURPOSE_SRC \\%' \
> extensions/p3p/Makefile.in.new
test -s extensions/p3p/Makefile.in.new &&
( mv -f extensions/p3p/Makefile.in extensions/p3p/Makefile.in.orig
mv -f extensions/p3p/Makefile.in.new extensions/p3p/Makefile.in )
# You have two common choices for installing mozilla. Create a tarball
# without the development files that you can unpack into /usr/local/mozilla
# (like the installer) or run 'make install' to install binaries in
# /usr/local/bin, libraries in /usr/local/lib/mozilla-1.7.13, includes in
# /usr/local/include/mozilla-1.7.13, etc. If you're going to use the tarball
# method, change --with-default-mozilla-five-home below to /usr/local/mozilla
# (or wherever you're going to unpack the tarball).
# I pass --disable-freetype because Mozilla won't build with the version
# that I have installed (2.2.1), but also because xft includes freetype
# automagically anyway. If you do need it for some reason, check
# Mozilla's Bugzilla for patches.
#
# You may also want to look for a print preview patch. My installed
# Mozilla's print preview output looks a little messed up, but the actual
# print output (via a CUPS server) looks fine.
# Become root to remove old files and to install it
su
# Back up the plugins that were installed for your previous version of
# Mozilla. If you're replacing a Slackware installed version, you'll
# probably find them in /usr/lib/mozilla-x.x/plugins/ Make sure this catches
# everything, and that you don't have any other files that need to be backed
# up. The howto will "uninstall" the old version of Mozilla as the
# developers suggest.
test -d ~/backup/mozilla-plugins &&
mv -f ~/backup/mozilla-plugins ~/backup/mozilla-plugins-old
for mozdir in /usr/lib/mozilla /usr/lib/mozilla-?.* \
/usr/local/lib/mozilla-?.* /usr/local/mozilla ; do
test -d "${mozdir}/plugins" &&
mkdir -p -m 0700 ~/backup/mozilla-plugins &&
cp -af ${mozdir}/plugins/* ~/backup/mozilla-plugins/
done
test -f ~/backup/mozilla-plugins/libnullplugin.so &&
rm ~/backup/mozilla-plugins/libnullplugin.so
# If you also have a /usr/lib/mozilla/plugins directory so you can symlink
# mozilla, firefox, etc. to it, back up those too:
test -d /usr/lib/mozilla/plugins &&
cp -af /usr/lib/mozilla/plugins/* ~/backup/mozilla-plugins/
# Now make sure that mozilla is not running. This should kill it if it is
# running, and should remove it if it's installed in a few common locations.
# Run this to remove the old version:
killall mozilla mozilla-bin
test -x /sbin/removepkg &&
/sbin/removepkg mozilla mozilla-plugins jre-symlink
find /usr/lib /usr/local/lib -maxdepth 1 -type d -name "mozilla-*" \
-exec rm -r {} \;
test -d /usr/lib/mozilla && rm -r /usr/lib/mozilla
test -d /usr/local/mozilla && rm -r /usr/local/mozilla
## If you want to go with the tarball method, run this instead of
## 'make install' below:
# cd xpinstall/packager
# make
# cd ../..
# tar xzvf dist/mozilla-i68-pc-linux-gnu.tar.gz -C /usr/local/
# If you did not go with the tarball method, install it:
cd obj-`build/autoconf/config.guess`
make install
chown -R $USER .
# If you ran 'make install' above, add /usr/local/lib/mozilla-1.7.13 to
# /etc/ld.so.conf so apps will be able to find the mozilla libraries:
test -d /usr/local/lib/mozilla-1.7.13 &&
egrep -q "^/usr/local/lib/mozilla-1.7.13$" /etc/ld.so.conf ||
echo "/usr/local/lib/mozilla-1.7.13" >> /etc/ld.so.conf && ldconfig
# If you ran "make install" above, and want to install the NSS includes:
cd ..
mkdir -p /usr/local/include/mozilla-1.7.13/nss
find security/nss/lib -type f -name "*.h" \
-exec cp -a {} /usr/local/include/mozilla-1.7.13/nss/ \;
chown -R root:root /usr/local/include/mozilla-1.7.13/nss
chmod 644 /usr/local/include/mozilla-1.7.13/nss/*
# I'm not sure if this is still necessary, but older versions required that
# you start Mozilla once as root before any other users use it.
# Now, if you have any old plugins, you can copy them into
# /usr/local/lib/mozilla-1.7.13/plugins or /usr/local/mozilla/plugins/,
# depending on how you installed it. Since Firefox and other browsers can
# use Mozilla plugins, I usually create a /usr/lib/mozilla/plugins
# directory, put the "real" plugins in there, and create symbolic
# links in the various browsers' plugins directories pointing to them.
# See my mozilla-plugins howto (link below) for more info.
# I wrote a small wrapper script for mozilla so other programs can run it
# without trouble. For example, sometimes apps will run "mozilla
# http://whatever/", but that will fail if mozilla is already running. The
# script will open up the URL in a new tab if mozilla is already running, and
# it will start mozilla normally if not. If you installed mozilla using
# 'make install' this will rename /usr/local/bin/mozilla to mozilla.sh and my
# script will run that to start mozilla. If you installed mozilla from the
# tarball, it will run /usr/local/mozilla/mozilla instead.
test ! -d /usr/local/mozilla &&
( cd /usr/local/bin
test ! -f mozilla.sh && test -f mozilla && mv -f mozilla mozilla.sh
test -f mozilla.sh && test -f mozilla && mv -f mozilla mozilla.old &&
chmod -x mozilla.old )
test -d /usr/local/mozilla &&
( cd /usr/local/bin ; mv -f mozilla mozilla.old ; chmod -x mozilla.old )
cd /usr/local/bin
wget -O mozilla http://englanders.cc/pub/linux/misc/mozilla.sh
chmod +x mozilla
# If you don't use the script, if you installed mozilla with 'make install',
# you can just run mozilla (in /usr/local/bin). If you installed it from a
# tarball, either add /usr/local/mozilla to your PATH, symlink
# /usr/local/mozilla/mozilla to /usr/local/bin/mozilla, or make sure that
# you run it with the full path every time: /usr/local/mozilla/mozilla.
# ~/src/mozilla/mozilla/widget/src/gtk/mozicon50.xpm (or
# /usr/local/mozilla/icons/mozicon50.xpm if you installed a tarball) can be
# used as a desktop icon. I converted it to a png and put it here if you'd
# rather use that:
# http://englanders.cc/pub/linux/misc/mozicon50.png