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

plugin/auth_pam/testing/CMakeLists.txt: MDEV-38913 breaks INSTALL_MYSQLTESTDIR= suppression of pam_mariadb_mtr.so

    XMLWordPrintable

Details

    Description

      on

      env:

      $ distro
      	Name: Fedora Linux 44 (Forty Four)
      	Version: 44
      	Codename:
      $ gcc --version
      	gcc (GCC) 16.1.1 20260501 (Red Hat 16.1.1-1)
      $ ninja --version
      	1.13.2
      $ cmake --version
      	cmake version 4.3.0
      $
      

      build:

      cmake --install mdb-build -DINSTALL_MYSQLTESTDIR=
      

      fails:

      + rm /builddir/build/BUILDROOT/suite/plugins/pam/pam_mariadb_mtr.so
      rm: cannot remove '.../suite/plugins/pam/pam_mariadb_mtr.so': No such file or directory
      error: Bad exit status from /var/tmp/rpm-tmp.aF7jSh (%install)
      

      source:
      `plugin/auth_pam/testing/CMakeLists.txt`

      11.8.6:

      IF (NOT DEB)
        SET(dest DESTINATION "${INSTALL_MYSQLTESTDIR}/suite/plugins/pam" COMPONENT Test)
        INSTALL(TARGETS pam_mariadb_mtr ${dest})
        INSTALL(FILES mariadb_mtr.conf RENAME mariadb_mtr ${dest})
      ENDIF()
      

      With `-DINSTALL_MYSQLTESTDIR=` (empty), neither file was installed.

      looks like

      	MDEV-38913
      	11.8.7 [7efbb0d]
      	https://github.com/MariaDB/server/commit/7efbb0d0b267a9548d58574179bac056a173931f
      

      moved `pam_mariadb_mtr.so` to `${INSTALL_PLUGINDIR}/test_pam_modules` to support Debian CI:

      -IF (NOT DEB)
      -  SET(dest DESTINATION "${INSTALL_MYSQLTESTDIR}/suite/plugins/pam" COMPONENT Test)
      -  INSTALL(TARGETS pam_mariadb_mtr ${dest})
      -  INSTALL(FILES mariadb_mtr.conf RENAME mariadb_mtr ${dest})
      -ENDIF()
      +SET(PAM_MARIADB_MTR_LOCATON ${INSTALL_PLUGINDIR}/test_pam_modules)
      +INSTALL(TARGETS pam_mariadb_mtr DESTINATION ${PAM_MARIADB_MTR_LOCATON} COMPONENT Test)
      +CONFIGURE_FILE(mariadb_mtr.conf mariadb_mtr)
      +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb_mtr DESTINATION "${INSTALL_MYSQLTESTDIR}/suite/plugins/pam" COMPONENT Test)
      

      `pam_mariadb_mtr.so` now installs unconditionally to `${INSTALL_PLUGINDIR}/test_pam_modules` regardless of `INSTALL_MYSQLTESTDIR`, breaking builds that rely on `-DINSTALL_MYSQLTESTDIR=` to suppress test file installation.

      addint a gate to `pam_mariadb_mtr.so` install on `INSTALL_MYSQLTESTDIR` in `plugin/auth_pam/testing/CMakeLists.txt`:

      -SET(PAM_MARIADB_MTR_LOCATON ${INSTALL_PLUGINDIR}/test_pam_modules)
      -INSTALL(TARGETS pam_mariadb_mtr DESTINATION ${PAM_MARIADB_MTR_LOCATON} COMPONENT Test)
      -CONFIGURE_FILE(mariadb_mtr.conf mariadb_mtr)
      -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb_mtr DESTINATION "${INSTALL_MYSQLTESTDIR}/suite/plugins/pam" COMPONENT Test)
      +IF(INSTALL_MYSQLTESTDIR)
      +  SET(PAM_MARIADB_MTR_LOCATON ${INSTALL_PLUGINDIR}/test_pam_modules)
      +  INSTALL(TARGETS pam_mariadb_mtr DESTINATION ${PAM_MARIADB_MTR_LOCATON} COMPONENT Test)
      +  CONFIGURE_FILE(mariadb_mtr.conf mariadb_mtr)
      +  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb_mtr DESTINATION "${INSTALL_MYSQLTESTDIR}/suite/plugins/pam" COMPONENT Test)
      +ENDIF()
      

      does the trick.

      build's good here.

      Attachments

        Activity

          People

            danblack Daniel Black
            pgnd pgnd
            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.