IceCat Browser
IceCat is a Mozilla-free Firefox webrowser.
More information about Free Software Foundation's IceCat:
icecatbrowser.org
fsf.org: GNU Icecat
gnu.org: GNUzilla and IceCat
en.wikipedia.org: GNU IceCat
The FSF project around IceCat only provids a 64bit binary for download.
You can download my 32bit build here:
Building IceCat yourself
Building IceCat (115.13) for a 32bit (i686) architecture.
Build System Preparation
Setting up the build system is the hardest and most essential part.
IceCat is a Mozilla-free Firefox ESR. To build it the rust compiler is used. rustc is extremly resource demanding. The build system has to be a 64bit (x86_64) architecture. On i386 the build will fail due to memory constrains.
So you need to set up a cross-architecture system. This means your system has 64 and 32bit libraries installed.
You can check your architecturre with
# arch
# ld --version
I have used Debian 12 and 13 as build systems.
For suppored distributions and versions see Supported Build Hosts.
I used a Qemu/KVM VM on amd64 with Debian Bookworm (stable). Trixie (testing) was to new.
The VM I configured with (all) 4 cores and almost the entire memory (14GB) plus 15GBB swap space (can be less).
- Configuring apt to install mulible architecture packages. See Debian MultiarchHOWTO
- apt install libasound2-dev:i386 python3-pip ccache clang nodejs nasm libdbus-glib-1-dev
export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
- sudo
- ln -s /usr/include/asm-generic /usr/include/asm
asm/errno.h: No such file or directory
- rustc & cargo
https://www.rust-lang.org/learn/get-started curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- cargo install cbindgen
- rustup target add i686-unknown-linux-gnu
- sccache
Install Sccache on Ubuntu 24.04
Building Icecat
- mkdir | cd ~/build/src/ic/ic12813/ (WORKDIR)
- running the "git clone" command will create gnuzilla
- .mozconfig goes in gnuzilla/output/icecat-128.13.0/ (SRCDIR)
- in .mozconfig:
mk_add_options MOZ_OBJDIR=$OBJDIR
- the tar-ball will be created in
$OBJDIR/dist/icecat-128.13.0.en-US.linux-i686.tar.bz2
Steps
- work in a screen session
- mkdir | cd ~/build/src/ic/ic12813/ (WORKDIR)
- Download gnuzilla including makeicecat
git clone https://git.savannah.gnu.org/git/gnuzilla.git
- Make FF source Icecat (will download current version of FF)
cd gnuzilla
./makeicecat
- vi $SRCDIR/.mozconfig
This file should be located in SRCDIR Object directory is the compille output. (OBJDIR)
- cd $SRCDIR
- ./mach bootstrap
Option 1: Artifact
- ./mach configure
- ./mach build 2>&1 | tee ./mach_build.log
This takes saveral hours and consumes extrem resources (CPU, RAM, swap).
I could speed-up the build by working on a PCIe SSD instead on a SATA HD.
- ./mach package
result in $OBJDIR/dist/
Clean-up after failure: ./mach clobber This will delete all build fracments.
Troubleshooting
Links to read
#
|