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.

This post proves again that a well defined problem when given to Seneca's open-source students helps us move forward when we lack man-power. This is one of the first fruits out of the several MozillaReleng-Seneca projects.

The structure of the post will follow as:
  • Getting the repository
  • Install Minefield
  • New update available
  • Feedback
  • Files
  • What's next?
  • Known issues or problems
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.

    New update available
    How do I receive updates?
    Software Update window showing a "Mozilla Firefox Web Browser Nightly" update
    The same way as with any Fedora package!

    Let me know what your thoughts are or what we are doing wrong by:
    • Adding a comment to this post.
    • Adding a comment to Bug 600317.
    • or you can email me directly armenzg [AT] 


    In case you wanted to have a look at the different files in the repository:
    What's next? 
    • 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

    Creative Commons License
    This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.


    1. <3 <3 <3

      and yes it's a bug that two entries occur.

    2. Very nice idea, that should definitely make it easier to test latest Firefox code.

      You might also want to take a look at how spot has set up his Firefox4 repos:

    3. It would be good if drpms are also provided

    4. @Fabian :)

      @Kalev I saw it and will use it as reference.

      @sab I have taken note.

      Thanks for your comments! :)

    5. Great post! Ill see if i can fix those issues as soon as possible.

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

      What do you mean by "partial updates"? Because, when you say that, I am thinking of DeltaPRM's via the Presto-plugin might be an answer.

    7. @Duv that might be it. We will take care of it on the next semester. thanks!

    8. Why is the repository down?

    9. @Fabian I will look into it.

      We have not yet ported the work to Mozilla networks but it is hosted by Seneca college.

      I will comment in here once I figure it out.