Summary

This spec is about reviewing the current support model for firefox in stable ubuntu releases. Goal is to identify tasks and procedures that are work intensive or incur risk while not giving appropriate value for the distributions. For those tasks and procedures alternatives are presented that involve rolling major version updates to stable ubuntu releases.

This spec covers two parts:

  1. ensure that from lucid onward updating firefox versions to the next stable branch in security updates does not involve huge porting efforts
  2. minimize regressions in existing ubuntu releases when updating firefox/xulrunner and friends to the latest supported upstream branch

Rationale

In short or long term firefox is expected to move to a changed branch policy; this most likely will involve even shorter support for stable release branches. Numbers discussed are: 4-6 weeks for minor security/stability updates and 4-6 month for major version updates; at the same time security/stability support for old branches will be dropped.

In consequence, using our "old" way of backporting patches for firefox becomes more and more unfeasible. The risks of incurring distribution regressions is high, while the win is debatable.

Design - New releases

The change in support model suggested by this spec involves changes to various areas outlined in separate sub sections below. On top this spec defines how a switch to this new support model for existing ubuntu releases can be accomplished in a diligent fashion.

Major version upgrades instead of backporting

Instead of backporting patches to EOL branches, ubuntu releases will be updated to the next still supported firefox branch once the current firefox branch of that ubuntu release goes EOL upstream. This will reduce the workload on developer and QA side considerably and reduce the risk of incurring additional regressions due to backporting bugs.

Use in-source libraries rather than system libs

enabling system libs is not officially supported upstream and supporting this caused notable work in the past while sometimes leading to a suboptimal user experience due to version variants in the ubuntu released compared to the optimize version shipped in the firefox upstream tarballs.

Reduce in-archive reverse dependencies to a minimum

Not backporting security fixes, but upgrading to new firefox branches would come with a considerable effort for backporting reverse dependencies in the archive. To keep this approach sustainable the ubuntu archive needs to be reviewed and only the most important packages can be kept.

Move extensions to a PPA

Extension packages are useful, but the archives stable support properties doesn't fit their release policies and user expectations well. Hence, extensions should be moved to a PPA which then can be made available prominently in the software center or even through the firefox extension manager at some point.

Design - stable ubuntu releases

Stable ubuntu releases, will require a full security coverage in main. This also includes the xulrunner-1.9.1 packages. Assuming that xulrunner 1.9.1 cannot be kept secure we will need to update xulrunner to latest branch in much the same way as suggested for firefox.

Eliminate embedders

non-trivial gecko embedders must be eliminated in stable ubuntu releases; this needs to happen by moving them to an existing webkit variant; if no webkit port exists, porting them to next xulrunner branch needs to be done.

port plugins

Plugins need to be ported in time to the new firefox/xulrunner major version. Usually this should work well, however, there are potential issues with java in particular.

upgrade extensions

Extensions that ship binary components must be updated to latest upstream version. For extensions that are hosted on AMO (addons.mozilla.org) and do not have binary components we need to ensure that extensions get updated to the profile version. For that we ship an install.rdf in an otherwise empty extension package with a special hint that triggers a system to profile upgrade on next firefox start.

Implementation - Lucid

Implementation for existing releases

Implementation background

Moving to this new support model has some implications on what packages can be accepted in the ubuntu repository in future:

References/Progress

DesktopTeam/Specs/Lucid/FirefoxNewSupportModel (last edited 2010-06-26 02:47:59 by c-98-234-77-177)