Hello,
There seems to be no need for Berkley DB e.g. the way I use isync.
So I'd propose to allow people to avoid the dependency.
Note: I am really bad at autoconf/automake, so I've just been
guessing/copy-pasting me towards this patch.

Regards,
Reimar Döffinger
>From 8b876090c3bbfa84ba172d5bc03da3a14c7c4071 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= <reimar.doeffin...@gmx.de>
Date: Sat, 11 Apr 2015 20:06:30 +0200
Subject: [PATCH] Make Berkley DB an optional dependency.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

It doesn't seem necessary for any of the basic functionality.

Signed-off-by: Reimar Döffinger <reimar.doeffin...@gmx.de>
---
 README                 |  2 +-
 configure.ac           | 13 ++++++++++---
 src/Makefile.am        | 13 ++++++++-----
 src/compat/Makefile.am |  2 +-
 src/drv_maildir.c      |  1 -
 5 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/README b/README
index 66a0017..aa020de 100644
--- a/README
+++ b/README
@@ -61,7 +61,7 @@ isync executable still exists; it is a compatibility wrapper around mbsync.
 
 * Requirements
 
-    Berkley DB 4.2+
+    Berkley DB 4.2+ (optional)
     OpenSSL for TLS/SSL support (optional)
 
 * Installation
diff --git a/configure.ac b/configure.ac
index 20230e5..16314b2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -146,8 +146,9 @@ AC_CACHE_CHECK([for Berkley DB >= 4.2], ac_cv_berkdb4,
 	        db->truncate(db, 0, 0, 0);
 	        db->open(db, 0, "foo", "foo", DB_HASH, DB_CREATE, 0)],
 	       [ac_cv_berkdb4=yes])])
-if test "x$ac_cv_berkdb4" = xno; then
-  AC_MSG_ERROR([Berkley DB >= 4.2 not found.])
+if test "x$ac_cv_berkdb4" = xyes; then
+  AC_SUBST([DB_LIBS], ["-ldb"])
+  AC_DEFINE(USE_DB, 1, [if Berkley DB should be used])
 fi
 
 have_zlib=
@@ -165,7 +166,8 @@ AC_ARG_ENABLE(compat,
 if test "x$ob_cv_enable_compat" != xno; then
   AC_CHECK_FUNCS(getopt_long)
 fi
-AM_CONDITIONAL(with_compat, test "x$ob_cv_enable_compat" != xno)
+AM_CONDITIONAL(with_compat, test "x$ob_cv_enable_compat" != xno -a "x$ac_cv_berkdb4" = xyes)
+AM_CONDITIONAL(with_mdconvert, test "x$ac_cv_berkdb4" = xyes)
 
 AC_CONFIG_FILES([Makefile src/Makefile src/compat/Makefile isync.spec])
 AC_OUTPUT
@@ -186,4 +188,9 @@ if test -n "$have_zlib"; then
 else
     AC_MSG_RESULT([Not using zlib])
 fi
+if test "x$ac_cv_berkdb4" = xyes; then
+    AC_MSG_RESULT([Using Berkley DB])
+else
+    AC_MSG_RESULT([Not using Berkley DB])
+fi
 AC_MSG_RESULT()
diff --git a/src/Makefile.am b/src/Makefile.am
index 0a49f21..a0806c7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,21 +3,24 @@ compat_dir = compat
 endif
 SUBDIRS = $(compat_dir)
 
-bin_PROGRAMS = mbsync mdconvert
+bin_PROGRAMS = mbsync
+man_MANS = mbsync.1
+if with_mdconvert
+bin_PROGRAMS += mdconvert
+man_MANS += mdconvert.1
+endif
 
 mbsync_SOURCES = main.c sync.c config.c util.c socket.c driver.c drv_imap.c drv_maildir.c
-mbsync_LDADD = -ldb $(SSL_LIBS) $(SOCK_LIBS) $(SASL_LIBS) $(Z_LIBS)
+mbsync_LDADD = $(DB_LIBS) $(SSL_LIBS) $(SOCK_LIBS) $(SASL_LIBS) $(Z_LIBS)
 noinst_HEADERS = common.h config.h driver.h sync.h socket.h
 
 mdconvert_SOURCES = mdconvert.c
-mdconvert_LDADD = -ldb
+mdconvert_LDADD = $(DB_LIBS)
 
 EXTRA_PROGRAMS = tst_timers
 
 tst_timers_SOURCES = tst_timers.c util.c
 
-man_MANS = mbsync.1 mdconvert.1
-
 exampledir = $(docdir)/examples
 example_DATA = mbsyncrc.sample
 
diff --git a/src/compat/Makefile.am b/src/compat/Makefile.am
index c234f0f..6a99942 100644
--- a/src/compat/Makefile.am
+++ b/src/compat/Makefile.am
@@ -1,7 +1,7 @@
 bin_PROGRAMS = isync
 
 isync_SOURCES = main.c config.c convert.c util.c
-isync_LDADD = -ldb
+isync_LDADD = $(DB_LIBS)
 noinst_HEADERS = isync.h
 
 man_MANS = isync.1
diff --git a/src/drv_maildir.c b/src/drv_maildir.c
index 045dd9c..6c72bef 100644
--- a/src/drv_maildir.c
+++ b/src/drv_maildir.c
@@ -38,7 +38,6 @@
 #include <time.h>
 #include <utime.h>
 
-#define USE_DB 1
 #ifdef __linux__
 # define LEGACY_FLOCK 1
 #endif
-- 
2.1.4

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to