Some New Cl-Update-Profile Tricks

User Features

The cl-update-profile tool was considerably rewritten for Calculate Utilities 3.2.2, featuring:

# Selection of the method used for world update, instead of the default behavior;
# System settings update (by default);
# A method for configuration files update;
# Template selection.

To switch to your custom profile, please execute:

cl-update-profile --url=github:MYOVERLAY --rebuild-world

The relevant overlay(s) will be added and the world file (found at ‘/var/lib/portage/world’) will be repopulated. Then the new packages and the packages that got their USE flags modified will be installed, while the orphaned packages, if any, will be removed. Please note that the system settings are now updated whenever you switch between profiles (if you do not need this, run cl-update-profile with the ‘–skip-setup-system’ option).

Use ‘–rebuild-world’ instead of ‘–merge-world’ if you only want to add new packages to the list.

Use ‘–update-world’ to confirm the existing list for subsequent updates. Should you switch to another profile and retrieve the previous profile later, only modified packages will be fetched and reinstalled.

Developer Features

As the packages list is still bound to the overlay templates, you should edit your templates if you maintain a custom overlay and want your distribution to support the new features provided by Calculate Utilities 3.2.2.

All templates are associated to event ‘ac_update_sync’. Whenever they are applied, you get the message:

System configuration
* Fixing the settings … [ ok ]

In Calculate Utilities 3.2.2, variable cl_update_world accepts one of the following values:

  • ‘rebuild’ for regenerating the packages list;
  • ‘merge’ for merging the new packages list with the previous one;
  • ‘update’ for using the latest effective list of packages.

If you are wondering for an example, just look how templates are handled in Calculate and Distros overlays: feel free to navigate inside directory ‘templates/3.2/6_ac_update_sync’.

We added a new ‘remerge’ directory for templates used to update package settings (formerly in ‘revision’), so all system corrections are now stored in three directories:

  • the ‘remerge’ templates manage package settings;
  • the ‘revision’ templates manage revisions (those cover situations that cannot be corrected otherwise: bug fixes, migration issues, etc.);
  • the ‘world’ templates manage the world file, that lists all packages on the system.

We also modified the layout of the ‘/etc/calculate/ini.env’ file. The revision section now looks somewhat like this:

remerge = 3
world = 1
revision = 13

revision = 1
world = 12

We recommend that you use the same logic for naming the respective section in your own overlay: ‘overlay-MYOVERLAY’. Old paths can be moved by means of a revision.