Compiling Palemoon Browser.

discuss compiling applications for Puppy
Post Reply
Message
Author
User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

Compiling Palemoon Browser.

#1 Post by 01micko »

Sick of the massive ~40MB packages of firefox, seamonkey and +50MB of chromium, chome et al?

Me too.

I haven't compiled a browser in ages. Last one was chromium+-24.?? in slackware that ran well enough on Slacko.

Before that I was religiously (for want of a better term) building seamonkey in old spup-100 (remember that?) and early slacko versions - but soon got tired of it and just ended up using the Pat Volkerding built Firefox official Slackware packages - mainly because it was substantially smaller than Seamonkey.

Anyway, when FF moved to their new 'Australis' UI it grew substantially - as did SM - why(?) who knows? Anyway they are both near 40MB packages these days and that is just plain bullshit in my view. What new do you get? Nothing. 0. ( nada - zero - zilch).

Thankfully 666philb discovered palemoon, which has been described as what Mate as is to Gnome (somewhere on the LQ forum) is Palemoon as is to Firefox. (Yes it is Firefox based).

So.. it comes as a binary :? .. but is open source :D so I found the source and compiled it. Worked first go :P (with caveats).

---------------------------------------------------------------------------------------------------------

So I've sold you and you want to build it.

REQUIRED: devx, EDIT: gstreamer (at least for a build time dependency), lots of RAM (2GB min with 6GB swap); a six pack (EDIT: the "configure" out put actually instructs you to check the fridge for beer!) or a few cups of coffee.. it takes ages! (especially the linker - took 35 mins to link on a 3GHz Athlon X2; 4GB RAM, 2GB swap)

Here is a quick and dirty recipe.
  • 1. get the source.

    Code: Select all

    wget ftp://source:current@ftp.palemoon.org/palemoon-25.5.0-source.7z
    2. Fixup autoconf. If you dont have autoconf-2.13 then get it

    Code: Select all

    wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
    tar -xvzf autoconf-2.13.tar.gz
    cd autoconf-2.13/
    ./configure --program-suffix=2.13
    make
    make install
    . It installs to /usr/local/bin

    3. Extract the source

    Code: Select all

     mkdir palemoon-25.5.0
    7z x -opalemoon-25.5.0  palemoon-25.5.0-source.7z
    4. add this DOTmozconfig (name it .mozconfig - see the preceding DOT?) into your palemoon-25.5.0 src dir.
    CAVEAT 0: No guarantees here! It may (read WILL) need tweaking and coz it takes ages to compile is a royal PITA. YMMV.

    Code: Select all

    mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj
    mk_add_options AUTOCONF=autoconf2.13
    export MOZILLA_OFFICIAL=1
    ac_add_options --enable-official-branding
    ac_add_options --prefix=/usr
    ac_add_options --libdir=/usr/lib
    ac_add_options --with-default-mozilla-five-home=/usr/lib/palemoon
    ac_add_options --with-system-zlib
    ac_add_options --enable-application=browser
    ac_add_options --enable-default-toolkit=cairo-gtk2
    ac_add_options --enable-startup-notification
    ac_add_options --enable-crypto
    ac_add_options --enable-svg
    ac_add_options --enable-canvas
    ac_add_options --enable-logging
    ac_add_options --enable-xft
    ac_add_options --enable-webm
    ac_add_options --enable-xinerama
    ac_add_options --enable-reorder
    ac_add_options --enable-strip
    ac_add_options --enable-cpp-rtti
    ac_add_options --enable-single-profile
    ac_add_options --disable-tests
    ac_add_options --disable-optimize
    ac_add_options --disable-gnomevfs
    ac_add_options --disable-ldap
    ac_add_options --disable-accessibility
    ac_add_options --disable-crashreporter
    ac_add_options --disable-debug
    ac_add_options --disable-pedantic
    ac_add_options --disable-installer
    ac_add_options --disable-mailnews
    ac_add_options --disable-composer
    ac_add_options --disable-pulseaudio
    ac_add_options --disable-profilesharing
    ac_add_options --disable-tests
    export LDFLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
     
    - note0 @line2 (autoconf)
    - note1 @last line is required for 32 bit builds (thx jamesbond)

    5. This is goofy - run this -

    Code: Select all

    cd palemoon-25.5.0
    chmod -R 777 .
    - permissions are screwed up in the archive, need to figure out a better way.
    EDIT: Nope.. seems that perms must be set executable and I'm not searching the sources for every bad exec so (a bit safer)

    Code: Select all

    cd palemoon-25.5.0
    chmod -R 755 .

    If you are paranoid, disconnect from the net after you download the source.

    6.

    Code: Select all

    mkdir obj
    7. READY!

    Code: Select all

    make -f client.mk build
    8. If it builds (it may or may not) then do this

    Code: Select all

    cd obj
    make package
    9. You should now have palemoon-25.5.0.en-US.linux-x86_64.tar.bz2 in dist!
