-
Notifications
You must be signed in to change notification settings - Fork 22
Offline Media Product Dependencies
When adding the Packages DVD in SLE15 the user originally had to know the dependencies between the extensions and modules and was required to select the dependent modules manually. That was error prone and user unfriendly.
The dependencies are computed dynamically using the package solver, YaST tries marking each product for installation and sees which other products were selected to install as a dependency.
Because there are quite a lot of repositories on the Packages DVD (about 25) this needs to be quick. It turned out that using the full libzypp package manager is quite slow. The problem is that libzypp verifies the GPG signatures for the metadata, builds the binary caches, etc... That is relatively fast for one repository, it takes about one or two seconds, but when it is done 25-times then it takes more then 30 seconds. And that is too much.
To make it faster YaST loads directly the repository metadata into the libsolv dependency solver using its Ruby bindings. With this solution it takes only about two seconds to evaluate all 25 repositories.
When the user selects a repository then it is added to the system using the usual libzypp library. That means all GPG signatures are always later verified, but only for the repositories which were selected by the user in the end.
The change has been implemented in yast2-packager-4.2.17 (PR) and is available in SLE15-SP2 (and newer).