Step-by-step instructions for linux build?

Support and discussions for the x86/x64 Linux version of Pale Moon.

Moderator: trava90

Walter Dnes
Astronaut
Astronaut
Posts: 630
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Step-by-step instructions for linux build?

Post by Walter Dnes » 2015-11-27, 19:29

Moonchild wrote:If you've already cloned the repo, then you can switch branches with:
git checkout 25.8_Atom_RelBranch
Thanks. BTW, that's a lowercase "b" in "Relbranch". Once I had the correct pathname, a bit of Google research showed that the command I really wanted is...
git clone -b 25.8_Atom_Relbranch --single-branch https://github.com/MoonchildProductions/Pale-Moon.git pmsource
The result was...

Code: Select all

Cloning into 'pmsource'...
remote: Counting objects: 98653, done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 98653 (delta 40), reused 69 (delta 35), pack-reused 98568
Receiving objects: 100% (98653/98653), 152.86 MiB | 861.00 KiB/s, done.
Resolving deltas: 100% (28189/28189), done.
Checking connectivity... done.
Checking out files: 100% (81052/81052), done.
Now I'll get on with the build.
There's a right way
There's a wrong way
And then there's my way

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 27406
Joined: 2011-08-28, 17:27
Location: 58°2'16"N 14°58'31"E
Contact:

Re: Step-by-step instructions for linux build?

Post by Moonchild » 2015-11-27, 20:01

Heh, seems I made a caps typo in both 25.7 and 25.8 atom branches. Sorry for the confusion.

Yes, you can get a single branch while cloning; as said though I assumed you had already cloned the tree.
"There will be times when the position you advocate, no matter how well framed and supported, will not be accepted by the public simply because you are who you are." -- Merrill Rose
Image

Walter Dnes
Astronaut
Astronaut
Posts: 630
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Step-by-step instructions for linux build?

Post by Walter Dnes » 2015-11-27, 21:17

git clone -b 25.8_Atom_Relbranch --single-branch https://github.com/MoonchildProductions/Pale-Moon.git pmsource
"Muphry's Law" strikes; defined as the fact that when someone is pointing out a typo, they invariably make their own typo in the process. That should be...
git clone -b 25.8_Atom_Relbranch --single-branch https://github.com/MoonchildProductions/Pale-Moon.git pmsrc
Change "pmsource" to "pmsrc"
There's a right way
There's a wrong way
And then there's my way

Walter Dnes
Astronaut
Astronaut
Posts: 630
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Step-by-step instructions for linux build?

Post by Walter Dnes » 2015-11-28, 16:23

Almost, but not quite. The screen output ended with error messages, none of which showed up in buildlog.txt. buildlog.txt indicated a succesfull build. I modified the build script to also log output from the "make package" command (I also made a few other changes to improve the build script, for me at least). I re-ran the build (2 hours) and got the logs from "make package". I've attached a gzipped file. Any ideas? Is it possible to manually finish the packaging so I can have a usable palemoon?
Attachments
packagelog.txt.gz
gzipped log of "make package" output.
(2.18 KiB) Downloaded 20 times
There's a right way
There's a wrong way
And then there's my way

Walter Dnes
Astronaut
Astronaut
Posts: 630
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Step-by-step instructions for linux build?

Post by Walter Dnes » 2015-11-28, 20:14

Just in case it's a python problem, the active version on my machine is 2.7.10

Optional features enabled
ncurses readline sqlite ssl threads (wide-unicode) xml

Optional featues disabled
(berkdb) build doc examples gdbm hardened ipv6 tk wininst

Items in parentheses are mandatory settings the user cannot over-ride. See https://wiki.gentoo.org/wiki/Python for the impact of enabling these flags.
There's a right way
There's a wrong way
And then there's my way

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 27406
Joined: 2011-08-28, 17:27
Location: 58°2'16"N 14°58'31"E
Contact:

Re: Step-by-step instructions for linux build?

Post by Moonchild » 2015-11-28, 21:16

Looks like the cache precompile is being iffy again. Travis, didn't we run into that before on other setups like BSD?

You can skip cache precompilation by making an edit to the packager script, which will allow you to package. Your build would otherwise be OK if it got to that stage.
See commit: https://github.com/MoonchildProductions ... b8961e6c0b

(maybe if we can figure out what exactly causes this, it can be solved on all platforms)
"There will be times when the position you advocate, no matter how well framed and supported, will not be accepted by the public simply because you are who you are." -- Merrill Rose
Image

User avatar
trava90
Contributing developer
Contributing developer
Posts: 1605
Joined: 2013-05-20, 18:19
Location: Earth
Contact:

Re: Step-by-step instructions for linux build?

Post by trava90 » 2015-11-29, 06:24

Yes, it failed with that exact error on FreeBSD.
Moonchild wrote:(maybe if we can figure out what exactly causes this, it can be solved on all platforms)
Agreed.

Walter Dnes
Astronaut
Astronaut
Posts: 630
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Step-by-step instructions for linux build?

Post by Walter Dnes » 2015-11-29, 15:48

Moonchild wrote:Looks like the cache precompile is being iffy again. Travis, didn't we run into that before on other setups like BSD?

