Group: IceCat/Compile and package/build 31.2.0 on Debian Wheezy 7.0
m (Change all http links to https) |
m (David Hedlund moved page Group:IceCat/Compile and package/build 31.2.0 on debian wheezy to Group:IceCat/Compile and package/build 31.2.0 on Debian Wheezy 7.0: Improved title) |
||
| (6 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
| − | {{Languages|master | + | {{Languages|master page=build_31.2.0_on_debian_wheezy_amd64|language=en}} |
| − | |||
__TOC__ | __TOC__ | ||
| − | * The information contained in this page is current as of: | + | * The information contained in this page is current as of: 4/1/2015. |
| − | * The text in this page was last modified on: | + | * The text in this page was last modified on: {{REVISIONDAY}}/{{REVISIONMONTH}}/{{REVISIONYEAR}}. |
| − | {{REVISIONDAY}}/{{REVISIONMONTH}}/{{REVISIONYEAR}}. | ||
== Introduction == | == Introduction == | ||
| − | This page contains a report, with comments and hints, on a successful | + | This page contains a report, with comments and hints, on a successful build of [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat] [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ 31.2.0] on a updated [https://www.debian.org/ Debian] [https://www.debian.org/News/2013/20130504.en.html Wheezy] <tt style="font-size:larger;">amd64</tt> (64bit) machine. |
| − | build of [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat] | ||
| − | [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ 31.2.0] on a updated | ||
| − | [https://www.debian.org/ Debian] | ||
| − | [https://www.debian.org/News/2013/20130504.en.html Wheezy] <tt | ||
| − | style="font-size:larger;">amd64</tt> (64bit) machine. | ||
| − | The procedure below might apply, eventually with some differences, also | + | The procedure below might apply, eventually with some differences, also to newer [https://www.debian.org/releases/ Debian releases] and different [https://www.debian.org/ports/ Debian ports]. |
| − | to newer [https://www.debian.org/releases/ Debian releases] and different | ||
| − | |||
== Prepare the developing environment == | == Prepare the developing environment == | ||
| Line 25: | Line 16: | ||
* '''System update''' | * '''System update''' | ||
First of all, it is highly reccomended having an updated system: | First of all, it is highly reccomended having an updated system: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ sudo apt-get update | $ sudo apt-get update | ||
$ sudo apt-get upgrade | $ sudo apt-get upgrade | ||
| Line 33: | Line 22: | ||
* '''Install common development tools''' | * '''Install common development tools''' | ||
| − | The most common development tools should be installed on your system. | + | The most common development tools should be installed on your system. Please install (this is required only once): |
| − | Please install (this is required only once): | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ sudo apt-get install gcc g++ make patch zip unzip | $ sudo apt-get install gcc g++ make patch zip unzip | ||
| − | $ sudo apt-get install autoconf automake build-essential checkinstall | + | $ sudo apt-get install autoconf automake build-essential checkinstall debhelper devscripts dpkg-dev fakeroot gdb-minimal libc6-dev libtool intltool pbuilder pkg-config |
| − | debhelper devscripts dpkg-dev fakeroot gdb-minimal libc6-dev libtool | ||
| − | intltool pbuilder pkg-config | ||
</pre> | </pre> | ||
| − | * '''Install and configure <tt | + | * '''Install and configure <tt style="font-size:larger;">ccache</tt> ''(optional)''''' |
| − | style="font-size:larger;">ccache</tt> ''(optional)''''' | + | If you want to use <tt style="font-size:larger;">ccache</tt> during the build process (see below), please install and configure it (this is required only once): |
| − | If you want to use <tt style="font-size:larger;">ccache</tt> | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | |||
| − | (this is required only once): | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ sudo apt-get install ccache | $ sudo apt-get install ccache | ||
$ mkdir <ccache_basepath>/ccache | $ mkdir <ccache_basepath>/ccache | ||
| Line 59: | Line 38: | ||
</pre> | </pre> | ||
where: | where: | ||
| − | : <tt | + | : <tt style="font-size:larger;"><ccache_basepath></tt>: is the full path of a directory you should choose as base where storing <tt style="font-size:larger;">cccache</tt> files |
| − | style="font-size:larger;"><ccache_basepath></tt>: is the | + | : <tt style="font-size:larger;"><N></tt>: is the maximum size (in GB) of the cache |
| − | full path of a directory you should choose as base where storing <tt | ||
| − | style="font-size:larger;">cccache</tt> files | ||
| − | : <tt style="font-size:larger;"><N></tt>: is the | ||
| − | maximum size (in GB) of the cache | ||
| − | == Prepare requested libraries and dependencies == | + | == Prepare the requested libraries and dependencies == |
| − | To successfully build [https://www.gnu.org/software/gnuzilla/ IceCat] you | + | To successfully build [https://www.gnu.org/software/gnuzilla/ IceCat] you need some libraries to be installed and some dependencies to be satisfied. Please install (this is required only once): |
| − | |||
| − | satisfied. Please install (this is required only once): | ||
* '''Linux environment files''' | * '''Linux environment files''' | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | + | $ sudo apt-get install zip mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev libidl-dev mesa-common-dev autoconf2.13 yasm libgtk2.0-dev libdbus-1-dev libdbus-glib-1-dev python-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libpulse-dev |
| − | |||
| − | $ sudo apt-get install zip mercurial libasound2-dev libcurl4-openssl-dev | ||
| − | |||
| − | autoconf2.13 yasm libgtk2.0-dev libdbus-1-dev libdbus-glib-1-dev | ||
| − | python-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev | ||
| − | libpulse-dev | ||
</pre> | </pre> | ||
| − | ''(see: | + | ''(see: [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Linux_Prerequisites/ Linux_Prerequisites] at the [https://developer.mozilla.org/en-US/ Mozilla Developer Network])'' |
| − | [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Linux_Prerequisites/ | ||
| − | |||
| − | Mozilla Developer Network])'' | ||
* '''Default IceCat libraries''' | * '''Default IceCat libraries''' | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | + | $ sudo apt-get install libpango libpangoxft libpangoft2 libfreetype libxft libgtk2 libx11 |
| − | |||
| − | $ sudo apt-get install libpango libpangoxft libpangoft2 libfreetype | ||
| − | libxft libgtk2 libx11 | ||
</pre> | </pre> | ||
| − | ''(see: 'README.IceCat' file contained in the | + | ''(see: 'README.IceCat' file contained in the [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz IceCat 31.2.0 sources])'' |
| − | [ | ||
| − | 31.2.0 sources])'' | ||
* '''Other suggested libraries and dependencies''' | * '''Other suggested libraries and dependencies''' | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | + | $ sudo apt-get install libxml2-dev libglib2.0-dev libevent-dev libiw-dev libglu1-mesa-dev xulrunner-dev python python-virtualenv python-pip |
| − | |||
| − | $ sudo apt-get install libxml2-dev libglib2.0-dev libevent-dev libiw-dev | ||
| − | |||
$ sudo apt-get install build-dep iceweasel | $ sudo apt-get install build-dep iceweasel | ||
</pre> | </pre> | ||
| Line 109: | Line 65: | ||
== Prepare the building environment == | == Prepare the building environment == | ||
| − | '''IMPORTANT NOTE''': Every time the build process fails, it is highly | + | '''IMPORTANT NOTE''': Every time the build process fails, it is highly recommended to '''repeat all the entire process''', starting again '''from a completely clean building environment''' (see here below): cleaned and cleared ccache, empty <tt style="font-size:larger;">src</tt> and <tt style="font-size:larger;">obj</tt> directories etc. A system reboot is also suggested. |
| − | recommended to '''repeat all the entire process''', starting again | ||
| − | '''from a completely clean building environment''' (see here below): | ||
| − | cleaned and cleared ccache, empty <tt | ||
| − | style="font-size:larger;">src</tt> and <tt | ||
| − | style="font-size:larger;">obj</tt> directories etc. A system | ||
| − | reboot is also suggested. | ||
| − | The building environment should be set up before to start the building | + | The building environment should be set up before to start the building process. Please do the following: |
| − | process. Please do the following: | ||
| − | * '''Clean and check <tt | + | * '''Clean and check <tt style="font-size:larger;">ccache</tt>''' |
| − | style="font-size:larger;">ccache</tt>''' | + | If <tt style="font-size:larger;">ccache</tt> is in use, it should be clear and clean: |
| − | If <tt style="font-size:larger;">ccache</tt> is in use, it | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | should be clear and clean: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ ccache --clear --cleanup | $ ccache --clear --cleanup | ||
$ ccache -s | $ ccache -s | ||
| Line 133: | Line 78: | ||
* '''Set the building base directory''' | * '''Set the building base directory''' | ||
You should have a directory to use as base for all the building process: | You should have a directory to use as base for all the building process: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ cd <build_basepath> | $ cd <build_basepath> | ||
$ mkdir icecat-31.2.0 | $ mkdir icecat-31.2.0 | ||
| Line 141: | Line 84: | ||
</pre> | </pre> | ||
where: | where: | ||
| − | : <tt style="font-size:larger;"><build_basepath></tt>: | + | : <tt style="font-size:larger;"><build_basepath></tt>: is the path of a directory you should choose as base for all the building process |
| − | + | : <tt style="font-size:larger;">icecat-31.2.0</tt>: is the sub-directory of <build_basepath> where to work | |
| − | building process | ||
| − | : <tt style="font-size:larger;">icecat-31.2.0</tt>: is the | ||
| − | sub-directory of <build_basepath> where to work | ||
* '''Download the sources''' | * '''Download the sources''' | ||
| − | To download the sources into the <tt | + | To download the sources into the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0</tt> directory, please run: |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0</tt> | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | + | $ curl -O -J -L 'https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz' | |
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | $ curl -O -J -L 'https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz.sig' |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
| − | $ curl -O -J -L | ||
| − | 'https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz' | ||
| − | $ curl -O -J -L | ||
| − | 'https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz.sig' | ||
</pre> | </pre> | ||
* '''Verify the downloaded sources''' | * '''Verify the downloaded sources''' | ||
| − | The [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat] releases are | + | The [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat] releases are signed with a gpg key. The new gpg key has ID:<tt style="font-size:larger;">D7E04784</tt>. |
| − | |||
| − | style="font-size:larger;">D7E04784</tt>. | ||
Please download the key and check its fingerprint: | Please download the key and check its fingerprint: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ gpg --keyserver keys.gnupg.net --recv-keys D7E04784 | $ gpg --keyserver keys.gnupg.net --recv-keys D7E04784 | ||
$ gpg --fingerprint D7E04784 | $ gpg --fingerprint D7E04784 | ||
</pre> | </pre> | ||
| − | The fingerprint of the gpg key used to sing the | + | The fingerprint of the gpg key used to sing the [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat] releases should be: |
| − | [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat] releases should | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | be: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
A573 69A8 BABC 2542 B5A0 368C 3C76 EED7 D7E0 4784 | A573 69A8 BABC 2542 B5A0 368C 3C76 EED7 D7E0 4784 | ||
</pre> | </pre> | ||
Then verify the downloaded sources: | Then verify the downloaded sources: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ gpg --verify icecat-31.2.0.tar.xz.sig | $ gpg --verify icecat-31.2.0.tar.xz.sig | ||
</pre> | </pre> | ||
* '''Prepare the sources''' | * '''Prepare the sources''' | ||
| − | To prepare the sources tree in the <tt | + | To prepare the sources tree in the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/src</tt> directory, please run: |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/src</tt> | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | |||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ tar -Jxvf icecat-31.2.0.tar.xz | $ tar -Jxvf icecat-31.2.0.tar.xz | ||
$ mv icecat-31.2.0 src | $ mv icecat-31.2.0 src | ||
| Line 203: | Line 123: | ||
Configuration of the build process could be obtained through: | Configuration of the build process could be obtained through: | ||
; configuration parameters | ; configuration parameters | ||
| − | : which can be passed to the command script <tt | + | : which can be passed to the command script <tt style="font-size:larger;">configure</tt> as command-line parameters (discouraged) or, better, through a configuration file named <tt style="font-size:larger;">src/.mozconfig</tt> (or <tt style="font-size:larger">src/mozconfig</tt>) which should be created into the source directory (reccomended) |
| − | style="font-size:larger;">configure</tt> as command-line | ||
| − | parameters or, better, through a configuration file named <tt | ||
| − | style="font-size:larger;">src/.mozconfig</tt> (or <tt | ||
| − | style="font-size: | ||
| − | into the source directory | ||
; configuration variables | ; configuration variables | ||
| − | : which can be set via the <tt | + | : which can be set via the <tt style="font-size:larger;">src/browser/confvars.sh</tt> file |
| − | style="font-size:larger;">src/browser/confvars.sh</tt> file | ||
| − | The configuration parameters are used by the command script <tt | + | The configuration parameters are used by the command script <tt style="font-size:larger;">configure</tt> to set the corresponding configuration variables. |
| − | style="font-size:larger;">configure</tt> to set the | ||
| − | corresponding configuration variables. | ||
| − | Please note that *not* all the configuration variables can be set | + | Please note that *not* all the configuration variables can be set through the command script <tt style="font-size:larger;">configure</tt>: these variables can be set only directly in the <tt style="font-size:larger;">src/browser/confvars.sh</tt> file. |
| − | through the command script <tt | ||
| − | style="font-size:larger;">configure</tt>: these variables can | ||
| − | be set only directly in the <tt | ||
| − | style="font-size:larger;">src/browser/confvars.sh</tt> file. | ||
| − | ==== Set the configuration parameters (file: <tt | + | ==== Set the configuration parameters (file: <tt style="font-size:larger;">src/mozconfig</tt>) ==== |
| − | style="font-size:larger;">src/mozconfig</tt>) ==== | ||
| − | The | + | The reccomended way to set any of the '''''configuration parameters''''' is through a configuration file <tt style="font-size:larger;">src/.mozconfig</tt> (or <tt style="font-size:larger;">src/mozconfig</tt>) which should be created into the source directory. Calling <tt style="font-size:larger;">configure</tt> with command-line options is discouraged. |
| − | through a configuration file <tt | ||
| − | style="font-size:larger;">src/.mozconfig</tt> (or <tt | ||
| − | style="font-size:larger;">src/mozconfig</tt>) | ||
| − | into the source directory. | ||
A complete list of the available parameters can be obtained running: | A complete list of the available parameters can be obtained running: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ ./src/configure --help | $ ./src/configure --help | ||
</pre> | </pre> | ||
| − | Here below is listed the content of the <tt | + | Here below is listed the content of the <tt style="font-size:larger;">src/mozconfig</tt> file which '''is needed''' building [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ IceCat 31.2.0] as shown below. |
| − | style="font-size:larger;">src/mozconfig</tt> which is | ||
| − | |||
| − | 31.2.0]. | ||
| − | Use your favourite text editor to create and modify it if necessary. | + | Use your favourite text editor to create this <tt style="font-size:larger;">src/mozconfig</tt> file and modify it if necessary. |
Please note that: | Please note that: | ||
| − | * this file has been tested since has been successfully used building | + | * this file has been tested since it has been successfully used building [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ IceCat 31.2.0] on a updated [https://www.debian.org/ Debian] [https://www.debian.org/News/2013/20130504.en.html Wheezy] <tt style="font-size:larger;">amd64</tt> (64bit) machine |
| − | [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ IceCat 31.2.0] | + | * '''before to start the build process is *highly reccomended* to check carefully all the content of this file''', in order to comment/uncomment the options accordingly with your system and your preferences |
| − | * '''before to start the build process is *highly reccomended* to check | ||
| − | carefully all the content of this file''', in order to comment/uncomment | ||
| − | |||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
### | ### | ||
### - icecat mozconfig file - debian wheezy amd64 | ### - icecat mozconfig file - debian wheezy amd64 | ||
### | ### | ||
| − | ### - the following two are from: 'build/mozconfig.common' (should not | + | ### - the following two are from: 'build/mozconfig.common' (should not be changed) |
| − | be changed) | ||
### - WARNING: THE FOLLOWING TWO SHOULD NOT BE CHANGED | ### - WARNING: THE FOLLOWING TWO SHOULD NOT BE CHANGED | ||
| Line 283: | Line 175: | ||
### - ccache (comment out if you do not use ccache!!!) | ### - ccache (comment out if you do not use ccache!!!) | ||
| − | ### - WARNING: THE FOLLOWING ONE SHOULD BE COMMENT OUT IF NOT USING | + | ### - WARNING: THE FOLLOWING ONE SHOULD BE COMMENT OUT IF NOT USING CCACHE |
| − | CCACHE | ||
# build using ccache | # build using ccache | ||
| Line 319: | Line 210: | ||
ac_add_options --enable-default-toolkit=cairo-gtk2 | ac_add_options --enable-default-toolkit=cairo-gtk2 | ||
| − | # disable unwanted options | + | # disable unwanted options (not necessary and/or privacy related stuff) |
ac_add_options --disable-debug | ac_add_options --disable-debug | ||
ac_add_options --disable-debug-symbols | ac_add_options --disable-debug-symbols | ||
| Line 348: | Line 239: | ||
### - to be tested (uncomment the options you want to use) | ### - to be tested (uncomment the options you want to use) | ||
| − | ### - WARNING: THE FOLLOWING NOT TESTED!!! USE WITH CARE: THE BUILD | + | ### - WARNING: THE FOLLOWING NOT TESTED!!! USE WITH CARE: THE BUILD MIGHT FAIL!!! |
| − | MIGHT FAIL!!! | ||
# ac_add_options --with-system-zlib | # ac_add_options --with-system-zlib | ||
| Line 364: | Line 254: | ||
| − | ### - DO NOT WORK WITH DEBIAN WHEEZY (should not be changed) - Maybe | + | ### - DO NOT WORK WITH DEBIAN WHEEZY (should not be changed) - Maybe they work with newer Debian releases |
| − | they work with newer Debian releases | + | ### - WARNING: AVOID USING THE FOLLOWING WITH DEBIAN WHEEZY!!! THE BUILD WILL PROBABLY FAIL!!! |
| − | ### - WARNING: AVOID USING THE FOLLOWING WITH DEBIAN WHEEZY!!! THE BUILD | ||
| − | |||
| − | # NSPR too old | + | # error: NSPR too old |
# ac_add_options --with-system-nspr | # ac_add_options --with-system-nspr | ||
| − | # system's libpng doesn't have APNG support | + | # error: system's libpng doesn't have APNG support |
# ac_add_options --with-system-png | # ac_add_options --with-system-png | ||
| − | # SQLITE too old (should be sqlite3 >= 3.8.4.2) | + | # error: SQLITE too old (should be sqlite3 >= 3.8.4.2) |
# ac_add_options --enable-system-sqlite | # ac_add_options --enable-system-sqlite | ||
| Line 382: | Line 270: | ||
# ac_add_options --disable-libjpeg_turbo | # ac_add_options --disable-libjpeg_turbo | ||
| − | # error NSS wrong version (should be >= 3.16.2.2) | + | # error: NSS wrong version (should be >= 3.16.2.2) |
# ac_add_options --with-system-nss | # ac_add_options --with-system-nss | ||
</pre> | </pre> | ||
| − | ==== Set the configuration variables (file: <tt | + | ==== Set the configuration variables (file: <tt style="font-size:larger;">src/browser/confvars.sh</tt>) ==== |
| − | style="font-size:larger;">src/browser/confvars.sh</tt>) ==== | ||
| − | + | Some configuration variables can only be set directly, editing the <tt style="font-size:larger;">src/browser/confvars.sh</tt> file provided with the sources. | |
| − | |||
| − | |||
| − | style="font-size:larger;">src/browser/confvars.sh</tt> file. | ||
| − | Use your favourite text editor to modify | + | Use your favourite text editor to modify the <tt style="font-size:larger;">src/browser/confvars.sh</tt> file if necessary. |
Please note that: | Please note that: | ||
| − | * a very deep knowledge and comprehension of the source code is needed | + | * a very deep knowledge and comprehension of the source code and the build process is needed to safely modify this file |
| − | to safely modify this file | ||
* the documentation about these variables is often poor and/or unclear | * the documentation about these variables is often poor and/or unclear | ||
| − | * '''is *highly reccomended* to avoid changes in this file if | + | * '''is *highly reccomended* to avoid changes in this file if unnecessary''' |
| − | unnecessary''' | ||
| − | Here below are listed some variables which can be safely add at the | + | Here below are listed some variables settings which can be safely add (trying to increase privacy) at the bottom of the <tt style="font-size:larger;">src/browser/confvars.sh</tt> file, being tested to produce a successful build of [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ IceCat 31.2.0] on a updated [https://www.debian.org/ Debian] [https://www.debian.org/News/2013/20130504.en.html Wheezy] <tt style="font-size:larger;">amd64</tt> (64bit) machine: |
| − | bottom of the <tt | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | style="font-size:larger;">src/browser/confvars.sh</tt> file, | + | # |
| − | being tested to produce a successful build of | + | # ## src/browser/confvars.sh CUSTOM SETTINGS (HOPING TO INCREASE PRIVACY) |
| − | [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/ IceCat 31.2.0]: | + | # |
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
| − | |||
| − | # ## src/browser/confvars.sh CUSTOM SETTINGS | ||
| − | |||
# ## ADD THIS AT THE BOTTOM OF 'src/browser/confvars.sh' | # ## ADD THIS AT THE BOTTOM OF 'src/browser/confvars.sh' | ||
| − | + | # | |
MOZ_SERVICES_METRICS= | MOZ_SERVICES_METRICS= | ||
| − | |||
MOZ_SOCIAL= | MOZ_SOCIAL= | ||
MOZ_DATA_REPORTING= | MOZ_DATA_REPORTING= | ||
| Line 427: | Line 302: | ||
== Build IceCat 31.2.0 == | == Build IceCat 31.2.0 == | ||
| − | Building the binaries means run <tt | + | Building the binaries means run <tt style="font-size:larger;">configure</tt> and <tt style="font-size:larger;">make</tt>. It 'a heavy task, requiring significant system resources and can last for a very long time. On a machine with 64bit CPU 4-core 3.8GHz and 8GB RAM, it takes about 40-45 minutes. |
| − | style="font-size:larger;">configure</tt> and <tt | ||
| − | style="font-size:larger;">make</tt>. It 'a heavy task, | ||
| − | requiring significant system resources and can last for a very long | ||
| − | time. On a machine with 64bit CPU 4-core 3.8GHz and 8GB RAM, it takes | ||
| − | about 40-45 minutes. | ||
| − | * '''Prepare the directory <tt | + | * '''Prepare the directory <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> where to build''' |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> | + | The build will take place in a separate so-called <tt style="font-size:larger;">objdir</tt> sub-directory (whose path has been previously set in the <tt style="font-size:larger;">src/mozconfig</tt> file), in order to leave clean the sources tree.: |
| − | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> | |
| − | The build will take place in a separate so-called <tt | ||
| − | style="font-size:larger;">objdir</tt> sub-directory (whose path | ||
| − | |||
| − | style="font-size:larger;">src/mozconfig</tt> file), in order to | ||
| − | |||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ mkdir obj | $ mkdir obj | ||
$ cd obj | $ cd obj | ||
| Line 450: | Line 312: | ||
* '''Run <tt style="font-size:larger;">configure</tt>''' | * '''Run <tt style="font-size:larger;">configure</tt>''' | ||
| − | Staying in the <tt | + | Staying in the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> directory, please run: |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | |||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ ../src/configure | $ ../src/configure | ||
</pre> | </pre> | ||
| − | or, if you want to capture and save the output of the command to the | + | or, if you want to capture and save the output of the command to the terminal: |
| − | terminal: | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ ../src/configure 2>&1 | tee config.txtout | $ ../src/configure 2>&1 | tee config.txtout | ||
</pre> | </pre> | ||
| − | The command script log will be in the <tt | + | The command script log will be in the <tt style="font-size:larger;">config.log</tt> file. |
| − | style="font-size:larger;">config.log</tt> file. | ||
| − | The command script output to the terminal will be (if saved as above | + | The command script output to the terminal will be (if saved as above using <tt style="font-size:larger;">tee</tt>) in the <tt style="font-size:larger;">config.txtfile</tt> file. |
| − | using <tt style="font-size:larger;">tee</tt>) in the <tt | ||
| − | style="font-size:larger;">config.txtfile</tt> file. | ||
* '''Run <tt style="font-size:larger;">make</tt>''' | * '''Run <tt style="font-size:larger;">make</tt>''' | ||
| − | Staying in the <tt | + | Staying in the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> directory, please run: |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | + | $ make -j<N> -f ../src/client.mk | |
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
| − | $ make -j<N> -f ../src/client.mk | ||
</pre> | </pre> | ||
| − | or, if you want to capture and save the output of the command to the | + | or, if you want to capture and save the output of the command to the terminal: |
| − | terminal: | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ make -j<N> -f ../src/client.mk 2>&1 | tee make.txtout | $ make -j<N> -f ../src/client.mk 2>&1 | tee make.txtout | ||
</pre> | </pre> | ||
where: | where: | ||
| − | : <tt style="font-size:larger;"><N></tt>: is the | + | : <tt style="font-size:larger;"><N></tt>: is the number of the CPU cores/threads you want to be used during the compilation |
| − | number of the CPU cores/threads you want to be used during the | ||
| − | compilation | ||
| − | The command script output to the terminal will be (if saved as above | + | The command script output to the terminal will be (if saved as above using <tt style="font-size:larger;">tee</tt>) in the <tt style="font-size:larger;">make.txtfile</tt> file. |
| − | using <tt style="font-size:larger;">tee</tt>) in the <tt | ||
| − | style="font-size:larger;">make.txtfile</tt> file. | ||
* '''Langpack ''(optional)''''' | * '''Langpack ''(optional)''''' | ||
| − | You can simply download the pre-built | + | You can simply download the pre-built [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/langpacks/ langpacks for IceCat 31.2.0] you need. |
| − | [https://ftp.gnu.org/gnu/gnuzilla/31.2.0/langpacks/ langpacks for IceCat | ||
| − | 31.2.0] you need. | ||
Otherwise, if you prefer to build yourself a langpack, please run: | Otherwise, if you prefer to build yourself a langpack, please run: | ||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ cd browser/locales | $ cd browser/locales | ||
$ make langpack-$LANG LOCALE_MERGEDIR=. | $ make langpack-$LANG LOCALE_MERGEDIR=. | ||
| Line 515: | Line 352: | ||
</pre> | </pre> | ||
where: | where: | ||
| − | : <tt style="font-size:larger;">$LANG</tt>: is the locale of | + | : <tt style="font-size:larger;">$LANG</tt>: is the locale of the langpack to build |
| − | |||
== Installation == | == Installation == | ||
| − | After the building process has been successfully completed, you might | + | After the building process has been successfully completed, you might want to install [https://www.gnu.org/software/gnuzilla/ IceCat] on your system. |
| − | want to install [https://www.gnu.org/software/gnuzilla/ IceCat] on your | ||
| − | system. | ||
==== Standalone installation ==== | ==== Standalone installation ==== | ||
| − | To install the binaries as a "standalone" program, staying in the <tt | + | To install the binaries as a "standalone" program, staying in the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> directory, please run: |
| − | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> | |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> | ||
| − | |||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ make install DESTDIR=<build_basepath>/icecat-31.2.0/bin | $ make install DESTDIR=<build_basepath>/icecat-31.2.0/bin | ||
</pre> | </pre> | ||
where: | where: | ||
| − | : <tt style="font-size:larger;"><build_basepath></tt>: | + | : <tt style="font-size:larger;"><build_basepath></tt>: is the path of a directory you should choose as base for all the building process (please, now use a *full* path here) |
| − | |||
| − | building process (please, now use a *full* path here) | ||
| − | The "standalone" binaries will be generated into the <tt | + | The "standalone" binaries will be generated into the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/bin/usr/lib/icecat-31.2.0</tt> directory. |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/bin/usr/lib/icecat-31.2.0</tt> | ||
| − | |||
| − | To install just copy the directory with the "standalone" binaries in an | + | To install just copy the directory with the "standalone" binaries in an appropriate place to be used in your system. A common suggested place is <tt style="font-size:larger;">/opt/icecat</tt>. |
| − | appropriate place to be used in your system. A common suggested place is | ||
| − | |||
==== Tarball package creation ==== | ==== Tarball package creation ==== | ||
| − | To create a binary tarball, staying in the <tt | + | To create a binary tarball, staying in the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> directory, please run: |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj</tt> | + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; font-size:larger;"> |
| − | |||
| − | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; | ||
| − | white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; | ||
| − | |||
$ cd browser/installer | $ cd browser/installer | ||
$ make | $ make | ||
| Line 561: | Line 380: | ||
</pre> | </pre> | ||
| − | The tarball package will be generated into the <tt | + | The tarball package will be generated into the <tt style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj/dist</tt> directory. |
| − | style="font-size:larger;"><build_basepath>/icecat-31.2.0/obj/dist</tt> | ||
| − | |||
| − | |||
| − | Enjoy [ | + | Enjoy [https://www.gnu.org/software/gnuzilla/ Gnuzilla IceCat]! |
---- | ---- | ||
''[ Document edited by: [[User:Alexus|alexus]] ]'' | ''[ Document edited by: [[User:Alexus|alexus]] ]'' | ||
Latest revision as of 15:43, 27 February 2018
Contents
- The information contained in this page is current as of: 4/1/2015.
- The text in this page was last modified on: 27/02/2018.
Introduction
This page contains a report, with comments and hints, on a successful build of Gnuzilla IceCat 31.2.0 on a updated Debian Wheezy amd64 (64bit) machine.
The procedure below might apply, eventually with some differences, also to newer Debian releases and different Debian ports.
Prepare the developing environment
- System update
First of all, it is highly reccomended having an updated system:
$ sudo apt-get update $ sudo apt-get upgrade
- Install common development tools
The most common development tools should be installed on your system. Please install (this is required only once):
$ sudo apt-get install gcc g++ make patch zip unzip $ sudo apt-get install autoconf automake build-essential checkinstall debhelper devscripts dpkg-dev fakeroot gdb-minimal libc6-dev libtool intltool pbuilder pkg-config
- Install and configure ccache (optional)
If you want to use ccache during the build process (see below), please install and configure it (this is required only once):
$ sudo apt-get install ccache $ mkdir <ccache_basepath>/ccache $ export CCACHE_DIR=<ccache_basepath>/ccache $ ccache --max-size <N>G $ export CCACHE_COMPRESS=""
where:
- <ccache_basepath>: is the full path of a directory you should choose as base where storing cccache files
- <N>: is the maximum size (in GB) of the cache
Prepare the requested libraries and dependencies
To successfully build IceCat you need some libraries to be installed and some dependencies to be satisfied. Please install (this is required only once):
- Linux environment files
$ sudo apt-get install zip mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libxt-dev libiw-dev libidl-dev mesa-common-dev autoconf2.13 yasm libgtk2.0-dev libdbus-1-dev libdbus-glib-1-dev python-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libpulse-dev
(see: Linux_Prerequisites at the Mozilla Developer Network)
- Default IceCat libraries
$ sudo apt-get install libpango libpangoxft libpangoft2 libfreetype libxft libgtk2 libx11
(see: 'README.IceCat' file contained in the IceCat 31.2.0 sources)
- Other suggested libraries and dependencies
$ sudo apt-get install libxml2-dev libglib2.0-dev libevent-dev libiw-dev libglu1-mesa-dev xulrunner-dev python python-virtualenv python-pip $ sudo apt-get install build-dep iceweasel
Prepare the building environment
IMPORTANT NOTE: Every time the build process fails, it is highly recommended to repeat all the entire process, starting again from a completely clean building environment (see here below): cleaned and cleared ccache, empty src and obj directories etc. A system reboot is also suggested.
The building environment should be set up before to start the building process. Please do the following:
- Clean and check ccache
If ccache is in use, it should be clear and clean:
$ ccache --clear --cleanup $ ccache -s
- Set the building base directory
You should have a directory to use as base for all the building process:
$ cd <build_basepath> $ mkdir icecat-31.2.0 $ cd icecat-31.2.0
where:
- <build_basepath>: is the path of a directory you should choose as base for all the building process
- icecat-31.2.0: is the sub-directory of <build_basepath> where to work
- Download the sources
To download the sources into the <build_basepath>/icecat-31.2.0 directory, please run:
$ curl -O -J -L 'https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz' $ curl -O -J -L 'https://ftp.gnu.org/gnu/gnuzilla/31.2.0/icecat-31.2.0.tar.xz.sig'
- Verify the downloaded sources
The Gnuzilla IceCat releases are signed with a gpg key. The new gpg key has ID:D7E04784. Please download the key and check its fingerprint:
$ gpg --keyserver keys.gnupg.net --recv-keys D7E04784 $ gpg --fingerprint D7E04784
The fingerprint of the gpg key used to sing the Gnuzilla IceCat releases should be:
A573 69A8 BABC 2542 B5A0 368C 3C76 EED7 D7E0 4784
Then verify the downloaded sources:
$ gpg --verify icecat-31.2.0.tar.xz.sig
- Prepare the sources
To prepare the sources tree in the <build_basepath>/icecat-31.2.0/src directory, please run:
$ tar -Jxvf icecat-31.2.0.tar.xz $ mv icecat-31.2.0 src
Configure the build
Configuration of the build process could be obtained through:
- configuration parameters
- which can be passed to the command script configure as command-line parameters (discouraged) or, better, through a configuration file named src/.mozconfig (or src/mozconfig) which should be created into the source directory (reccomended)
- configuration variables
- which can be set via the src/browser/confvars.sh file
The configuration parameters are used by the command script configure to set the corresponding configuration variables.
Please note that *not* all the configuration variables can be set through the command script configure: these variables can be set only directly in the src/browser/confvars.sh file.
Set the configuration parameters (file: src/mozconfig)
The reccomended way to set any of the configuration parameters is through a configuration file src/.mozconfig (or src/mozconfig) which should be created into the source directory. Calling configure with command-line options is discouraged.
A complete list of the available parameters can be obtained running:
$ ./src/configure --help
Here below is listed the content of the src/mozconfig file which is needed building IceCat 31.2.0 as shown below.
Use your favourite text editor to create this src/mozconfig file and modify it if necessary.
Please note that:
- this file has been tested since it has been successfully used building IceCat 31.2.0 on a updated Debian Wheezy amd64 (64bit) machine
- before to start the build process is *highly reccomended* to check carefully all the content of this file, in order to comment/uncomment the options accordingly with your system and your preferences
### ### - icecat mozconfig file - debian wheezy amd64 ### ### - the following two are from: 'build/mozconfig.common' (should not be changed) ### - WARNING: THE FOLLOWING TWO SHOULD NOT BE CHANGED mk_add_options AUTOCLOBBER=1 ac_add_options --enable-release ### - app & paths (should not be changed) ### - WARNING: THE FOLLOWING SHOULD NOT BE CHANGED # application to build ac_add_options --enable-application=browser # path: sources for locales ac_add_options --with-l10n-base=$topsrcdir/l10n # build using an objdir (to keep sources clean) mk_add_options MOZ_OBJDIR=$topsrcdir/../obj # path: system install dir ac_add_options --prefix=/usr ### - ccache (comment out if you do not use ccache!!!) ### - WARNING: THE FOLLOWING ONE SHOULD BE COMMENT OUT IF NOT USING CCACHE # build using ccache ac_add_options --with-ccache ### - building... (should not be changed) ### - WARNING: THE FOLLOWING SHOULD NOT BE CHANGED # build with optimization ac_add_options --enable-optimize="-pipe -O3" # elf-hack ac_add_options --enable-elf-hack # avoid dependency on libstdc++ 4.7 ac_add_options --enable-stdcxx-compat # stripping ac_add_options --enable-strip ac_add_options --enable-install-strip ### - app options (should not be changed) ### - WARNING: THE FOLLOWING SHOULD NOT BE CHANGED # branding ac_add_options --enable-official-branding ac_add_options --with-distribution-id=org.gnu # enable wanted options ac_add_options --enable-safe-browsing ac_add_options --enable-gio ac_add_options --disable-gnomevfs ac_add_options --enable-gstreamer=0.10 ac_add_options --enable-default-toolkit=cairo-gtk2 # disable unwanted options (not necessary and/or privacy related stuff) ac_add_options --disable-debug ac_add_options --disable-debug-symbols ac_add_options --disable-tests ac_add_options --disable-crashreporter ac_add_options --disable-updater ac_add_options --disable-update-channel ac_add_options --disable-update-packaging ac_add_options --disable-maintenance-service ac_add_options --disable-parental-controls ac_add_options --disable-webapp-runtime ac_add_options --disable-necko-wifi ### - other recommended options (comment out what you do not want/need) # webm (VP8 video and Vorbis audio) support # WARNING: VP8 and Vorbis must be installed in your system! ac_add_options --enable-webm # use alsa instead of pulseaudio # WARNING: Alsa must be installed in your system! # WARNING: comment/uncomment TOGETHER the following two ac_add_options --enable-alsa ac_add_options --disable-pulseaudio # wave support ac_add_options --enable-wave ### - to be tested (uncomment the options you want to use) ### - WARNING: THE FOLLOWING NOT TESTED!!! USE WITH CARE: THE BUILD MIGHT FAIL!!! # ac_add_options --with-system-zlib # ac_add_options --with-system-bz2 # ac_add_options --enable-system-hunspell # ac_add_options --with-system-libxul # ac_add_options --with-system-libvpx # ac_add_options --enable-system-pixmap # ac_add_options --enable-canvas # ac_add_options --enable-raw # ac_add_options --enable-xinerama ### - DO NOT WORK WITH DEBIAN WHEEZY (should not be changed) - Maybe they work with newer Debian releases ### - WARNING: AVOID USING THE FOLLOWING WITH DEBIAN WHEEZY!!! THE BUILD WILL PROBABLY FAIL!!! # error: NSPR too old # ac_add_options --with-system-nspr # error: system's libpng doesn't have APNG support # ac_add_options --with-system-png # error: SQLITE too old (should be sqlite3 >= 3.8.4.2) # ac_add_options --enable-system-sqlite # error: Insufficient JPEG library version for --with-system-jpeg # ac_add_options --with-system-jpeg # ac_add_options --disable-libjpeg_turbo # error: NSS wrong version (should be >= 3.16.2.2) # ac_add_options --with-system-nss
Set the configuration variables (file: src/browser/confvars.sh)
Some configuration variables can only be set directly, editing the src/browser/confvars.sh file provided with the sources.
Use your favourite text editor to modify the src/browser/confvars.sh file if necessary.
Please note that:
- a very deep knowledge and comprehension of the source code and the build process is needed to safely modify this file
- the documentation about these variables is often poor and/or unclear
- is *highly reccomended* to avoid changes in this file if unnecessary
Here below are listed some variables settings which can be safely add (trying to increase privacy) at the bottom of the src/browser/confvars.sh file, being tested to produce a successful build of IceCat 31.2.0 on a updated Debian Wheezy amd64 (64bit) machine:
# # ## src/browser/confvars.sh CUSTOM SETTINGS (HOPING TO INCREASE PRIVACY) # # ## ADD THIS AT THE BOTTOM OF 'src/browser/confvars.sh' # MOZ_SERVICES_METRICS= MOZ_SOCIAL= MOZ_DATA_REPORTING= MOZ_TELEMETRY_REPORTING= MOZ_SERVICES_HEALTHREPORT= MOZ_CRASHREPORTER=
Build IceCat 31.2.0
Building the binaries means run configure and make. It 'a heavy task, requiring significant system resources and can last for a very long time. On a machine with 64bit CPU 4-core 3.8GHz and 8GB RAM, it takes about 40-45 minutes.
- Prepare the directory <build_basepath>/icecat-31.2.0/obj where to build
The build will take place in a separate so-called objdir sub-directory (whose path has been previously set in the src/mozconfig file), in order to leave clean the sources tree.:
$ mkdir obj $ cd obj
- Run configure
Staying in the <build_basepath>/icecat-31.2.0/obj directory, please run:
$ ../src/configure
or, if you want to capture and save the output of the command to the terminal:
$ ../src/configure 2>&1 | tee config.txtout
The command script log will be in the config.log file.
The command script output to the terminal will be (if saved as above using tee) in the config.txtfile file.
- Run make
Staying in the <build_basepath>/icecat-31.2.0/obj directory, please run:
$ make -j<N> -f ../src/client.mk
or, if you want to capture and save the output of the command to the terminal:
$ make -j<N> -f ../src/client.mk 2>&1 | tee make.txtout
where:
- <N>: is the number of the CPU cores/threads you want to be used during the compilation
The command script output to the terminal will be (if saved as above using tee) in the make.txtfile file.
- Langpack (optional)
You can simply download the pre-built langpacks for IceCat 31.2.0 you need.
Otherwise, if you prefer to build yourself a langpack, please run:
$ cd browser/locales $ make langpack-$LANG LOCALE_MERGEDIR=. $ cd ../..
where:
- $LANG: is the locale of the langpack to build
Installation
After the building process has been successfully completed, you might want to install IceCat on your system.
Standalone installation
To install the binaries as a "standalone" program, staying in the <build_basepath>/icecat-31.2.0/obj directory, please run:
$ make install DESTDIR=<build_basepath>/icecat-31.2.0/bin
where:
- <build_basepath>: is the path of a directory you should choose as base for all the building process (please, now use a *full* path here)
The "standalone" binaries will be generated into the <build_basepath>/icecat-31.2.0/bin/usr/lib/icecat-31.2.0 directory.
To install just copy the directory with the "standalone" binaries in an appropriate place to be used in your system. A common suggested place is /opt/icecat.
Tarball package creation
To create a binary tarball, staying in the <build_basepath>/icecat-31.2.0/obj directory, please run:
$ cd browser/installer $ make $ cd ../..
The tarball package will be generated into the <build_basepath>/icecat-31.2.0/obj/dist directory.
Enjoy Gnuzilla IceCat!
[ Document edited by: alexus ]