Commit graph

6976 commits

Author SHA1 Message Date
David Bremner
411675a6ce lib: index message files with duplicate message-ids
The corresponding xapian document just gets more terms added to it,
but this doesn't seem to break anything. Values on the other hand get
overwritten, which is a bit annoying, but arguably it is not worse to
take the values (from, subject, date) from the last file indexed
rather than the first.
2017-08-01 21:17:47 -04:00
David Bremner
639aced9c9 test: add known broken tests for duplicate message id
There are many other problems that could be tested, but these ones we
have some hope of fixing because it doesn't require UI changes, just
indexing changes.
2017-08-01 21:17:47 -04:00
David Bremner
4fdabd636e lib: refactor notmuch_database_add_message header parsing
This function is large and hard to understand and modify. Start to
break it down into meaningful pieces.
2017-08-01 21:17:47 -04:00
David Bremner
2f94b3090c lib: factor out message-id parsing to separate file.
This is really pure C string parsing, and doesn't need to be mixed in
with the Xapian/C++ layer. Although not strictly necessary, it also
makes it a bit more natural to call _parse_message_id from multiple
compilation units.
2017-08-01 21:17:47 -04:00
David Bremner
95b52e85b2 lib/n_d_add_message: refactor test for new/ghost messages
The switch is easier to understand than the side effects in the if
test. It also potentially allows us more flexibility in breaking up
this function into smaller pieces, since passing private_status around
is icky.
2017-08-01 21:17:47 -04:00
David Bremner
4034a7cec7 lib: isolate n_d_add_message and helper functions into own file
'database.cc' is becoming a monster, and it's hard to follow what the
various static functions are used for. It turns out that about 1/3 of
this file notmuch_database_add_message and helper functions not used
by any other function. This commit isolates this code into it's own
file.

Some side effects of this refactoring:

- find_doc_ids becomes the non-static (but still private)
  _notmuch_database_find_doc_ids
- a few instances of 'string' have 'std::' prepended, avoiding the
  need for 'using namespace std;' in the new file.
2017-08-01 21:17:47 -04:00
David Bremner
4a101ec7aa uploaded to unstable
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAll8dtIACgkQ8gKXHaSn
 niyGdgv/X3qLR8QVEZvgO9te9J01GBoSl+zhfrQ0Df1jJxzoQ+VhEkko1Manico/
 rmz+I2pVXJ2ESbdphka82kBLaThiRUqYE19/FoZG8CWVwp9bX28xas04Bn7a1tvi
 K2MYsPB4HMN6QJlrXw+Vb1dYW4RN+SOOZydQOqKBlk0qnyPC45/60p9K6PFgKpSO
 1nLjVOtn1DEpDv0iHJcr4oBMeJiktGv7zsyVVPXPZahaq+QIw0Cb8B7XUsO4MTdt
 heBJxf60zshYqwwPLNuxM4ncuXHRyJ0eDWG6aLVWTjJ/A0Tr19ro4RdEG9vK0any
 RmexCw8sYMFU8DGlLlnhU9Xxf4+PR3CPhrTgJ/W4zvfF4h8NYkzPo0u+6JFeRkke
 jeJsVw0erRL55B86hR6Zja5ybLlK3nysnZ+uXMgf5TKsy3vxbLO5H/mpnsVCh9Fc
 M2Mqza1kSIwXdsdVlgUyGW3lHkgw9Sx29cw2ToIViW6saVqJmTUvHhWgXifEAKAp
 NVvsWSpF
 =5/pe
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.25-2'

