Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
11.8.7
-
None
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.