You can skip cache precompilation by making an edit to the packager script, which will allow you to package. Your build would otherwise be OK if it got to that stage.
See commit: https://github.com/MoonchildProductions ... b8961e6c0b
Thank you very much for your help, and everybody else who pitched in on this thread. I deleted lines 352-367 (in light red background) as per that commit, and it packaged properly. I've built+packaged it and it's up and running on my ancient Atom netbook. I'm in the process of tweaking a template default to my preferences now.
Moonchild wrote:(maybe if we can figure out what exactly causes this, it can be solved on all platforms)
I try to keep my installs "lean-and-mean". Gentoo USE flags allow control over optional dependancies, and I try to minimize stuff I don't need. Maybe the precompilation routine has an implicit dependancy that isn't satisfied on my machine, or on BSD, which is also "lean-and-mean".
There's a right way
There's a wrong way
And then there's my way

Walter Dnes
Astronaut
Astronaut
Posts: 630
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

Re: Step-by-step instructions for linux build?

Post by Walter Dnes » 2015-11-29, 16:58

For anybody who's interested, here's my custom setup. It may only apply to me, or others may find portions of it useful. First, my "build" script...

Code: Select all

#!/bin/bash
#
# Initialize errors flag to zero.  Changed to 1 if mozconfig.txt
# and/or pmsrc/ absent
errors=0
#
# Check for pmsrc directory.
if [ ! -d "pmsrc" ] ; then
   echo "Error: pmsrc directory not found."
   errors=1
fi
#
# Check for mozconfig.txt file.
if [ ! -f "mozconfig.txt" ] ; then
   echo "Error: mozconfig.txt file not found."
   errors=1
fi
#
# Exit if either or both of the above checks find problems
if [ ${errors} -eq 1 ] ; then exit 1 ; fi
#
# Delete pre-existing pmbuild directory if present
if [ -d "pmbuild" ] ; then
   rm -rf pmbuild
   if [ -d "pmbuild" ] ; then
      echo "Error: Unable to delete pre-existing pmbuild directory"
      exit 1
   fi
fi
#
# Create an empty pmbuild directory
mkdir pmbuild
if [ ! -d "pmbuild" ] ; then
   echo "Error: Unable to create empty pmbuild directory"
   exit 1
fi

cp mozconfig.txt pmsrc/.mozconfig
cd pmsrc/
make -f client.mk build &> /dev/stdout | tee buildlog.txt
if [ ${PIPESTATUS[0]} == 0 ]; then
   cd "../pmbuild"
#
# The "make package" command deserves its own log, too.
   make package &> /dev/stdout | tee ../pmsrc/packagelog.txt
fi
and my mozconfig.txt. Note that most of the "enable-optimize" line is specific to the CPU on my Atom netbook, and not necessarily applicable to other machines.

Code: Select all

# Please note the restrictions on official branding when using this line.
ac_add_options --enable-official-branding
export MOZILLA_OFFICIAL=1

mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser

mk_add_options MOZ_OBJDIR=$HOME/palemoon/pmbuild/

ac_add_options --disable-installer
ac_add_options --disable-updater

ac_add_options --disable-tests
ac_add_options --disable-mochitests
ac_add_options --disable-debug

ac_add_options --enable-strip
ac_add_options --disable-jemalloc
ac_add_options --enable-optimize="-O2 -march=bonnell -mfpmath=sse -pipe \
-fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables \
-mmmx -msse -msse2 -mssse3 -mmovbe -mfxsr"

ac_add_options --x-libraries=/usr/lib

ac_add_options --disable-profiling
ac_add_options --disable-gio
ac_add_options --disable-gconf
ac_add_options --disable-dbus
ac_add_options --disable-accessibility
ac_add_options --enable-webm
ac_add_options --enable-webgl
ac_add_options --disable-webrtc
ac_add_options --disable-pulseaudio
ac_add_options --disable-gstreamer
ac_add_options --enable-libjpeg-turbo
ac_add_options --disable-parental-controls
ac_add_options --disable-safe-browsing
ac_add_options --disable-url-classifier
ac_add_options --disable-b2g
ac_add_options --disable-necko-wifi
ac_add_options --enable-optimized
ac_add_options --enable-threads
ac_add_options --enable-pthreads
ac_add_options --enable-x86-optimizations
ac_add_options --disable-ipv6
ac_add_options --enable-boehm
ac_add_options --enable-xlib
ac_add_options --enable-png
ac_add_options --enable-freetype
ac_add_options --enable-svg
There's a right way
There's a wrong way
And then there's my way

User avatar
trava90
Contributing developer
Contributing developer
Posts: 1605
Joined: 2013-05-20, 18:19
Location: Earth
Contact:

Re: Step-by-step instructions for linux build?

Post by trava90 » 2015-12-11, 02:11

Walter Dnes wrote:
Moonchild wrote:Looks like the cache precompile is being iffy again. Travis, didn't we run into that before on other setups like BSD?

You can skip cache precompilation by making an edit to the packager script, which will allow you to package. Your build would otherwise be OK if it got to that stage.
See commit: https://github.com/MoonchildProductions ... b8961e6c0b
Thank you very much for your help, and everybody else who pitched in on this thread. I deleted lines 352-367 (in light red background) as per that commit, and it packaged properly. I've built+packaged it and it's up and running on my ancient Atom netbook. I'm in the process of tweaking a template default to my preferences now.
Starting with v26, you'll be able to add the following to your .mozconfig instead of having to edit the source code for any future builds you do:

Code: Select all

ac_add_options --disable-precompiled-startupcache

Locked