From: SZALAY Attila <sasa@debian.org>
Date: Sat, 30 Aug 2025 16:39:56 +0100
Subject: mongo-c: add v1 v2 detection to autotools

Borrowed from upstream (5780230)
---
 configure.ac | 38 ++++++++++++++++++++++++++++----------
 1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index 371f7ff..032e6f0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,7 +49,8 @@ IVYKIS_MIN_VERSION="0.36.1"
 IVYKIS_UPDATED_VERSION="0.39"
 JSON_C_MIN_VERSION="0.13"
 PCRE2_MIN_VERSION="10.0"
-LMC_MIN_VERSION="1.0.0"
+LMC_1_MIN_VERSION="1.0.0"
+LMC_MIN_VERSION="2.0.0"
 LRMQ_MIN_VERSION="0.0.1"
 LRC_MIN_VERSION="1.6.0"
 LIBBPF_MIN_VERSION="1.0.1"
@@ -274,7 +275,7 @@ AC_ARG_ENABLE(gcov,
               ,,enable_gcov="no")
 
 AC_ARG_ENABLE(mongodb,
-	      [  --enable-mongodb        Enable mongodb destination (default: auto)]
+	      [  --enable-mongodb        Enable support for mongodb destination (default: auto)]
               ,,enable_mongodb="auto")
 
 AC_ARG_WITH(jsonc,
@@ -423,6 +424,7 @@ AC_ARG_ENABLE(all-modules,
 if test "x$enable_all_modules" != "xauto"; then
    state="$enable_all_modules"
 
+   # TODO: atomate collection of modules somehow
    MODULES="spoof_source sun_streams sql pacct mongodb json amqp stomp \
             redis systemd geoip2 riemann ipv6 smtp native python python_modules java java_modules \
             http afsnmp kafka mqtt grpc"
@@ -1383,20 +1385,36 @@ dnl ***************************************************************************
 dnl mongo-c-driver headers/libraries
 dnl ***************************************************************************
 
-PKG_CHECK_MODULES(LIBMONGO, libmongoc-1.0 >= $LMC_MIN_VERSION, with_mongoc="yes", with_mongoc="no")
+# Try libmongoc-1.0 first
+PKG_CHECK_MODULES(LIBMONGO,
+    libmongoc-1.0 >= $LMC_1_MIN_VERSION,
+    [with_mongoc=yes; mongo_version_str="v1"; MONGOC_HEADER="<mongoc.h>"],
+    [   # Try mongoc2 (libmongoc-2.0) if 1.0 not found
+        PKG_CHECK_MODULES(LIBMONGO,
+            mongoc2 >= $LMC_MIN_VERSION,
+            [
+            AC_DEFINE([HAVE_MONGOC_V2], [1], [Define if using MongoDB C Driver v2.x])
+            with_mongoc=yes
+            mongo_version_str="v2"
+            MONGOC_HEADER="<mongoc/mongoc.h>"
+            ],
+            [with_mongoc=no]
+        )
+    ]
+)
 
 if test "x$with_mongoc" = "xno" && test "x$enable_mongodb" = "xyes"; then
-   AC_MSG_ERROR([Could not find mongo-c-driver, and MongoDB support was explicitly enabled.])
+    AC_MSG_ERROR([Could not find mongo-c-driver, and MongoDB support was explicitly enabled.])
 fi
 
 if test "x$with_mongoc" = "xyes"; then
-CPPFLAGS_SAVE="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $LIBMONGO_CFLAGS"
+    CPPFLAGS_SAVE="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $LIBMONGO_CFLAGS"
 
-AC_CHECK_DECLS([mongoc_uri_set_option_as_int32], [], [], [[#include <mongoc.h>]])
-AC_CHECK_DECLS([MONGOC_URI_SERVERSELECTIONTIMEOUTMS], [], [], [[#include <mongoc.h>]])
+    AC_CHECK_DECLS([mongoc_uri_set_option_as_int32], [], [], [[#include $MONGOC_HEADER]])
+    AC_CHECK_DECLS([MONGOC_URI_SERVERSELECTIONTIMEOUTMS], [], [], [[#include $MONGOC_HEADER]])
 
-CPPFLAGS="$CPPFLAGS_SAVE"
+    CPPFLAGS="$CPPFLAGS_SAVE"
 fi
 
 dnl ***************************************************************************
@@ -2432,7 +2450,7 @@ echo "  Darwin OSL support (module) : ${enable_darwin_osl:=no}"
 echo "  OpenBSD syslog (module)     : ${enable_openbsd_system_source:=no}"
 echo "  SQL support (module)        : ${enable_sql:=no}"
 echo "  PACCT module (EXPERIMENTAL) : ${enable_pacct:=no}"
-echo "  MongoDB destination (module): ${enable_mongodb:=no}"
+echo "  MongoDB destination (module): ${enable_mongodb:=no} (${mongo_version_str})"
 echo "  JSON support (module)       : ${enable_json:=no}"
 echo "  SMTP support (module)       : ${enable_smtp:=no}"
 echo "  HTTP support (module)       : ${enable_http:=no}"
