From 39303e5f5426344d35ff5cbeb6e044928740f448 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 11 Sep 2015 08:39:50 +0200 Subject: [PATCH 1/3] report libraries runtime version --- config.m4 | 9 +++++++-- php_phongo.c | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/config.m4 b/config.m4 index 8ddb5e960..02ab3cba2 100644 --- a/config.m4 +++ b/config.m4 @@ -331,7 +331,7 @@ PHP_ARG_WITH(libmongoc, Use system libmongoc, AC_PATH_PROG(PKG_CONFIG, pkg-config, no) AC_MSG_CHECKING(for libmongoc) if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libmongoc-1.0 && $PKG_CONFIG --exists libmongoc-priv; then - if $PKG_CONFIG libmongoc-1.0 --atleast-version 1.1.5; then + if $PKG_CONFIG libmongoc-1.0 --atleast-version 1.2.0; then LIBMONGOC_INC=`$PKG_CONFIG libmongoc-priv --cflags` LIBMONGOC_LIB=`$PKG_CONFIG libmongoc-priv --libs` LIBMONGOC_VER=`$PKG_CONFIG libmongoc-priv --modversion` @@ -339,13 +339,18 @@ PHP_ARG_WITH(libmongoc, Use system libmongoc, CFLAGS="$CFLAGS -DMONGOC_I_AM_A_DRIVER" else - AC_MSG_ERROR(system libmongoc must be upgraded to version >= 1.1.6) + AC_MSG_ERROR(system libmongoc must be upgraded to version >= 1.2.0) fi else AC_MSG_ERROR(pkgconfig and mongoc must be installed) fi PHP_EVAL_INCLINE($LIBMONGOC_INC) PHP_EVAL_LIBLINE($LIBMONGOC_LIB, MONGODB_SHARED_LIBADD) + PHP_CHECK_LIBRARY(mongoc-1.0, mongoc_get_version, [ + AC_DEFINE(HAVE_MONGOC_GET_VERSION, 1, [mongoc_get_version function]) + ], [], [ + $MONGODB_SHARED_LIBADD + ]) else CPPFLAGS="$CPPFLAGS -DBSON_COMPILATION -DMONGOC_COMPILATION -DMONGOC_TRACE" diff --git a/php_phongo.c b/php_phongo.c index bc2628e0b..0ee429f31 100644 --- a/php_phongo.c +++ b/php_phongo.c @@ -2375,8 +2375,22 @@ PHP_MINFO_FUNCTION(mongodb) php_info_print_table_header(2, "mongodb support", "enabled"); php_info_print_table_row(2, "mongodb version", MONGODB_VERSION_S); php_info_print_table_row(2, "mongodb stability", MONGODB_STABILITY_S); +#ifdef HAVE_MONGOC_GET_VERSION + { + char *tmp; + + spprintf(&tmp, 0, "%d.%d.%d", bson_get_major_version(), bson_get_minor_version(), bson_get_micro_version()); + php_info_print_table_row(2, "libmongoc headers version", MONGOC_VERSION_S); + php_info_print_table_row(2, "libmongoc library version", mongoc_get_version()); + php_info_print_table_row(2, "libbson headers version", BSON_VERSION_S); + php_info_print_table_row(2, "libbson library version", tmp); + efree(tmp); + } +#else + /* Bundled libraries, buildtime = runtime */ php_info_print_table_row(2, "libmongoc version", MONGOC_VERSION_S); php_info_print_table_row(2, "libbson version", BSON_VERSION_S); +#endif php_info_print_table_end(); DISPLAY_INI_ENTRIES(); From 50662f9006be41aa21bb11f1d90da8983d46de56 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 4 Oct 2015 08:58:25 +0200 Subject: [PATCH 2/3] Adapt for rc0 --- config.m4 | 6 +----- php_phongo.c | 10 ++-------- src/libbson | 2 +- src/libmongoc | 2 +- 4 files changed, 5 insertions(+), 15 deletions(-) diff --git a/config.m4 b/config.m4 index 02ab3cba2..35e2aa13b 100644 --- a/config.m4 +++ b/config.m4 @@ -346,11 +346,7 @@ PHP_ARG_WITH(libmongoc, Use system libmongoc, fi PHP_EVAL_INCLINE($LIBMONGOC_INC) PHP_EVAL_LIBLINE($LIBMONGOC_LIB, MONGODB_SHARED_LIBADD) - PHP_CHECK_LIBRARY(mongoc-1.0, mongoc_get_version, [ - AC_DEFINE(HAVE_MONGOC_GET_VERSION, 1, [mongoc_get_version function]) - ], [], [ - $MONGODB_SHARED_LIBADD - ]) + AC_DEFINE(HAVE_LIBMONGOC, 1, [Use system libmongoc]) else CPPFLAGS="$CPPFLAGS -DBSON_COMPILATION -DMONGOC_COMPILATION -DMONGOC_TRACE" diff --git a/php_phongo.c b/php_phongo.c index 0ee429f31..f4227978f 100644 --- a/php_phongo.c +++ b/php_phongo.c @@ -2375,17 +2375,11 @@ PHP_MINFO_FUNCTION(mongodb) php_info_print_table_header(2, "mongodb support", "enabled"); php_info_print_table_row(2, "mongodb version", MONGODB_VERSION_S); php_info_print_table_row(2, "mongodb stability", MONGODB_STABILITY_S); -#ifdef HAVE_MONGOC_GET_VERSION - { - char *tmp; - - spprintf(&tmp, 0, "%d.%d.%d", bson_get_major_version(), bson_get_minor_version(), bson_get_micro_version()); +#ifdef HAVE_LIBMONGOC php_info_print_table_row(2, "libmongoc headers version", MONGOC_VERSION_S); php_info_print_table_row(2, "libmongoc library version", mongoc_get_version()); php_info_print_table_row(2, "libbson headers version", BSON_VERSION_S); - php_info_print_table_row(2, "libbson library version", tmp); - efree(tmp); - } + php_info_print_table_row(2, "libbson library version", bson_get_version()); #else /* Bundled libraries, buildtime = runtime */ php_info_print_table_row(2, "libmongoc version", MONGOC_VERSION_S); diff --git a/src/libbson b/src/libbson index 3420d4d25..b2d1a4775 160000 --- a/src/libbson +++ b/src/libbson @@ -1 +1 @@ -Subproject commit 3420d4d2579941f509db8daff91ecb0cfb7daff9 +Subproject commit b2d1a477597f57306cdade1ae664a671c8e4620d diff --git a/src/libmongoc b/src/libmongoc index 3eaf73ed8..38fc65a0f 160000 --- a/src/libmongoc +++ b/src/libmongoc @@ -1 +1 @@ -Subproject commit 3eaf73ed8a88340584a203520ee9ad98fd1b89d3 +Subproject commit 38fc65a0f4b2b17d71ee71683c93aa84718a6733 From 2548acf3af7af759148c4f2c9fac6ddc18f4dd2b Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 4 Oct 2015 09:02:55 +0200 Subject: [PATCH 3/3] can use system libbson or/and libmongoc --- config.m4 | 1 + php_phongo.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/config.m4 b/config.m4 index 35e2aa13b..cee5b7be0 100644 --- a/config.m4 +++ b/config.m4 @@ -313,6 +313,7 @@ PHP_ARG_WITH(libbson, Use system libbson, fi PHP_EVAL_INCLINE($LIBBSON_INC) PHP_EVAL_LIBLINE($LIBBSON_LIB, MONGODB_SHARED_LIBADD) + AC_DEFINE(HAVE_LIBBSON, 1, [Use system libbson]) else PHP_ADD_SOURCES_X(PHP_EXT_DIR(mongodb)[src/libbson/src/yajl], $YAJL_SOURCES, [$STD_CFLAGS $MAINTAINER_CFLAGS], shared_objects_mongodb, yes) PHP_ADD_SOURCES_X(PHP_EXT_DIR(mongodb)[src/libbson/src/bson], $BSON_SOURCES, [$STD_CFLAGS $MAINTAINER_CFLAGS], shared_objects_mongodb, yes) diff --git a/php_phongo.c b/php_phongo.c index f4227978f..01265386f 100644 --- a/php_phongo.c +++ b/php_phongo.c @@ -2378,11 +2378,14 @@ PHP_MINFO_FUNCTION(mongodb) #ifdef HAVE_LIBMONGOC php_info_print_table_row(2, "libmongoc headers version", MONGOC_VERSION_S); php_info_print_table_row(2, "libmongoc library version", mongoc_get_version()); - php_info_print_table_row(2, "libbson headers version", BSON_VERSION_S); - php_info_print_table_row(2, "libbson library version", bson_get_version()); #else /* Bundled libraries, buildtime = runtime */ php_info_print_table_row(2, "libmongoc version", MONGOC_VERSION_S); +#endif +#ifdef HAVE_LIBBSON + php_info_print_table_row(2, "libbson headers version", BSON_VERSION_S); + php_info_print_table_row(2, "libbson library version", bson_get_version()); +#else php_info_print_table_row(2, "libbson version", BSON_VERSION_S); #endif php_info_print_table_end();