Skip to content

Commit d2a600b

Browse files
authored
PHPC-2262: Replace ICU dep with vendored utf8proc lib (#1447)
Bumps libmongoc to 1.25-dev. This introduces a --with-mongodb-utf8proc configure flag, which accepts "bundled" (default) and "system". Windows will always use bundled sources. CheckICU.m4 and the --with-mongodb-icu configure flag have been removed. For the libmongoc bump, this also adds support for a new MONGOC_ENABLE_SRV config constant, which is currently set based on detection in CheckResolv.m4. We can consider exposing that as a configure option down the line in PHPC-2256.
1 parent 5fb004c commit d2a600b

File tree

9 files changed

+95
-73
lines changed

9 files changed

+95
-73
lines changed

.evergreen/config.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,17 +1194,17 @@ axes:
11941194
display_name: libmongoc version
11951195
values:
11961196
- id: "lowest-supported"
1197-
display_name: "1.24.1"
1198-
variables:
1199-
LIBMONGOC_VERSION: "1.24.1"
1200-
- id: "upcoming-stable"
1201-
display_name: "1.24-dev"
1202-
variables:
1203-
LIBMONGOC_VERSION: "r1.24"
1204-
- id: "latest-dev"
1205-
display_name: "master"
1197+
display_name: "1.25-dev"
12061198
variables:
12071199
LIBMONGOC_VERSION: "master"
1200+
# - id: "upcoming-stable"
1201+
# display_name: "1.25-dev"
1202+
# variables:
1203+
# LIBMONGOC_VERSION: "r1.25"
1204+
# - id: "latest-dev"
1205+
# display_name: "master"
1206+
# variables:
1207+
# LIBMONGOC_VERSION: "master"
12081208

12091209

12101210
buildvariants:

config.m4

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -253,14 +253,14 @@ if test "$PHP_MONGODB" != "no"; then
253253
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
254254
AC_MSG_CHECKING(for libbson)
255255
if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libbson-1.0; then
256-
if $PKG_CONFIG libbson-1.0 --atleast-version 1.24.1; then
256+
if $PKG_CONFIG libbson-1.0 --atleast-version 1.25.0; then
257257
PHP_MONGODB_BSON_CFLAGS=`$PKG_CONFIG libbson-1.0 --cflags`
258258
PHP_MONGODB_BSON_LIBS=`$PKG_CONFIG libbson-1.0 --libs`
259259
PHP_MONGODB_BSON_VERSION=`$PKG_CONFIG libbson-1.0 --modversion`
260260
PHP_MONGODB_BSON_VERSION_STRING="System ($PHP_MONGODB_BSON_VERSION)"
261261
AC_MSG_RESULT(version $PHP_MONGODB_BSON_VERSION found)
262262
else
263-
AC_MSG_ERROR(system libbson must be upgraded to version >= 1.24.1)
263+
AC_MSG_ERROR(system libbson must be upgraded to version >= 1.25.0)
264264
fi
265265
else
266266
AC_MSG_ERROR(pkgconfig and libbson must be installed)
@@ -271,14 +271,14 @@ if test "$PHP_MONGODB" != "no"; then
271271

272272
AC_MSG_CHECKING(for libmongoc)
273273
if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libmongoc-1.0; then
274-
if $PKG_CONFIG libmongoc-1.0 --atleast-version 1.24.1; then
274+
if $PKG_CONFIG libmongoc-1.0 --atleast-version 1.25.0; then
275275
PHP_MONGODB_MONGOC_CFLAGS=`$PKG_CONFIG libmongoc-1.0 --cflags`
276276
PHP_MONGODB_MONGOC_LIBS=`$PKG_CONFIG libmongoc-1.0 --libs`
277277
PHP_MONGODB_MONGOC_VERSION=`$PKG_CONFIG libmongoc-1.0 --modversion`
278278
PHP_MONGODB_MONGOC_VERSION_STRING="System ($PHP_MONGODB_MONGOC_VERSION)"
279279
AC_MSG_RESULT(version $PHP_MONGODB_MONGOC_VERSION found)
280280
else
281-
AC_MSG_ERROR(system libmongoc must be upgraded to version >= 1.24.1)
281+
AC_MSG_ERROR(system libmongoc must be upgraded to version >= 1.25.0)
282282
fi
283283
else
284284
AC_MSG_ERROR(pkgconfig and libmongoc must be installed)
@@ -318,7 +318,11 @@ if test "$PHP_MONGODB" != "no"; then
318318

319319
if test "$PHP_MONGODB_SYSTEM_LIBS" = "no"; then
320320
PHP_MONGODB_BUNDLED_CFLAGS="$STD_CFLAGS -DBSON_COMPILATION -DMONGOC_COMPILATION"
321-
PHP_MONGODB_LIBMONGOCRYPT_CFLAGS="-DKMS_MSG_STATIC -DMLIB_USER"
321+
322+
dnl CheckUtf8Proc.m4 will modify this when using bundled utf8proc
323+
PHP_MONGODB_UTF8PROC_CFLAGS=""
324+
325+
dnl CheckCompression.m4 will modify this when using bundled zlib
322326
PHP_MONGODB_ZLIB_CFLAGS=""
323327

324328
dnl M4 doesn't know if we're building statically or as a shared module, so
@@ -355,7 +359,7 @@ if test "$PHP_MONGODB" != "no"; then
355359
_include([scripts/autotools/libmongoc/CheckResolv.m4])
356360
_include([scripts/autotools/libmongoc/CheckSasl.m4])
357361
_include([scripts/autotools/libmongoc/CheckSSL.m4])
358-
_include([scripts/autotools/libmongoc/CheckICU.m4])
362+
_include([scripts/autotools/libmongoc/CheckUtf8Proc.m4])
359363
_include([scripts/autotools/libmongoc/FindDependencies.m4])
360364
_include([scripts/autotools/libmongoc/PlatformFlags.m4])
361365
_include([scripts/autotools/libmongoc/Versions.m4])
@@ -417,6 +421,10 @@ if test "$PHP_MONGODB" != "no"; then
417421
dnl Generated with: find src/libmongoc/src/libmongoc/src/mongoc -name '*.c' -print0 | cut -sz -d / -f 7- | sort -dz | tr '\000' ' '
418422
PHP_MONGODB_MONGOC_SOURCES="mcd-azure.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-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-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-index.c mongoc-init.c mongoc-interrupt.c mongoc-libressl.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log.c mongoc-matcher.c mongoc-matcher-op.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-libressl.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-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"
419423

424+
dnl Generated with: find src/libmongoc/src/utf8proc-2.8.0 -maxdepth 1 -name '*.c' ! -name 'utf8proc_data.c' -print0 | cut -sz -d / -f 5- | sort -dz | tr '\000' ' '
425+
dnl Note: utf8proc_data.c is included from utf8proc.c and should not be compiled directly
426+
PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c"
427+
420428
dnl Generated with: find src/libmongoc/src/zlib-1.2.13 -maxdepth 1 -name '*.c' -print0 | cut -sz -d / -f 5- | sort -dz | tr '\000' ' '
421429
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"
422430

@@ -455,6 +463,13 @@ if test "$PHP_MONGODB" != "no"; then
455463
${ac_config_dir}/src/libmongoc/src/libmongoc/src/mongoc/mongoc-version.h
456464
])
457465

