Re: A systematic way of handling Xapian lock errors?
[notmuch-archives.git] / e3 / 678a3fe70d41106dbd0472f655d7c01af60b5a
1 Return-Path: <ethan.glasser.camp@gmail.com>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id 5EC41431FAF\r
6         for <notmuch@notmuchmail.org>; Sun,  1 Jul 2012 09:45:20 -0700 (PDT)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: 1.061\r
10 X-Spam-Level: *\r
11 X-Spam-Status: No, score=1.061 tagged_above=-999 required=5\r
12         tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1,\r
13         FREEMAIL_FROM=0.001, RCVD_IN_BL_SPAMCOP_NET=1.246,\r
14         RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_SORBS_WEB=0.614] autolearn=disabled\r
15 Received: from olra.theworths.org ([127.0.0.1])\r
16         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
17         with ESMTP id ILN9iYnONbbA for <notmuch@notmuchmail.org>;\r
18         Sun,  1 Jul 2012 09:45:18 -0700 (PDT)\r
19 Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com\r
20  [74.125.82.45])        (using TLSv1 with cipher RC4-SHA (128/128 bits))        (No client\r
21  certificate requested) by olra.theworths.org (Postfix) with ESMTPS id\r
22  D9968431FAE    for <notmuch@notmuchmail.org>; Sun,  1 Jul 2012 09:45:17 -0700\r
23  (PDT)\r
24 Received: by wgbdt14 with SMTP id dt14so3720563wgb.2\r
25         for <notmuch@notmuchmail.org>; Sun, 01 Jul 2012 09:45:16 -0700 (PDT)\r
26 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;\r
27         h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references;\r
28         bh=X6hLOJsWOhhBvyxEGXCGI+3zWvDOb1uiOQcr8AYYYcw=;\r
29         b=bjXBoHgztwu74+hhpeHnk6xaWiNM26sdCSn9EHKf5VHINfqilpm5lw/D3dWZO0DT88\r
30         IYCYs+I1+aNKnZGzKbic6GRqs5WZcwWackRv0zNMfBV4mk2hXnpdsG54BREk7yeZ7qXS\r
31         JwOW1dsxLwgbriHNA63rNyebodHcW2sTZzec+SldthZfFYyuuqSgouo6rRUiGPjSge/p\r
32         YPB6/FtG1phja5FKlX7wIXbt7zeET2rNrYnLOLAH03OAwVcuY/RfpsnE2U0qzafFoK3L\r
33         rdtWqtHBJ1nkLN7JKRJakZ+ViFF++mgzAb6SvYdvamGhvTgY34lE3vsjl2KoABATXDKc\r
34         e8LQ==\r
35 Received: by 10.180.93.196 with SMTP id cw4mr17915239wib.11.1341161116602;\r
36         Sun, 01 Jul 2012 09:45:16 -0700 (PDT)\r
37 Received: from localhost ([195.24.209.21])\r
38         by mx.google.com with ESMTPS id fu8sm19712048wib.5.2012.07.01.09.45.09\r
39         (version=TLSv1/SSLv3 cipher=OTHER);\r
40         Sun, 01 Jul 2012 09:45:15 -0700 (PDT)\r
41 From: Ethan Glasser-Camp <ethan.glasser.camp@gmail.com>\r
42 To: notmuch@notmuchmail.org\r
43 Subject: [PATCH v2 2/8] Introduce uriparser\r
44 Date: Sun,  1 Jul 2012 12:39:44 -0400\r
45 Message-Id: <1341160790-14525-3-git-send-email-ethan@betacantrips.com>\r
46 X-Mailer: git-send-email 1.7.9.5\r
47 In-Reply-To: <1341160790-14525-1-git-send-email-ethan@betacantrips.com>\r
48 References:\r
49  <CAOJ+Ob0MSOez2MvD2fCgF7t32kFPk4g2+xCud88QmBLt_b5pOA@mail.gmail.com>\r
50         <1341160790-14525-1-git-send-email-ethan@betacantrips.com>\r
51 Cc: Ethan Glasser-Camp <ethan@betacantrips.com>\r
52 X-BeenThere: notmuch@notmuchmail.org\r
53 X-Mailman-Version: 2.1.13\r
54 Precedence: list\r
55 List-Id: "Use and development of the notmuch mail system."\r
56         <notmuch.notmuchmail.org>\r
57 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
58         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
59 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
60 List-Post: <mailto:notmuch@notmuchmail.org>\r
61 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
62 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
63         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
64 X-List-Received-Date: Sun, 01 Jul 2012 16:45:20 -0000\r
65 \r
66 Seeing as there is no glib-standard way to parse URIs, an external\r
67 library is needed. This commit introduces another program in compat/\r
68 and a stanza in ./configure to test if uriparser is there.\r
69 \r
70 Signed-off-by: Ethan Glasser-Camp <ethan@betacantrips.com>\r
71 ---\r
72  Makefile.local          |    2 +-\r
73  compat/have_uriparser.c |   17 +++++++++++++++++\r
74  configure               |   23 ++++++++++++++++++++---\r
75  3 files changed, 38 insertions(+), 4 deletions(-)\r
76  create mode 100644 compat/have_uriparser.c\r
77 \r
78 diff --git a/Makefile.local b/Makefile.local\r
79 index a890df2..084f44e 100644\r
80 --- a/Makefile.local\r
81 +++ b/Makefile.local\r
82 @@ -41,7 +41,7 @@ PV_FILE=bindings/python/notmuch/version.py\r
83  # Smash together user's values with our extra values\r
84  FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CFLAGS) $(WARN_CFLAGS) $(CONFIGURE_CFLAGS) $(extra_cflags)\r
85  FINAL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)\r
86 -FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS)\r
87 +FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(URIPARSER_LDFLAGS)\r
88  FINAL_NOTMUCH_LINKER = CC\r
89  ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1)\r
90  FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS)\r
91 diff --git a/compat/have_uriparser.c b/compat/have_uriparser.c\r
92 new file mode 100644\r
93 index 0000000..d79e51d\r
94 --- /dev/null\r
95 +++ b/compat/have_uriparser.c\r
96 @@ -0,0 +1,17 @@\r
97 +#include <uriparser/Uri.h>\r
98 +\r
99 +int\r
100 +main (int argc, char *argv[])\r
101 +{\r
102 +    UriParserStateA state;\r
103 +    UriUriA uri;\r
104 +    char *uriS = NULL;\r
105 +\r
106 +    state.uri = &uri;\r
107 +    if (uriParseUriA (&state, uriS) != URI_SUCCESS) {\r
108 +        /* Failure */\r
109 +        uriFreeUriMembersA (&uri);\r
110 +    }\r
111 +\r
112 +    return 0;\r
113 +}\r
114 diff --git a/configure b/configure\r
115 index 3fad424..80aa13c 100755\r
116 --- a/configure\r
117 +++ b/configure\r
118 @@ -313,6 +313,19 @@ else\r
119      errors=$((errors + 1))\r
120  fi\r
121  \r
122 +printf "Checking for uriparser... "\r
123 +if ${CC} -o compat/have_uriparser "$srcdir"/compat/have_uriparser.c -luriparser > /dev/null 2>&1\r
124 +then\r
125 +    printf "Yes.\n"\r
126 +    uriparser_ldflags="-luriparser"\r
127 +    have_uriparser=1\r
128 +else\r
129 +    printf "No.\n"\r
130 +    have_uriparser=0\r
131 +    errors=$((errors + 1))\r
132 +fi\r
133 +rm -f compat/have_uriparser\r
134 +\r
135  printf "Checking for valgrind development files... "\r
136  if pkg-config --exists valgrind; then\r
137      printf "Yes.\n"\r
138 @@ -431,11 +444,11 @@ case a simple command will install everything you need. For example:\r
139  \r
140  On Debian and similar systems:\r
141  \r
142 -       sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev\r
143 +       sudo apt-get install libxapian-dev libgmime-2.6-dev libtalloc-dev liburiparser-dev\r
144  \r
145  Or on Fedora and similar systems:\r
146  \r
147 -       sudo yum install xapian-core-devel gmime-devel libtalloc-devel\r
148 +       sudo yum install xapian-core-devel gmime-devel libtalloc-devel uriparser-devel\r
149  \r
150  On other systems, similar commands can be used, but the details of the\r
151  package names may be different.\r
152 @@ -669,6 +682,9 @@ GMIME_LDFLAGS = ${gmime_ldflags}\r
153  TALLOC_CFLAGS = ${talloc_cflags}\r
154  TALLOC_LDFLAGS = ${talloc_ldflags}\r
155  \r
156 +# Flags needed to link against uriparser\r
157 +URIPARSER_LDFLAGS = ${uriparser_ldflags}\r
158 +\r
159  # Flags needed to have linker set rpath attribute\r
160  RPATH_LDFLAGS = ${rpath_ldflags}\r
161  \r
162 @@ -698,5 +714,6 @@ CONFIGURE_CXXFLAGS = -DHAVE_GETLINE=\$(HAVE_GETLINE) \$(GMIME_CFLAGS)    \\\r
163                      \$(TALLOC_CFLAGS) -DHAVE_VALGRIND=\$(HAVE_VALGRIND) \\\r
164                      \$(VALGRIND_CFLAGS) \$(XAPIAN_CXXFLAGS)             \\\r
165                       -DHAVE_STRCASESTR=\$(HAVE_STRCASESTR)\r
166 -CONFIGURE_LDFLAGS =  \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS)\r
167 +CONFIGURE_LDFLAGS =  \$(GMIME_LDFLAGS) \$(TALLOC_LDFLAGS) \$(XAPIAN_LDFLAGS) \\\r
168 +                     \$(URIPARSER_LDFLAGS)\r
169  EOF\r
170 -- \r
171 1.7.9.5\r
172 \r