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

Provide multi-version package repositories instead of just latest version only

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.2.12
    • N/A
    • Packaging
    • None
    • Linux with yum/zypper/apt repositories

    Description

      Currently we only provide the latest "point" release of our release series in our rpm and deb repositories only.

      yum and apt-get (probably zypper, too) allow to specify a specific package version instead of the latest one. For this the requested version has to still be available on the repository server, or in the local package cache, though.

      When we recommend to not install the latest version for a while, like we just recently did with MDEV-14799 in some cases, this is only possible by manual download and installation of packages using rpm or dpkg directly, but not via repository tools like apt-get, yum (, zypper?)

      By keeping the last n point releases around, with n > 1, (e.g. 3 or 4 sounds like a sensible amount to me) "do not install the latest for now" would be possible in a much more convenient way.

      Attachments

        Issue Links

          Activity

            hholzgra Hartmut Holzgraefe created issue -
            danblack Daniel Black added a comment -

            hholzgra, there's an example here of a versioned repo https://mariadb.com/kb/en/library/yum/

            Debian/Ubuntu, don't think there's a documented example however http://archive.mariadb.org/mariadb-10.3.3/repo/debian/ probably could be used as the base url.

            danblack Daniel Black added a comment - hholzgra , there's an example here of a versioned repo https://mariadb.com/kb/en/library/yum/ Debian/Ubuntu, don't think there's a documented example however http://archive.mariadb.org/mariadb-10.3.3/repo/debian/ probably could be used as the base url.

            This is not about per-version repos, this is about multi version repos so that e.g.

            apt install mariadb-server=10.2.9

            or

            yum install mariadb-server-10.2.9

            without having to tweak the repository setup itself.

            This would also allow to have per-package version policies, e.g. with MDEV-14799, before it was fixed in 10.2.12, I might have wanted to explicitly install mariadb-server 10.2.10, but would be fine to have the then-current mariadb-10.2.11 client package

            I could then also use "apt-get hold mariadb-server; apt-get upgrade" to upgrade everything but just that one package.

            hholzgra Hartmut Holzgraefe added a comment - This is not about per-version repos, this is about multi version repos so that e.g. apt install mariadb-server=10.2.9 or yum install mariadb-server-10.2.9 without having to tweak the repository setup itself. This would also allow to have per-package version policies, e.g. with MDEV-14799 , before it was fixed in 10.2.12, I might have wanted to explicitly install mariadb-server 10.2.10, but would be fine to have the then-current mariadb-10.2.11 client package I could then also use "apt-get hold mariadb-server; apt-get upgrade" to upgrade everything but just that one package.
            serg Sergei Golubchik made changes -
            Field Original Value New Value
            Assignee Daniel Bartholomew [ dbart ]
            serg Sergei Golubchik made changes -
            Fix Version/s N/A [ 14700 ]

            This would require changing how we build and maintain the repositories. I agree that it would be a good thing to have. The biggest issue is the lack of proper docs on how to do it properly. That was the case the last time I looked into it, maybe it has changed recently. In any case, I'll investigate it.

            dbart Daniel Bartholomew added a comment - This would require changing how we build and maintain the repositories. I agree that it would be a good thing to have. The biggest issue is the lack of proper docs on how to do it properly. That was the case the last time I looked into it, maybe it has changed recently. In any case, I'll investigate it.
            danblack Daniel Black made changes -

            On RedHat/CentOS/Fedora, this appears to be pretty straightforward to do. It requires updates to the script used to create the yum/dnf repositories, but the changes do not appear to be difficult. This will be in place for all future MariaDB releases. If there are no objections, I'll standardize on having the last 4 releases present in the repositories.

            dbart Daniel Bartholomew added a comment - On RedHat/CentOS/Fedora, this appears to be pretty straightforward to do. It requires updates to the script used to create the yum/dnf repositories, but the changes do not appear to be difficult. This will be in place for all future MariaDB releases. If there are no objections, I'll standardize on having the last 4 releases present in the repositories.
            julien.fritsch Julien Fritsch made changes -
            Status Open [ 1 ] Confirmed [ 10101 ]

            The initial version of this is in place for our yum repositories as of the 10.2.14 and 10.1.32 releases. The yum repositories for these releases also contain the previous release in the series (10.2.13 and 10.1.31, respectively). Releases will continue to be added, with none taken out until there are four releases in the repositories and then as new releases come out the oldest version in the repository will be removed.

            Information on how to actually use this (i.e. how to specify older versions in yum and how to query what versions are available) is not in place yet, that will be my next task for this MDEV.

            After the documentation is in place I'll need to add the logic to my mkrepo-yum script for removing old versions as new ones are added, but that won't be needed for probably at least two months (based on our normal release schedule), so it's a lower priority. So after the yum doc updates are done I'll turn my attention to multi-version Debian / Ubuntu repos.

            dbart Daniel Bartholomew added a comment - The initial version of this is in place for our yum repositories as of the 10.2.14 and 10.1.32 releases. The yum repositories for these releases also contain the previous release in the series (10.2.13 and 10.1.31, respectively). Releases will continue to be added, with none taken out until there are four releases in the repositories and then as new releases come out the oldest version in the repository will be removed. Information on how to actually use this (i.e. how to specify older versions in yum and how to query what versions are available) is not in place yet, that will be my next task for this MDEV. After the documentation is in place I'll need to add the logic to my mkrepo-yum script for removing old versions as new ones are added, but that won't be needed for probably at least two months (based on our normal release schedule), so it's a lower priority. So after the yum doc updates are done I'll turn my attention to multi-version Debian / Ubuntu repos.
            julien.fritsch Julien Fritsch made changes -
            Status Confirmed [ 10101 ] In Progress [ 3 ]

            Documentation on how to show available versions and install a specific version added to: https://mariadb.com/kb/en/library/yum/

            dbart Daniel Bartholomew added a comment - Documentation on how to show available versions and install a specific version added to: https://mariadb.com/kb/en/library/yum/

            There's a fork of reprepro that adds support for multi-version deb repositories here. The author says they are working to get his patches merged upstream. I'll install it locally and create some test repos.

            dbart Daniel Bartholomew added a comment - There's a fork of reprepro that adds support for multi-version deb repositories here . The author says they are working to get his patches merged upstream. I'll install it locally and create some test repos.
            dbart Daniel Bartholomew made changes -

            My tests with a locally compiled version of reprepro patched for multiversion and ddeb support have not yielded anything we can use. The binary throws all sorts of errors and refuses to include new packages.

            I will try again later, but for now we're still unable to have multi-version repositories for Debian/Ubuntu.

            dbart Daniel Bartholomew added a comment - My tests with a locally compiled version of reprepro patched for multiversion and ddeb support have not yielded anything we can use. The binary throws all sorts of errors and refuses to include new packages. I will try again later, but for now we're still unable to have multi-version repositories for Debian/Ubuntu.
            dbart Daniel Bartholomew made changes -
            Status In Progress [ 3 ] Stalled [ 10000 ]
            dbart Daniel Bartholomew made changes -
            Status Stalled [ 10000 ] In Progress [ 3 ]

            This was fixed a while ago, but neglected to close the task.

            dbart Daniel Bartholomew added a comment - This was fixed a while ago, but neglected to close the task.
            dbart Daniel Bartholomew made changes -
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]
            dbart Daniel Bartholomew made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 84768 ] MariaDB v4 [ 153525 ]
            dbart Daniel Bartholomew made changes -

            Basically, the fix was to use a patched version of reprepro that adds the multi-version capability and the ability to import Ubuntu's .ddeb packages. A README for how I compiled it is here: https://gist.github.com/dbart/0ba0f991e9b86d472e28e02998fce835

            dbart Daniel Bartholomew added a comment - Basically, the fix was to use a patched version of reprepro that adds the multi-version capability and the ability to import Ubuntu's .ddeb packages. A README for how I compiled it is here: https://gist.github.com/dbart/0ba0f991e9b86d472e28e02998fce835
            mariadb-jira-automation Jira Automation (IT) made changes -
            Zendesk Related Tickets 130595

            People

              dbart Daniel Bartholomew
              hholzgra Hartmut Holzgraefe
              Votes:
              3 Vote for this issue
              Watchers:
              7 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.