Skip to content

Commit 88734c5

Browse files
authored
PHPC-2638 and PHPC-2630: Bump to libmongoc 2.1.2 and libmongocrypt 1.16.0 (#1868)
* PHPC-2638: Bump libmongoc to 2.1.2 * PHPC-2630: 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). * Update SBOM for libmongoc 2.1.2 and libmongocrypt 1.16.0 * Update error expectations for libmongoc 2.1 * Update libmongocrypt mlib path for PECL packaging * Bump libmongoc and libmongocrypt versions for system library testing * Cross-compile 32-bit Windows builds using 64-bit toolset This should avoid hitting memory limits when using the 32-bit toolset, which is relevant for libmongoc sources that make heavy use of the BSON DSL API (so many macros).
1 parent 13a0d64 commit 88734c5

File tree

15 files changed

+56
-47
lines changed

15 files changed

+56
-47
lines changed

.evergreen/config/generated/build/build-libmongoc.yml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.evergreen/config/templates/build/build-libmongoc.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
- func: "compile driver"
1111
vars:
1212
PHP_VERSION: "%phpVersion%"
13-
LIBMONGOC_VERSION: "2.0.2"
13+
LIBMONGOC_VERSION: "2.1.2"
1414
- func: "upload build"
1515

1616
- name: "build-php-%phpVersion%-libmongoc-next-stable"
@@ -19,7 +19,7 @@
1919
- func: "compile driver"
2020
vars:
2121
PHP_VERSION: "%phpVersion%"
22-
LIBMONGOC_VERSION: "r2.0"
22+
LIBMONGOC_VERSION: "r2.1"
2323
- func: "upload build"
2424

2525
- name: "build-php-%phpVersion%-libmongoc-latest"

.github/actions/windows/prepare-build/action.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ runs:
3333
- name: Enable Developer Command Prompt
3434
uses: ilammy/msvc-dev-cmd@v1
3535
with:
36-
arch: ${{ inputs.arch }}
36+
# Use 64-bit toolset to produce 32-bit binaries
37+
arch: ${{ inputs.arch == 'x86' && 'amd64_x86' || inputs.arch }}
3738
toolset: ${{ steps.setup-php.outputs.toolset }}
3839

3940
- name: phpize

.github/workflows/tests.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,10 @@ jobs:
145145
runs-on: "ubuntu-latest"
146146
env:
147147
PHP_VERSION: "8.3"
148-
LIBMONGOCRYPT_VERSION: "1.14"
149-
LIBMONGOC_VERSION: "2.0.2"
148+
# Note: omit the patch version when referring to the libmongocrypt package
149+
LIBMONGOCRYPT_VERSION: "1.16"
150+
# Note: include the patch version when referring to a libmongoc release tarball
151+
LIBMONGOC_VERSION: "2.1.2"
150152
SERVER_VERSION: "8.0"
151153

152154
steps:

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,12 @@ against two additional versions of libmongoc:
272272
`r2.x` branch)
273273
- The upcoming minor release of libmongoc (e.g. the `master` branch)
274274

275+
#### Update tested system library versions in GitHub Actions
276+
277+
GitHub Actions tests against libmongoc and libmongocrypt system libraries. When
278+
updating the version number for each dependency in `config.m4` you must also
279+
update environment variables for the `test-system-libs` job in `tests.yml`.
280+
275281
#### Update sources in PECL package generation script
276282

277283
If a new version of a submodule introduces a new source directory, that may also

