site  contact  subhomenews

Compiling SeaMonkey in OE Dunfell

September 30, 2020 — BarryK

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.

This is how to install:
# 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=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 --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
Compiled again, tested, runs great. Starts remarkably fast. I am using the Composer module to post this blog report.  

Tags: easy