Puppy Linux Blog Post:

How to compile Pale Moon 27.4.1 from source code in Lighthouse 64 Puppy Linux 6.02 Beta 2
7/31/2017

Post Below
7/31/2017 - How to compile Pale Moon 27.4.1 from source code in Lighthouse 64 Puppy Linux 6.02 Beta 2 (Puppy Linux)

    Hide/Show:


   ▲ Top  ▼ Bottom  △ TOC
How to compile Pale Moon 27.4.1 from source code in Lighthouse 64 Puppy Linux 6.02 Beta 2
Monday, July 31st, 2017
11:35:28 GMT

Puppy Linux

Several days ago, after less than an hour of trying, I successfully compiled my favorite web browser, Pale Moon, from source code, in Lighthouse 64 Puppy Linux 6.02 Beta 2!

The reason I did that was because I thought upgrading my web browser might solve my issues with YouTube's HTML5 player not playing audio. (I was mistaken, but, I finally found a solution!)

And when I tried to simply download the latest precompiled version of Pale Moon for Linux, 27.4.0, it wouldn't run on my system because of this error. (Which also happened with at least one older version many months ago):

./palemoon: /lib/libc.so.6: version `GLIBC_2.17' not found (required by ./palemoon)

So, my only remaining option was to try to build Pale Moon from source code.


Since the build process was a bit more complicated than just ./configure; make; make install, and I thought I might need to know how to do it again someday, and that others might like to know too, I decided to document it.

Happily, it was a lot easier to build than I thought it might be. That was the first time I ever attempted to build a web browser from source code, and I was prepared to spend hours on it if I had to.

But, to my own surprise, it only took me about 45 minutes to figure out, thanks to various helpful web pages. And it will hopefully take much less time in the future, now that I've written this blog post, which even I will be able to refer to someday when I've forgotten most of the below details.


However, the below instructions will probably have to be modified if you don't have enough RAM, because the final /home/root/pmbuild folder on my system ended up being over 3 GB, or 3264 M, to be more exact.

And I was only able to build it there - a location inside my Puppy Linux RAM disk - because my current computer has a huge amount of RAM - 32 GB, which gives me a 16 GB Puppy Linux RAM disk.

So far, I wasn't able to figure out how to make the ./mach command build Pale Moon someplace other than /home/root/pmbuild. I'm guessing the best place to look for answers would be the official Pale Moon forum.


I also haven't tried these instructions in any other Puppy Linux, nor any other GNU/Linux. So, I don't know what changes might need to be made for other Puppies or GNU/Linuxes.


  1. I loaded the Lighthouse 64 DevX SFS file of development tools by right-clicking it and choosing "sfs_load".

    If you need a copy of the DevX SFS file, you can get it from here:

    http://lhpup.org/sfs/602-x86_64/


  2. I didn't have Autoconf 2.13, which is required to build Pale Moon, according to the official instructions on how to build Pale Moon in Linux.

    So, I downloaded autoconf-2.13.tar.gz from here:

    https://ftp.gnu.org/gnu/autoconf/


  3. Then, I unzipped the autoconf-2.13.tar.gz in one of my temporary folders in my Puppy Linux RAM disk.


  4. Building Autoconf 2.13 was easy. In the autoconf-2.13 folder, I opened a terminal window and typed these commands:

    ./configure

    make

    new2dir make install

    I put "new2dir make install" instead of "make install" because I wanted to make Puppy Linux .pet and .sfs installer files for Autoconf 2.13, so I hopefully wouldn't have to repeat this process again.


  5. I'm not sure this is necessary, but I moved my existing copy of autoconf (version 2.69) to some other location with this command:

    mv /usr/bin/autoconf /usr/bin/autoconf269


  6. Then, I had to make this symlink, or else the "Mach" software used to build Pale Moon complained that Autoconf 2.13 couldn't be found. This page gave me that idea:

    ln /usr/local/bin/autoconf /usr/local/bin/autoconf213


  7. Next, I downloaded the "Pale-Moon-27.4_RelBranch.zip" file from this page on GitHub:

    https://github.com/MoonchildProductions/Pale-Moon/tree/27.4_RelBranch

    That file's size is about 230 MB.


  8. I unzipped "Pale-Moon-27.4_RelBranch.zip" in a temporary folder in my Puppy Linux RAM disk. (I went out of my way to put it in a path which contained no spaces, simply because lots of things in Linux seem to be allergic to spaces in paths.)

    If you don't have as much RAM as I do, you might want to unzip that folder to someplace on a physical disk.


  9. Inside the Pale-Moon-27.4_RelBranch folder, I had to put a text file named ".mozconfig" (without quotes).

    I copied and pasted the example .mozconfig file from the official instructions for how to build Pale Moon in Linux: https://developer.palemoon.org/Developer_Guide:Build_Instructions/Pale_Moon/Linux

    But, I found I couldn't use exactly that, because the build got interrupted because I didn't have PulseAudio. And I much preferred to avoid installing PulseAudio because of its association with the infamous systemd.


    Fortunately, this forum thread gave me a clue of how stop Pale Moon from trying to use PulseAudio.

    Here's my final .mozconfig file, which you should place inside the "Pale-Moon-27.4_RelBranch" folder before the next step:


  10. I guess this is the point at which you might need to figure out how to change the default destination for the build, if your Puppy Linux RAM disk can't accomodate over 3 GB of files.

    As I mentioned before, I don't know how to do that yet - sorry.

    So, the rest of these instructions will simply assume you have enough RAM, as I did.


  11. Still in the "Pale-Moon-27.4_RelBranch" folder, I opened a terminal window, and typed this command:

    ./mach build

    Then, I just had to wait a while - 801 seconds, or 13.35 minutes. However, I was using a pretty good 2.8 GHz computer with 8 cores. So it might take more or less time depending on what you're using.


    I'm actually using a used Mac Pro from 2008, which looks like a giant cheese grater. :-) And I actually like it a lot, even though I usually prefer to avoid Apple products.

    Surprisingly, this Mac Pro can run Lighthouse 64 Puppy Linux 6.02 Beta 2, which makes it tremendously nicer for me to use than Mac OS X Lion does.


    The ./mach build command resulted in a large folder at /home/root/pmbuild/. I forgot to check its size before running the next step, but after the next step, it ended up being over 3 GB! 3264 M, to be more exact.


  12. There was still one more build command to run in the "Pale-Moon-27.4_RelBranch" folder:

    ./mach package

    This was much faster to finish than the build, and resulted in a tarchive quite similar to the official precompiled Pale Moon tarchives.

    That tarchive was in the folder /home/root/pmbuild/dist/ and named "palemoon-27.4.1.linux-x86_64.tar.bz2".


  13. Before you unzip that tarchive and run the "palemoon" file, you should probably take the precaution of backing up your current Pale Moon profile, just in case.

    In my system, by default, my Pale Moon profile is located at:

    /root/.moonchild productions

    To back it up, I close Pale Moon, and wait a little while to try to make sure Pale Moon is finished writing any files to that folder.

    Then I zip the folder, and put the zip file somewhere on a physical disk.

    I assume backing up the folder simply by copying the folder to a physical disk might also work, though I haven't tried that lately.


  14. Now, you can unzip the "palemoon-27.4.1.linux-x86_64.tar.bz2" file to whatever folder you want. It contains a "palemoon" folder which contains a "palemoon" executable file you can simply double-click on to run.

    That will launch Pale Moon 27.4.1 with your usual old Pale Moon profile, so, you hopefully won't have to reinstall your add-ons and other customizations from scratch.

    I upgraded from Pale Moon 26.2.2, and so far, I haven't noticed any problems with any of my old add-ons or anything else, though I haven't checked thoroughly.


  15. The most jarring difference I encountered was Google not being in the search engines list by default, but that is very easily fixed by clicking the Google link on this official Pale Moon Search Plugins page:

    https://addons.palemoon.org/integration/addon-manager/external/searchplugins

    And while you're there, you can add a lot of other handy search engines.


I'm very happy with my Pale Moon upgrade so far. It is noticeably faster than the old version I contentedly used for probably over a year, Pale Moon 26.2.2.

   ▲ Top  ▼ Bottom  △ TOC


    Hide/Show: