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

server cannot load client plugins on Debian

Details

    Description

      The problem is that client plugins are installed into /usr/lib/${DEB_HOST_MULTIARCH}/libmariadb3/plugin while server expects all plugins (server and client) to be in /usr/lib/mysql/plugin.

      A simple solution that doesn't require moving any plugins anywhere and keeps server ownership of /usr/lib/mysql/plugin would be to symlink client plugins into /usr/lib/mysql/plugin.

      Otto commented on this approach:

      Indeed, symbolic links should be fairly backwards compatible and safe
      to introduce. I can't come up with any downsides immediately.

      I tested that now in
      https://salsa.debian.org/mariadb-team/mariadb-server/-/merge_requests/94
      but it would be better if those symbolic links were generated by CMake
      in a uniform way to all platforms, and the Debian packaging only
      needed to include existing files instead of generating them.

      Attachments

        Issue Links

          Activity

            copying over comment by serg from MDEV-35835 which was closed as being a duplicate of this one:

            It seems that the easiest would be to add something like --client-plugin-dir (or --plugin-dir=server_path:client_path to avoid adding a new option)

            or we can have post-install script in mariadb-server that symlinks client plugins into the server dir

            Personally I would prefer the

            --plugin-dir=server_path:client_path

            idea to have a search path instead of a single directory, that would also allow for having 3rd party plugins under eg. the /opt or /usr/local hierarchies yet still being able to be loaded as a plugin without "polluting" the /usr system hierarchy ...

            hholzgra Hartmut Holzgraefe added a comment - copying over comment by serg from MDEV-35835 which was closed as being a duplicate of this one: It seems that the easiest would be to add something like --client-plugin-dir (or --plugin-dir=server_path:client_path to avoid adding a new option) or we can have post-install script in mariadb-server that symlinks client plugins into the server dir Personally I would prefer the --plugin-dir=server_path:client_path idea to have a search path instead of a single directory, that would also allow for having 3rd party plugins under eg. the /opt or /usr/local hierarchies yet still being able to be loaded as a plugin without "polluting" the /usr system hierarchy ...

            To clarify, I specifically meant --plugin-dir=server_path:client_path. That is there can be at most two paths, and if there are two, the first is for server plugins, while the second is for client plugins. No PATH-like list of paths to search.

            A search path, surely, is an option too, and it has more applications, as you show. But I was only listing simplest solutions. A search path is more complex (but perhaps your extra applications will make it worth the troubles)

            serg Sergei Golubchik added a comment - To clarify, I specifically meant --plugin-dir=server_path:client_path . That is there can be at most two paths, and if there are two, the first is for server plugins, while the second is for client plugins. No PATH-like list of paths to search. A search path, surely, is an option too, and it has more applications, as you show. But I was only listing simplest solutions. A search path is more complex (but perhaps your extra applications will make it worth the troubles)

            People

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