You can build a bleeding-edge, development version of SeaMonkey using the commands below. For complete information, see the build documentation.
- Recommended: 4GB of RAM (having only 2GB RAM and 2GB swap may give memory errors during compile)
- High speed internet
Installing build tools
If your system is not listed below, see the build prerequisites page.
# this one-liner should install all necessary build deps sudo aptitude install zip mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev libidl-dev mesa-common-dev autoconf2.13 yasm libgtk2.0-dev libdbus-1-dev libdbus-glib-1-dev python-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libpulse-dev
# for Ubuntu 12.04 LTS (Precise Pangolin), replace the following line with: sudo apt-get build-dep thunderbird sudo apt-get build-dep seamonkey sudo apt-get install zip unzip mercurial g++ make autoconf2.13 yasm libgtk2.0-dev libglib2.0-dev libdbus-1-dev libdbus-glib-1-dev libasound2-dev libcurl4-openssl-dev libnotify-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libiw-dev libxt-dev mesa-common-dev libpulse-dev
sudo yum groupinstall 'Development Tools' 'Development Libraries' 'GNOME Software Development' sudo yum install mercurial autoconf213 glibc-static libstdc++-static yasm wireless-tools-devel mesa-libGL-devel alsa-lib-devel libXt-devel gstreamer-devel gstreamer-plugins-base-devel pulseaudio-libs-devel # 'Development tools' is defunct in Fedora 19 use the following sudo yum groupinstall 'C Development Tools and Libraries' sudo yum group mark install "X Software Development"
Problems? See Windows build prerequisites.
Building SeaMonkey requires at least 2 GB of disk space and 256 MB of available RAM.
# Get the source # for Aurora, use http://hg.mozilla.org/releases/comm-aurora/ and comm-aurora instead # for Beta, use http://hg.mozilla.org/releases/comm-beta/ and comm-beta instead hg clone http://hg.mozilla.org/comm-central/ cd comm-central python client.py checkout # Set up a basic .mozconfig file echo 'ac_add_options --enable-application=suite' > .mozconfig # let's build SeaMonkey... #echo 'mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-sm-release' >> .mozconfig # ...in this directory... # NOTE: There is currently a bug whereby the build will fail if @TOPSRCDIR@ is used; instead, hardcode a full path. echo 'mk_add_options MOZ_OBJDIR=/path/to/comm-central/obj-sm-release' >> .mozconfig # Specify amount of parallel building. If the below is left out, a best guess will be taken automatically. echo 'mk_add_options MOZ_MAKE_FLAGS="-j4"' >> .mozconfig # ...quickly. # Build! # Note: This requires autoconf 2.13 (at least initially). # On Windows, be sure to use mozmake instead of make, otherwise parallel building will break. make -f client.mk
- For a debug build, you need different configuration options in your
.mozconfigfile. This requires more disk space, about 3 GB, and twice as much available RAM.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-sm-debug ac_add_options --enable-application=suite ac_add_options --enable-debug ac_add_options --disable-optimize
- Normally a shared build suffices for debugging purposes but current nightly releases are actually static builds which require even more memory to link. The support for libxul builds is still experimental but it should work if you --disable-mailnews.
- On Windows, the above commands will create the
%USERPROFILE%which will likely be some subfolder of
c:\Documents and Settingson XP or below. The space in this directory name, or in your user name if it contains one, will cause the configure script to break. To (possibly) fix this,
cdto a dir without spaces before doing the "
hg clone" command above.
The SeaMonkey executable can be found in
obj-sm-release/dist/bin/ (used to be
obj-sm-release/mozilla/dist/bin/) on Windows and Linux and in
obj-sm-release/dist/SeaMonkey.app/Contents/MacOS/ on Mac.
How to build again later
In your comm-central directory, run these commands:
# Get the latest source python client.py checkout
Then just re-run the "(moz)
make -f client.mk" command above. (moz)
make will only recompile files that changed, but it's still a long haul. An incremental build can be faster.