This blog mainly contains posts about Mozilla release engineering projects that I am working on and some personal insights.

Thursday, December 09, 2010

Getting Firefox nightly updates on Fedora through yum

This quarter I have had few students (Tarin, Brett van Gennip and Vitaly) from Seneca working with Release Engineering to try to provide nightly updates for Fedora users. This now works and has been tested with Fedora 14.

They have recently added this feature to their Seneca Fedora-Firefox repository and today I would like to share with you what getting updates on Fedora looks like.

Note that this is just a proof-of-concept and that they will (hopefully) continue dealing with all issues and get it integrated into our Mozilla systems and/or with Fedora's (suggestions/directions welcome!) in following quarters.

Getting the repository
First we have to make Fedora to know where to pull the package from.
This means that we have to add our "Firefox Nightly" repository to our list of Software Sources.
To do so download this rpm and install it: firefox-repo-0.3-2.noarch.rpm
Once installed you should be able to see the following screen shot when you do this:

System -> Administration -> Software Sources

Software Sources view with "Firefox Nightly" integrated into it

I believe we should be listed under "debug and development software sources". Let's see.

Install Minefield (a.k.a. Firefox nightly build)
Now that the software source has been added we can decide to install the latest Firefox nightly.
To do so follow one of these two methods:

System -> Administration -> Add/Remove Software

Search for "Minefield"

Check the latest build and select "Apply"

NOTE: Having two entries looks like a bug to me. We will see.

Once installed, Fedora prompts you to run the application and it reminds you from where you can run the application

You can also install Minefield by typing this in the command line:

yum install minefield

NOTE: Both of these methods should add the following to your system:

/usr/lib/minefield-4.0b8pre/

/usr/bin/minefield -> /usr/lib/minefield-4.0b8pre/firefox

Add a Menu item under "Applications->Internet"

That's it! You can now run Minefield and get updates for it through yum!

NOTE: I am not comfortable about where we unpack (/usr/lib/minefield-4.0b8pre) as I don't know what will happen when we bump the version.

we need to make sure that we are doing everything according to the guidelines that Fedora has for packaging and third party sources

get people to test it and take input from Fedora/Linux veterans

integrate it into Release Engineering systems

does our setup work for other distributions using yum? if not, why not?

set things up for more branches than just "mozilla-central"

set things up for all locales

set things up for betas

define what the ideal world would look like

Known problems or issues

Current and previous Minefield nightly show up under "Add/Remove Software"

Setting Minefield as the default browser seems to mess up the "Preferred Web Browser" icon (I need to verify).

Using the "Preferred Web Browser" launcher opens "file://home/armenzg/". Is it supposed to be like that?

Should we be listed under "debug and development software sources" on the Software Sources manager?

Minefield gets unpacked under /usr/lib/minefield-4.0b8pre. Should this be instead /usr/lib/minefield? (version agnostic)

Minefield when launched from Applications->Internet->Minefield starts with the ProfileManager and allows running the nightly build with the other instances of Firefox ("minefield --no-remote --ProfileManager); should this not be a feature?

Since /usr/lib/minefield-4.0b8 is owned by "root" Firefox's update system doesn't work. If we change ownership then updates work again and I wonder what bug would I hit if I can receive updates through yum and through AUS. Only one way to find out!

I also believe that there is not a way to offer partial updates through yum as we do through our normal update system