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

missing client plugins when mariadb-shared is not installed

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 10.0.17
    • Fix Version/s: 10.0.20
    • Component/s: Packaging, Platform RedHat
    • Labels:
      None
    • Environment:
      Linux, Fedora
    • Sprint:
      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.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

              Hide
              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.

              Show
              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.
              Hide
              hhorak Honza Horak added a comment -

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

              Show
              hhorak Honza Horak added a comment - Dynamic linking sounds fine to me. Just ad 1) that separate package could be MariaDB-common, right?
              Hide
              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.

              Show
              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.
              Hide
              serg Sergei Golubchik added a comment -

              Honza Horak, 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?

              Show
              serg Sergei Golubchik added a comment - Honza Horak , 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?
              Hide
              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.

              Show
              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.
              Hide
              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

              Show
              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

                People

                • Assignee:
                  serg Sergei Golubchik
                  Reporter:
                  hhorak Honza Horak
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - 0 minutes
                    0m
                    Logged:
                    Time Spent - 30 minutes
                    30m

                      Agile