Project

General

Profile

Bug #11737

Some packages should have version-lock facets

Added by Andy Fiddaman 11 months ago. Updated 8 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 packagesClosed

Actions

History

#1

Updated by Andy Fiddaman 11 months ago

  • Description updated (diff)
#2

Updated by Andy Fiddaman 11 months ago

#3

Updated by Andy Fiddaman 10 months 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 8 months ago

#5

Updated by Joshua M. Clulow 8 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 8 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 8 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