Posting from it now.
Attachments
palemoon.png
(57.84 KiB) Downloaded 636 times
Last edited by 01micko on Thu 24 Sep 2015, 06:31, edited 4 times in total.
Puppy Linux Blog - contact me for access

User avatar
666philb
Posts: 3615
Joined: Sun 07 Feb 2010, 12:27
Location: wales ... by the sea

#2 Post by 666philb »

hi 01micko,

there are some licensing restrictions with palemoon which may affect self compiled binaries https://www.palemoon.org/redist.shtml
Bionicpup64 built with bionic beaver packages http://murga-linux.com/puppy/viewtopic.php?t=114311
Xenialpup64, built with xenial xerus packages http://murga-linux.com/puppy/viewtopic.php?t=107331

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#3 Post by 01micko »

666philb wrote:hi 01micko,

there are some licensing restrictions with palemoon which may affect self compiled binaries https://www.palemoon.org/redist.shtml
I don't see a problem. I don't add any patches. I will however run it by moonchild anyway. (mainly to see if he approves the .mozconfig).

Also, I note clause 3.d.
You have changed supplied default preferences of the browser
I'll ask him if it's possible to add this to /usr/lib/palemoon-${VERSION}/browser/defaults/preferences/local-settings.js

Code: Select all

//
//default home page
pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///usr/share/doc/home.htm");
That just adds the 'jumping off page' as the home page.

If he doesn't allow that to the package then I'll ask if it's allowed to be a separate package included in a puppy build. All distros do it with mozilla browsers, with permission.

EDIT:
12. If you wish to distribute binaries for other platforms, building from Pale Moon source code, you may not use official branding unless these builds have also been approved as a contributed build as per point 10 of this license or if they are exempt under points 7 or 8 of this license. Even so, you obtain no rights to the Pale Moon name or logo, merely the permission to use it for the 3rd party build, and only for as long as it is officially endorsed or satisfies the conditions for exemption. In all other cases you must use significantly different branding files/graphics and a significantly different name for the browser.

13. Unofficial branding ("New Moon") as supplied in the source code may be used for unendorsed binaries at all times. Thusly branded binaries with the New Moon logo and product name are not subject to the endorsement and exception rules as set out in previous points of this license and may be freely distributed in altered or unaltered form, subject to the Mozilla Public License as regards source code changes and availability. This permission does, however, not include any rights or license to the Pale Moon name and logo that may still be present in the resulting unofficially branded binaries.
That solves that :) . I care not for the official branding.
Puppy Linux Blog - contact me for access

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#4 Post by 01micko »

Here is a package built in slacko-5.9.3. Seems to do everything right so far-

palemoon-25.5.0-i686_slk600_1.pet 22MB xz compressed. (compared with Slackware mozilla-firefox-31.7.0esr-i486-1_slack14.1.txz package @ 34MB xz compressed).

It wont run in older slacko versions!

It will filter through to mirrors soon. It was built with a build script, fully reproducible. Official branding is disabled as I replaced the default home page (a licence requirement) so it will show up as "New Moon" and has the default mozilla icon. No big deal. Seems to work exactly like firefox-24.x to me, but obviously has been updated with security features and other optimisations.
Puppy Linux Blog - contact me for access

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#5 Post by Makoto »

Just curious... can the latest versions of palemoon be compiled for and run under Puppy 4.3.1? (I know, I know, upgrade Puppy, or at least glib. 8) )

I'm mainly wondering whether or not the more recent versions of Firefox, Seamonkey, etc. have higher glib/c requirements simply because they were compiled using a more recent version of glib/c, or do they actually require something present in the newer libs? :lol:
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#6 Post by 01micko »

Makoto wrote:Just curious... can the latest versions of palemoon be compiled for and run under Puppy 4.3.1? (I know, I know, upgrade Puppy, or at least glib. 8) )

I'm mainly wondering whether or not the more recent versions of Firefox, Seamonkey, etc. have higher glib/c requirements simply because they were compiled using a more recent version of glib/c, or do they actually require something present in the newer libs? :lol:
I'm afraid gcc>= 4.7.0 (required build depend) is needed making slacko-5.7 as probably as old as it gets.
Puppy Linux Blog - contact me for access

