Here’s a sneak preview of a new feature that has been added to the pkg utility in our bloody release and is being back-ported to r151026; automatic boot environment naming. It’s a small change but one that makes it easier to keep track and I’ve been wanting it for a while.

At present, if a package update means that a new boot environment (BE) is required then it will be automatically named by appending a suffix to the current BE name (or incrementing any existing suffix). It’s possible to override the BE name via pkg update --be-name=xxx but if you don’t remember to do this then you end up with a list of boot environments like this:

r151026$ beadm list
BE         Active Mountpoint Space Policy Created
omnios     -      -          4.48M static 2018-04-06 09:56
omnios-1   -      -          7.45M static 2018-04-06 22:30
omnios-2   -      -          5.45M static 2018-04-20 17:55
omnios-3   NR     /          5.95G static 2018-07-25 10:07

The new feature uses an image property to define the template to be used when naming a new BE as a result of an update. The template can contain tokens (documented on the pkg(1) man page) such as %r to indicate the release version. The recommended value for this template is omnios-r%r as shown here. The default value for this property is empty in r151026 so it needs setting explicitly.

r151026$ pfexec pkg set-property auto-be-name omnios-r%r

Now let’s try an update:

r151026$ pkg list -u
NAME (PUBLISHER)                                  VERSION                    IFO
SUNWcs                                            0.5.11-0.151026            i--
release/name                                      0.5.11-0.151026            i--
service/network/smtp/dma                          0.11-0.151026              i--
system/zones/brand/lx                             0.5.11-0.151026            i--

r151026$ pfexec pkg update
            Packages to update:   4
       Create boot environment: Yes
Create backup boot environment:  No

DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                4/4       494/494      7.1/7.1  5.7M/s

PHASE                                          ITEMS
Removing old actions                             4/4
Installing new actions                           4/4
Updating modified actions                    686/686
Updating package state database                 Done
Updating package cache                           4/4
Updating image state                            Done
Creating fast lookup database                   Done
Reading search index                            Done
Updating search index                            4/4
Updating package cache                           3/3

A clone of r151026i exists and has been updated and activated.
On the next boot the Boot Environment omnios-r151026m will be
mounted on '/'.  Reboot when ready to switch to this updated BE.

-------------------------------------------------------------------------------
Find release notes:                        https://omniosce.org/releasenotes
-------------------------------------------------------------------------------
Get a support contract:                    https://omniosce.org/support
Sponsor OmniOS development:                https://omniosce.org/patron
Contribute to OmniOS:                      https://omniosce.org/joinus
-------------------------------------------------------------------------------

The template is applied and the new BE gets a sensible name:

r151026$ beadm list
BE                Active Mountpoint Space Policy Created
omnios            -      -          4.48M static 2018-04-06 09:56
omnios-1          -      -          7.45M static 2018-04-06 22:30
omnios-2          -      -          5.45M static 2018-04-20 17:55
omnios-3          N      /          5.95G static 2018-07-25 10:07
omnios-r151026m   R      -          6.07G static 2018-07-25 10:21

It’s still possible to override the name via the --be-name option and if the update does not change the release then a suffix will be applied just as before.

This feature is coming to r151026m - scheduled for release w/c 30.7.2018