site  contact  subhomenews

SeaMonkey 2.53.5.1 compiled on Raspberry Pi4

January 13, 2021 — BarryK

EasyOS is running so nicely on the Pi4. There were issues, some resolved, some still to tackle. The speed problems have been fixed, and we are now "cooking with gas". Last couple of posts:

https://bkhome.org/news/202101/easyos-using-vc4-graphics-acceleration-on-pi4.html

https://bkhome.org/news/202101/pi4-slow-usb-drive-fixed.html

Compiling SeaMonkey, now that is a challenge. I tried yesterday, and the 'nss' module failed. It was configured to use the internal 'nss' and 'nspr' and not the system libraries, as the latter were too old. So last night I did a complete recompile in OE, with later versions of 'nspr' and 'nss', and today compiled SM to use these system libraries ...and success.

I do come across posts on forums, people asking how to compile SM on an ARM board, so will post some notes here...

I have compiled with EasyOS 64-bit (armv8-a+crc) running on a Raspberry Pi 4, with 8GB RAM. The source is on a 500GB SSD, plugged in via USB3, and using the standard official Raspberry Pi 3A power supply. The SSD has a 32GB swap partition.

EasyOS for the Pi4 is currently under development and not yet released, but expected to be very soon.

EasyOS, like Puppy Linux, has SFS "mega packages", one of which is the "devx" SFS, named something like "devx-<version>-<architecture>.sfs". These are very easy to download and install -- in the case of EasyOS, there is an icon on the desktop labelled "sfsget". What the 'devx' SFS does is provide everything needed for compiling and code development.

So, install 'devx' and you are ready to compile. SeaMonkey, though, needs a couple more items -- python v2.7.x and rust v1.47.0.

EasyOS only has python3, but python 2.7.18 is available as a PET package -- click on "petget" on the desktop to install it.

Install rust like this:

# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

It will ask if you want a default install or custom, choose custom. Then when it asks for version, type in "1.47.0". At the time of writing, the latest is 1.49.0, but SM will choke on that, it must have 1.47.0.

Expand the SM source, and copy this 'mozconfig' file into it:

#mk_add_options MOZ_MAKE_FLAGS='-j3'
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=aarch64-unknown-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 --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 --with-system-nspr
ac_add_options --with-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
ac_add_options --enable-printing
ac_add_options --disable-jack

Then off you go:

# export PATH="/root/.cargo/bin:${PATH}"
# export SHELL=/bin/sh
# export CC=gcc
# export CXX=g++
# make -f client.mk

I didn't time it, after a few hours I think, it completed. Install:

make -f client.mk install

You will find everything at /usr/lib/seamonkey, and symlink /usr/bin/seamonkey. Works great, except one very odd thing -- the IRC chat module isn't built. Have no idea why.  

Tags: easy