Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-22492

avoid hotfix repository for CentOS-8, create fair "modular" one

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.3.20
    • 10.4, 10.5, 10.6, 10.11
    • Packaging
    • None
    • CentOS-8 and RedHat EL8

    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.

      Attachments

        Activity

          People

            danblack Daniel Black
            plmnikulin plmnikulin (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.