466+
if test "x$bundled_utf8proc" = "xyes"; then
467+
PHP_MONGODB_UTF8PROC_CFLAGS="$PHP_MONGODB_BUNDLED_CFLAGS $PHP_MONGODB_UTF8PROC_CFLAGS"
468+
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/utf8proc-2.8.0/], $PHP_MONGODB_UTF8PROC_SOURCES, $PHP_MONGODB_UTF8PROC_CFLAGS)
469+
PHP_MONGODB_ADD_INCLUDE([src/libmongoc/src/utf8proc-2.8.0/])
470+
PHP_MONGODB_ADD_BUILD_DIR([src/libmongoc/src/utf8proc-2.8.0/])
471+
fi
472+
458473
if test "x$bundled_zlib" = "xyes"; then
459474
PHP_MONGODB_ZLIB_CFLAGS="$PHP_MONGODB_BUNDLED_CFLAGS $PHP_MONGODB_ZLIB_CFLAGS"
460475
PHP_MONGODB_ADD_SOURCES([src/libmongoc/src/zlib-1.2.13/], $PHP_MONGODB_ZLIB_SOURCES, $PHP_MONGODB_ZLIB_CFLAGS)
@@ -464,6 +479,8 @@ if test "$PHP_MONGODB" != "no"; then
464479
fi
465480

