From f8756b662ff0541a781b9220211fc4a8a858c357 Mon Sep 17 00:00:00 2001 From: Raed Rizqie Date: Thu, 12 Jun 2025 01:48:24 +0800 Subject: [PATCH] soci: update to 4.1.2 (#24538) --- .../001-fix-undefined-reference.patch | 13 ++++ mingw-w64-soci/PKGBUILD | 42 +++++-------- mingw-w64-soci/soci-4.0.0.patch | 63 ------------------- mingw-w64-soci/soci-cmake-sociconfig.patch | 57 ----------------- mingw-w64-soci/soci-tests-catch.patch | 11 ---- 5 files changed, 29 insertions(+), 157 deletions(-) create mode 100644 mingw-w64-soci/001-fix-undefined-reference.patch delete mode 100644 mingw-w64-soci/soci-4.0.0.patch delete mode 100644 mingw-w64-soci/soci-cmake-sociconfig.patch delete mode 100644 mingw-w64-soci/soci-tests-catch.patch diff --git a/mingw-w64-soci/001-fix-undefined-reference.patch b/mingw-w64-soci/001-fix-undefined-reference.patch new file mode 100644 index 0000000000..2b5b9f061b --- /dev/null +++ b/mingw-w64-soci/001-fix-undefined-reference.patch @@ -0,0 +1,13 @@ +diff --git a/src/core/backend-loader.cpp b/src/core/backend-loader.cpp +index 7620c87..0efa041 100644 +--- a/src/core/backend-loader.cpp ++++ b/src/core/backend-loader.cpp +@@ -46,7 +46,7 @@ private: + + typedef HMODULE soci_dynlib_handle_t; + +-extern "C" IMAGE_DOS_HEADER __ImageBase; ++extern "C" { IMAGE_DOS_HEADER __ImageBase; } + + std::string get_this_dynlib_path() + { diff --git a/mingw-w64-soci/PKGBUILD b/mingw-w64-soci/PKGBUILD index bc8fda18d8..ef0039abb6 100644 --- a/mingw-w64-soci/PKGBUILD +++ b/mingw-w64-soci/PKGBUILD @@ -3,8 +3,8 @@ _realname=soci pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=4.0.3 -pkgrel=5 +pkgver=4.1.2 +pkgrel=1 pkgdesc="SOCI - The C++ Database Access Library (mingw-w64)" arch=('any') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') @@ -19,35 +19,25 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-boost" - $([[ ${CARCH} == aarch64 ]] || echo "${MINGW_PACKAGE_PREFIX}-firebird") + "${MINGW_PACKAGE_PREFIX}-firebird" "${MINGW_PACKAGE_PREFIX}-libmariadbclient" "${MINGW_PACKAGE_PREFIX}-postgresql" "${MINGW_PACKAGE_PREFIX}-sqlite3") -optdepends=("${MINGW_PACKAGE_PREFIX}-libmariadbclient: support for MySQL databases" +optdepends=("${MINGW_PACKAGE_PREFIX}-firebird: support for Firebird databases" + "${MINGW_PACKAGE_PREFIX}-libmariadbclient: support for MySQL databases" "${MINGW_PACKAGE_PREFIX}-postgresql: support for PostGreSQL databases" "${MINGW_PACKAGE_PREFIX}-sqlite3: support for SQLite databases") -if [[ ${CARCH} != aarch64 ]]; then - optdepends+=("${MINGW_PACKAGE_PREFIX}-firebird: support for Firebird databases") -fi source=("https://github.com/SOCI/soci/archive/v${pkgver}/${_realname}-${pkgver}.tar.gz" - soci-4.0.0.patch - soci-cmake-sociconfig.patch - soci-tests-catch.patch) -sha256sums=('4b1ff9c8545c5d802fbe06ee6cd2886630e5c03bf740e269bb625b45cf934928' - 'fe7db55531f0d061cced835709065672904bb00d26514e0c323124bab43f2b90' - '65f820a25a8c19e1bd608372f7092db88b2428b529cb05622574527a6ca4591c' - '2490363693b9350527f6e0115123d99fb375f701f7b241992cccb18c59940cb7') + 001-fix-undefined-reference.patch) +sha256sums=('c0974067e57242f21d9a85677c5f6cc7848fba3cbd5ec58d76c95570a5a7a15b' + '93b96f408da20a4775d75483d35ea1f64a7283e7f80fc26881010baebf42c7ad') prepare() { - cd "${srcdir}/${_realname}-${pkgver}" - patch -p1 -i "${srcdir}"/soci-4.0.0.patch - patch -p1 -i "${srcdir}"/soci-cmake-sociconfig.patch - patch -p1 -i "${srcdir}"/soci-tests-catch.patch + cd "${_realname}-${pkgver}" + patch -p1 -i "${srcdir}"/001-fix-undefined-reference.patch } build() { - mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" - declare -a _extra_config if check_option "debug" "n"; then _extra_config+=("-DCMAKE_BUILD_TYPE=Release") @@ -56,20 +46,20 @@ build() { fi MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ - ${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \ + cmake -Wno-dev \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ "${_extra_config[@]}" \ - "../${_realname}-${pkgver}" + -S ${_realname}-${pkgver} \ + -B build-${MSYSTEM} - ${MINGW_PREFIX}/bin/cmake --build . + cmake --build build-${MSYSTEM} } package() { - cd "${srcdir}/build-${MSYSTEM}" - DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install . + DESTDIR="${pkgdir}" cmake --install build-${MSYSTEM} local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX}) - for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/SOCI/*.cmake; do + for _f in "${pkgdir}${MINGW_PREFIX}"/lib/cmake/soci*/*.cmake; do sed -e "s|${PREFIX_WIN}|\$\{_IMPORT_PREFIX\}|g" -i ${_f} done diff --git a/mingw-w64-soci/soci-4.0.0.patch b/mingw-w64-soci/soci-4.0.0.patch deleted file mode 100644 index d95052103b..0000000000 --- a/mingw-w64-soci/soci-4.0.0.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- a/cmake/modules/FindMySQL.cmake -+++ b/cmake/modules/FindMySQL.cmake -@@ -21,9 +21,14 @@ - PATHS - $ENV{MYSQL_INCLUDE_DIR} - $ENV{MYSQL_DIR}/include -+ if(MSVC) - $ENV{ProgramFiles}/MySQL/*/include - $ENV{SystemDrive}/MySQL/*/include - $ENV{ProgramW6432}/MySQL/*/include -+ else() -+ PATH_SUFFIXES -+ mysql -+ endif() - ) - else(WIN32) - find_path(MYSQL_INCLUDE_DIR mysql.h -@@ -55,6 +60,7 @@ - endif(CMAKE_BUILD_TYPE_TOLOWER MATCHES "debug") - - # find_library(MYSQL_LIBRARIES NAMES mysqlclient -+ if(MSVC) - set(MYSQL_LIB_PATHS - $ENV{MYSQL_DIR}/lib/${binary_dist} - $ENV{MYSQL_DIR}/libmysql/${build_dist} -@@ -71,6 +77,15 @@ - PATHS - ${MYSQL_LIB_PATHS} - ) -+ else() -+ set(MYSQL_LIB_PATHS -+ $ENV{MYSQL_DIR}/lib -+ ) -+ find_library(MYSQL_LIBRARIES NAMES mysqlclient -+ PATHS -+ ${MYSQL_LIB_PATHS} -+ ) -+ endif() - else(WIN32) - # find_library(MYSQL_LIBRARIES NAMES mysqlclient - set(MYSQL_LIB_PATHS ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -137,7 +137,7 @@ - message(FATAL_ERROR "No thread library found") - endif() - --if(NOT MSVC) -+if(NOT WIN32) - set(DL_FIND_QUIETLY TRUE) - find_package(DL) - if(DL_FOUND) ---- a/tests/odbc/CMakeLists.txt -+++ b/tests/odbc/CMakeLists.txt -@@ -35,7 +35,7 @@ - SOURCE test-odbc-mysql.cpp ${SOCI_TESTS_COMMON} - CONNSTR "test-mysql.dsn") - --if(WIN32) -+if(SOCI_TARGET_ARCH_X64) - set(TEST_PGSQL_DSN "test-postgresql-win64.dsn") - else() - set(TEST_PGSQL_DSN "test-postgresql.dsn") diff --git a/mingw-w64-soci/soci-cmake-sociconfig.patch b/mingw-w64-soci/soci-cmake-sociconfig.patch deleted file mode 100644 index 6927fbac37..0000000000 --- a/mingw-w64-soci/soci-cmake-sociconfig.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- a/cmake/SociConfig.cmake -+++ b/cmake/SociConfig.cmake -@@ -10,20 +10,20 @@ - - include(CheckCXXSymbolExists) - --if(WIN32) -+if(MSVC) - check_cxx_symbol_exists("_M_AMD64" "" SOCI_TARGET_ARCH_X64) - if(NOT RTC_ARCH_X64) - check_cxx_symbol_exists("_M_IX86" "" SOCI_TARGET_ARCH_X86) - endif(NOT RTC_ARCH_X64) - # add check for arm here - # see http://msdn.microsoft.com/en-us/library/b0084kay.aspx --else(WIN32) -+else() - check_cxx_symbol_exists("__i386__" "" SOCI_TARGET_ARCH_X86) - check_cxx_symbol_exists("__x86_64__" "" SOCI_TARGET_ARCH_X64) - check_cxx_symbol_exists("__arm__" "" SOCI_TARGET_ARCH_ARM) --endif(WIN32) -+endif() - --if(NOT DEFINED LIB_SUFFIX) -+if(NOT DEFINED LIB_SUFFIX AND NOT MINGW) - if(SOCI_TARGET_ARCH_X64) - set(_lib_suffix "64") - else() -@@ -77,6 +77,21 @@ - set(SOCI_GCC_CLANG_COMMON_FLAGS - "-pedantic -Wno-error=parentheses -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Woverloaded-virtual -Wredundant-decls -Wno-long-long") - -+ if (MINGW) -+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE) -+ add_definitions(-D_CRT_SECURE_NO_WARNINGS) -+ add_definitions(-D_CRT_NONSTDC_NO_WARNING) -+ add_definitions(-D_SCL_SECURE_NO_WARNINGS) -+ -+ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") -+ add_definitions(-DCATCH_CONFIG_CPP11_NO_IS_ENUM) -+ endif() -+ -+ set(SOCI_CXX11 ON) -+ set(SOCI_CXX_VERSION_FLAGS "-std=c++14") -+ set(SOCI_GCC_CLANG_COMMON_FLAGS "${SOCI_GCC_CLANG_COMMON_FLAGS} -Wno-deprecated-copy") -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SOCI_GCC_CLANG_COMMON_FLAGS} ${SOCI_CXX_VERSION_FLAGS}") -+ else() - - if (SOCI_CXX11) - set(SOCI_CXX_VERSION_FLAGS "-std=c++11") -@@ -115,6 +130,7 @@ - else() - message(WARNING "Unknown toolset - using default flags to build SOCI") - endif() -+ endif() - - endif() - diff --git a/mingw-w64-soci/soci-tests-catch.patch b/mingw-w64-soci/soci-tests-catch.patch deleted file mode 100644 index 6e4d412d00..0000000000 --- a/mingw-w64-soci/soci-tests-catch.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/tests/catch.hpp -+++ b/tests/catch.hpp -@@ -7170,7 +7170,7 @@ - namespace Catch { - - struct RandomNumberGenerator { -- typedef std::ptrdiff_t result_type; -+ typedef std::size_t result_type; - - result_type operator()( result_type n ) const { return std::rand() % n; } -