Skip to content

Selecting the default product patterns

Ladislav Slezák edited this page Apr 28, 2016 · 6 revisions

Default Product Patterns

The default product (in the libzypp resolvable type meaning) used RPM Recommends dependencies to select the default pattern.

However, the problem is that during upgrade the recommended patterns are selected to install or upgrade because recommends are enabled by default in libzypp. This makes troubles when the user has deselected or uninstalled some default patterns before upgrade, the missing patterns will be added.

The solution is to not (ab)use the Recommends dependency for selecting the default patterns but using another mechanism - a specific Provides dependency with value defaultpattern(pattern_name). All these tags for the selected products are evaluated by YaST and the specified patterns are selected to install. A product can define more than one default pattern.

See FATE#320199 for more details.

Currently Supported Use Cases

  • Base product installation
  • Addon product from media or from a registration server (SCC/SMT)
  • Base product upgrade (from a media)
  • Upgrading a base product + addons (from a media)

In installation base product and addons are handled the same way - the default patterns for the selected products are selected when the installation proposal is initialized. That means it does not matter where the selected product is the base product or it is from an addon.

Product upgrade actually uses two modes:

  • Package based upgrade (used in SP level upgrade, e.g. from SLES12-GA to SLES12-SP1)
  • Pattern based upgrade (used in product version upgrade, e.g. from SLES11-SP4 to SLE12-SP1)

As the names suggests the default patterns are selected to install only in the pattern based upgrade, in package based upgrade only the installed packages upgraded ignoring the default product patterns.

Note: The base product pattern is still selected using the softwaredefault_patterns value from the control.xml file. The addons still use the PATTERNS value from the content file. This should be unified and only the defaultpattern provides should be used in all cases.

Not (Yet) Supported Use Cases

  • AutoYaST installation
  • AutoYaST upgrade
  • Adding addons from the registration server in an installed system