<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/lib, branch 0.4</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.4</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.4'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2010-11-02T06:24:40Z</updated>
<entry>
<title>lib: Eliminate some redundant includes of xapian.h</title>
<updated>2010-11-02T06:24:40Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-11-02T05:31:45Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d064bd696ccc443a7ece9cfc8816999c69943223'/>
<id>urn:sha1:d064bd696ccc443a7ece9cfc8816999c69943223</id>
<content type='text'>
Most files including this already include database-private.h which
includes xapian.h already.
</content>
</entry>
<entry>
<title>lib: Add GCC visibility(hidden) pragmas to private header files.</title>
<updated>2010-11-02T05:35:48Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-11-02T05:01:15Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c81cecf620d506653a1ead83858b8b3fc240abb5'/>
<id>urn:sha1:c81cecf620d506653a1ead83858b8b3fc240abb5</id>
<content type='text'>
This prevents any of the private functions from being leaked out
through the library interface (at least when compiling with a
recent-enough gcc to support the visibility pragma).
</content>
</entry>
<entry>
<title>lib: Add some missing static qualifiers.</title>
<updated>2010-11-02T04:58:43Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-11-02T04:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=67c3bc9db48c9e12d648df4792c706cae723676c'/>
<id>urn:sha1:67c3bc9db48c9e12d648df4792c706cae723676c</id>
<content type='text'>
These various functions and data are all used only locally, so should
be marked static. Ensuring we get these right will avoid us accidentally
leaking unintended symbols through the library interface.
</content>
</entry>
<entry>
<title>Update library version to 1.2.0</title>
<updated>2010-11-01T23:13:44Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-11-01T23:13:44Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=4dd066ae6cef50eeed805ab16c10a2190de606fb'/>
<id>urn:sha1:4dd066ae6cef50eeed805ab16c10a2190de606fb</id>
<content type='text'>
This increment is for the recently-added functions:

	notmuch_query_get_query_string
	notmuch_query_get_sort

These were recently added to the library interface, but the library
version was not incremented at that time, (shame on me).
</content>
</entry>
<entry>
<title>Do not call ldconfig when building Debian package</title>
<updated>2010-10-28T20:06:46Z</updated>
<author>
<name>Michal Sojka</name>
<email>sojkam1@fel.cvut.cz</email>
</author>
<published>2010-06-16T14:14:18Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f7a688ec5314e668a6976805ae88d4e62f7cbd89'/>
<id>urn:sha1:f7a688ec5314e668a6976805ae88d4e62f7cbd89</id>
<content type='text'>
Hi,

If I want to build Debian package, it fails with the following message:

    ldconfig: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
    make[1]: *** [install-lib] Error 1

The reason is that I build the package as a non-root user and make
install invokes ldconfig unconditionally. The following patch contains a
workaround, but I think that a more correct solution would be to check
the condition LIBDIR_IN_LDCONFIG directly when make install is invoked
rather than in configure as it is done now.

Signed-off-by: Michal Sojka &lt;sojkam1@fel.cvut.cz&gt;
</content>
</entry>
<entry>
<title>lib: Add two functions: notmuch_query_get_query_string and _get_sort</title>
<updated>2010-10-28T17:30:26Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-10-28T17:30:26Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=e83b40138ef3dd116001a4c53150d0a3274b41c0'/>
<id>urn:sha1:e83b40138ef3dd116001a4c53150d0a3274b41c0</id>
<content type='text'>
It can be handy to be able to query these settings from an existing
query object.
</content>
</entry>
<entry>
<title>lib: Fix notmuch_query_search_threads to return NULL on any Xapian exception.</title>
<updated>2010-10-23T00:56:58Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-10-23T00:55:07Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f6cb896bc4c0bafca1acd5ac3fb45169cd893e29'/>
<id>urn:sha1:f6cb896bc4c0bafca1acd5ac3fb45169cd893e29</id>
<content type='text'>
Previously, if the underlying search_messages hit an exception and returned
NULL, this function would ignore that and return a non-NULL, (but empty)
threads object. Fix this to properly propagate the error.
</content>
</entry>
<entry>
<title>lib: Fix "make install"</title>
<updated>2010-09-21T16:09:01Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-09-21T16:09:01Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=8071c5cd643f7436fb65d0c74676179ea472b155'/>
<id>urn:sha1:8071c5cd643f7436fb65d0c74676179ea472b155</id>
<content type='text'>
This has been broken since the addition of the test sub-directory to our
non-recursive make system.
</content>
</entry>
<entry>
<title>lib: Fix use-after-free bug.</title>
<updated>2010-09-20T22:01:52Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-09-20T22:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=029830c1f130b3780684d056c01a73061090f15f'/>
<id>urn:sha1:029830c1f130b3780684d056c01a73061090f15f</id>
<content type='text'>
Thanks to the new git-based test suite, it's easy to run the whole
test suite in valgrind, (simply "make test OPTIONS="--valgrind"), and
doing so showed this obvious use-after-free bug, (triggered by the
thread-order tests).
</content>
</entry>
<entry>
<title>make install: Run ldconfig or install a DT_RUNPATH in binary as appropriate.</title>
<updated>2010-06-04T23:52:56Z</updated>
<author>
<name>Carl Worth</name>
<email>cworth@cworth.org</email>
</author>
<published>2010-06-04T23:52:56Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=d64d0cc8d9f9e9f23fa4432328db2ea4739bae0f'/>
<id>urn:sha1:d64d0cc8d9f9e9f23fa4432328db2ea4739bae0f</id>
<content type='text'>
Various users were confused as to why they couldn't run notmuch
immediately after "make install", (with linker errors saying that
libnotmuch.so could not be found). The errors came from two different
causes:

1. The user had installed to a system library directory, but had not
   yet run ldconfig.

2. The user had installed to some non-system directory, and had not
   set the LD_LIBRARY_PATH variable.

With this change we fix both problems (on Linux) without the user
having to do anything additional. We first use ldconfig to find the
system library directories. If the user is installing to one of these,
then we run ldconfig as part of "make install".

For case (2) we use the -rpath and --enable-new-dtags linker options
to install a DT_RUNPATH entry in the binary. This entry tells the
dynamic linker where to find libnotmuch. Without the
--enable-new-dtags option only a DT_RPATH option would be installed,
(which has the drawback of not allowing any override with the
LD_LIBRARY_PATH variable).

Distributions (such as Debian and Fedora) don't want to see binaries
packaged with a DT_RPATH or DT_RUNPATH entry. This should be avoided
automatically as long as the packages install to standard locations,
(such as /usr/lib).
</content>
</entry>
</feed>
