Title: Gentoo Stable Portage Tree
Author: Kurt Lieber <email@example.com>
Type: Standards Track
Post-History: 2004-01-29, 2004-11-02, 2004-12-07, 2006-10-10
Withdrawn by the author. "If someone wants to take up the torch, more
power to them, but they should probably start clean with a new glep."
This GLEP is intended to propose a series of changes to the Portage tree that
are necessary to facilitate the use of Gentoo in areas where stability and
predictability are of paramount importance, including servers in enterprise
environments, mission critical workstations and other such installations.
The proposed solution involves creating a separate tree in Portage that is
updated far less often than the regular tree. Outside of periodic updates,
this tree would only be updated with critical bugfixes and security patches.
Enterprise users typically value stability and a predictable upgrade path
over having the latest packages or features available to them. Historically,
Gentoo Linux has been unable to provide such an environment due to the dynamic
nature of the Portage tree.
The Gentoo Infrastructure team will need to provide an additional Portage tree
on our rsync mirroring system. This new tree will house the ebuilds
associated with the stable tree. It also impacts all Gentoo developers
responsible for creating and updating ebuilds as they will be expected to
integrate the tagging of ebuilds for the stable tree into their normal
development process, both for the quarterly release cycles as well as
off-cycle bug and security fixes.
The Gentoo Documentation team will also be affected as they will be
responsible for updating installation documents to take these new features
A basic outline of various ways of adding a "stable" tree to Portage was
discussed in the gentoo managers meeting on 26-Jan-04. Consensus seemed to be
reached that such a solution was needed and that branching the gentoo-x86
repository was the appropriate way to accomplish this. The largest area of
disagreement surrounded how specific ebuilds should be targeted for inclusion
in the stable tree.
One suggested solution was a simple branch of the CVS tree and having
developers work in two separate branches; one for the stable tree and
another for the traditional tree. However, it was felt this would prove too
cumbersome in practice.
Another suggestion was to have a small group of dedicated gentoo-server
developers responsible for generating the contents of the stable tree, which
would provide more control and quality assurance over the ebuilds added to the
stable tree. While this might prove effective for a small number of ebuilds,
it is quite likely that this model would not scale enough to allow for a large
number of ebuilds in the stable tree and, over time, the project would become
resource constrained and unable to meed future deadlines.
While the original draft of this GLEP called for the creation of a stable
keyword, we have since discarded that idea in favor of creating a custom
profile, which will be used to track a subset of packages and versions.
This GLEP will create a new set of cascaded profiles (one per release, not to
exceed two per year) which will contain a subset of packages, including
versions. This profile will "pin" a Gentoo Linux box to a specific set of
packages and will only be updated for security updates and, in rare
circumstances, major bug fixes.
Because this profile will be cascaded, the option exists for other developers
to create their own profile, containing a subset of packages not found in the
"main" stable tree and include those as part of the overall stable profile.
These cases will be treated on a one-off basis.
The initial version will be x86 only, though other people will be encouraged
to provide separate stable profiles for other arches. It is expected that any
effort to provide a stable tree for any arch or flavor of Gentoo will follow
the basic outline of this GLEP to ensure consistency for our users.
In addition to a custom profile, this GLEP will also create a separate rsync
repository, "gentoo-stable-portage", which will be available on all servers in
the rsync.gentoo.org rotation. This repository will be *identical* to the
main gentoo-portage repository except that the --delete flag will be removed
from the rsync option that populates the tree. This will ensure that users of
the stable profile will not have to worry about ebuilds for their packages
Stable profiles will be maintained on an N - 2 basis. That is to say that we
will maintain a stable profile for the most current release, plus the previous
two releases. With the expected release schedule for 2005, this will result
in each profile being supported for approximately 18 months. Future versions
of the stable portage tree may seek to increase the life of these profiles.
All features proposed here are new additions to existing processes and
features. There should be no impact on existing features and functionality.
This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Unported License. To view a copy of this license, visit