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

missing client plugins when mariadb-shared is not installed

Details

    • 10.0.20

    Description

      I've installed only the following packages:
      MariaDB-common-10.0.17-1.fc20.x86_64
      MariaDB-client-10.0.17-1.fc20.x86_64

      and tried to use auth_pam.so plugin. I got the following error:

      ERROR 2059 (HY000): Authentication plugin 'dialog' cannot be loaded: /usr/lib64/mysql/plugin/dialog.so: cannot open shared object file: No such file or directory

      ...simply because the dialog.so is packaged in MariaDB-shared RPM.

      Attachments

        Issue Links

          Activity

            hhorak Honza Horak created issue -
            serg Sergei Golubchik added a comment - - edited

            In a sense, it's correct. Because dialog.so plugin is loaded by libmysqlclient.so, so they're packaged together.

            But client tools from MariaDB-client are linked with libmysqlclient.a statically. That's why they work and don't require MariaDB-shared.

            I see two possible fixes for this:

            1. move client plugins to a separate package, and both MariaDB-client and MariaDB-shared will require it
            2. link command-line clients dynamically with libmysqlclient.so (it's MDEV-290)

            I'd generally prefer the second solution, many fine-grained packages are, in my opinion, confusing for users, and linking dynamically is just The Right Thing.

            serg Sergei Golubchik added a comment - - edited In a sense, it's correct. Because dialog.so plugin is loaded by libmysqlclient.so, so they're packaged together. But client tools from MariaDB-client are linked with libmysqlclient.a statically. That's why they work and don't require MariaDB-shared. I see two possible fixes for this: move client plugins to a separate package, and both MariaDB-client and MariaDB-shared will require it link command-line clients dynamically with libmysqlclient.so (it's MDEV-290 ) I'd generally prefer the second solution, many fine-grained packages are, in my opinion, confusing for users, and linking dynamically is just The Right Thing.
            hhorak Honza Horak added a comment -

            Dynamic linking sounds fine to me. Just ad 1) that separate package could be MariaDB-common, right?

            hhorak Honza Horak added a comment - Dynamic linking sounds fine to me. Just ad 1) that separate package could be MariaDB-common, right?

            MariaDB-common is for files that are used both by the client and the server. So far I believed that client-side plugins are only used by the client. But now I'm thinking that in replication a server just might need them too. I'll see if that's right, and if yes — sure, I'll move client plugins to MariaDB-common.

            serg Sergei Golubchik added a comment - MariaDB-common is for files that are used both by the client and the server. So far I believed that client-side plugins are only used by the client. But now I'm thinking that in replication a server just might need them too. I'll see if that's right, and if yes — sure, I'll move client plugins to MariaDB-common.
            serg Sergei Golubchik made changes -
            Field Original Value New Value
            Assignee Sergei Golubchik [ serg ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.0 [ 16000 ]

            hhorak, do I need to set obsoletes/conflicts somehow when moving files between packages? like new -common conflicts with the old -shared, or something like that?

            serg Sergei Golubchik added a comment - hhorak , do I need to set obsoletes/conflicts somehow when moving files between packages? like new -common conflicts with the old -shared, or something like that?
            ratzpo Rasmus Johansson (Inactive) made changes -
            Workflow MariaDB v2 [ 60108 ] MariaDB v3 [ 64605 ]
            serg Sergei Golubchik made changes -
            Sprint 10.0.20 [ 5 ]
            serg Sergei Golubchik made changes -
            Rank Ranked higher
            hhorak Honza Horak added a comment -

            Yey, so big delay.. I don't think any obsoletes/conflicts changes are necessary in this case, the only important thing here are the Requires from -server and other packages, so all the packages have all necessary pieces installed if needed.

            hhorak Honza Horak added a comment - Yey, so big delay.. I don't think any obsoletes/conflicts changes are necessary in this case, the only important thing here are the Requires from -server and other packages, so all the packages have all necessary pieces installed if needed.
            serg Sergei Golubchik made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            serg Sergei Golubchik made changes -
            Component/s Platform RedHat [ 11302 ]
            Fix Version/s 10.0.20 [ 19201 ]
            Fix Version/s 10.0 [ 16000 ]
            Resolution Fixed [ 1 ]
            Status In Progress [ 3 ] Closed [ 6 ]

            Ok, fixed.

            I've only fixed RPMs, because DEBs are much more fragile and I don't want to break them. We will do this fix in DEB packages later, after MDEV-3809

            serg Sergei Golubchik added a comment - Ok, fixed. I've only fixed RPMs, because DEBs are much more fragile and I don't want to break them. We will do this fix in DEB packages later, after MDEV-3809
            serg Sergei Golubchik made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 64605 ] MariaDB v4 [ 148891 ]

            People

              serg Sergei Golubchik
              hhorak Honza Horak
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.