site  contact  subhomenews

Firefox 60.0.1esr compiled for Easy Pyro

May 28, 2018 — BarryK

Major changes, firefox now needs 'rust' to compile, and requires gtk3.

Firstly, rust. Thus is a systems programming language, that the Mozilla team are helping to develop. Installation instructions are given at Linux From Scratch:

http://www.linuxfromscratch.org/blfs/view/8.2/general/rust.html
Noticed afterward, more up-to-date instructions:
http://www.linuxfromscratch.org/blfs/view/cvs/general/rust.html

Which I followed, installing rust 1.26.0:

https://www.rust-lang.org/en-US/other-installers.html#source
Specifically:
https://static.rust-lang.org/dist/rustc-1.26.0-src.tar.gz

Then, followed the LFS guidelines to compiled firefox:
http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/firefox.html

Note, there is a new script for compiling firefox:

# ./mach build --verbose
# ./mach install --verbose

Afterward, I started to create PETs for rust and firefox, then realised the rust installation is about 1.1GB (expanded). Hmmm.

It looks like "the kitchen sink included" installation of rust. I wondered how much of that is needed to compile firefox. I then found another installation method, see here:

https://rustup.rs/

...it installs to /root/.rustup and /root/.cargo/bin, and after executing "export PATH="/root/.cargo/bin:${PATH}", you are good to go. It is 795MB, still very big.

Note, the first method compiled everything, took ages, the second method just downloaded pre-compiled binaries.

I created the rust PET from the first method (370.1MB):
http://distro.ibiblio.org/easyos/amd64/packages/pet/pet_packages-pyro/rustc-1.26.0-pyro64.pet

Here is firefox (56.4MB):
http://distro.ibiblio.org/easyos/amd64/packages/pet/pet_packages-pyro/firefox-60.0.1-pyro64.pet

...all deps are already in Easy Pyro. Rust is only needed for compiling. For developers, here is my 'mozconfig' file:

#mk_add_options MOZ_MAKE_FLAGS='-j1'
ac_add_options --enable-application=browser
ac_add_options --enable-optimize="-O2" 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 --disable-system-cairo ac_add_options --enable-strip ac_add_options --with-system-jpeg ac_add_options --without-system-png 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 --disable-gconf ac_add_options --without-system-nspr ac_add_options --without-system-nss #ac_add_options --enable-ldap ac_add_options --without-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 --without-system-libevent ac_add_options --disable-stylo #ac_add_options --with-system-graphite2 #ac_add_options --with-system-harfbuzz ac_add_options --disable-nfc ac_add_options --enable-ffmpeg

...some of the system libraries I had to disable, as they are too old. Some disabled for other reasons.

EDIT 29 May 2018:
I have converted 'rustc' into an SFS file. Running Easy, click the "sfsget" icon at top of screen, and the available SFS files will be offered to download. It is 333MB.

That's the easy way. The manual way is to download it directly, then place it in the /mnt/wkg/repository/easy-0.9.3 folder, then run Easy Boot Manager in the Filesystem menu. Here it is:

http://distro.ibiblio.org/easyos/amd64/packages/sfs/pyro/rustc-1.26.0-pyro64_0.9.3.sfs

Tags: easy