bin/prep-release.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ function get_files() {
6565
"src/libmongocrypt-compat/mongocrypt/*.{c,h}",
6666
"src/libmongocrypt/src/*.{c,h,h.in}",
6767
"src/libmongocrypt/src/crypto/*.{c,h}",
68-
// Note: src/libmongocrypt/src/mlib/ does not contain source files (as of libmongocrypt 1.14.0)
69-
"src/libmongocrypt/src/mlib/*.h",
68+
// Note: src/libmongocrypt/src/mc-mlib/ does not contain source files (as of libmongocrypt 1.14.0)
69+
"src/libmongocrypt/src/mc-mlib/*.h",
7070
"src/libmongocrypt/src/os_posix/*.{c,h}",
7171
"src/libmongocrypt/src/os_win/*.{c,h}",
7272
"src/libmongocrypt/src/unicode/*.{c,h}",

config.m4

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -243,38 +243,38 @@ if test "$PHP_MONGODB" != "no"; then
243243
PHP_MONGODB_MONGOCRYPT_VERSION_STRING="None"
244244

245245
if test "$PHP_MONGODB_SYSTEM_LIBS" != "no"; then
246-
PKG_CHECK_MODULES([PHP_MONGODB_BSON], [bson2 >= 2.0.2], [
246+
PKG_CHECK_MODULES([PHP_MONGODB_BSON], [bson2 >= 2.1.2], [
247247
PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG bson2 --modversion`
248248
PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)"
249249
250250
PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_BSON_CFLAGS"
251251
PHP_EVAL_LIBLINE($PHP_MONGODB_BSON_LIBS, MONGODB_SHARED_LIBADD)
252252
AC_DEFINE(HAVE_SYSTEM_LIBBSON, 1, [Use system libbson])
253253
],[
254-
AC_MSG_ERROR([Could not find system library for libbson >= 2.0.2])
254+
AC_MSG_ERROR([Could not find system library for libbson >= 2.1.2])
255255
])
256256

257-
PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [mongoc2 >= 2.0.2], [
257+
PKG_CHECK_MODULES([PHP_MONGODB_MONGOC], [mongoc2 >= 2.1.2], [
258258
PHP_MONGODB_MONGOC_VERSION=`$PKG_CONFIG mongoc2 --modversion`
259259
PHP_MONGODB_MONGOC_VERSION_STRING="System ($PHP_MONGODB_MONGOC_VERSION)"
260260
261261
PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_MONGOC_CFLAGS"
262262
PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOC_LIBS, MONGODB_SHARED_LIBADD)
263263
AC_DEFINE(HAVE_SYSTEM_LIBMONGOC, 1, [Use system libmongoc])
264264
],[
265-
AC_MSG_ERROR(Could not find system library for libmongoc >= 2.0.2)
265+
AC_MSG_ERROR(Could not find system library for libmongoc >= 2.1.2)
266266
])
267267

268268
if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" != "no"; then
269-
PKG_CHECK_MODULES([PHP_MONGODB_MONGOCRYPT], [libmongocrypt >= 1.14.1], [
269+
PKG_CHECK_MODULES([PHP_MONGODB_MONGOCRYPT], [libmongocrypt >= 1.16.0], [
270270
PHP_MONGODB_MONGOCRYPT_VERSION=`$PKG_CONFIG libmongocrypt --modversion`
271271
PHP_MONGODB_MONGOCRYPT_VERSION_STRING="System ($PHP_MONGODB_MONGOCRYPT_VERSION)"
272272
273273
PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_MONGOCRYPT_CFLAGS"
274274
PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOCRYPT_LIBS, MONGODB_SHARED_LIBADD)
275275
AC_DEFINE(HAVE_SYSTEM_LIBMONGOCRYPT, 1, [Use system libmongocrypt])
276276
],[
277-
AC_MSG_ERROR(Could not find system library for libmongocrypt >= 1.14.1)
277+
AC_MSG_ERROR(Could not find system library for libmongocrypt >= 1.16.0)
278278
])
279279
fi
280280
fi
@@ -359,9 +359,9 @@ if test "$PHP_MONGODB" != "no"; then
359359
dnl Sources below are updated by scripts/update-submodule-sources.php
360360
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"
361361
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"
362-
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"
362+
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"
363363
PHP_MONGODB_JSONSL_SOURCES="jsonsl.c"
364-
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"
364+
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"
365365
PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c"
366366
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"
367367

@@ -395,8 +395,8 @@ if test "$PHP_MONGODB" != "no"; then
395395

396396
AC_CONFIG_FILES([
397397
${ac_config_dir}/src/libmongoc/src/common/src/common-config.h
398-
${ac_config_dir}/src/libmongoc/src/libbson/src/bson/bson-config.h
399-
${ac_config_dir}/src/libmongoc/src/libbson/src/bson/bson-version.h
398+
${ac_config_dir}/src/libmongoc/src/libbson/src/bson/config.h
399+
${ac_config_dir}/src/libmongoc/src/libbson/src/bson/version.h
400400
${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-config.h
401401
${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
402402
])
@@ -426,7 +426,7 @@ if test "$PHP_MONGODB" != "no"; then
426426
AC_SUBST(MONGOCRYPT_ENABLE_TRACE, 1)
427427

428428
dnl Sources below are updated by scripts/update-submodule-sources.php
429-
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"
429+
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"
430430
PHP_MONGODB_MONGOCRYPT_CRYPTO_SOURCES="cng.c commoncrypto.c libcrypto.c none.c"
431431
PHP_MONGODB_MONGOCRYPT_OS_POSIX_SOURCES="os_dll.c os_mutex.c"
432432
PHP_MONGODB_MONGOCRYPT_OS_WIN_SOURCES="os_dll.c os_mutex.c"

0 commit comments

Comments
 (0)