MDEV-14560 Extra engines enabled through additional config are not loaded on first installation
RPM solution: Make all server plugins to restart the server when installed. To avoid multiple server restarts, do it only once in posttrans scriptlet. Add support for CPACK_RPM_<component>_POST_TRANS_SCRIPT_FILE
This commit is contained in:
parent
5c83305c4c
commit
21d157abaa
@ -2,6 +2,11 @@
|
|||||||
# Wrapper for CPackRPM.cmake
|
# Wrapper for CPackRPM.cmake
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Support for per-component LICENSE and VENDOR
|
||||||
|
#
|
||||||
|
# per component values, if present, are copied into global CPACK_RPM_PACKAGE_xxx
|
||||||
|
#
|
||||||
macro(set_from_component WHAT)
|
macro(set_from_component WHAT)
|
||||||
set(orig_CPACK_RPM_PACKAGE_${WHAT} ${CPACK_RPM_PACKAGE_${WHAT}})
|
set(orig_CPACK_RPM_PACKAGE_${WHAT} ${CPACK_RPM_PACKAGE_${WHAT}})
|
||||||
if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT})
|
if(CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT})
|
||||||
@ -15,6 +20,33 @@ endmacro()
|
|||||||
set_from_component(LICENSE)
|
set_from_component(LICENSE)
|
||||||
set_from_component(VENDOR)
|
set_from_component(VENDOR)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Support for the %posttrans scriptlet
|
||||||
|
#
|
||||||
|
# the scriptlet, if present, is appended (together with the %posttrans tag)
|
||||||
|
# to the pre-uninstall scriptlet
|
||||||
|
#
|
||||||
|
set(base_time "PRE")
|
||||||
|
set(base_type "UNINSTALL")
|
||||||
|
set(base_var CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_${base_time}_${base_type}_SCRIPT_FILE)
|
||||||
|
set(acc)
|
||||||
|
|
||||||
|
macro(read_one_file time_ type_ tag_)
|
||||||
|
set(var CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_${time_}_${type_}_SCRIPT_FILE)
|
||||||
|
if (${var})
|
||||||
|
file(READ ${${var}} content)
|
||||||
|
set(acc "${tag_}\n${content}\n\n${acc}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
read_one_file("POST" "TRANS" "%posttrans")
|
||||||
|
if (acc)
|
||||||
|
set(orig_${base_var} ${${base_var}})
|
||||||
|
read_one_file(${base_time} ${base_type} "")
|
||||||
|
set(${base_var} ${CPACK_TOPLEVEL_DIRECTORY}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}_${base_time}_${base_type}.scriptlet)
|
||||||
|
file(WRITE ${${base_var}} "${acc}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# load the original CPackRPM.cmake
|
# load the original CPackRPM.cmake
|
||||||
set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
|
set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||||
unset(CMAKE_MODULE_PATH)
|
unset(CMAKE_MODULE_PATH)
|
||||||
@ -23,10 +55,10 @@ set(CMAKE_MODULE_PATH ${orig_CMAKE_MODULE_PATH})
|
|||||||
|
|
||||||
restore(LICENSE)
|
restore(LICENSE)
|
||||||
restore(VENDOR)
|
restore(VENDOR)
|
||||||
|
set(${base_var} ${orig_${base_var}})
|
||||||
|
|
||||||
# per-component cleanup
|
# per-component cleanup
|
||||||
foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV AUTOREQ AUTOREQPROV)
|
foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLICTS AUTOPROV AUTOREQ AUTOREQPROV)
|
||||||
unset(TMP_RPM_${_RPM_SPEC_HEADER})
|
unset(TMP_RPM_${_RPM_SPEC_HEADER})
|
||||||
unset(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
|
unset(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
@ -81,6 +81,7 @@ SET(CPACK_RPM_SPEC_MORE_DEFINE "
|
|||||||
%define _bindir ${INSTALL_BINDIRABS}
|
%define _bindir ${INSTALL_BINDIRABS}
|
||||||
%define _sbindir ${INSTALL_SBINDIRABS}
|
%define _sbindir ${INSTALL_SBINDIRABS}
|
||||||
%define _sysconfdir ${INSTALL_SYSCONFDIR}
|
%define _sysconfdir ${INSTALL_SYSCONFDIR}
|
||||||
|
%define restart_flag %{_localstatedir}/lib/rpm-state/mariadb-restart
|
||||||
")
|
")
|
||||||
|
|
||||||
# this creative hack is described here: http://www.cmake.org/pipermail/cmake/2012-January/048416.html
|
# this creative hack is described here: http://www.cmake.org/pipermail/cmake/2012-January/048416.html
|
||||||
@ -179,6 +180,7 @@ SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/r
|
|||||||
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
|
SET(CPACK_RPM_server_PRE_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-preun.sh)
|
||||||
SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh)
|
SET(CPACK_RPM_server_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postin.sh)
|
||||||
SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh)
|
SET(CPACK_RPM_server_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-postun.sh)
|
||||||
|
SET(CPACK_RPM_server_POST_TRANS_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-posttrans.sh)
|
||||||
SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
SET(CPACK_RPM_shared_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||||
SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
SET(CPACK_RPM_shared_POST_UNINSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||||
SET(CPACK_RPM_compat_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
SET(CPACK_RPM_compat_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/shared-post.sh)
|
||||||
|
@ -243,6 +243,8 @@ MACRO(MYSQL_ADD_PLUGIN)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
INSTALL(FILES ${ARG_CONFIG} COMPONENT ${ARG_COMPONENT} DESTINATION ${INSTALL_SYSCONF2DIR})
|
INSTALL(FILES ${ARG_CONFIG} COMPONENT ${ARG_COMPONENT} DESTINATION ${INSTALL_SYSCONF2DIR})
|
||||||
SET(CPACK_RPM_${ARG_COMPONENT}_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*" PARENT_SCOPE)
|
SET(CPACK_RPM_${ARG_COMPONENT}_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_${ARG_COMPONENT}_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/plugin-postin.sh PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_${ARG_COMPONENT}_POST_TRANS_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-posttrans.sh PARENT_SCOPE)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ELSE()
|
ELSE()
|
||||||
|
2
support-files/rpm/plugin-postin.sh
Normal file
2
support-files/rpm/plugin-postin.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# request the server restart
|
||||||
|
echo > %{restart_flag}
|
11
support-files/rpm/server-posttrans.sh
Normal file
11
support-files/rpm/server-posttrans.sh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
if [ -r %{restart_flag} ] ; then
|
||||||
|
rm %{restart_flag}
|
||||||
|
if [ -x /usr/bin/systemctl ] ; then
|
||||||
|
/usr/bin/systemctl daemon-reload > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# only restart the server if it was alredy running
|
||||||
|
if %{_sysconfdir}/init.d/mysql status > /dev/null 2>&1; then
|
||||||
|
%{_sysconfdir}/init.d/mysql restart
|
||||||
|
fi
|
||||||
|
fi
|
@ -1,10 +1,6 @@
|
|||||||
if [ $1 -ge 1 ]; then
|
if [ $1 -ge 1 ]; then
|
||||||
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
# request the server restart
|
||||||
# only restart the server if it was alredy running
|
echo > %{restart_flag}
|
||||||
if %{_sysconfdir}/init.d/mysql status > /dev/null 2>&1; then
|
|
||||||
%{_sysconfdir}/init.d/mysql restart
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $1 = 0 ] ; then
|
if [ $1 = 0 ] ; then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user