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

Move mysql symlinks to different package

Details

    Description

      By making the symlinks an optional package, users can get a clean install without naming conflicts, and also be able to install a package for compatibility with scripts.

      Eventually this package will be made optional and maybe even removed.

      Attachments

        Issue Links

          Activity

            danblack Daniel Black added a comment - https://buildbot.mariadb.org/#/grid?branch=bb-11.0-danielblack-preview-MDEV-30203-fix-pkgtest (same branch different name) generated RPMs in https://ci.mariadb.org/31771/ for testing.
            elenst Elena Stepanova added a comment - - edited

            I have no objections against pushing 1e6e88fc073e3a766ca in 11.0 and releasing with 11.0.1.

            It appears that on systems which we currently release, the packages with symlinks (mariadb-server-compat and mariadb-client-compat) are installed by default, so hopefully the inconvenience to the users is minimal at this point. Still, it would be very good if users tried it out in their environments and reported issues they observe.

            On debs the packages can be opted out.
            Upd: as shown in the comment below, for RPMs they can be opted out too, except for older versions which don't support weak dependencies (e.g. RHEL 7).

            It's not clear how distributions are going to handle it when the time comes – will they follow the same pattern and build separate packages, or will they do it some other way, but it is a problem for the future.


            Upd:
            In regard to RPMs, there is a problem with repository creation, which affected the testing and may affect the release as well. We may have to upgrade createrepo before the release for the recommended packages to work, but it is outside the scope of this task.

            elenst Elena Stepanova added a comment - - edited I have no objections against pushing 1e6e88fc073e3a766ca in 11.0 and releasing with 11.0.1. It appears that on systems which we currently release, the packages with symlinks (mariadb-server-compat and mariadb-client-compat) are installed by default, so hopefully the inconvenience to the users is minimal at this point. Still, it would be very good if users tried it out in their environments and reported issues they observe. On debs the packages can be opted out. Upd: as shown in the comment below, for RPMs they can be opted out too, except for older versions which don't support weak dependencies (e.g. RHEL 7). It's not clear how distributions are going to handle it when the time comes – will they follow the same pattern and build separate packages, or will they do it some other way, but it is a problem for the future. Upd: In regard to RPMs, there is a problem with repository creation, which affected the testing and may affect the release as well. We may have to upgrade createrepo before the release for the recommended packages to work, but it is outside the scope of this task.
            serg Sergei Golubchik added a comment - - edited

            One can opt out with rpms too, we do it in buildbot with

            sudo dnf --setopt=install_weak_deps=False instal ...
            

            I'll push 9656356b5500 instead which differs from 1e6e88fc073e3a766ca in corrected man pages for mariadb*embedded tools

            serg Sergei Golubchik added a comment - - edited One can opt out with rpms too, we do it in buildbot with sudo dnf --setopt=install_weak_deps=False instal ... I'll push 9656356b5500 instead which differs from 1e6e88fc073e3a766ca in corrected man pages for mariadb*embedded tools
            danblack Daniel Black added a comment -

            Thanks serg, elenst for fixes and testing.

            createrepo with the --setopt=install_weak_deps=False is sufficient for an install base on ci.mariadb.org using createrepo in its rpm artifacts.

            [root@citest-1 dan]# cat /etc/yum.repos.d/MariaDB*.repo 
            [MariaDB-11.0]
            name=MariaDB bb 11.0
            baseurl=https://ci.mariadb.org/32474/amd64-rhel-8-rpm-autobake/rpms
            gpgcheck=0
            module_hotfixes=1
            enabled=1
             
            [root@citest-1 dan]# dnf --setopt=install_weak_deps=False MariaDB-client
            Updating Subscription Management repositories.
            No such command: MariaDB-client. Please use /bin/dnf --help
            It could be a DNF plugin command, try: "dnf install 'dnf-command(MariaDB-client)'"
            [root@citest-1 dan]# dnf --setopt=install_weak_deps=False install MariaDB-client
            Updating Subscription Management repositories.
            Last metadata expiration check: 0:45:03 ago on Sun 12 Feb 2023 11:56:30 PM EST.
            Dependencies resolved.
            ================================================================================================================================
             Package                     Arch        Version                                    Repository                             Size
            ================================================================================================================================
            Installing:
             MariaDB-client              x86_64      11.0.1-1.el8                               MariaDB-11.0                           16 M
            Installing dependencies:
             MariaDB-common              x86_64      11.0.1-1.el8                               MariaDB-11.0                           88 k
             MariaDB-shared              x86_64      11.0.1-1.el8                               MariaDB-11.0                          119 k
            ...
            (and no MariaDB-client-compat)
            

            danblack Daniel Black added a comment - Thanks serg , elenst for fixes and testing. createrepo with the --setopt=install_weak_deps=False is sufficient for an install base on ci.mariadb.org using createrepo in its rpm artifacts. [root@citest-1 dan]# cat /etc/yum.repos.d/MariaDB*.repo [MariaDB-11.0] name=MariaDB bb 11.0 baseurl=https://ci.mariadb.org/32474/amd64-rhel-8-rpm-autobake/rpms gpgcheck=0 module_hotfixes=1 enabled=1   [root@citest-1 dan]# dnf --setopt=install_weak_deps=False MariaDB-client Updating Subscription Management repositories. No such command: MariaDB-client. Please use /bin/dnf --help It could be a DNF plugin command, try: "dnf install 'dnf-command(MariaDB-client)'" [root@citest-1 dan]# dnf --setopt=install_weak_deps=False install MariaDB-client Updating Subscription Management repositories. Last metadata expiration check: 0:45:03 ago on Sun 12 Feb 2023 11:56:30 PM EST. Dependencies resolved. ================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================ Installing: MariaDB-client x86_64 11.0.1-1.el8 MariaDB-11.0 16 M Installing dependencies: MariaDB-common x86_64 11.0.1-1.el8 MariaDB-11.0 88 k MariaDB-shared x86_64 11.0.1-1.el8 MariaDB-11.0 119 k ... (and no MariaDB-client-compat)

            danblack,

            What createrepo does on ci.mariadb.org is unfortunately irrelevant, it is not the same repo as we release. Same faulty assumption was made during testing, that all of them are the same.

            If you look for example into https://ci.mariadb.org/32167/amd64-rhel-9-rpm-autobake/rpms/ which built from the release revision of 10.9, specifically file https://ci.mariadb.org/32167/amd64-rhel-9-rpm-autobake/rpms/repodata/44f64647a2f1d8d1f8d56a60ddefe5ad1acfab10018461996efbc7d5a438d517-primary.xml.gz, it has these blocks:

                <rpm:recommends>
                  <rpm:entry name="jemalloc"/>
                </rpm:recommends>
            ...
                <rpm:recommends>
                  <rpm:entry name="pv"/>
                </rpm:recommends>
            

            but the file in the actual release repo http://mirror.mariadb.org/yum/10.9/rhel9-amd64/repodata/8a22a2af34cc4f0b3fbd7c61de213cd637f1e45af18f4de1afbcca426943ca46-primary.xml.gz does not have them.

            The release build environment has 0.10.3 which is pretty old, it may be not aware of recommends dependencies same way as old rpm does not know about it.

            Same is happening with the new compat packages, except that we don't have a release-like repo yet.
            I've just created a repo here https://buildbot.mariadb.net/archive/pack/bb-11.0-all-builders/build-53221/kvm-rpm-rhel9-amd64/rpms/ , I think I am using the same createrepo version as the release process does. As you can see, compat packages are not pulled from there.

            elenst Elena Stepanova added a comment - danblack , What createrepo does on ci.mariadb.org is unfortunately irrelevant, it is not the same repo as we release. Same faulty assumption was made during testing, that all of them are the same. If you look for example into https://ci.mariadb.org/32167/amd64-rhel-9-rpm-autobake/rpms/ which built from the release revision of 10.9, specifically file https://ci.mariadb.org/32167/amd64-rhel-9-rpm-autobake/rpms/repodata/44f64647a2f1d8d1f8d56a60ddefe5ad1acfab10018461996efbc7d5a438d517-primary.xml.gz , it has these blocks: <rpm:recommends> <rpm:entry name="jemalloc"/> </rpm:recommends> ... <rpm:recommends> <rpm:entry name="pv"/> </rpm:recommends> but the file in the actual release repo http://mirror.mariadb.org/yum/10.9/rhel9-amd64/repodata/8a22a2af34cc4f0b3fbd7c61de213cd637f1e45af18f4de1afbcca426943ca46-primary.xml.gz does not have them. The release build environment has 0.10.3 which is pretty old, it may be not aware of recommends dependencies same way as old rpm does not know about it. Same is happening with the new compat packages, except that we don't have a release-like repo yet. I've just created a repo here https://buildbot.mariadb.net/archive/pack/bb-11.0-all-builders/build-53221/kvm-rpm-rhel9-amd64/rpms/ , I think I am using the same createrepo version as the release process does. As you can see, compat packages are not pulled from there.

            People

              danblack Daniel Black
              danblack Daniel Black
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

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