How to compile SeaMonkey 2.48
August 05, 2017 —
BarryK
I have received a request, how to compile SeaMonkey 2.48.
This is a useful read:
http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/seamonkey.html
Get the 'hotfix.patch' from here:
http://svn.exactcode.de/t2/trunk/package/www/seamonkey/hotfix.patch
This is what I did:
# patch -p1 < ../hotfix.patch
# CFLAGS_HOLD=$CFLAGS
# CXXFLAGS_HOLD=$CXXFLAGS
# EXTRA_FLAGS=" -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2"
# export CFLAGS+=$EXTRA_FLAGS
# export CXXFLAGS+=$EXTRA_FLAGS
# unset EXTRA_FLAGS
<
This is my mozconfig file. Note that I used system pixman, however pixman spits out error messages, non-fatal, but you might want to consider using SM's internal pixman library: "--disable-system-pixman"
I did not use system nspr and nss, as in Quirky 8.3 (based on Ububtu 16.04.2 DEBs) they are too old.
Here is 'mozconfig':
mk_add_options MOZ_MAKE_FLAGS='-j1'
mk_add_options MOZ_CO_PROJECT=suite
ac_add_options --enable-application=suite
ac_add_options --enable-system-hunspell
ac_add_options --prefix=/usr
ac_add_options --host=x86_64-pc-linux-gnu
ac_add_options --disable-dbus
ac_add_options --disable-accessibility
ac_add_options --with-system-bz2
ac_add_options --disable-updater
ac_add_options --disable-parental-controls
ac_add_options --disable-system-sqlite
ac_add_options --disable-system-cairo
ac_add_options --enable-strip
ac_add_options --without-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --disable-tests
ac_add_options --with-default-mozilla-five-home=/usr/lib/seamonkey
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-crashreporter
ac_add_options --with-system-libvpx
ac_add_options --enable-gio
ac_add_options --disable-necko-wifi
ac_add_options --disable-gconf
#ac_add_options --with-system-nspr
#ac_add_options --with-system-nss
ac_add_options --enable-ldap
ac_add_options --with-system-icu
ac_add_options --disable-pulseaudio
ac_add_options --enable-alsa
ac_add_options --enable-system-ffi
ac_add_options --disable-gnomeui
ac_add_options --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-debug
ac_add_options --with-system-libevent
#ac_add_options --disable-libjpeg-turbo
<
Just put 'mozconfig' into top-level of source code, then off you go:
# make -f client.mk
Before installing, if you already have /usr/lib/seamonkey-2.48 and seamonkey-devel-2.48, /usr/share/idl/seamonkey-2.48, and /usr/include/seamonkey-2.48, rename them to something else. then:
# make -f client.mk install
Make sure that /usr/lib/seamonkey is a symlink to seamonkey-2.48, and check that /usr/bin/seamonkey is a symlink to /usr/lib/seamonkey/seamonkey or /usr/lib/seamonkey-2.48/seamonkey
Then run "seamonkey".
Or, if you want to make a pet, use 'cp -a' to copy out all of those target directories, before running seamonkey (when seamonkey runs, it actually writes into /usr/lib/seamonkey-2.48, or at least it used to, so grab the pristine files before first run of seamonkey).
Tidy up: if creating a PET, good to use an existing PET, such as mine, as a template. Note, delete the dictionary files, as all pups have hunspell, and delete the 'modern' theme -- again, look in my PETs.
Get my PET from here:
http://distro.ibiblio.org/quirky/quirky6/amd64/packages/pet_packages-xerus/seamonkey-2.48-xerus64.pet
If you have Quirky and maybe a very recent pup, it will have 'pet2dir' utility, so just do this to expand the PET to a folder:
# pet2dir seamonkey-2.48-xerus64.pet
If your pup does not have this utility, then do it this way, which will give an error message, but works:
# tar -xf seamonkey-2.48-xerus64.pet
Comments
Forgot, SM also needs 'autoconf2.13' to compile. I forgot, because already have it in Quirky 8.3. It is available from the Ubunu and Debian repos, for example:https://packages.debian.org/stretch/autoconf2.13
In any Ubuntu or Debian -based pup, just use the PPM to install it.
You can also follow these instructions at LFS:
http://www.linuxfromscratch.org/blfs/view/cvs/general/autoconf213.html
I discovered this when compiling in OpenEmbedded. SM was very unstable, and I found it is due to the system icu library.
However, Ubuntu 16.04 uses the same version of icu as the SM internal icu (55.1), and using the system icu is ok.
It seems that later versions of icu are not ok.
Unfortunately, using the internal icu will increase the size of SM considerably.
Tags: linux