Details
Description
"Setting up MariaDB Repositories" page suggests using of module_hotfixes=1 in CentOS-8 repository configuration. Proper modular repository should be created instead.
In AppStream repository mariadb packages are provided in "mariadb" module. I think that the repository on mariadb.org should be similar for better user experience. module_hotfixes=1 could be too strong means to avoid undesired updates since hotfix repository is considered for update of packages from any module.
The following was originally posted as a comment to MDEV-22123
It could be better solution than workaround with marking repository as hotfix (MDEV-20673).
The idea of dnf.modularity(7) is to allow choice of version of some application, e.g.
dnf module list php
|
CentOS Linux 8 - AppStream (psabr.qa.plesk.ru)
|
Name Stream Profiles Summary
|
php 7.2 [d][e] common [d], devel, minimal PHP scripting language
|
php 7.3 common, devel, minimal PHP scripting language
|
 |
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
|
During upgrades versions from other modules or from non-modular repositories are not considered.
I believe that 10.3, 10.4 (old stable, stable), etc versions in the repository at mariadb.org could be provided as streams of a module, so users could use this module instead of AppStream one.
I could not provide ready to use recipe of creation of modular repository. Essentially Modularitylabel RPM tag should be added to each RPM package as in
rpm -q --qf '%{Modularitylabel}s' mariadb-server
|
mariadb:10.3:8010020190814171449:cdc1202b
|
and module.yaml file should be added to repodata. You could inspect the files in the AppStream repository. Notice modulemd-defaults and modulemd documents inside.
A couple of warnings.
RedHat Enterprise Linux appstream repository looks good, but unfortunately CentOS AppStream repository is a bit dirty currently. Some packages are not described in module.yaml files, so they remain available even when mariadb module is disabled, so could generate dependency resolution problems. See https://bugs.centos.org/view.php?id=16808
I do not have strong opinion if the same name "mariadb" should be used for the module or another one should be chosen for the repository that is external in respect to native CentOS ones. It is uncertain for me if dnf module command correctly handles modules with same name in different repositories.
Due to the following remark the scenario of migration from e.g. MariaDB-10.3 to MariaDB-10.4 is not clear for me if versions are represented as module streams.
This command (dnf module install) cannot be used for switching module streams. It is recommended to remove
all installed content from the module and reset the module using the reset command.
https://dnf.readthedocs.io/en/latest/command_ref.html#module-command
Maybe it worth discussing such upgrade in some fedora or centos mail list.
I still believe that modular repository should have better compatibility with AppStream.