It will help you to improve your skills or how to understand how to start this journey!
As you may know, Mozilla is working on a qt version of its own browser (at the time Firefox 4 came out everybody was talking about this) but then this thing went quiet.
Therefore a question arises, what did happen of this interesting project?
Mozilla is still working on it and there’s proof of this in the involvement of the Chakra developers that have this firefox version available in the Arch repositories (that’s true, if you are using Arch just search for firefox-qt).
This qt version is now at release 9.0.1 and features the SilverGlow theme in light of the fact that -aside of being kinda ugly (as you can see in the picture)- there are some rendering issues that you can spot once it has been compiled by opening a menu of choice (they have no canvas background).
I’ve also observed another issue,namely it always crashes whenever I’m trying to download a file, whilst if I try to get a file from about:addons it works as expected.
So, let’s get our hands dirty!
First get the source code for Firefox version 9.0.1 from here.
Extract the tarball in a dedicated directory and create inside this a text file named mozconfig in which we will paste the following commands:
mk_add_options MOZ_CO_PROJECT=browser, xulrunner ac_add_options –enable-application=browser ac_add_options –enable-default-toolkit=cairo-qt ac_add_options –disable-optimize ac_add_options –disable-updater ac_add_options –disable-tests ac_add_options –disable-installer ac_add_options –disable-crashreporter ac_add_options –disable-javaxpcom ac_add_options –disable-printing ac_add_options –disable-embedding-tests ac_add_options –disable-elf-dynstr-gc ac_add_options –disable-necko-wifi mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-qt mk_add_options MOZ_MAKE_FLAGS=-j4
As you can see, these are all parameters that are going to be read by the configure script in order to disable some features that are currently not needed.
The most noticeable are:
mk_add_options MOZ_CO_PROJECT=browser, xulrunner
with which we are stating that we want to compile the browser and the xul library that is going to use qt.
ac_add_options –enable-default-toolkit=cairo-qt
with which we are setting qt as the default gui.
mk_add_options MOZ_MAKE_FLAGS=-j4
with this we are telling the compiler to use all available cores in order to gain some time,as this is going to be a long compilation process.
Dependencies
Mozilla offers this old guide linked below for compiling in Debian: https://wiki.mozilla.org/User:Pjohnsen/MozillaQtBuild
As Picchio pointed out it’s from 2009 but the required dependencies are still the same.
Therefore it’s time to type:
apt-get install autoconf libdbus-glib-1-dev libqt4-core libqt4-gui libqt4-dev libasound-dev libglib1.2-dev libdbus-1-dev yasm
With this command you should have installed all the required dependencies to compile our nice Firefox-Qt.
P.S. I’m using Debian Sid (Aptosid) and I’ve run into some issues with the libdbus-1-dev package which I’ve had to install from the experimental repo, because apparently the version from the stable repo isn’t the righ one.
Let’s compile now:
cd from a terminal into the directory where the tarball had been previuosly extracted and where also is the mozconfig file created earlier.
Now use the classic command:
./configure
which will run the dependencies check and in case no errors are found (otherwise the missing packages will be automatically suggested) you can finally start the compilation process,which is going to take up to one hour,using the classic make command.
Let’s now try it
Once finished compiling, cd to /dist/bin where you’ll find the firefox binary executable to finally try our new fox.
My advice is to separately download a skin such as Oxygen Kde, considering the issue described earlier.
Becasue of a bug affecting the installation of local xpi files from the gui, you’ll have to start Firefox with the command line parameter
install-global-extension "path to xpi file for your theme"
This is only necessary if you are actually wishing to install this extension,given that the version found in the Mozilla repo doesn’t work with the release 9.x, whilst the version downloaded from the official site does,therefore only in this particular case you need to start Firefox in this way-if, on the contrary, you don’t care about this really nice skin,you can get another one via the built-in interface from Firefox.
Here’s a problem:if we are going to start this Firefox version whilst the GTK version is already in use, it will say that there is another instance already running and we will have to close it… to solve the issue and be able to have two separate instances running at the same time,use the following parameters to launch (from terminal) the qt binary:
--no-remote -p dev
By doing that, when launching Firefox a dialog window will open to choose the profile to use:create a new profile to be used with this specific version,select it and press continue.
P.S. if you wish to install the skin, first create the new profile and then install the extension
Thanks to Geko for the english translation