Project

General

Profile

Bug #11737

Some packages should have version-lock facets

Added by Andy Fiddaman about 1 year ago. Updated 12 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
system data
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The IPS incorporations that are built by gate lock all packages that are not flagged as noincorp together at the published versions.
This means that it is not possible to selectively downgrade a package if necessary.

We should provide version-lock facets for some packages to effectively remove them from the incorporation if necessary.

Initially, this should be done for the system/data/zoneinfo and system/data/hardware-registry packages.


Related issues

Blocks illumos gate - Feature #12052: Deliver microcode in separate packagesClosedAndy Fiddaman

Actions
#1

Updated by Andy Fiddaman about 1 year ago

  • Description updated (diff)
#3

Updated by Andy Fiddaman about 1 year ago

Testing:

% diff -u packages.i386{.old,}/osnet-incorporation.mog
--- packages.i386.old/osnet-incorporation.mog       Fri Sep 20 13:38:34 2019
+++ packages.i386/osnet-incorporation.mog   Fri Sep 20 13:38:34 2019
@@ -490,11 +490,12 @@
 depend fmri=pkg:/system/data/console/fonts@0.5.11,5.11-151030.0 \
     type=incorporate
 depend fmri=pkg:/system/data/hardware-registry@0.5.11,5.11-151030.0 \
-    type=incorporate
+    type=incorporate facet.version-lock.system/data/hardware-registry=true
 depend fmri=pkg:/system/data/keyboard/keytables@0.5.11,5.11-151030.0 \
     type=incorporate
 depend fmri=pkg:/system/data/terminfo@0.5.11,5.11-151030.0 type=incorporate
-depend fmri=pkg:/system/data/zoneinfo@2019.3,5.11-151030.0 type=incorporate
+depend fmri=pkg:/system/data/zoneinfo@2019.3,5.11-151030.0 type=incorporate \
+    facet.version-lock.system/data/zoneinfo=true
 depend fmri=pkg:/system/dtrace/tests@0.5.11,5.11-151030.0 type=incorporate
 depend fmri=pkg:/system/extended-system-utilities@0.5.11,5.11-151030.0 \
     type=incorporate
#4

Updated by Andy Fiddaman 12 months ago

#5

Updated by Joshua M. Clulow 12 months ago

Notes from Andy in the RTI Mail

The osnet-incorporation effectively locks all incorporated packages together
at a specific version. As Rich notes, this is vital for some of them such as
libc and the kernel. For other packages, it would be useful to provide a
mechanism for an administrator to override the version lock.

The most recent case where this would have been useful was with the
system/data/zoneinfo package where the update to 2019c introduced a
regression. There was no way for an administrator to downgrade just this
package back to 2019a due to the incorporation.

For the system/data/hardware-registry package, the version has long been
deliberately left at 0.5.11 so as to allow downgrades if necessary. With this
change the next update to that package can use a proper release number.

This change adds the framework and initially adds version lock facets to
system/data/hardware-registry and system/data/zoneinfo as these are system
data files which are updated a couple of times a year. There may be other
packages that would benefit from this and they can be easily added in the
future. For example I think this would be useful for things like CPU microcode
too, but we will first need to split that out into separate packages.

#6

Updated by Andy Fiddaman 12 months ago

Here's an example of this being used to downgrade system/data/zoneinfo.

bloody% pkg list -afv system/data/zoneinfo
FMRI                                                                         IFO
pkg://omnios/system/data/zoneinfo@2019.9-151033.0:20191210T090436Z           i--
pkg://omnios/system/data/zoneinfo@2019.3-151033.0:20191203T202512Z           ---

bloody% pfexec pkg update system/data/zoneinfo@2019.3
Creating Plan (Solver setup): /
pkg update: No matching version of system/data/zoneinfo can be installed:
  Reject:  pkg://omnios/system/data/zoneinfo@2019.3-151033.0
  Reason:  This version is excluded by installed incorporation consolidation/osnet/osnet-incorporation@0.5.11-151033.0

bloody% pkg facet -a | grep zoneinfo
version-lock.system/data/zoneinfo                                True  system

bloody% pfexec pkg change-facet version-lock.system/data/zoneinfo=False
            Packages to change:  1
     Variants/Facets to change:  1
...

bloody% pkg facet
FACET                                                            VALUE SRC
version-lock.system/data/zoneinfo                                False local

bloody% pfexec pkg update system/data/zoneinfo@2019.3
            Packages to update:  1
       Create boot environment: No
Create backup boot environment: No

PHASE                                          ITEMS
Installing new actions                           1/1
...

bloody% pkg list -afv system/data/zoneinfo
FMRI                                                                         IFO
pkg://omnios/system/data/zoneinfo@2019.9-151033.0:20191210T090436Z           ---
pkg://omnios/system/data/zoneinfo@2019.3-151033.0:20191203T202512Z           i--
#7

Updated by Electric Monk 12 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit 2bd79b08f4b447d333b2b97efd7e4bf855f5d409

commit  2bd79b08f4b447d333b2b97efd7e4bf855f5d409
Author: Andy Fiddaman <omnios@citrus-it.co.uk>
Date:   2019-12-10T11:07:36.000Z

    11737 Some packages should have version-lock facets
    Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Approved by: Joshua M. Clulow <josh@sysmgr.org>

Also available in: Atom PDF