diff --git a/.github/build-mysql-darwin-macos14.sh b/.github/build-mysql-darwin-macos14.sh index 786a20b4..1d0afe74 100755 --- a/.github/build-mysql-darwin-macos14.sh +++ b/.github/build-mysql-darwin-macos14.sh @@ -34,7 +34,7 @@ ACTION_VERSION=$(jq -r '.version' < "$ROOT/../package.json") # system SSL/TLS library is too old. so we use custom build. -if [[ "$MYSQL_VERSION" =~ ^8[.] ]]; then # MySQL 8.0 or later +if [[ "$MYSQL_VERSION" =~ ^[89][.] ]]; then # MySQL 8.0 or later # build OpenSSL v3 export OPENSSL_VERSION=$OPENSSL_VERSION3 echo "::group::download OpenSSL source" diff --git a/.github/build-mysql-darwin.sh b/.github/build-mysql-darwin.sh index 989a9533..0b6fac0b 100755 --- a/.github/build-mysql-darwin.sh +++ b/.github/build-mysql-darwin.sh @@ -24,11 +24,14 @@ esac PREFIX=$RUNNER_TOOL_CACHE/mysql/$MYSQL_VERSION/$MYSQL_ARCH export LDFLAGS=-Wl,-rpath,$PREFIX/lib -# use the latest version of clang installed -CC=$(brew --prefix llvm@15)/bin/clang -export CC -CXX=$(brew --prefix llvm@15)/bin/clang++ -export CXX +# install LLVM +brew install llvm@17 +LLVM_PATH=$(brew --prefix llvm@17) +export PATH="$LLVM_PATH/bin:$PATH" +export LDFLAGS="$LDFLAGS -L$LLVM_PATH/lib" +export CPPFLAGS="$CPPFLAGS -I$LLVM_PATH/include" +export CC=$LLVM_PATH/bin/clang +export CXX=$LLVM_PATH/bin/clang++ # detect the number of CPU Core JOBS=$(sysctl -n hw.logicalcpu_max) @@ -40,7 +43,7 @@ ACTION_VERSION=$(jq -r '.version' < "$ROOT/../package.json") # system SSL/TLS library is too old. so we use custom build. -if [[ "$MYSQL_VERSION" =~ ^8[.] ]]; then # MySQL 8.0 or later +if [[ "$MYSQL_VERSION" =~ ^[89][.] ]]; then # MySQL 8.0 or later # build OpenSSL v3 export OPENSSL_VERSION=$OPENSSL_VERSION3 echo "::group::download OpenSSL source" diff --git a/.github/build-mysql-linux.sh b/.github/build-mysql-linux.sh index 34701766..b1d3428c 100755 --- a/.github/build-mysql-linux.sh +++ b/.github/build-mysql-linux.sh @@ -89,7 +89,7 @@ ACTION_VERSION=$(jq -r '.version' < "$ROOT/../package.json") # system SSL/TLS library is too old. so we use custom build. -if [[ "$MYSQL_VERSION" =~ ^8[.] ]]; then # MySQL 8.0 or later +if [[ "$MYSQL_VERSION" =~ ^[89][.] ]]; then # MySQL 8.0 or later # build OpenSSL v3 export OPENSSL_VERSION=$OPENSSL_VERSION3 echo "::group::download OpenSSL source" diff --git a/.github/build-mysql-windows.ps1 b/.github/build-mysql-windows.ps1 index a745dc97..23da8f31 100755 --- a/.github/build-mysql-windows.ps1 +++ b/.github/build-mysql-windows.ps1 @@ -113,7 +113,7 @@ if ( $MYSQL_VERSION -match '^8[.]') # MySQL 8.0 or later # Bison Write-Host "::group::Set up Bison" -if ( $MYSQL_VERSION -match '^8[.]' ) # MySQL 8.0 or later +if ( $MYSQL_VERSION -match '^[89][.]' ) # MySQL 8.0 or later { choco install winflexbison3 } diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d6d5f650..a10bc055 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,6 +43,7 @@ jobs: - windows-2022 - windows-2019 mysql: + - "9.0" - "8.4" - "8.3" - "8.2" diff --git a/patches/mysql/9.0.0/skip-install-pdb.patch b/patches/mysql/9.0.0/skip-install-pdb.patch new file mode 100644 index 00000000..00798301 --- /dev/null +++ b/patches/mysql/9.0.0/skip-install-pdb.patch @@ -0,0 +1,79 @@ +diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake +index 859715a45c4..3d5c8064531 100644 +--- a/cmake/install_macros.cmake ++++ b/cmake/install_macros.cmake +@@ -22,33 +22,8 @@ + + # For windows: install .pdb file for each target. + MACRO(INSTALL_DEBUG_SYMBOLS target) +- IF(MSVC) +- GET_TARGET_PROPERTY(type ${target} TYPE) +- IF(NOT INSTALL_LOCATION) +- IF(type MATCHES "STATIC_LIBRARY" +- OR type MATCHES "MODULE_LIBRARY" +- OR type MATCHES "SHARED_LIBRARY") +- SET(INSTALL_LOCATION "lib") +- ELSEIF(type MATCHES "EXECUTABLE") +- SET(INSTALL_LOCATION "bin") +- ELSE() +- MESSAGE(FATAL_ERROR +- "cannot determine type of ${target}. Don't now where to install") +- ENDIF() +- ENDIF() +- +- IF(target STREQUAL "mysqld" OR target STREQUAL "mysqlbackup") +- SET(comp Server) +- ELSE() +- SET(comp Debuginfo) +- ENDIF() +- +- # No .pdb file for static libraries. +- IF(NOT type MATCHES "STATIC_LIBRARY") +- INSTALL(FILES $ +- DESTINATION ${INSTALL_LOCATION} COMPONENT ${comp}) +- ENDIF() +- ENDIF() ++# .pdb files are too large to use in GitHub Actions. ++# so skip installing + ENDMACRO() + + +@@ -282,24 +257,7 @@ + MESSAGE(STATUS "Changing RPATH when installing ${debug_target_location}") + ENDIF() + ENDIF() +- +- # For windows, install .pdb files for .exe and .dll files. +- IF(MSVC AND NOT target_type STREQUAL "STATIC_LIBRARY") +- GET_FILENAME_COMPONENT(ext ${debug_target_location} EXT) +- STRING(REPLACE "${ext}" ".pdb" +- debug_pdb_target_location "${debug_target_location}" ) +- IF (RENAME_PARAM) +- STRING(REPLACE "${ext}" ".pdb" pdb_rename "${ARG_RENAME}") +- SET(PDB_RENAME_PARAM RENAME "${pdb_rename}") +- ENDIF() + +- INSTALL(FILES ${debug_pdb_target_location} +- DESTINATION ${ARG_DESTINATION} +- ${PDB_RENAME_PARAM} +- CONFIGURATIONS Release RelWithDebInfo +- COMPONENT ${ARG_COMPONENT} +- OPTIONAL) +- ENDIF() + ENDFUNCTION(INSTALL_DEBUG_TARGET) + + +diff --git a/router/cmake/Plugin.cmake b/router/cmake/Plugin.cmake +index 30ba9fa7eaf..4b49751a124 100644 +--- a/router/cmake/Plugin.cmake ++++ b/router/cmake/Plugin.cmake +@@ -150,9 +150,6 @@ FUNCTION(add_harness_plugin NAME) + INSTALL(TARGETS ${NAME} + RUNTIME DESTINATION ${_option_DESTINATION} + COMPONENT Router) +- INSTALL(FILES $ +- DESTINATION ${_option_DESTINATION} +- COMPONENT Router) + ELSE() + INSTALL(TARGETS ${NAME} + LIBRARY DESTINATION ${_option_DESTINATION} diff --git a/t/ssl.t b/t/ssl.t index 53d2862e..126109e2 100644 --- a/t/ssl.t +++ b/t/ssl.t @@ -10,7 +10,7 @@ use File::Spec; my ($version, $distribution) = detect_version('root', 'very-very-secret'); my @ssl_options = ('--ssl'); if ($distribution eq 'mysql') { - if ($version =~ /^(?:8\.[0-9]\.|5\.7\.)/) { + if ($version =~ /^(?:[1-9][0-9]\.|[89]\.|5\.7\.)/) { # --ssl-mode is available from MySQL 5.7 @ssl_options = ('--ssl-mode=REQUIRED'); } else { diff --git a/versions/mysql.json b/versions/mysql.json index 6cde39a0..febd4b41 100644 --- a/versions/mysql.json +++ b/versions/mysql.json @@ -1,4 +1,5 @@ [ + "9.0.0", "8.4.0", "8.3.0", "8.2.0",