uploaded to unstable
2017-07-29 07:52:28 -04:00
David Bremner
81125aca51 debian: update gmime dependencies
- build against gmime 3.0 by preference
- drop gmime-2.4-dev, no longer supported upstream
2017-07-26 11:00:31 -04:00
David Bremner
d663706055 notmuch Debian 0.25-1 upload (same as 0.25)
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAll3LdcACgkQ8gKXHaSn
 nixo1wv+L6bUHhe8GSvoTgAShG/ZCHh0CKk/yVxJAviHdJL5Tc5/xV5Cb2dwCvMy
 mKLV6vbQM6O+ibeqQuq1zrRDeEjgsQmf3w33xV8CTml+upk9T7ZoelekDvfPQbtw
 fG4cKTpEwiXZjy9r/p/O8t6jWaBcgtm3zrQhp/QReleAqYEOpSRkQFyLEVNamPAA
 OMIYx3becBRVFkuR+ok455JndE8aTTde2v+E6H+hJmuNsfIa2nC1DCODDUHkGitc
 T9JwZznKUuK9G5SYVSWbJ/CKbgQ4RbccYyuQV0IDtbZUcaQ3iM10kL3pUOnL51Bo
 Q9xNOk0JoskIrS5Eku5bXohyHitrqUwsHwYFhbn+zgtrvPsWPrAcY6h0wAe9nmY1
 zG1quiq/zDEPxS+wjkYIjkj1gpDuN/BhxksSlyLRHKKosiaqASCamzMFOAYFABIx
 z73JfLn13M2dp/Jyw50nqZe+ne+uKJUDhz7zUSXB1h0QBFJjqvtj7Q3FhXql/TnS
 +zUrOvmB
 =OAE9
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.25-1'

notmuch Debian 0.25-1 upload (same as 0.25)
2017-07-26 10:02:16 -04:00
David Bremner
9f648dfbb8 debian: add changelog entry for 0.25 2017-07-25 07:30:24 -04:00
David Bremner
409f768c91 NEWS: set date 2017-07-25 07:24:11 -04:00
David Bremner
7a4c60e446 version: bump to 0.25 2017-07-25 07:21:29 -04:00
David Bremner
3cb823628c NEWS: formatting fixups
These are from Tomi, split from the previous commit
2017-07-25 07:16:20 -04:00
Tomi Ollila
d25f3603e8 NEWS for release 0.25: Emacs: support for stashing message timestamp 2017-07-25 07:15:45 -04:00
David Bremner
c28ac94abf emacs: Add commentary for MELPA users
We have a steady trickle of people using notmuch-emacs from melpa with
distro packages of notmuch, and then being confused when it doesn't
work. Try to warn people what a foot-gun this is; this commentary
should be copied to the melpa web site.
2017-07-20 07:01:17 -03:00
David Bremner
d95ccfe979 debian: changelog for 0.25~rc1-2 2017-07-18 19:48:12 -03:00
David Bremner
2a0b123ea6 debian: finalize changelog for 0.25~rc1-1 2017-07-18 07:12:12 -03:00
David Bremner
b8ccfe342d version: bump to 0.25~rc1 2017-07-18 07:04:29 -03:00
David Bremner
33e7441fb8 debian: allow emacs25 as a build depend
It's a bit crazy to require emacs 24 installed just to build, when it
isn't required to run.
2017-07-18 06:57:39 -03:00
David Bremner
1d82110f83 emacs: convert remaining format-versions from 3 to 4
This is needed for consistent beheviour between notmuch built against
gmime-2.6 and gmime-3.0 w.r.t. error reporting.
2017-07-18 06:57:26 -03:00
Daniel Kahn Gillmor
d55fffffd7 fix the generated documentation output 2017-07-18 06:53:57 -03:00
Daniel Kahn Gillmor
87bdfbc91f Fix orthography 2017-07-18 06:50:44 -03:00
Daniel Kahn Gillmor
f0b91832c2 use modern debian/copyright 2017-07-18 06:46:02 -03:00
Daniel Kahn Gillmor
02b19c3193 avoid false lintian warning about "iff" 2017-07-18 06:45:18 -03:00
Daniel Kahn Gillmor
5b6d1d720e resolve lintian tag debhelper-but-no-misc-depends notmuch-emacs
This is likely not strictly necessary given that notmuch-emacs is a
transitional package.  But having a simple consistency until we
eventually remove the transitional notmuch-emacs package seems ok too,
and fewer arbitrary lintian warnings will make real lintian warnings
more visible.
2017-07-18 06:44:10 -03:00
Daniel Kahn Gillmor
c3e282fb9b fix Python capitalization 2017-07-18 06:43:18 -03:00
Daniel Kahn Gillmor
19e3089211 explicitly mark notmuch-emacs as transitional 2017-07-18 06:42:32 -03:00
Daniel Kahn Gillmor
44914dc60e Bump standards version to 4.0.0 (no changes needed)
Some things that might be interesting (and are acceptable and
supported under 4.0.0, though not required) are:

 * supporting DEB_BUILD_OPTIONS tag nodoc wihle tagging build-deps (we
   could put python-sphinx into <!nodoc>, for example)

 * splitting out Build-Depends-Arch from Build-Depends
