[Patch v3 01/11] configure: detect Xapian:FieldProcessor
authorDavid Bremner <david@tethera.net>
Sun, 1 May 2016 01:24:29 +0000 (22:24 +2100)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 23:21:43 +0000 (16:21 -0700)
b5/b4f658718fee456a84fcc9fd5cc2fd444fb8b6 [new file with mode: 0644]

diff --git a/b5/b4f658718fee456a84fcc9fd5cc2fd444fb8b6 b/b5/b4f658718fee456a84fcc9fd5cc2fd444fb8b6
new file mode 100644 (file)
index 0000000..ef31a22
--- /dev/null
@@ -0,0 +1,142 @@
+Return-Path: <bremner@tethera.net>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by arlo.cworth.org (Postfix) with ESMTP id A50BC6DE093F\r
+ for <notmuch@notmuchmail.org>; Sat, 30 Apr 2016 18:25:13 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.015\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.015 tagged_above=-999 required=5\r
+ tests=[AWL=-0.004, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01]\r
+ autolearn=disabled\r
+Received: from arlo.cworth.org ([127.0.0.1])\r
+ by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id nSDwtgWefbH4 for <notmuch@notmuchmail.org>;\r
+ Sat, 30 Apr 2016 18:25:05 -0700 (PDT)\r
+Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197])\r
+ by arlo.cworth.org (Postfix) with ESMTPS id 0D0856DE035A\r
+ for <notmuch@notmuchmail.org>; Sat, 30 Apr 2016 18:24:51 -0700 (PDT)\r
+Received: from remotemail by fethera.tethera.net with local (Exim 4.84)\r
+ (envelope-from <bremner@tethera.net>)\r
+ id 1awg7q-0006c5-1t; Sat, 30 Apr 2016 21:24:46 -0400\r
+Received: (nullmailer pid 29939 invoked by uid 1000);\r
+ Sun, 01 May 2016 01:24:43 -0000\r
+From: David Bremner <david@tethera.net>\r
+To: notmuch@notmuchmail.org\r
+Subject: [Patch v3 01/11] configure: detect Xapian:FieldProcessor\r
+Date: Sat, 30 Apr 2016 22:24:29 -0300\r
+Message-Id: <1462065879-29860-2-git-send-email-david@tethera.net>\r
+X-Mailer: git-send-email 2.8.0.rc3\r
+In-Reply-To: <1462065879-29860-1-git-send-email-david@tethera.net>\r
+References: <1462065879-29860-1-git-send-email-david@tethera.net>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.20\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <https://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch/>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <https://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sun, 01 May 2016 01:25:13 -0000\r
+\r
+Rather than check versions, it seems more robust to do a test compile.\r
+---\r
+ configure | 31 +++++++++++++++++++++++++++----\r
+ 1 file changed, 27 insertions(+), 4 deletions(-)\r
+\r
+diff --git a/configure b/configure\r
+index 4fc31cc..26c8870 100755\r
+--- a/configure\r
++++ b/configure\r
+@@ -356,9 +356,10 @@ if [ ${have_xapian} = "0" ]; then\r
+     errors=$((errors + 1))\r
+ fi\r
\r
+-# Compaction is only supported on Xapian > 1.2.6\r
+ have_xapian_compact=0\r
++have_xapian_field_processor=0\r
+ if [ ${have_xapian} = "1" ]; then\r
++    # Compaction is only supported on Xapian > 1.2.6\r
+     printf "Checking for Xapian compaction support... "\r
+     case "${xapian_version}" in\r
+       0.*|1.[01].*|1.2.[0-5])\r
+@@ -369,10 +370,23 @@ if [ ${have_xapian} = "1" ]; then\r
+       *)\r
+           printf "Unknown version.\n" ;;\r
+     esac\r
+-fi\r
\r
+-default_xapian_backend=""\r
+-if [ ${have_xapian} = "1" ]; then\r
++    printf "Checking for Xapian FieldProcessor API... "\r
++    cat>_field_processor.cc<<EOF\r
++#include <xapian.h>\r
++class TitleFieldProcessor : public Xapian::FieldProcessor { };\r
++EOF\r
++    if ${CXX} ${CXXLAGS} ${xapian_cxxflags} -c _field_processor.cc -o _field_processor.o > /dev/null 2>&1\r
++    then\r
++      have_xapian_field_processor=1\r
++      printf "Yes.\n"\r
++    else\r
++      printf "No. (optional)\n"\r
++    fi\r
++\r
++    rm -f _field_processor.o _field_processor.cc\r
++\r
++    default_xapian_backend=""\r
+     printf "Testing default Xapian backend... "\r
+     cat >_default_backend.cc <<EOF\r
+ #include <xapian.h>\r
+@@ -390,6 +404,7 @@ EOF\r
+     printf "${default_xapian_backend}\n";\r
+     rm -rf test.db _default_backend _default_backend.cc\r
+ fi\r
++\r
+ # we need to have a version >= 2.6.5 to avoid a crypto bug. We need\r
+ # 2.6.7 for permissive "From " header handling.\r
+ GMIME_MINVER=2.6.7\r
+@@ -997,6 +1012,9 @@ HAVE_D_TYPE = ${have_d_type}\r
+ # Whether the Xapian version in use supports compaction\r
+ HAVE_XAPIAN_COMPACT = ${have_xapian_compact}\r
\r
++# Whether the Xapian version in use supports field processors\r
++HAVE_XAPIAN_FIELD_PROCESSOR = ${have_xapian_field_processor}\r
++\r
+ # Whether the getpwuid_r function is standards-compliant\r
+ # (if not, then notmuch will #define _POSIX_PTHREAD_SEMANTICS\r
+ # to enable the standards-compliant version -- needed for Solaris)\r
+@@ -1071,6 +1089,7 @@ CONFIGURE_CFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)      \\\r
+                  -DSTD_GETPWUID=\$(STD_GETPWUID)                       \\\r
+                  -DSTD_ASCTIME=\$(STD_ASCTIME)                         \\\r
+                  -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT)         \\\r
++                 -DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_PROCESSOR) \\\r
+                  -DUTIL_BYTE_ORDER=\$(UTIL_BYTE_ORDER)\r
\r
+ CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)    \\\r
+@@ -1085,6 +1104,7 @@ CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)    \\\r
+                    -DSTD_GETPWUID=\$(STD_GETPWUID)                     \\\r
+                    -DSTD_ASCTIME=\$(STD_ASCTIME)                       \\\r
+                    -DHAVE_XAPIAN_COMPACT=\$(HAVE_XAPIAN_COMPACT)       \\\r
++                   -DHAVE_XAPIAN_FIELD_PROCESSOR=\$(HAVE_XAPIAN_FIELD_PROCESSOR) \\\r
+                    -DUTIL_BYTE_ORDER=\$(UTIL_BYTE_ORDER)\r
\r
+ CONFIGURE_LDFLAGS =  \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(XAPIAN_LDFLAGS)\r
+@@ -1098,6 +1118,9 @@ cat > sh.config <<EOF\r
+ # Whether the Xapian version in use supports compaction\r
+ NOTMUCH_HAVE_XAPIAN_COMPACT=${have_xapian_compact}\r
\r
++# Whether the Xapian version in use supports field processors\r
++NOTMUCH_HAVE_XAPIAN_FIELD_PROCESSOR=${have_xapian_field_processor}\r
++\r
+ # Which backend will Xapian use by default?\r
+ NOTMUCH_DEFAULT_XAPIAN_BACKEND=${default_xapian_backend}\r
\r
+-- \r
+2.8.0.rc3\r
+\r