-
Notifications
You must be signed in to change notification settings - Fork 22
Selecting the 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.
- 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 software
➝ default_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.
- AutoYaST installation
- AutoYaST upgrade
- Adding addons from the registration server in an installed system