# HG changeset patch # User Alain Mazy # Date 1764339161 -3600 # Node ID 5c6ee778aa4cce02e878446d39ec36987118292d # Parent a07d176a4b584d8cca53525d8838c0170075e366 use libpq 13.1 for AppleClang diff -r a07d176a4b58 -r 5c6ee778aa4c PostgreSQL/NEWS --- a/PostgreSQL/NEWS Fri Nov 28 14:31:16 2025 +0100 +++ b/PostgreSQL/NEWS Fri Nov 28 15:12:41 2025 +0100 @@ -32,7 +32,7 @@ tables. This new column is required for pg_repack to be able to reclaim space on these tables. * Upgraded dependencies for static builds (notably on Windows and LSB): - - libpq 18.1 (replacing libpq 13.1) + - libpq 18.1 (replacing libpq 13.1 - except for macOS universal binaries that still uses 13.1) Release 9.0 (2025-08-13) diff -r a07d176a4b58 -r 5c6ee778aa4c Resources/CMake/PostgreSQLConfiguration.cmake --- a/Resources/CMake/PostgreSQLConfiguration.cmake Fri Nov 28 14:31:16 2025 +0100 +++ b/Resources/CMake/PostgreSQLConfiguration.cmake Fri Nov 28 15:12:41 2025 +0100 @@ -48,13 +48,21 @@ if (STATIC_BUILD OR NOT USE_SYSTEM_LIBPQ) add_definitions(-DORTHANC_POSTGRESQL_STATIC=1) - SET(LIBPQ_MAJOR 18) - SET(LIBPQ_MINOR 1) + if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + SET(LIBPQ_MAJOR 13) + SET(LIBPQ_MINOR 23) + SET(LIBPQ_MD5SUM 86f7b1ace0dc43e993f29a6739a264d8) + else() + SET(LIBPQ_MAJOR 18) + SET(LIBPQ_MINOR 1) + SET(LIBPQ_MD5SUM 523b5e7f7f64d331004fd93d37109aa0) + endif() + SET(LIBPQ_VERSION ${LIBPQ_MAJOR}.${LIBPQ_MINOR}) SET(LIBPQ_SOURCES_DIR ${CMAKE_BINARY_DIR}/postgresql-${LIBPQ_VERSION}) DownloadPackage( - "523b5e7f7f64d331004fd93d37109aa0" + LIBPQ_MD5SUM "https://orthanc.uclouvain.be/downloads/third-party-downloads/postgresql-${LIBPQ_VERSION}.tar.gz" "${LIBPQ_SOURCES_DIR}") @@ -322,7 +330,15 @@ ${AUTOGENERATED_DIR}/pg_config.h.in ${AUTOGENERATED_DIR}/pg_config.h) - + if (LIBPQ_MAJOR STREQUAL "13") + PrepareCMakeConfigurationFile( + ${LIBPQ_SOURCES_DIR}/src/include/pg_config_ext.h.in + ${AUTOGENERATED_DIR}/pg_config_ext.h.in) + + configure_file( + ${AUTOGENERATED_DIR}/pg_config_ext.h.in + ${AUTOGENERATED_DIR}/pg_config_ext.h) + endif() ## ## Generic configuration @@ -349,53 +365,96 @@ ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq ) - set(LIBPQ_SOURCES - # Don't use files from the "src/backend/" folder - ${LIBPQ_SOURCES_DIR}/src/common/base64.c - ${LIBPQ_SOURCES_DIR}/src/common/cryptohash_openssl.c - ${LIBPQ_SOURCES_DIR}/src/common/encnames.c - ${LIBPQ_SOURCES_DIR}/src/common/fe_memutils.c - ${LIBPQ_SOURCES_DIR}/src/common/ip.c - ${LIBPQ_SOURCES_DIR}/src/common/link-canary.c - ${LIBPQ_SOURCES_DIR}/src/common/jsonapi.c - ${LIBPQ_SOURCES_DIR}/src/common/md5.c - ${LIBPQ_SOURCES_DIR}/src/common/md5_common.c - ${LIBPQ_SOURCES_DIR}/src/common/pg_prng.c - ${LIBPQ_SOURCES_DIR}/src/common/psprintf.c - ${LIBPQ_SOURCES_DIR}/src/common/saslprep.c - ${LIBPQ_SOURCES_DIR}/src/common/scram-common.c - ${LIBPQ_SOURCES_DIR}/src/common/hmac_openssl.c - ${LIBPQ_SOURCES_DIR}/src/common/string.c - ${LIBPQ_SOURCES_DIR}/src/common/stringinfo.c - ${LIBPQ_SOURCES_DIR}/src/common/unicode_norm.c - ${LIBPQ_SOURCES_DIR}/src/common/wchar.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth-oauth.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth-scram.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-cancel.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-connect.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-exec.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-lobj.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-misc.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-print.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-protocol3.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure-common.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure-openssl.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-trace.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/libpq-events.c - ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/pqexpbuffer.c - ${LIBPQ_SOURCES_DIR}/src/port/chklocale.c - ${LIBPQ_SOURCES_DIR}/src/port/explicit_bzero.c - ${LIBPQ_SOURCES_DIR}/src/port/inet_net_ntop.c - ${LIBPQ_SOURCES_DIR}/src/port/noblock.c - ${LIBPQ_SOURCES_DIR}/src/port/pg_strong_random.c - ${LIBPQ_SOURCES_DIR}/src/port/pg_bitutils.c - ${LIBPQ_SOURCES_DIR}/src/port/pgstrcasecmp.c - ${LIBPQ_SOURCES_DIR}/src/port/pqsignal.c - ${LIBPQ_SOURCES_DIR}/src/port/snprintf.c - ${LIBPQ_SOURCES_DIR}/src/port/strerror.c - ) + if (LIBPQ_MAJOR STREQUAL "18") + + set(LIBPQ_SOURCES + # Don't use files from the "src/backend/" folder + ${LIBPQ_SOURCES_DIR}/src/common/base64.c + ${LIBPQ_SOURCES_DIR}/src/common/cryptohash_openssl.c + ${LIBPQ_SOURCES_DIR}/src/common/encnames.c + ${LIBPQ_SOURCES_DIR}/src/common/fe_memutils.c + ${LIBPQ_SOURCES_DIR}/src/common/ip.c + ${LIBPQ_SOURCES_DIR}/src/common/link-canary.c + ${LIBPQ_SOURCES_DIR}/src/common/jsonapi.c + ${LIBPQ_SOURCES_DIR}/src/common/md5.c + ${LIBPQ_SOURCES_DIR}/src/common/md5_common.c + ${LIBPQ_SOURCES_DIR}/src/common/pg_prng.c + ${LIBPQ_SOURCES_DIR}/src/common/psprintf.c + ${LIBPQ_SOURCES_DIR}/src/common/saslprep.c + ${LIBPQ_SOURCES_DIR}/src/common/scram-common.c + ${LIBPQ_SOURCES_DIR}/src/common/hmac_openssl.c + ${LIBPQ_SOURCES_DIR}/src/common/string.c + ${LIBPQ_SOURCES_DIR}/src/common/stringinfo.c + ${LIBPQ_SOURCES_DIR}/src/common/unicode_norm.c + ${LIBPQ_SOURCES_DIR}/src/common/wchar.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth-oauth.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth-scram.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-cancel.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-connect.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-exec.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-lobj.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-misc.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-print.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-protocol3.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure-common.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure-openssl.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-trace.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/libpq-events.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/pqexpbuffer.c + ${LIBPQ_SOURCES_DIR}/src/port/chklocale.c + ${LIBPQ_SOURCES_DIR}/src/port/explicit_bzero.c + ${LIBPQ_SOURCES_DIR}/src/port/inet_net_ntop.c + ${LIBPQ_SOURCES_DIR}/src/port/noblock.c + ${LIBPQ_SOURCES_DIR}/src/port/pg_strong_random.c + ${LIBPQ_SOURCES_DIR}/src/port/pg_bitutils.c + ${LIBPQ_SOURCES_DIR}/src/port/pgstrcasecmp.c + ${LIBPQ_SOURCES_DIR}/src/port/pqsignal.c + ${LIBPQ_SOURCES_DIR}/src/port/snprintf.c + ${LIBPQ_SOURCES_DIR}/src/port/strerror.c + ) + else() + set(LIBPQ_SOURCES + # Don't use files from the "src/backend/" folder + ${LIBPQ_SOURCES_DIR}/src/common/base64.c + ${LIBPQ_SOURCES_DIR}/src/common/encnames.c + ${LIBPQ_SOURCES_DIR}/src/common/ip.c + ${LIBPQ_SOURCES_DIR}/src/common/link-canary.c + ${LIBPQ_SOURCES_DIR}/src/common/md5.c + ${LIBPQ_SOURCES_DIR}/src/common/saslprep.c + ${LIBPQ_SOURCES_DIR}/src/common/scram-common.c + ${LIBPQ_SOURCES_DIR}/src/common/sha2_openssl.c + ${LIBPQ_SOURCES_DIR}/src/common/string.c + ${LIBPQ_SOURCES_DIR}/src/common/unicode_norm.c + ${LIBPQ_SOURCES_DIR}/src/common/wchar.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth-scram.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-auth.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-connect.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-exec.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-lobj.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-misc.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-print.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-protocol2.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-protocol3.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure-common.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure-openssl.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/fe-secure.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/libpq-events.c + ${LIBPQ_SOURCES_DIR}/src/interfaces/libpq/pqexpbuffer.c + ${LIBPQ_SOURCES_DIR}/src/port/chklocale.c + ${LIBPQ_SOURCES_DIR}/src/port/explicit_bzero.c + ${LIBPQ_SOURCES_DIR}/src/port/getaddrinfo.c + ${LIBPQ_SOURCES_DIR}/src/port/inet_net_ntop.c + ${LIBPQ_SOURCES_DIR}/src/port/noblock.c + ${LIBPQ_SOURCES_DIR}/src/port/pg_strong_random.c + ${LIBPQ_SOURCES_DIR}/src/port/pgstrcasecmp.c + ${LIBPQ_SOURCES_DIR}/src/port/pqsignal.c + ${LIBPQ_SOURCES_DIR}/src/port/snprintf.c + ${LIBPQ_SOURCES_DIR}/src/port/strerror.c + ${LIBPQ_SOURCES_DIR}/src/port/thread.c + ) + endif() if (NOT HAVE_STRLCPY) LIST(APPEND LIBPQ_SOURCES