]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Maintenance: update --with-tdb detection (#1776)
authorAmos Jeffries <yadij@users.noreply.github.com>
Tue, 9 Apr 2024 02:26:59 +0000 (02:26 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Tue, 9 Apr 2024 02:27:03 +0000 (02:27 +0000)
acinclude/tdb.m4
src/acl/external/helpers.m4
src/acl/external/session/ext_session_acl.cc
src/acl/external/session/required.m4
src/acl/external/time_quota/required.m4

index be1eb0ec12dded1a23dee466bc3693ac82e2bef2..d6666599443868f66c19db7a666ab05455fe1ba0 100644 (file)
@@ -6,42 +6,18 @@
 ##
 
 dnl check for --with-tdb option
-AC_DEFUN([SQUID_CHECK_LIBTDB],[
-AC_ARG_WITH(tdb,
-  AS_HELP_STRING([--without-tdb],
-                 [Do not use Samba TrivialDB. Default: auto-detect]),[
-  AS_CASE(["$with_tdb"],
-    [yes|no|auto],[:],
-    [
-      AS_IF([test ! -d "$withval"],
-        AC_MSG_ERROR([--with-tdb path ($with_tdb) does not point to a directory])
-      )
-      LIBTDB_PATH="-L$withval/lib"
-      CPPFLAGS="-I$withval/include $CPPFLAGS"
-    ]
-  )
-])
-AH_TEMPLATE(USE_TRIVIALDB,[Samba TrivialDB support is available])
-AS_IF([test "x$with_tdb" != "xno"],[
+AC_DEFUN_ONCE([SQUID_CHECK_LIBTDB],[
+SQUID_AUTO_LIB(tdb,[Samba TrivialDB],[LIBTDB])
+SQUID_CHECK_LIB_WORKS(tdb,[
   SQUID_STATE_SAVE(squid_libtdb_state)
   LIBS="$LIBS $LIBTDB_PATH"
-  PKG_CHECK_MODULES([LIBTDB],[tdb],[CPPFLAGS="$CPPFLAGS $LIBTDB_CFLAGS"],[:])
+  PKG_CHECK_MODULES([LIBTDB],[tdb],[:],[:])
+  CPPFLAGS="$CPPFLAGS $LIBTDB_CFLAGS"
   AC_CHECK_HEADERS([sys/stat.h tdb.h],,,[
 #if HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
   ])
   SQUID_STATE_ROLLBACK(squid_libtdb_state) #de-pollute LIBS
-
-  AS_IF([test "x$with_tdb" = "xyes" -a "x$LIBTDB_LIBS" = "x"],
-    AC_MSG_ERROR([Required TrivialDB library not found])
-  )
-  AS_IF([test "x$LIBTDB_LIBS" != "x"],[
-    CXXFLAGS="$LIBTDB_CFLAGS $CXXFLAGS"
-    LIBTDB_LIBS="$LIBTDB_PATH $LIBTDB_LIBS"
-    AC_DEFINE_UNQUOTED(USE_TRIVIALDB, HAVE_TDB_H, [Samba TrivialDB support is available])
-  ],[with_tdb=no])
 ])
-AC_MSG_NOTICE([Samba TrivialDB library support: ${with_tdb:=auto} ${LIBTDB_PATH} ${LIBTDB_LIBS}])
-AC_SUBST(LIBTDB_LIBS)
 ])
index ff95c578d72464dba8d3fbffdd4a5698f87dfd8b..79ae726244ae1a6dd519904322d09899f95c01f4 100644 (file)
@@ -5,6 +5,8 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
+SQUID_CHECK_LIBTDB
+
 EXTERNAL_ACL_HELPERS=""
 SQUID_HELPER_FEATURE_CHECK([external_acl_helpers],[yes],[acl/external],[
   # NP: we only need this list because m4_include() does not accept variables
index 1d4c4a28a2b5dfadd0ddf6e3c9db9647c80456ed..da84b5ad9a269f8853ea33bc94f023bdcb31fc9b 100644 (file)
@@ -68,7 +68,7 @@ DB *db = nullptr;
 DB_ENV *db_env = nullptr;
 typedef DBT DB_ENTRY;
 
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
 TDB_CONTEXT *db = nullptr;
 typedef TDB_DATA DB_ENTRY;
 
@@ -86,7 +86,7 @@ shutdown_db()
     if (db_env) {
         db_env->close(db_env, 0);
 
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
         if (tdb_close(db) != 0) {
             fprintf(stderr, "%s| WARNING: error closing session db '%s'\n", program_name, db_path);
             exit(EXIT_FAILURE);
@@ -113,7 +113,7 @@ static void init_db(void)
                     exit(EXIT_FAILURE);
                 }
                 db_create(&db, db_env, 0);
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
                 std::string newPath(db_path);
                 newPath.append("session", 7);
                 db_path = xstrdup(newPath.c_str());
@@ -136,7 +136,7 @@ static void init_db(void)
             db = nullptr;
         }
     }
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
 #if _SQUID_FREEBSD_ && !defined(O_DSYNC)
     // FreeBSD lacks O_DSYNC, O_SYNC is closest to correct behaviour
 #define O_DSYNC O_SYNC
@@ -157,7 +157,7 @@ dataSize(DB_ENTRY *data)
 {
 #if USE_BERKLEYDB
     return data->size;
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     return data->dsize;
 #endif
 }
@@ -167,7 +167,7 @@ fetchKey(/*const*/ DB_ENTRY &key, DB_ENTRY *data)
 {
 #if USE_BERKLEYDB
     return (db->get(db, nullptr, &key, data, 0) == 0);
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     // NP: API says returns NULL on errors, but return is a struct type WTF??
     *data = tdb_fetch(db, key);
     return (data->dptr != nullptr);
@@ -179,7 +179,7 @@ deleteEntry(/*const*/ DB_ENTRY &key)
 {
 #if USE_BERKLEYDB
     db->del(db, nullptr, &key, 0);
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     tdb_delete(db, key);
 #endif
 }
@@ -189,7 +189,7 @@ copyValue(void *dst, const DB_ENTRY *src, size_t sz)
 {
 #if USE_BERKLEYDB
     memcpy(dst, src->data, sz);
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     memcpy(dst, src->dptr, sz);
 #endif
 }
@@ -202,7 +202,7 @@ static int session_active(const char *details, size_t len)
     key.size = len;
 
     DBT data = {};
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     TDB_DATA key = {};
     key.dptr = reinterpret_cast<decltype(key.dptr)>(const_cast<char*>(details));
     key.dsize = len;
@@ -237,7 +237,7 @@ session_login(/*const*/ char *details, size_t len)
     data.data = &now;
     data.size = sizeof(now);
     db->put(db, nullptr, &key, &data, 0);
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     key.dptr = reinterpret_cast<decltype(key.dptr)>(details);
     key.dsize = len;
     data.dptr = reinterpret_cast<decltype(data.dptr)>(&now);
@@ -253,7 +253,7 @@ session_logout(/*const*/ char *details, size_t len)
 #if USE_BERKLEYDB
     key.data = static_cast<decltype(key.data)>(details);
     key.size = len;
-#elif USE_TRIVIALDB
+#elif HAVE_LIBTDB
     key.dptr = reinterpret_cast<decltype(key.dptr)>(details);
     key.dsize = len;
 #endif
index 9c29801ecfb1a092a35f14e904aca7575a3b8df0..3617c7ce9a3c0de5c26b4b6e3cada880017239d5 100755 (executable)
@@ -5,10 +5,7 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
-SQUID_CHECK_LIBTDB
-if test "$with_tdb" != "no"; then
-    BUILD_HELPER="session"
-fi
+AS_IF([test "x$LIBTDB_LIBS" != "x"],[BUILD_HELPER="session"])
 
 LIBBDB_LIBS=
 AH_TEMPLATE(USE_BERKLEYDB,[BerkleyDB support is available])
index 12dbd8a0e3a9a421c56035081443d797d6fa94de..d73fdbb89a3bab4a2d600d6e060baaf8dbd1463b 100644 (file)
@@ -5,7 +5,4 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
-SQUID_CHECK_LIBTDB
-if test "$with_tdb" != "no"; then
-    BUILD_HELPER="time_quota"
-fi
+AS_IF([test "x$LIBTDB_LIBS" != "x"],[BUILD_HELPER="time_quota"])