2017-07-18 06:42:07 -03:00
Daniel Kahn Gillmor
be381073c0 Drop duplicate Section header for notmuch-vim
Resolves lintian binary-control-field-duplicates-source
2017-07-18 06:40:52 -03:00
David Bremner
4765590c6d NEWS: drop redundant mention of dump fix
This actually happened in 0.24.x.
2017-07-18 06:36:31 -03:00
David Bremner
4c6e3d83fb uploaded to experimental
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAllsqxEACgkQ8gKXHaSn
 niwuOwv/QXqdRMfxpztcrOBFJi0HBzm6MB9dJiq6u8S738mYrLy8th16OAuI48ol
 6S/3g9CBAkMhUcg0CguIE7F2x/8w4IweMS7daBk0xhwzdzb5GczmDbgiIfvFG5v6
 PCiqFeqqc3fbhQ583KzvJOQRhRCGkR4qOpkyt3Ho8n4bkXOVawKzOs6+dsWc0X4/
 Xx8n+DZmCU1EOfZkOHCM2yU0Y7H7Hf//ZYbuttJ8gMEYzT0TqCDRNv6mrAoIEXso
 0z+yWYNhhJGqO5xVnCFf6hIxYXJ6TZam32bPkpuNK00OrEKouRQsmJ47d/0L8E17
 fCO9itYdIVKpOHMyKwY0brL+4p8quCz9xexbjeierMPM5MnqvBpR3KAfAyhC8HSH
 K2mZOLP4To1T1uV6ndSwxOec4WHYWfOWXR4FjjGGd/7hDmPGN4W0xsSC5QHeKJd2
 wGcK82Bz+2Hs55xiE4rhfW7IE7Nu0oQluVcI9bbuPu/Zh7ow8hfD6Pu31cZkMuxl
 /KOpFde4
 =W2A/
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.25_rc0-2'

merge 32 bit compilation fix
2017-07-17 09:20:10 -03:00
David Bremner
3891036eee debian: changelog stanza for 0.25~rc0-2 2017-07-17 08:50:08 -03:00
David Bremner
d2c3a0a3a8 util: make g_mime_utils_header_decode_date_unix match prototype
The problem shows up on 32 bit architectures where sizeof(time_t) !=
sizeof(gint64).  Upcasting the 32 bit time_t to a 64 bit integer
should hopefully be safe.
2017-07-17 08:47:18 -03:00
David Bremner
470f74d401 NEWS: Initial writeup for my contributions to 0.25 2017-07-16 22:43:11 -03:00
David Bremner
6e1cc3986d notmuch 0.25~rc0 release
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAllrU1QACgkQ8gKXHaSn
 niy/pAwAjJrxW+nuTdgcZg6pTvhajHHlRFNGEH1hU4UlYzUVoYAjdkGOURhOXCTj
 zXbIJ07FLrdUtsmBqTZIc1yeiN5y0D2CM7M2hYBXH8UPaXhDJEODgrZmGu5yvFxw
 2i8Fxp9sMkZXznsfvk9KJgYKHT0jbfAojKUv8pEUyI9bmxqLXdYwqCP3weiTJHmQ
 8q0T5V2Kp37JuWoZkanWKT/kMmjXCB+uFOvWKXRsfB6Zh8f8/cNikjHizRhHDHCF
 bev4kdyXwSFMwrCNy/pu6N7bg7PSGISE1Q3CGV/3B/N+D+RHp2mzmSzR5/swc6Qr
 QA6AuAIeeEe/HW/VsJzzbdnnrWmpvN2HYEf124h2tF+gBrAL0vEgHirfJgX4Ttgu
 L6+RwwQxRvFXclu1MU+oXx0KOPKGs5ARjfyXzYPD0mf7Vbcboy9ZMppF9BtRfF1o
 nYc0f4xtdGbIQvsB1db+tEAFUZHMubP5bN8ZajJKFc5ITceXuTnvLb8duVpM4Bxm
 NKtYVdVd
 =rcEm
 -----END PGP SIGNATURE-----