User avatar
Makoto
Posts: 1665
Joined: Fri 04 Sep 2009, 01:30
Location: Out wandering... maybe.

#7 Post by Makoto »

I'd guessed that was the case, but I knew I'd regret it if I didn't at least ask. :D
[ Puppy 4.3.1 JP, Frugal install ] * [ XenialPup 7.5, Frugal install ] * [XenialPup 64 7.5, Frugal install] * [ 4GB RAM | 512MB swap ]
In memory of our beloved American Eskimo puppy (1995-2010) and black Lab puppy (1997-2011).

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#8 Post by musher0 »

Thanks for this, mick.

Would you know of a work-around for the "SS3 instruction in CPU" restriction
in newer ready-made palemoons? (Vivaldi has it too, BTW.)

BFN.

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#9 Post by 01micko »

Sorry musher0 but it seems like support was abandoned. See http://forum.palemoon.org/viewtopic.php?f=24&t=273 (by the dev).

It is also broken for ARM builds. I tried in fatdog-arm. :roll: :(
Puppy Linux Blog - contact me for access

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#10 Post by musher0 »

Thanks, 01micko.

Us commoners with older comp's will just have to use some other browser.

Out of curiosity: so ARM CPUs don't have the SS2-SS3 instructions for
calculations either, eh?

BFN.

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#11 Post by 01micko »

musher0 wrote:Thanks, 01micko.

Us commoners with older comp's will just have to use some other browser.

Out of curiosity: so ARM CPUs don't have the SS2-SS3 instructions for
calculations either, eh?

BFN.

musher0
Nope, it's do with NEON, a long story. Unhappy ending. :P


------------------------------------------------------------------------------------------------

@Flash, I know you mean well, but if I wanted the title of this thread as you suggested I would have put that. If you change it back I'll delete my posts from this thread, making it useless. :)
Puppy Linux Blog - contact me for access

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#12 Post by musher0 »

Sorry for the delay with this reply.

You got me searching! :) It has to do with another type of chip, then.

That's too bad, because the MoonChild programmer is shooting himself
in the foot limiting his browser like that. Anyway, it's his browser, not
mine (not anymore); he can do whatever he likes with it.

What he probably doesn't realize is that for a lot of people, dishing out
$150 for a used 64-bit is still beyond their budget. Not every country and
not everyone has recovered from the crash. (For ex. unemployment
is still in the +/- 12 % range for young people in Canada.) I think 32-bits
will be with us a little while longer.

Thanks for the info, 01micko.

BFN.

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

anikin
Posts: 994
Joined: Thu 10 May 2012, 06:16

#13 Post by anikin »

musher0,

To the best of my knowledge, it's not that dramatic as yet. Not 32-bit vs 64-bit. It's just about SSE2 as a requirement for Palemoon. Here's a complete (kinda) list of supported processors: http://murga-linux.com/puppy/viewtopic. ... 777#811777

musher0
Posts: 14629
Joined: Mon 05 Jan 2009, 00:54
Location: Gatineau (Qc), Canada

#14 Post by musher0 »

anikin wrote:musher0,

To the best of my knowledge, it's not that dramatic as yet. Not 32-bit vs 64-bit. It's just about SSE2 as a requirement for Palemoon. Here's a complete (kinda) list of supported processors: http://murga-linux.com/puppy/viewtopic. ... 777#811777
Hello anikin.

Well, it's been dramatic for me and probably for other Palemoon
enthusiasts. My 2400+ AMD Athlon only has the SSE instruction. The SS2
restriction means that 8-10 year old computers don't cut it for Palemoon
any more. As I said above, some people are not rich enough to afford a
newer second-hand 64-bit or 32-bit at this time.

I was the one who first presented Palemoon on this forum -- in the thread
for petihar's Triton 5.7.1 Pup -- before 666philb informed the English side
of its existence. I was enthusiastic about Palemoon; over this SS2
restriction, it has definitely lost my support.

You have to properly prepare your users before you do such a change,
and IMO MoonChild didn't do that. If he has such programming talent, he
could have maintained the SSE version alongside his new SS2 version --
so as not to discriminate against the poor of this world. Because willy-nilly
that's what he's in fact doing: discrimination against the poor.

Yep, a "dramatic" reaction. And I'm not apologetic about it either.
And to think that the Vivaldi programmer has followed suit. Wow.

BFN.

musher0
musher0
~~~~~~~~~~
"You want it darker? We kill the flame." (L. Cohen)

Post Reply