466481
if test "$PHP_MONGODB_CLIENT_SIDE_ENCRYPTION" = "yes"; then
482+
PHP_MONGODB_LIBMONGOCRYPT_CFLAGS="-DKMS_MSG_STATIC -DMLIB_USER"
483+
467484
dnl Since libmongocrypt adds kms-message, we can enable AWS auth in this case
468485
AC_SUBST(MONGOC_ENABLE_MONGODB_AWS_AUTH, 1)
469486
AC_SUBST(MONGOCRYPT_ENABLE_TRACE, 1)

config.w32

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ if (PHP_MONGODB != "no") {
8686
ADD_EXTENSION_DEP("mongodb", "openssl", false);
8787

8888
var PHP_MONGODB_CFLAGS="\
89-
/D BSON_COMPILATION /D MONGOC_COMPILATION \
89+
/D BSON_COMPILATION /D MONGOC_COMPILATION /D UTF8PROC_STATIC \
9090
/I" + configure_module_dirname + " \
9191
/I" + configure_module_dirname + "/src \
9292
/I" + configure_module_dirname + "/src/BSON \
@@ -98,6 +98,7 @@ if (PHP_MONGODB != "no") {
9898
/I" + configure_module_dirname + "/src/libmongoc/src/libbson/src \
9999
/I" + configure_module_dirname + "/src/libmongoc/src/libbson/src/jsonsl \
100100
/I" + configure_module_dirname + "/src/libmongoc/src/libmongoc/src \
101+
/I" + configure_module_dirname + "/src/libmongoc/src/utf8proc-2.8.0 \
101102
";
102103

103104
// Condense whitespace in CFLAGS
@@ -119,6 +120,9 @@ if (PHP_MONGODB != "no") {
119120
// Generated with: find src/libmongoc/src/libmongoc/src/mongoc -name '*.c' -print0 | cut -sz -d / -f 7- | sort -dz | tr '\000' ' '
120121
var PHP_MONGODB_MONGOC_SOURCES="mcd-azure.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-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-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-index.c mongoc-init.c mongoc-interrupt.c mongoc-libressl.c mongoc-linux-distro-scanner.c mongoc-list.c mongoc-log.c mongoc-matcher.c mongoc-matcher-op.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-libressl.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-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";
121122

123+
// Generated with: find src/libmongoc/src/utf8proc-2.8.0 -maxdepth 1 -name '*.c' ! -name 'utf8proc_data.c' -print0 | cut -sz -d / -f 5- | sort -dz | tr '\000' ' '
124+
var PHP_MONGODB_UTF8PROC_SOURCES="utf8proc.c";
125+
122126
EXTENSION("mongodb", "php_phongo.c", null, PHP_MONGODB_CFLAGS);
123127
MONGODB_ADD_SOURCES("/src", "phongo_apm.c phongo_bson.c phongo_bson_encode.c phongo_client.c phongo_compat.c phongo_error.c phongo_execute.c phongo_ini.c phongo_util.c");
124128
MONGODB_ADD_SOURCES("/src/BSON", "Binary.c BinaryInterface.c Document.c Iterator.c DBPointer.c Decimal128.c Decimal128Interface.c Int64.c Javascript.c JavascriptInterface.c MaxKey.c MaxKeyInterface.c MinKey.c MinKeyInterface.c ObjectId.c ObjectIdInterface.c PackedArray.c Persistable.c Regex.c RegexInterface.c Serializable.c Symbol.c Timestamp.c TimestampInterface.c Type.c Undefined.c Unserializable.c UTCDateTime.c UTCDateTimeInterface.c functions.c");
@@ -129,6 +133,7 @@ if (PHP_MONGODB != "no") {
129133
MONGODB_ADD_SOURCES("/src/libmongoc/src/libbson/src/bson", PHP_MONGODB_BSON_SOURCES);
130134
MONGODB_ADD_SOURCES("/src/libmongoc/src/libbson/src/jsonsl", PHP_MONGODB_JSONSL_SOURCES);
131135
MONGODB_ADD_SOURCES("/src/libmongoc/src/libmongoc/src/mongoc", PHP_MONGODB_MONGOC_SOURCES);
136+
MONGODB_ADD_SOURCES("/src/libmongoc/src/utf8proc-2.8.0", PHP_MONGODB_UTF8PROC_SOURCES);
132137

133138
var bson_opts = {
134139
BSON_BYTE_ORDER: 1234,
@@ -193,7 +198,7 @@ if (PHP_MONGODB != "no") {
193198
MONGOC_ENABLE_SASL_CYRUS: 0,
194199
MONGOC_ENABLE_SASL_GSSAPI: 0,
195200
MONGOC_ENABLE_SASL_SSPI: 0,
196-
MONGOC_ENABLE_ICU: 0,
201+
MONGOC_ENABLE_SRV: 0,
197202
MONGOC_ENABLE_RDTSCP: 0,
198203
MONGOC_ENABLE_SHM_COUNTERS: 0,
199204
MONGOC_HAVE_ASN1_STRING_GET0_DATA: 0,
@@ -327,23 +332,7 @@ if (PHP_MONGODB != "no") {
327332
if (CHECK_LIB("dnsapi.lib", "mongodb", PHP_MONGODB) &&
328333
CHECK_HEADER_ADD_INCLUDE("windns.h", "CFLAGS_MONGODB")) {
329334
mongoc_opts.MONGOC_HAVE_DNSAPI = 1;
330-
}
331-
332-
if (CHECK_LIB("icuuc.lib", "mongodb", PHP_MONGODB) &&
333-
CHECK_HEADER_ADD_INCLUDE("unicode/utf.h", "CFLAGS_MONGODB")) {
334-
mongoc_opts.MONGODB_ENABLE_ICU = 1;
335-
336-
ADD_FLAG("LIBS_MONGODB", "icudt.lib icuin.lib icuio.lib");
337-
338-
/* Compat for ICU before 58.1.*/
339-
if (CHECK_LIB("icule.lib", "mongodb", PHP_MONGODB)) {
340-
ADD_FLAG("LIBS_MONGODB", "icule.lib");
341-
}
342-
if (CHECK_LIB("iculx.lib", "mongodb", PHP_MONGODB)) {
343-
ADD_FLAG("LIBS_MONGODB", "iculx.lib");
344-
}
345-
346-
ADD_FLAG("CFLAGS_MONGODB", "/EHsc /D U_USING_ICU_NAMESPACE=1");
335+
mongoc_opts.MONGOC_ENABLE_SRV = 1;
347336
}
348337

349338
if (typeof COMPILER_NAME === 'string') {

scripts/autotools/libmongoc/CheckICU.m4

Lines changed: 0 additions & 37 deletions
This file was deleted.

scripts/autotools/libmongoc/CheckResolv.m4

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
dnl Disable SRV until we find a library
2+
AC_SUBST(MONGOC_ENABLE_SRV, 0)
3+
14
dnl Disable Windows DNSAPI
25
AC_SUBST(MONGOC_HAVE_DNSAPI, 0)
36

@@ -97,6 +100,10 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
97100
])
98101
])
99102

103+
AS_IF([test "$found_resolv" = "yes"],[
104+
AC_SUBST(MONGOC_ENABLE_SRV, 1)
105+
])
106+
100107
if test "$libc_has_resolv" = "no"; then
101108
LIBS="$old_LIBS"
102109

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
PHP_ARG_WITH([mongodb-utf8proc],
2+
[whether to use system or bundled utf8proc for SCRAM-SHA-256 SASLprep],
3+
[AS_HELP_STRING([--with-mongodb-utf8proc=@<:@bundled/system@:>@],
4+
[MongoDB: Enable utf8proc for SCRAM-SHA-256 SASLprep [default=bundled]])],
5+
[bundled],
6+
[no])
7+
8+
found_utf8proc="no"
9+
bundled_utf8proc="no"
10+
11+
AS_IF([test "$PHP_MONGODB_UTF8PROC" = "system"],[
12+
PKG_CHECK_MODULES([PHP_MONGODB_UTF8PROC],[libutf8proc],[
13+
PHP_MONGODB_BUNDLED_CFLAGS="$PHP_MONGODB_BUNDLED_CFLAGS $PHP_MONGODB_UTF8PROC_CFLAGS"
14+
PHP_EVAL_LIBLINE([$PHP_MONGODB_UTF8PROC_LIBS],[MONGODB_SHARED_LIBADD])
15+
found_utf8proc="yes"
16+
],[
17+
PHP_CHECK_LIBRARY([utf8proc],
18+
[utf8proc_NFKC],
19+
[have_utf8proc_lib="yes"],
20+
[have_utf8proc_lib="no"])
21+
22+
AC_CHECK_HEADER([utf8proc.h],
23+
[have_utf8proc_headers=yes],
24+
[have_utf8proc_headers=no])
25+
26+
if test "$have_utf8proc_lib" = "yes" -a "$have_utf8proc_headers" = "yes"; then
27+
PHP_ADD_LIBRARY([utf8proc],,[MONGODB_SHARED_LIBADD])
28+
found_utf8proc="yes"
29+
fi
30+
])
31+
32+
if test "$PHP_MONGODB_UTF8PROC" = "system" -a "$found_utf8proc" = "no"; then
33+
AC_MSG_ERROR([utf8proc library and development headers could not be found])
34+
fi
35+
])
36+
37+
AS_IF([test "$PHP_MONGODB_UTF8PROC" = "bundled"],[
38+
PHP_MONGODB_UTF8PROC_CFLAGS="$PHP_MONGODB_UTF8PROC_CFLAGS -DUTF8PROC_STATIC"
39+
bundled_utf8proc="yes"
40+
])

scripts/update-submodule-sources.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
'PHP_MONGODB_BSON_SOURCES' => 'src/libmongoc/src/libbson/src/bson',
99
'PHP_MONGODB_JSONSL_SOURCES' => 'src/libmongoc/src/libbson/src/jsonsl',
1010
'PHP_MONGODB_MONGOC_SOURCES' => 'src/libmongoc/src/libmongoc/src/mongoc',
11+
'PHP_MONGODB_UTF8PROC_SOURCES' => 'src/libmongoc/src/utf8proc-2.8.0',
1112
'PHP_MONGODB_ZLIB_SOURCES' => 'src/libmongoc/src/zlib-1.2.13',
1213
'PHP_MONGODB_MONGOCRYPT_SOURCES' => 'src/libmongocrypt/src',
1314
'PHP_MONGODB_MONGOCRYPT_CRYPTO_SOURCES' => 'src/libmongocrypt/src/crypto',
@@ -24,6 +25,11 @@
2425

2526
$files = trim(shell_exec(sprintf($cmd, $path, $cutNth)));
2627

28+
// Note: utf8proc_data.c is included from utf8proc.c and should not be compiled directly
29+
if ($var === 'PHP_MONGODB_UTF8PROC_SOURCES') {
30+
$files = trim(str_replace('utf8proc_data.c', '', $files));
31+
}
32+
2733
$patterns[] = sprintf('/(%s=")([^"]*)(";?)/', $var);
2834
$replacements[] = '$1' . $files . '$3';
2935
}

src/LIBMONGOC_VERSION_CURRENT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.24.1
1+
1.25.0-20230718+git75db6e1af6

src/libmongoc

Submodule libmongoc updated 170 files

0 commit comments

Comments
 (0)