Friday, October 29, 2021

The current status of DIY TenFourFox

Due to family and work issues my time has been curtailed for all kinds of things, but at this point, at least, there's something for you to work with: as promised, the TenFourFox source code has been updated to use 91ESR for the certificate and security base and the roots pulled up accordingly. I've also got a few security updates loaded and backported a performance tweak intended for Monterey systems but also yields a small boost on any version of Mac OS X. The browser will now be forever "45.41.6" (ESR32 SPR6) with the perpetual name "Rolling Release." This version number will not be revved again without good reason.

So now it's time for you to make your first build (and, if you feel adventurous, find a problem and try to fix it, but let's take baby steps). Officially, we have documentation for that already using MacPorts. A semi-frozen build of MacPorts what I use on my G5: I have three trees, one being the main testing debug tree which pulls from Github, and then two local subtrees that pull from the local debug tree (created with git clone --shared so that they are about 25% the size) which I use to make rolling G5-optimized (for my Quad) and 7450-optimized (for my iMac and iBook) builds. I do my work in the debug tree and make sure everything functions properly, then check it in and git pull and gmake -f build in the optimized subtrees to roll up the changes. When the subtrees are happy too, I'll git push from the main debug tree into Github. I consider this as officially supported a solution as presently exists under the circumstances. The Quad runs TenFourFox directly from the G5 subtree now.

However, MacPorts does have a lot of prereqs and requires some additional prep time (sometimes many hours) to build the tools from source. Macintosh Garden has an "unofficial TenFourFox toolkit" that contains an Automator workflow, a supervising script and a fully precompiled toolchain. You will have to install Xcode first (2.5 for Tiger, 3.1.4 for Leopard), but that is the only apparent requirement, and multiple users have reported it builds the browser successfully.

One common problem that gets reported on non-G5 systems is the dreaded internal compiler error. However, when the build is restarted, it usually progresses and continues for awhile without incident. The problem is likely tied to memory pressure and compilers really thrash memory. If your system hits this a lot and starts to annoy you, consider removing -j2 out of the build flags in whatever .mozconfig you're using (change your copy in .mozconfig, not the master *.mozcfg). This will only run one compiler instance at a time, which is slower, but requires less memory and is more likely to complete the build in one shot without manual intervention.

If you really don't want to build it yourself, however, you do have at least one option: InterWebPPC. This is a modified build of TenFourFox that explicitly removes some features for performance, so it is not equivalent with TenFourFox, and it is not necessarily built on any particular schedule either. It also does not have separate G4/7400 and G4/7450 builds, though this may not be noticeable on your particular system. You can download prebuilt binaries for G3, G4 or G5 as well as compile it from source using the "unofficial toolkit" above. I haven't seen other downstream builds yet but if you know of one, plan to make one or are using one, post it in the comments.

There are a couple other security fixes I'm reviewing, and I'm toying with some Github specific hacks to deal with its dependence on async/await, but these again will not be done on any particular timetable (I'll post here when or if I get around to them). Still, some of you have already built the browser successfully, and if you can build TenFourFox on your Power Mac you can build pretty much anything. Perhaps this might spark some additional development interest ...


  1. [ChrisT]Posting this from my freshly-built 45.41.6. I use a G4 PowerBook (1.33 GHz, 2 GB RAM) with Xcode and the unofficial TenFourFox toolkit on a dedicated 10.4 partition as a build machine now. I usually build the 7450 and G3 versions consecutively from the same source clone (I don't own 7400 or G5 Macs). This takes about 10 hours each.

    Even when I initially used my G3 iBook (640 MB RAM) I never had to re-start the process because of internal compiler errors, it simply went straight through (slowly…). Maybe this isn't as much of an issue with the setup used by the unofficial TenFourFox toolkit? Or maybe it's because I use SSDs, so when swapping occurs it's quick enough that the compiler doesn't complain? Anyway, building TenFourFox this way is easy and unproblematic, I can recommend it for everyone.

    Here's the short list of modifications I make to the source:
    • netwerk/protocol/http/OptimizedFor.h -> "G3" or "7450" instead of "debug"
    • browser/config/version_display.txt -> "Feature Parity Release 32 (SPR 6 YYYYMMDD)" where YYYYMMDD is the build date
    • browser/config/version.txt and config/milestone.txt -> I keep the defaults because that's what I would use anyway.

  2. Nah, I rather use InterWebPPC, after all, it is based on TenFourFox and is going to replace it. TenFourFox is dead, Long live InterWebPPC!

  3. Very Curious how this over at Macintosh Garden works out. Looks like people are getting ready to build on their own!


Due to an increased frequency of spam, comments are now subject to moderation.