Compiling SeaMonkey in OE Dunfell
I need to document this, as I had to jump through some hoops to
get the compile underway -- watching it now, cross the fingers
that it will get to the end!
I am running EasyOS Dunfell-series, built from packages compiled
in OE.
The web browser supported by OE is Epiphany, also known as "Gnome
Web". It is based on webkitgtk, and I noticed that Epiphany and
all of its dependencies are quite big, maybe even bigger than
SeaMonkey. Those deps include webkitgtk and gstreamer.
Of course, with SM, we don't get just a browser, we get a whole
suite. For me personally, I use the Composer WYSIWYG HTML editor,
just about every day. So, I have a personal interest in bundling
SM with every release of EasyOS.
I know that using a WYSIWYG HTML editor is considered "old
school", but it is a key component of my shellCMS, that manages my
websites.
I know of others who use the SM Mail & News module, as well
as the Addressbook module.
Anyway, jumping those hurdles...
SM needs Rust and Cargo to compile, and I discovered that it is
pretty simple to install. Precompiled binaries can be installed
just by doing this:
...oh bother, compile has just stopped. A video problem, something
about "vp8". Anyway, back onto Rust:
https://www.rust-lang.org/tools/install
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
installs to /root/.cargo
In the terminal where compiling SM, need this:
# export PATH="/root/.cargo/bin:${PATH}"
Another hurdle is that python3 is no good, python2 is required.
So, I downloaded version 2.7.18 source and compiled:
https://www.python.org/downloads/release/python-2718/
# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=x86_64-pc-linux-gnu --with-ensurepip=yes --with-system-ffi --with-system-expat --enable-unicode=ucs4
# make
# new2dir make install
Information can be found here:
http://www.linuxfromscratch.org/blfs/view/svn/general/python2.html
In the SM source:
# export SHELL=/bin/sh
# export CC=gcc
# export CXX=g++
Then a 'mozconfig' file is required in the source, then start the
compile:
# make -f client.mk
Regarding that error reported above, I fixed it by
"--disable-webrtc" in mozconfig. WebRTC is in all modern browsers,
but do I need it? Hmmm, anyway, the compile is now progressing...
and the compile has succeeded.
# make -f client.mk install
Now to test. Will SM be stable? There have been issues in the
past, with using system libraries, such as cairo, pixman and icu.
Taking it for a spin, visiting some challenging websites, such as
youtube.com... But, failure at startup, with this message:
The application has been updated, but the SQLite library
wasn't updated properly and the application cannot run. Please
try to launch the application again. If that should still fail,
please try reinstalling it, or contact the support of where you
got the application from.
Yes, sqlite is another system library that can cause trouble. OK, modifying 'mozconfig' with "--disable-system-sqlite". Note that sqlite has to be compiled with certain configure options, that I did do in OE, but this time it isn't enough to satisfy SM.
This is the 'mozconfig' file:
mk_add_options MOZ_CO_PROJECT=suiteCompiled again, tested, runs great. Starts remarkably fast. I am using the Composer module to post this blog report.
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 --enable-system-cairo
ac_add_options --enable-strip
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --disable-tests
ac_add_options --disable-crashreporter
ac_add_options --with-system-libvpx
ac_add_options --disable-necko-wifi
ac_add_options --without-system-nspr
ac_add_options --without-system-nss
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 --with-pthreads
ac_add_options --enable-system-pixman
ac_add_options --disable-debug
ac_add_options --with-system-libevent
ac_add_options --enable-optimize='-O2'
ac_add_options --enable-ffmpeg
ac_add_options --disable-stylo
ac_add_options --disable-webrtc
Tags: easy