From 6959b4cbb9390d1404848f776926b593d038b0b1 Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Thu, 11 Sep 2025 12:33:17 -0400 Subject: [PATCH 1/7] PHPC-2611: Bump libmongoc to 2.1.2 --- .../config/generated/build/build-libmongoc.yml | 4 ++-- .../config/templates/build/build-libmongoc.yml | 4 ++-- config.m4 | 16 ++++++++-------- config.w32 | 12 ++++++------ src/libmongoc | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.evergreen/config/generated/build/build-libmongoc.yml b/.evergreen/config/generated/build/build-libmongoc.yml index 7149f612e..5ea3a68b1 100644 --- a/.evergreen/config/generated/build/build-libmongoc.yml +++ b/.evergreen/config/generated/build/build-libmongoc.yml @@ -12,7 +12,7 @@ tasks: - func: "compile driver" vars: PHP_VERSION: "8.4" - LIBMONGOC_VERSION: "2.0.2" + LIBMONGOC_VERSION: "2.1.2" - func: "upload build" - name: "build-php-8.4-libmongoc-next-stable" @@ -21,7 +21,7 @@ tasks: - func: "compile driver" vars: PHP_VERSION: "8.4" - LIBMONGOC_VERSION: "r2.0" + LIBMONGOC_VERSION: "r2.1" - func: "upload build" - name: "build-php-8.4-libmongoc-latest" diff --git a/.evergreen/config/templates/build/build-libmongoc.yml b/.evergreen/config/templates/build/build-libmongoc.yml index 7134dd55a..9c4643be4 100644 --- a/.evergreen/config/templates/build/build-libmongoc.yml +++ b/.evergreen/config/templates/build/build-libmongoc.yml @@ -10,7 +10,7 @@ - func: "compile driver" vars: PHP_VERSION: "%phpVersion%" - LIBMONGOC_VERSION: "2.0.2" + LIBMONGOC_VERSION: "2.1.2" - func: "upload build" - name: "build-php-%phpVersion%-libmongoc-next-stable" @@ -19,7 +19,7 @@ - func: "compile driver" vars: PHP_VERSION: "%phpVersion%" - LIBMONGOC_VERSION: "r2.0" + LIBMONGOC_VERSION: "r2.1" - func: "upload build" - name: "build-php-%phpVersion%-libmongoc-latest" diff --git a/config.m4 b/config.m4 index 40e6b862a..4e7112307 100644 --- a/config.m4 +++ b/config.m4 @@ -243,7 +243,7 @@ if test "$PHP_MONGODB" != "no"; then PHP_MONGODB_MONGOCRYPT_VERSION_STRING="None" if test "$PHP_MONGODB_SYSTEM_LIBS" != "no"; then - PKG_CHECK_MODULES([PHP_MONGODB_BSON], [bson2 >= 2.0.2], [ + PKG_CHECK_MODULES([PHP_MONGODB_BSON], [bson2 >= 2.1.2], [ PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG bson2 --modversion` PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)" @@ -251,10 +251,10 @@ if test "$PHP_MONGODB" != "no"; then PHP_EVAL_LIBLINE($PHP_MONGODB_BSON_LIBS, MONGODB_SHARED_LIBADD) AC_DEFINE(HAVE_SYSTEM_LIBBSON, 1, [Use system libbson]) ],[ - AC_MSG_ERROR([Could not find system library for libbson >= 2.0.2]) + AC_MSG_ERROR([Could not find system library for libbson >= 2.1.2]) ]) - PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [mongoc2 >= 2.0.2], [ + PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [mongoc2 >= 2.1.2], [ PHP_MONGODB_MONGOC_VERSION=`$PKG_CONFIG mongoc2 --modversion` PHP_MONGODB_MONGOC_VERSION_STRING="System ($PHP_MONGODB_MONGOC_VERSION)" @@ -262,7 +262,7 @@ if test "$PHP_MONGODB" != "no"; then PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOC_LIBS, MONGODB_SHARED_LIBADD) AC_DEFINE(HAVE_SYSTEM_LIBMONGOC, 1, [Use system libmongoc]) ],[ - AC_MSG_ERROR(Could not find system library for libmongoc >= 2.0.2) + AC_MSG_ERROR(Could not find system library for libmongoc >= 2.1.2) ]) if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" != "no"; then @@ -359,9 +359,9 @@ if test "$PHP_MONGODB" != "no"; then dnl Sources below are updated by scripts/update-submodule-sources.php PHP_MONGODB_COMMON_SOURCES="common-atomic.c common-b64.c common-json.c common-md5.c common-oid.c common-string.c common-thread.c" PHP_MONGODB_KMS_MESSAGE_SOURCES="hexlify.c kms_azure_request.c kms_b64.c kms_caller_identity_request.c kms_crypto_apple.c kms_crypto_libcrypto.c kms_crypto_none.c kms_crypto_windows.c kms_decrypt_request.c kms_encrypt_request.c kms_gcp_request.c kms_kmip_reader_writer.c kms_kmip_request.c kms_kmip_response.c kms_kmip_response_parser.c kms_kv_list.c kms_message.c kms_port.c kms_request.c kms_request_opt.c kms_request_str.c kms_response.c kms_response_parser.c sort.c" - PHP_MONGODB_BSON_SOURCES="bcon.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-vector.c bson-version-functions.c bson-writer.c validate.c" + PHP_MONGODB_BSON_SOURCES="bson-bcon.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-vector.c bson-version-functions.c bson-writer.c error.c memory.c validate.c" PHP_MONGODB_JSONSL_SOURCES="jsonsl.c" - PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-init.c mongoc-interrupt.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c" + PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-init.c mongoc-interrupt.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-oidc-callback.c mongoc-oidc-env.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c" PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c" PHP_MONGODB_ZLIB_SOURCES="adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c" @@ -395,8 +395,8 @@ if test "$PHP_MONGODB" != "no"; then AC_CONFIG_FILES([ ${ac_config_dir}/src/libmongoc/src/common/src/common-config.h - ${ac_config_dir}/src/libmongoc/src/libbson/src/bson/bson-config.h - ${ac_config_dir}/src/libmongoc/src/libbson/src/bson/bson-version.h + ${ac_config_dir}/src/libmongoc/src/libbson/src/bson/config.h + ${ac_config_dir}/src/libmongoc/src/libbson/src/bson/version.h ${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h ${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h ]) diff --git a/config.w32 b/config.w32 index 898f52488..b37f78098 100644 --- a/config.w32 +++ b/config.w32 @@ -109,9 +109,9 @@ if (PHP_MONGODB != "no") { // Sources below are updated by scripts/update-submodule-sources.php var PHP_MONGODB_COMMON_SOURCES="common-atomic.c common-b64.c common-json.c common-md5.c common-oid.c common-string.c common-thread.c" var PHP_MONGODB_KMS_MESSAGE_SOURCES="hexlify.c kms_azure_request.c kms_b64.c kms_caller_identity_request.c kms_crypto_apple.c kms_crypto_libcrypto.c kms_crypto_none.c kms_crypto_windows.c kms_decrypt_request.c kms_encrypt_request.c kms_gcp_request.c kms_kmip_reader_writer.c kms_kmip_request.c kms_kmip_response.c kms_kmip_response_parser.c kms_kv_list.c kms_message.c kms_port.c kms_request.c kms_request_opt.c kms_request_str.c kms_response.c kms_response_parser.c sort.c"; - var PHP_MONGODB_BSON_SOURCES="bcon.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-error.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-memory.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-vector.c bson-version-functions.c bson-writer.c validate.c"; + var PHP_MONGODB_BSON_SOURCES="bson-bcon.c bson.c bson-clock.c bson-context.c bson-decimal128.c bson-iso8601.c bson-iter.c bson-json.c bson-keys.c bson-oid.c bson-reader.c bson-string.c bson-timegm.c bson-utf8.c bson-value.c bson-vector.c bson-version-functions.c bson-writer.c error.c memory.c validate.c"; var PHP_MONGODB_JSONSL_SOURCES="jsonsl.c"; - var PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-init.c mongoc-interrupt.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c"; + var PHP_MONGODB_MONGOC_SOURCES="mcd-azure.c mcd-nsinfo.c mcd-rpc.c mongoc-aggregate.c mongoc-apm.c mongoc-array.c mongoc-async.c mongoc-async-cmd.c mongoc-buffer.c mongoc-bulk-operation.c mongoc-bulkwrite.c mongoc-change-stream.c mongoc-client.c mongoc-client-pool.c mongoc-client-session.c mongoc-client-side-encryption.c mongoc-cluster-aws.c mongoc-cluster.c mongoc-cluster-cyrus.c mongoc-cluster-sasl.c mongoc-cluster-sspi.c mongoc-cmd.c mongoc-collection.c mongoc-compression.c mongoc-counters.c mongoc-crypt.c mongoc-crypto.c mongoc-crypto-cng.c mongoc-crypto-common-crypto.c mongoc-crypto-openssl.c mongoc-cursor-array.c mongoc-cursor.c mongoc-cursor-change-stream.c mongoc-cursor-cmd.c mongoc-cursor-cmd-deprecated.c mongoc-cursor-find.c mongoc-cursor-find-cmd.c mongoc-cursor-find-opquery.c mongoc-cursor-legacy.c mongoc-cyrus.c mongoc-database.c mongoc-deprioritized-servers.c mongoc-error.c mongoc-find-and-modify.c mongoc-flags.c mongoc-generation-map.c mongoc-gridfs-bucket.c mongoc-gridfs-bucket-file.c mongoc-gridfs.c mongoc-gridfs-file.c mongoc-gridfs-file-list.c mongoc-gridfs-file-page.c mongoc-handshake.c mongoc-host-list.c mongoc-http.c mongoc-init.c mongoc-interrupt.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log-and-monitor-private.c mongoc-log.c mongoc-memcmp.c mongoc-ocsp-cache.c mongoc-oidc-callback.c mongoc-oidc-env.c mongoc-opcode.c mongoc-openssl.c mongoc-optional.c mongoc-opts.c mongoc-opts-helpers.c mongoc-queue.c mongoc-rand-cng.c mongoc-rand-common-crypto.c mongoc-rand-openssl.c mongoc-read-concern.c mongoc-read-prefs.c mongoc-rpc.c mongoc-sasl.c mongoc-scram.c mongoc-secure-channel.c mongoc-secure-transport.c mongoc-server-api.c mongoc-server-description.c mongoc-server-monitor.c mongoc-server-stream.c mongoc-set.c mongoc-shared.c mongoc-socket.c mongoc-ssl.c mongoc-sspi.c mongoc-stream-buffered.c mongoc-stream.c mongoc-stream-file.c mongoc-stream-gridfs.c mongoc-stream-gridfs-download.c mongoc-stream-gridfs-upload.c mongoc-stream-socket.c mongoc-stream-tls.c mongoc-stream-tls-openssl-bio.c mongoc-stream-tls-openssl.c mongoc-stream-tls-secure-channel.c mongoc-stream-tls-secure-transport.c mongoc-structured-log.c mongoc-timeout.c mongoc-topology-background-monitoring.c mongoc-topology.c mongoc-topology-description-apm.c mongoc-topology-description.c mongoc-topology-scanner.c mongoc-ts-pool.c mongoc-uri.c mongoc-util.c mongoc-version-functions.c mongoc-write-command.c mongoc-write-concern.c service-gcp.c"; var PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c"; EXTENSION("mongodb", "php_phongo.c", null, PHP_MONGODB_CFLAGS); @@ -142,14 +142,14 @@ if (PHP_MONGODB != "no") { }; mongodb_generate_header( - configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/bson-config.h.in", - configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/bson-config.h", + configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/config.h.in", + configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/config.h", bson_opts ); mongodb_generate_header( - configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/bson-version.h.in", - configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/bson-version.h", + configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/version.h.in", + configure_module_dirname + "/src/libmongoc/src/libbson/src/bson/version.h", mongodb_parse_libmongoc_version_file("libbson_") ); diff --git a/src/libmongoc b/src/libmongoc index d94ed7a50..81c27ddad 160000 --- a/src/libmongoc +++ b/src/libmongoc @@ -1 +1 @@ -Subproject commit d94ed7a504c227fa8a69d979abff485174f3cf5d +Subproject commit 81c27ddadd54e80d9743dee0e8b7a0a862aa6ab5 From 3e0686393180eeb0b73afc7c2e9cfe7102466912 Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Fri, 12 Sep 2025 11:25:10 -0400 Subject: [PATCH 2/7] PHPC-2626: Bump libmongocrypt to 1.16.0 This pulls in changes from MONGOCRYPT-845, which are necessary to produce a static build with both libmongoc 2.1.x and libmongocrypt (due to a conflict in the "mlib" headers). --- config.m4 | 6 +++--- config.w32 | 2 +- src/LIBMONGOCRYPT_VERSION_CURRENT | 2 +- src/libmongocrypt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config.m4 b/config.m4 index 4e7112307..e8e115cd7 100644 --- a/config.m4 +++ b/config.m4 @@ -266,7 +266,7 @@ if test "$PHP_MONGODB" != "no"; then ]) if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" != "no"; then - PKG_CHECK_MODULES([PHP_MONGODB_MONGOCRYPT], [libmongocrypt >= 1.14.1], [ + PKG_CHECK_MODULES([PHP_MONGODB_MONGOCRYPT], [libmongocrypt >= 1.16.0], [ PHP_MONGODB_MONGOCRYPT_VERSION=`$PKG_CONFIG libmongocrypt --modversion` PHP_MONGODB_MONGOCRYPT_VERSION_STRING="System ($PHP_MONGODB_MONGOCRYPT_VERSION)" @@ -274,7 +274,7 @@ if test "$PHP_MONGODB" != "no"; then PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOCRYPT_LIBS, MONGODB_SHARED_LIBADD) AC_DEFINE(HAVE_SYSTEM_LIBMONGOCRYPT, 1, [Use system libmongocrypt]) ],[ - AC_MSG_ERROR(Could not find system library for libmongocrypt >= 1.14.1) + AC_MSG_ERROR(Could not find system library for libmongocrypt >= 1.16.0) ]) fi fi @@ -426,7 +426,7 @@ if test "$PHP_MONGODB" != "no"; then AC_SUBST(MONGOCRYPT_ENABLE_TRACE, 1) dnl Sources below are updated by scripts/update-submodule-sources.php - PHP_MONGODB_MONGOCRYPT_SOURCES="mc-array.c mc-efc.c mc-fle2-encryption-placeholder.c mc-fle2-find-equality-payload.c mc-fle2-find-equality-payload-v2.c mc-fle2-find-range-payload.c mc-fle2-find-range-payload-v2.c mc-fle2-find-text-payload.c mc-fle2-insert-update-payload.c mc-fle2-insert-update-payload-v2.c mc-fle2-payload-iev.c mc-fle2-payload-iev-v2.c mc-fle2-payload-uev.c mc-fle2-payload-uev-common.c mc-fle2-payload-uev-v2.c mc-fle2-rfds.c mc-fle2-tag-and-encrypted-metadata-block.c mc-parse-utils.c mc-range-edge-generation.c mc-range-encoding.c mc-range-mincover.c mc-rangeopts.c mc-reader.c mc-schema-broker.c mc-str-encode-string-sets.c mc-text-search-str-encode.c mc-tokens.c mc-writer.c mongocrypt-binary.c mongocrypt-buffer.c mongocrypt.c mongocrypt-cache.c mongocrypt-cache-collinfo.c mongocrypt-cache-key.c mongocrypt-cache-oauth.c mongocrypt-ciphertext.c mongocrypt-crypto.c mongocrypt-ctx.c mongocrypt-ctx-datakey.c mongocrypt-ctx-decrypt.c mongocrypt-ctx-encrypt.c mongocrypt-ctx-rewrap-many-datakey.c mongocrypt-endpoint.c mongocrypt-kek.c mongocrypt-key-broker.c mongocrypt-key.c mongocrypt-kms-ctx.c mongocrypt-log.c mongocrypt-marking.c mongocrypt-opts.c mongocrypt-status.c mongocrypt-traverse-util.c mongocrypt-util.c" + PHP_MONGODB_MONGOCRYPT_SOURCES="mc-array.c mc-efc.c mc-fle2-encryption-placeholder.c mc-fle2-find-equality-payload.c mc-fle2-find-equality-payload-v2.c mc-fle2-find-range-payload.c mc-fle2-find-range-payload-v2.c mc-fle2-find-text-payload.c mc-fle2-insert-update-payload.c mc-fle2-insert-update-payload-v2.c mc-fle2-payload-iev.c mc-fle2-payload-iev-v2.c mc-fle2-payload-uev.c mc-fle2-payload-uev-common.c mc-fle2-payload-uev-v2.c mc-fle2-rfds.c mc-fle2-tag-and-encrypted-metadata-block.c mc-parse-utils.c mc-range-edge-generation.c mc-range-encoding.c mc-range-mincover.c mc-rangeopts.c mc-reader.c mc-schema-broker.c mc-str-encode-string-sets.c mc-textopts.c mc-text-search-str-encode.c mc-tokens.c mc-writer.c mongocrypt-binary.c mongocrypt-buffer.c mongocrypt.c mongocrypt-cache.c mongocrypt-cache-collinfo.c mongocrypt-cache-key.c mongocrypt-cache-oauth.c mongocrypt-ciphertext.c mongocrypt-crypto.c mongocrypt-ctx.c mongocrypt-ctx-datakey.c mongocrypt-ctx-decrypt.c mongocrypt-ctx-encrypt.c mongocrypt-ctx-rewrap-many-datakey.c mongocrypt-endpoint.c mongocrypt-kek.c mongocrypt-key-broker.c mongocrypt-key.c mongocrypt-kms-ctx.c mongocrypt-log.c mongocrypt-marking.c mongocrypt-opts.c mongocrypt-status.c mongocrypt-traverse-util.c mongocrypt-util.c" PHP_MONGODB_MONGOCRYPT_CRYPTO_SOURCES="cng.c commoncrypto.c libcrypto.c none.c" PHP_MONGODB_MONGOCRYPT_OS_POSIX_SOURCES="os_dll.c os_mutex.c" PHP_MONGODB_MONGOCRYPT_OS_WIN_SOURCES="os_dll.c os_mutex.c" diff --git a/config.w32 b/config.w32 index b37f78098..6baa3e0a9 100644 --- a/config.w32 +++ b/config.w32 @@ -280,7 +280,7 @@ if (PHP_MONGODB != "no") { }; // Sources below are updated by scripts/update-submodule-sources.php - var PHP_MONGODB_MONGOCRYPT_SOURCES="mc-array.c mc-efc.c mc-fle2-encryption-placeholder.c mc-fle2-find-equality-payload.c mc-fle2-find-equality-payload-v2.c mc-fle2-find-range-payload.c mc-fle2-find-range-payload-v2.c mc-fle2-find-text-payload.c mc-fle2-insert-update-payload.c mc-fle2-insert-update-payload-v2.c mc-fle2-payload-iev.c mc-fle2-payload-iev-v2.c mc-fle2-payload-uev.c mc-fle2-payload-uev-common.c mc-fle2-payload-uev-v2.c mc-fle2-rfds.c mc-fle2-tag-and-encrypted-metadata-block.c mc-parse-utils.c mc-range-edge-generation.c mc-range-encoding.c mc-range-mincover.c mc-rangeopts.c mc-reader.c mc-schema-broker.c mc-str-encode-string-sets.c mc-text-search-str-encode.c mc-tokens.c mc-writer.c mongocrypt-binary.c mongocrypt-buffer.c mongocrypt.c mongocrypt-cache.c mongocrypt-cache-collinfo.c mongocrypt-cache-key.c mongocrypt-cache-oauth.c mongocrypt-ciphertext.c mongocrypt-crypto.c mongocrypt-ctx.c mongocrypt-ctx-datakey.c mongocrypt-ctx-decrypt.c mongocrypt-ctx-encrypt.c mongocrypt-ctx-rewrap-many-datakey.c mongocrypt-endpoint.c mongocrypt-kek.c mongocrypt-key-broker.c mongocrypt-key.c mongocrypt-kms-ctx.c mongocrypt-log.c mongocrypt-marking.c mongocrypt-opts.c mongocrypt-status.c mongocrypt-traverse-util.c mongocrypt-util.c"; + var PHP_MONGODB_MONGOCRYPT_SOURCES="mc-array.c mc-efc.c mc-fle2-encryption-placeholder.c mc-fle2-find-equality-payload.c mc-fle2-find-equality-payload-v2.c mc-fle2-find-range-payload.c mc-fle2-find-range-payload-v2.c mc-fle2-find-text-payload.c mc-fle2-insert-update-payload.c mc-fle2-insert-update-payload-v2.c mc-fle2-payload-iev.c mc-fle2-payload-iev-v2.c mc-fle2-payload-uev.c mc-fle2-payload-uev-common.c mc-fle2-payload-uev-v2.c mc-fle2-rfds.c mc-fle2-tag-and-encrypted-metadata-block.c mc-parse-utils.c mc-range-edge-generation.c mc-range-encoding.c mc-range-mincover.c mc-rangeopts.c mc-reader.c mc-schema-broker.c mc-str-encode-string-sets.c mc-textopts.c mc-text-search-str-encode.c mc-tokens.c mc-writer.c mongocrypt-binary.c mongocrypt-buffer.c mongocrypt.c mongocrypt-cache.c mongocrypt-cache-collinfo.c mongocrypt-cache-key.c mongocrypt-cache-oauth.c mongocrypt-ciphertext.c mongocrypt-crypto.c mongocrypt-ctx.c mongocrypt-ctx-datakey.c mongocrypt-ctx-decrypt.c mongocrypt-ctx-encrypt.c mongocrypt-ctx-rewrap-many-datakey.c mongocrypt-endpoint.c mongocrypt-kek.c mongocrypt-key-broker.c mongocrypt-key.c mongocrypt-kms-ctx.c mongocrypt-log.c mongocrypt-marking.c mongocrypt-opts.c mongocrypt-status.c mongocrypt-traverse-util.c mongocrypt-util.c"; var PHP_MONGODB_MONGOCRYPT_CRYPTO_SOURCES="cng.c commoncrypto.c libcrypto.c none.c"; var PHP_MONGODB_MONGOCRYPT_OS_POSIX_SOURCES="os_dll.c os_mutex.c"; var PHP_MONGODB_MONGOCRYPT_OS_WIN_SOURCES="os_dll.c os_mutex.c"; diff --git a/src/LIBMONGOCRYPT_VERSION_CURRENT b/src/LIBMONGOCRYPT_VERSION_CURRENT index 63e799cf4..15b989e39 100644 --- a/src/LIBMONGOCRYPT_VERSION_CURRENT +++ b/src/LIBMONGOCRYPT_VERSION_CURRENT @@ -1 +1 @@ -1.14.1 +1.16.0 diff --git a/src/libmongocrypt b/src/libmongocrypt index a8c334585..f2e5939ba 160000 --- a/src/libmongocrypt +++ b/src/libmongocrypt @@ -1 +1 @@ -Subproject commit a8c33458519cff204f6140578f34bbbeb550e0e6 +Subproject commit f2e5939ba89a8e3806bb4144a4aef8a583c5dbde From c464e17e5bf1d7de275ee565784ba84a541b7400 Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Fri, 12 Sep 2025 11:44:31 -0400 Subject: [PATCH 3/7] Update SBOM for libmongoc 2.1.2 and libmongocrypt 1.16.0 --- sbom.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/sbom.json b/sbom.json index 9511e26d4..ec0ee7d92 100644 --- a/sbom.json +++ b/sbom.json @@ -1,52 +1,52 @@ { "components": [ { - "bom-ref": "pkg:github/mongodb/libmongocrypt@1.14.1", + "bom-ref": "pkg:github/mongodb/libmongocrypt@1.16.0", "externalReferences": [ { "type": "distribution", - "url": "https://github.com/mongodb/libmongocrypt/archive/refs/tags/1.14.1.tar.gz" + "url": "https://github.com/mongodb/libmongocrypt/archive/refs/tags/1.16.0.tar.gz" }, { "type": "website", - "url": "https://github.com/mongodb/libmongocrypt/tree/1.14.1" + "url": "https://github.com/mongodb/libmongocrypt/tree/1.16.0" } ], "group": "mongodb", "name": "libmongocrypt", - "purl": "pkg:github/mongodb/libmongocrypt@1.14.1", + "purl": "pkg:github/mongodb/libmongocrypt@1.16.0", "type": "library", - "version": "1.14.1" + "version": "1.16.0" }, { - "bom-ref": "pkg:github/mongodb/mongo-c-driver@2.0.2", + "bom-ref": "pkg:github/mongodb/mongo-c-driver@2.1.2", "externalReferences": [ { "type": "distribution", - "url": "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/2.0.2.tar.gz" + "url": "https://github.com/mongodb/mongo-c-driver/archive/refs/tags/2.1.2.tar.gz" }, { "type": "website", - "url": "https://github.com/mongodb/mongo-c-driver/tree/2.0.2" + "url": "https://github.com/mongodb/mongo-c-driver/tree/2.1.2" } ], "group": "mongodb", "name": "mongo-c-driver", - "purl": "pkg:github/mongodb/mongo-c-driver@2.0.2", + "purl": "pkg:github/mongodb/mongo-c-driver@2.1.2", "type": "library", - "version": "2.0.2" + "version": "2.1.2" } ], "dependencies": [ { - "ref": "pkg:github/mongodb/libmongocrypt@1.14.1" + "ref": "pkg:github/mongodb/libmongocrypt@1.16.0" }, { - "ref": "pkg:github/mongodb/mongo-c-driver@2.0.2" + "ref": "pkg:github/mongodb/mongo-c-driver@2.1.2" } ], "metadata": { - "timestamp": "2025-06-11T06:47:48.667004+00:00", + "timestamp": "2025-10-16T19:58:34.438489+00:00", "tools": [ { "externalReferences": [ @@ -90,7 +90,7 @@ ] }, "serialNumber": "urn:uuid:acb30d08-ee47-4ff0-b301-d66ef1f54082", - "version": 15, + "version": 18, "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json", "bomFormat": "CycloneDX", "specVersion": "1.5", From 55000770597df546d5ed86e7e1b3feb603621981 Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Tue, 16 Sep 2025 10:01:31 -0400 Subject: [PATCH 4/7] Update error expectations for libmongoc 2.1 --- tests/manager/manager-ctor-006.phpt | 2 +- tests/manager/manager-ctor_error-002.phpt | 2 +- tests/manager/manager-ctor_error-004.phpt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/manager/manager-ctor-006.phpt b/tests/manager/manager-ctor-006.phpt index dc24fe322..242609029 100644 --- a/tests/manager/manager-ctor-006.phpt +++ b/tests/manager/manager-ctor-006.phpt @@ -14,5 +14,5 @@ echo throws(function() { --EXPECT-- OK: Got MongoDB\Driver\Exception\InvalidArgumentException -Failed to parse MongoDB URI: 'invalid'. Invalid URI Schema, expecting 'mongodb://' or 'mongodb+srv://'. +Failed to parse MongoDB URI: 'invalid'. Invalid URI, no scheme part specified. ===DONE=== diff --git a/tests/manager/manager-ctor_error-002.phpt b/tests/manager/manager-ctor_error-002.phpt index 7afa84a55..51001c368 100644 --- a/tests/manager/manager-ctor_error-002.phpt +++ b/tests/manager/manager-ctor_error-002.phpt @@ -14,5 +14,5 @@ echo throws(function() { --EXPECT-- OK: Got MongoDB\Driver\Exception\InvalidArgumentException -Failed to parse MongoDB URI: 'not a valid connection string'. Invalid URI Schema, expecting 'mongodb://' or 'mongodb+srv://'. +Failed to parse MongoDB URI: 'not a valid connection string'. Invalid URI, no scheme part specified. ===DONE=== diff --git a/tests/manager/manager-ctor_error-004.phpt b/tests/manager/manager-ctor_error-004.phpt index a2f8c778c..ee370fb74 100644 --- a/tests/manager/manager-ctor_error-004.phpt +++ b/tests/manager/manager-ctor_error-004.phpt @@ -19,7 +19,7 @@ echo throws(function () { --EXPECT-- OK: Got MongoDB\Driver\Exception\InvalidArgumentException -Failed to parse MongoDB URI: 'mongodb://localhost:27017/?replicaSet='. Value for URI option "replicaset" cannot be empty string. +Failed to parse MongoDB URI: 'mongodb://localhost:27017/?replicaSet='. Value for URI option "replicaSet" cannot be empty string. OK: Got MongoDB\Driver\Exception\InvalidArgumentException Value for URI option "replicaSet" cannot be empty string. ===DONE=== From aa7cc1a87a27124d88c2bf49a0feb4f1219162fe Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Tue, 16 Sep 2025 13:46:39 -0400 Subject: [PATCH 5/7] Update libmongocrypt mlib path for PECL packaging --- bin/prep-release.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/prep-release.php b/bin/prep-release.php index 4d10e97f9..991bf27e8 100644 --- a/bin/prep-release.php +++ b/bin/prep-release.php @@ -65,8 +65,8 @@ function get_files() { "src/libmongocrypt-compat/mongocrypt/*.{c,h}", "src/libmongocrypt/src/*.{c,h,h.in}", "src/libmongocrypt/src/crypto/*.{c,h}", - // Note: src/libmongocrypt/src/mlib/ does not contain source files (as of libmongocrypt 1.14.0) - "src/libmongocrypt/src/mlib/*.h", + // Note: src/libmongocrypt/src/mc-mlib/ does not contain source files (as of libmongocrypt 1.14.0) + "src/libmongocrypt/src/mc-mlib/*.h", "src/libmongocrypt/src/os_posix/*.{c,h}", "src/libmongocrypt/src/os_win/*.{c,h}", "src/libmongocrypt/src/unicode/*.{c,h}", From bd8a78d407fd2353b50e6a890bfd8f8b230f61dc Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Tue, 16 Sep 2025 13:45:00 -0400 Subject: [PATCH 6/7] Bump libmongoc and libmongocrypt versions for system library testing --- .github/workflows/tests.yml | 6 ++++-- CONTRIBUTING.md | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c3a49d382..ad193ab15 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -145,8 +145,10 @@ jobs: runs-on: "ubuntu-latest" env: PHP_VERSION: "8.3" - LIBMONGOCRYPT_VERSION: "1.14" - LIBMONGOC_VERSION: "2.0.2" + # Note: omit the patch version when referring to the libmongocrypt package + LIBMONGOCRYPT_VERSION: "1.16" + # Note: include the patch version when referring to a libmongoc release tarball + LIBMONGOC_VERSION: "2.1.2" SERVER_VERSION: "8.0" steps: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a726d5212..add302781 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -272,6 +272,12 @@ against two additional versions of libmongoc: `r2.x` branch) - The upcoming minor release of libmongoc (e.g. the `master` branch) +#### Update tested system library versions in GitHub Actions + +GitHub Actions tests against libmongoc and libmongocrypt system libraries. When +updating the version number for each dependency in `config.m4` you must also +update environment variables for the `test-system-libs` job in `tests.yml`. + #### Update sources in PECL package generation script If a new version of a submodule introduces a new source directory, that may also From d6ab8c9addc5bf7ab833eeef8bbefd29d647bdcd Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Thu, 16 Oct 2025 15:52:09 -0400 Subject: [PATCH 7/7] Cross-compile 32-bit Windows builds using 64-bit toolset This should avoid memory limits when using 32-bit tools, which is relevant for libmongoc sources using the BSON DSL API. If you run into memory limits when you use the 32-bit tools, try the 64-bit tools. --- .github/actions/windows/prepare-build/action.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/windows/prepare-build/action.yml b/.github/actions/windows/prepare-build/action.yml index 889e9383c..d0396e279 100644 --- a/.github/actions/windows/prepare-build/action.yml +++ b/.github/actions/windows/prepare-build/action.yml @@ -33,7 +33,8 @@ runs: - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1 with: - arch: ${{ inputs.arch }} + # Use 64-bit toolset to produce 32-bit binaries + arch: ${{ inputs.arch == 'x86' && 'amd64_x86' || inputs.arch }} toolset: ${{ steps.setup-php.outputs.toolset }} - name: phpize