Step-by-step instructions for linux build?

Users and developers helping users with generic and technical Pale Moon issues on all operating systems.

Moderator: trava90

Forum rules
This board is for technical/general usage questions and troubleshooting for the Pale Moon browser only.
Technical issues and questions not related to the Pale Moon browser should be posted in other boards!
Please keep off-topic and general discussion out of this board, thank you!
Walter Dnes
Astronaut
Astronaut
Posts: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

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

Unread 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: 35620
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

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

Unread 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.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

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

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

Unread 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: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

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

Unread 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 23 times
There's a right way
There's a wrong way
And then there's my way

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

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

Unread 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: 35620
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

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

Unread 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)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
trava90
Contributing developer
Contributing developer
Posts: 1742
Joined: 2013-05-20, 18:19
Location: Somewhere in Sector 001

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

Unread 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: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

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

Unread 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: 652
Joined: 2015-07-30, 20:29
Location: Vaughan, ON, Canada

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

Unread 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: 1742
Joined: 2013-05-20, 18:19
Location: Somewhere in Sector 001

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

Unread 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