Patch Rejuvenation
When a patch becomes complex and unwieldy, it is "Rejuvenated". That is, no more revisions of the patch are created. Instead, further code changes to objects contained in the patch are delivered in a series of smaller, simpler, new child PatchIDs, each of which declares a dependency upon (i.e. requires) the parent Patch.
This process is known as Patch Rejuvenation and is typically
performed on the Kernel patches associated with Solaris Update releases.
Customers still need to install the large parent Patch once, but subsequent bug fixes are delivered in smaller, simpler patches.
The parent patches effectively provide "stepping-stones" to reach
certain key functionality levels, with rejuvenation enabling smaller
incremental change in between Update releases.
If a child patch itself becomes complex and unwieldy over time, it too may be Rejuvenated, so we end up with a "family tree" of PatchIDs providing a lineage of bug fixes for particular code areas such as the Kernel.
See http://sunsolve.sun.com/search/document.do?assetkey=1-9-86481-1 for further information.
Effect of Solaris Update "SplitGate" process on PatchIDs
Starting in February 2007, a new, improved, source code "Gate" management process was introduced for core Solaris. This is known as the "SplitGate" process. This replaced the old "Feature Foldback" Gate management model. "SplitGate" provides much better separation during the development process between feature code destined for release as part of a Solaris Update release and sustaining (bug fix) patches. This addresses the problem with earlier Solaris 10 Update releases where issues with features destined for an Update release was adversely impacting the releasability of sustaining (bug fix) patches for customers in production on earlier Solaris 10 releases.
Note, as described in earlier blog postings, any change to pre-existing packages, whether as the result of new feature code or bug fixes, is always delivered in a patch. Therefore, the Kernel patches released at the end of each Update do contain a mixture of feature and bug fix code. What "SplitGate" provides is better separation of the feature code from bug fix patches until the Update is ready for release.
The improvement in Solaris 10 Kernel patch releasability has been dramatic:
Releasable Solaris 10 Kernel Patches using “Feature Foldback” model:
SPARC: 21 out of 66 = 32% (from March 2005 to February 2007)
x86: 12 out of 66 = 18% (from March 2005 to February 2007)
Releasable Solaris 10 Kernel Patches using “SplitGate” model:
SPARC: 36 out of 41 = 88% (from February 2007 to current [May 8th, 2009])
x86: 39 out of 41 = 95% (from February 2007 to current [May 8th, 2009])
A side effect of the "SplitGate" process, is that each Solaris 10 Update release, starting with Solaris 10 8/07 (Update 4) introduces a new set of PatchIDs which accumulate and obsolete the preceding set of PatchIDs.
So, for example, a single new Kernel PatchID revision will appear at the end of each Solaris 10 Update release. For instance, 120011-14 (SPARC) and 120012-14 (x86) is the Kernel PatchID associated with Solaris 10 8/07 (Update 4). Revisions -01 to -13 of this patch are not released to customers as these are purely for the interim internal builds of the Update. Therefore, 120011-14 (SPARC) and 120012-14 (x86) are the only revisions of these PatchIDs to be released to customers. This Kernel patch associated with the Update release is then Rejuvenated, so subsequent bug fixes will appear in a new set of PatchIDs, each of which will depend upon (i.e. require) the parent PatchID from which they were rejuvenated.
Solaris 10 Kernel Patch Lineage
The impact of Patch Rejuvenation and the "SplitGate" process results in the following sequence of Solaris 10 Kernel PatchIDs, starting with the youngest (newest) child PatchID. The install order of Kernel patches is starting from the bottom of the table upwards:
Solaris 10 SPARC Kernel PatchIDs
|
Description
|
Solaris 10 x86 Kernel PatchIDs
|
142909-xx only
|
Solaris 10 Update 9 Kernel PatchID
|
142910-xx only
|
142900-01 to 142900-xx
|
Sustaining Bug Fixes post Solaris 10 10/09 (Update 8)
|
142901-01 to 142901-xx
|
141444-09 only
|
Solaris 10 10/09 (Update 8) Kernel PatchID |
141445-09 only
|
| 141414-01 to 141414-10 |
Sustaining Bug Fixes post Solaris 10 5/09 (Update 7)
|
141415-01 to 141415-10 |
139555-08 only
|
Solaris 10 5/09 (Update 7) Kernel PatchID |
139556-08 only
|
138888-01 to 138888-08
|
Sustaining Bug Fixes post Solaris 10 10/08 (Update 6)
|
138889-01 to 138889-08
|
137137-09 only
|
Solaris 10 10/08 (Update 6) Kernel PatchID
|
137138-09 only
|
137111-01 to 137111-08
|
Sustaining Bug Fixes post Solaris 10 5/08 (Update 5)
|
137112-01 to 137112-08 |
127127-11 only
|
Solaris 10 5/08 (Update 5) Kernel PatchID
|
127128-11 only
|
127111-01 to 127111-11
|
Sustaining Bug Fixes post Solaris 10 8/07 (Update 4)
|
127112-01 to 127112-11
|
120011-14 only
|
Solaris 10 8/07 (Update 4) Kernel PatchID
|
120012-14 only
|
125100-04 to 125100-10
|
Sustaining Bug Fixes post Solaris 10 11/06 (Update 3)
|
125101-01 to 125101-10
|
118833-02 to 118833-36
|
118833-33
(SPARC) / 118855-33 (x86) is the Kernel patch included in Solaris 10
11/06 (Update 3) but these patches were not releasable as "standalone"
patches to SunSolve.
118833-17 (SPARC) / 118855-14
(x86) is the Kernel patch included in Solaris 10 6/06 (Update 2).
118855-14 was not releasable as a "standalone" patch to SunSolve.
|
118855-01 to 118855-36
|
118822-01 to 118822-30
|
118822-25
(SPARC) / 118844-26 (x86) is the Kernel patch included in Solaris 10
1/06 (Update 1). 118844-26 was not releasable as a "standalone" patch
to SunSolve.
|
118844-01 to 118844-30
|