UXP Browser Bundle Release: 240824
----------------------------------------------------------------------
1. This directory tree contains source code and a Bash build script
(buildme.sh) for the following six XUL-compatible and Rust-free pro-
grams (b):
Most useful:
* AlbusLuna - Revived Classic Firefox
* Ambassador - Revived Chatzilla
* Basilisk - A newer-style UXP-based browser
* Epyrus - A Classic Thunderbird fork (a)
Less maintained, abandoned, or obsolete:
* Blue Gorilla - Revived SeaMonkey (abandoned)
* Icedove - Revived Icedove aka Classic Thunderbird
(a) Epyrus is recommended over Icedove because, as of this writing, it
is the most maintained. Icedove is nearly abandoned.
(b) The note about Rust isn't intended to deprecate Rust as a lang-
uage. But Rust can complicate offline builds of browsers to the point
where it's pretty much impossible.
These programs can be built for either 64-bit Linux or 32-bit Linux.
To build for 32-bit Linux, boot a 64-bit kernel on a 32-bit distro and
proceed from there. This is just so that you can access enough RAM for
the build. The programs produced should work using a 32-bit kernel on
the same 32-bit distro.
For a change-log, see the file "CHANGES".
#---------------------------------------------------------------------
2. Additional notes.
2.1. These programs are built on top of the UXP platform. The bundle
source tree includes at least one version of the UXP source tree and
may include multiple versions.
2.2. Different UXP programs can run concurrently except for the Thun-
derbird forks. Presently, if the user tries to run two Thunderbird
forks at the same time, only one will pop up. This is intentional. It
permits different Thunderbird forks to share a single email profile
without data corruption.
----------------------------------------------------------------------
3. To build this bundle, you'll need about 10.5GB or more free disk
space in the filesystem associated with "/var/tmp".
----------------------------------------------------------------------
4. The source tarball for this package was created using a shell scri-
pt with the following name:
make-browser-bundle.sh
The script is part of Laclin. It may be reviewed and used in Laclin
but will not work in other distros.
The script is *not* needed to build the browser bundle. The browser
bundle should build under numerous distros.
----------------------------------------------------------------------
5. License notes.
It's believed to be entirely legal and appropriate to host and distri-
bute source code for each of these programs and to build binaries
using them.
If you decide to distribute binaries, for some of the programs, rules
related to "official" branding may be a political issue and should be
taken into account.
To address this issue, future releases of the UXP Browser Bundle may
remove such "official" branding as remains.
----------------------------------------------------------------------
6. Credits.
Credits related to each program will be added to this document and/or
to the programs. In some cases, the credits are already present at the
program level.
To start, Icedove-UXP is from the Hyperbola Project. Blue Gorilla is
a fork by another developer of Iceape-UXP from the same project.
The UXP codebase that underlies all of the programs was created by a
small group named Moonchild Productions.
----------------------------------------------------------------------
7. "git" histories.
For reasons related to disk space and download time, the "uxp-brow-
sers" directory tree isn't presently available with "git" histor-
ies.
----------------------------------------------------------------------
8. Minuses.
There are some pluses and minuses to these programs. The minuses in-
clude:
* Built-in links for various things go to websites that don't exist
yet or that are outdated or no longer applicable.
* The programs come with preinstalled extensions that can't be removed
using the extensions GUI. If you don't want them, you'll need to de-
lete them from the program tree manually.
* Classic XUL extensions are supported, but you'll need to manually
patch stanzas in the associated "install.rdf" files. For more informa-
tion, see Appendix A.
* A few of the Albus Luna branding images are just text on white rec-
tangles. The images in question need work.
* The web browsers don't work with websites that use complicated Java-
script features.
* The web browsers are slower than browsers based on Chromium.
----------------------------------------------------------------------
9. Pluses.
The pluses to these packages include:
* XUL extensions. For example, ScrapBook X, the real thing, works with
the web browsers (and is preinstalled in some cases).
* The Thunderbirds that are included are the only realistic Linux FOSS
alternatives to Rust Thunderbird that we're aware of.
Pre-Quantum actual Thunderbird, ESR releases, is approaching the point
where it can't be built. Quantum Thunderbird requires Rust. The UXP
Thunderbird forks are a decent alternative. As of 2024, if they're
compared to Quantum Thunderbird, they're missing primarily Oauth2.
Note: K-9 Mail is a pretty good email option, except for the regret-
table new logo, but it seems to be just for mobile.
* You can modify and redistribute Albus Luna.
Albus Luna is very similar to the UXP group's flagship browser but the
official branding has been replaced. Note: Notify the Albus Luna pack-
ager of any remaining pieces of the old branding that need to be re-
moved.
The license rules that apply to the flagship browser prohibit distrib-
ution of modified copies. However, Albus Luna is fine with it. Have
fun. We'd appreciate it if you'd rename modified releases or perhaps
add qualifiers such as "Avocado Edition".
Note: The rules that apply to the rest of the programs are under re-
view.
* Some of these programs support ALSA. If we understand correctly,
the latest iterations of the Mozilla programs have dropped support for
this subsystem.
* There's a single simple-to-run "build" script that builds everything
and puts it all in one directory tree.
* We think that the directory tree is portable though this needs to be
confirmed.
By "portable", we mean that it might be possible to move the directory
tree around.
It isn't completely portable in the Windows Portable Apps sense where
user profiles are stored in the same tree. However, it might be possi-
ble to add that feature.
----------------------------------------------------------------------
10. It should be possible to build this package in most modern Linux
distros. Before you proceed, though, you'll need to install dependen-
cies.
We haven't assembled a full list of dependencies yet, but if you in-
stall what Chromium, LibreOffice, and Thunderbird would need (omitting
Rust), you should be in good shape.
Partial list:
gcc and g++ 9 or 10 - gcc's newer than 10 aren't tested
gtk2 or gtk3 - Which to use can be selected
pulseaudio or alsa - Or you can disable sound support
"auto"-tools
autoconf-2.13
brotli
freetype2 and fontconfig
python2 and python3
cairo and pixman
pkg-config
perl5
yasm
Install development versions of dependencies where a difference ex-
ists; i.e., versions that include header files and libraries.
----------------------------------------------------------------------
11. Builds.
Builds are fairly simple compared to Mozilla builds of the past [espe-
cially taking into account the number of programs that are built].
After you install dependencies, unpack the source tarball. Review the
comments at the top of the following file:
buildme.sh
Set environment variables as indicated in the comments to configure
the build as you prefer.
Execute the following command in the top-level source directory:
bash -e ./buildme.sh
On a high end box with SSD instead of HD, 32 GB of RAM, and 6x2 CPU
or better, we've observed build times of about 0.50 to 0.75 hours per
program. For 10 programs, that works out to about 5.0 to 7.5 hours for
the set.
On less powerful boxes, builds have taken perhaps twice as long.
----------------------------------------------------------------------
12. As a positive note, system "nss" and "nspr" don't seem to be re-
quired. However, we found that we needed to patch an ".m4" file to
make builds without system "nspr" work. The patch is still under re-
view and isn't guaranteed to be correct.
----------------------------------------------------------------------
13. More about build configuration.
The programs can be built in different ways. For example:
(a) In a "lite" mode that uses Gtk2 and skips features such as
"dbus" and sound
(b) In a regular mode that uses Gtk3 and supports the extra fea-
tures
(c) Or in-between
The different modes can be selected using environment variables as
follows:
export SKIP_DBUS=false # Use "dbus" - Default is to skip it
export SKIP_LDAP=true # Skip "ldap" - Default is to use it
export SKIP_SOUND=true # Skip "sound" - Default is to use it
export USE_GTK2=true # Use Gtk2 - Default is to use Gtk3
# ...
bash -e ./buildme.sh
For details, see the commands at the top of "buildme.sh".
----------------------------------------------------------------------
14. By default, the build script installs these programs to the fol-
lowing directories:
$HOME/browsers/albusluna
$HOME/browsers/ambassador
$HOME/browsers/basilisk
$HOME/browsers/bluegorilla
$HOME/browsers/epyrus
$HOME/browsers/icedove
The common directory, i.e., "$HOME/browsers", can be changed using an
environment variable as follows:
export PREFIX=/opt/browsers
# ...
bash -e ./buildme.sh
If necessary, the specified common directory will be created. Warning:
Existing browser subdirectories will be deleted and then recreated.
----------------------------------------------------------------------
15. Each of the programs has a separate "bin" directory located in the
program's own directory tree.
For your convenience, an extra "bin" directory is created in the com-
mon directory which contains symlinks to each of the programs. For ex-
ample, the following configuration results in a "bin" directory with
the full path "/opt/browsers/bin":
export PREFIX=/opt/browsers
# ...
bash -e ./buildme.me
In this example, add "/opt/browsers/bin" to PATH and you're good to
go.
If you don't want the extra "bin" directory, you can use an environ-
ment variable named "ADDBINDIR" as follows to disable it:
export PREFIX=/opt/browsers
export ADDBINDIR=false
# ...
bash -e ./buildme.me
----------------------------------------------------------------------
16. To specify the number of parallel jobs to run during a build, do
something like this:
export NUMJOBS=8
# ...
bash -e ./buildme.me
#---------------------------------------------------------------------
17. Borealis and Interlink.
The source code for two more programs is included, but these two pro-
grams are no longer built:
* Borealis - A Netscape-like browser
* Interlink - Another Thunderbird fork
Reasons:
First, as background, these two programs are part of the same code-
base.
(a) There is an Addons Manager problem with Borealis that we don't
have the time to fix.
(b) Interlink is fairly redundant as it doesn't seem to add much to
Epyrus and Icedove.
(c) For technical reasons, it may be difficult or impractical to build
Borealis with "devtools" support or Interlink with "calendar" sup-
port.
(d) Both programs are highly abandoned and are Matt Tobin programs as
well.
We'll omit the details of Tobin issues here, but, adding it all up, it
makes sense to retire these two programs.
----------------------------------------------------------------------
Appendix A. Sample "install.rdf" stanzas.
To use classic XUL extensions with these programs, you'll need to pat-
ch the associated "install.rdf" files to use the appropriate stanzas
from this list.
{9184b6fe-4a5c-484d-8b4b-efbfccbfb514}
0
99
{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}
0
99
{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
0
99
{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
0
99
----------------------------------------------------------------------
End of file.