Merge tag '0.25_rc0'

notmuch 0.25~rc0 release
2017-07-16 09:08:39 -03:00
David Bremner
952a0f0cda debian: note two closed bugs in changelog 2017-07-16 08:49:06 -03:00
David Bremner
f2d3f15770 debian: don't create obsolete bash completion dir 2017-07-16 08:45:55 -03:00
David Bremner
a453f2b52c debian: set distribution to experimental, finalize changelog 2017-07-16 08:35:35 -03:00
David Bremner
d5fedadff4 debian: add more c++ gunk to symbols file 2017-07-16 08:18:19 -03:00
David Bremner
0832fbfca8 debian: bump changelog version, mention SONAME bump 2017-07-16 08:08:18 -03:00
David Bremner
75916f1cc2 NEWS: start entry for 0.25 2017-07-16 08:02:51 -03:00
David Bremner
694e443db5 version: bump version to 0.25~rc0 2017-07-16 08:01:42 -03:00
David Bremner
edb933b25d crypto: clean up unused definitions in gmime 3.0
based on the same patch from dkg as the previous commit.
2017-07-15 21:43:39 -03:00
David Bremner
66c9b11bb0 crypto: Avoid explicit handling of GMimeCryptoContext in gmime 3
gmime 3.0 knows how to select the correct GMimeCryptoContext
automatically, so a bunch of the code in notmuch can be dropped in
that case.

The #ifdef removal of the crypto stuff is better than #define aliasing
in gmime-extra.h for this stuff.  When built against gmime 3.0:

    * it reduces compiled code, and
    * it avoids initializing unused gpgme contexts

(based on a patch from dkg)
2017-07-15 21:43:08 -03:00
David Bremner
606e320e47 cli/crypto: eliminated compiler warnings about unused arguments
These are due to (excessively?) fancy macro definitions in gmime-extra.h
2017-07-15 21:42:49 -03:00
David Bremner
1fdc08d0ff cli/crypto: treat failure to create a crypto context as fatal.
Silently ignoring signed/encrypted parts seems like the wrong idea,
and it also complicates future gmime-3.0 compatibility changes.
2017-07-15 21:39:37 -03:00
David Bremner
f1bcb6b7c2 emacs: change default for notmuch-crypto-process-mime to t
There are some cases like remote usage where this might cause
problems, but those users can easily customize the variable. The
inconvenience seems to be outweighed by the security benefit for most
users.
2017-07-15 09:11:32 -03:00
Tomi Ollila
9fd48b78d0 NEWS: a few formatting updates for 0.24 news items (wiki compatibility)
- removed 7 trailing dots -- to make those lines subsection headers

- converted some (mime type) text to monospace

- removed one extra space
2017-07-15 09:07:17 -03:00
Daniel Kahn Gillmor
f76a245009 clean up use of constants in g_mime_multipart_ wrappers
When compiling as C code (instead of C++) against gmime 3.0, gcc gives
errors like the following:

    error: invalid conversion from ‘int’ to ‘GMimeDecryptFlags’ [-fpermissive]

so use explicit *_NONE values instead.
2017-07-14 21:23:52 -03:00
Daniel Kahn Gillmor
e142de643d config: deprecate/drop crypto.gpg_path under gmime 2.6/3.0
gmime 3.0 no longer offers a means to set the path for gpg.

Users can set $PATH anyway if they want to pick a
differently-installed gpg (e.g. /usr/local/bin/gpg), so this isn't
much of a reduction in functionality.

The one main difference is for people who have tried to use "gpg2" to
make use of gpg 2.1, but that isn't usefully co-installable anyway.
2017-07-14 21:23:52 -03:00