Hello,

I had a bit of an issue compiling this again, I had change
patch_configure to use gpg2 instead of gpg in the GMime check in order
to get it to compile. Am I missing something here?

I've been using this with emacs integration for a while now, tagging and
searching seems to be working just fine.

Best,
Andrea

--- patch-configure.orig        Sat May 16 17:46:56 2020
+++ patch-configure     Sat May 16 18:35:02 2020
@@ -3,6 +3,15 @@
 Index: configure
 --- configure.orig
 +++ configure
+@@ -533,7 +533,7 @@ EOF
+         printf 'No.\nCould not make tempdir for testing session-key 
support.\n'
+         errors=$((errors + 1))
+     elif ${CC} ${CFLAGS} ${gmime_cflags} _check_session_keys.c 
${gmime_ldflags} -o _check_session_keys \
+-           && GNUPGHOME=${TEMP_GPG} gpg --batch --quiet --import < 
test/gnupg-secret-key.asc \
++           && GNUPGHOME=${TEMP_GPG} gpg2 --batch --quiet --import < 
test/gnupg-secret-key.asc \
+            && SESSION_KEY=$(GNUPGHOME=${TEMP_GPG} ./_check_session_keys) \
+            && [ $SESSION_KEY = 
9:0BACD64099D1468AB07C796F0C0AC4851948A658A15B34E803865E9FC635F2F5 ]
+     then
 @@ -588,9 +588,9 @@ if ! pkg-config --exists zlib; then
    rm -f compat/gen_zlib_pc
  fi

Stuart Henderson <[email protected]> writes:

> Anyone want to import this now (or give me an ok to do so)?
> Reattached.
>
> (Worked on by various people including me, Olivier Taïbi, and Enric Morales)
>
>
>
> On 2020/04/19 22:32, Stuart Henderson wrote:
>> This is now OK sthen@ to import. As there has been a fair bit of
>> interest in this over time, I think it might be worth considering this
>> for commit before 6.7 if another committer agrees, but I would not like
>> to add the dependency to neomutt until after release (because then
>> notmuch build failures for any arches would knock out building neomutt
>> on those arches).
>> 
>> 
>> 
>> On 2020/04/19 23:14, Olivier Taïbi wrote:
>> > Oops, just realised that the addition of MODPY_VERSION as Stuart
>> > Henderson suggested means that sphinx-build-3 is installed as a
>> > dependency, instead of sphinx-build previously.  The attached port
>> > reflects this (sphinx-build -> sphinx-build-3 in two files).
>> > 
>> > On Thu, Apr 16, 2020 at 08:47:50PM +0200, Olivier Taïbi wrote:
>> > > On Fri, Apr 10, 2020 at 09:47:35PM +0100, Stuart Henderson wrote:
>> > > > for a standalone port, use "MODPY_VERSION = 
>> > > > ${MODPY_DEFAULT_VERSION_3}",
>> > > > the FLAVOR setup is for python modules (py-* ports).
>> > > 
>> > > Thanks, I did that.
>> > > 
>> > > > The update of the main copy in src/lib/libz has been done at least 
>> > > > twice
>> > > > (though I don't think it happened for the other copies in sys/lib/libz 
>> > > > and
>> > > > src/gnu/usr.bin/cvs - amusingly the fourth copy, in perl, is already at
>> > > > 1.2.11) - but not made it into the tree. The thing I remember putting
>> > > > some people off was the "new" z_off64_t (10 years old today in the
>> > > > public api).
>> > > > 
>> > > > But updating it is the only option that fixes the various pain / 
>> > > > patching
>> > > > / workarounds / using bundled copies in various things in ports that
>> > > > has been a problem at least going back to 2012.
>> > > 
>> > > Would incremental changes converging towards API compatibility with
>> > > newer zlib stand a better chance of being committed?
>> > > 
>> > > In any case, I patched notmuch-dump.c (mostly) to replace zlib by stdio
>> > > and added crude error checking.  Thanks to the notmuch tests I believe I
>> > > came across a bug in src/lib/libz/gzio.c, see
>> > > https://marc.info/?l=openbsd-bugs&m=158697346006702
>> > > With this patch to base, almost all tests now pass, except:
>> > > - in T350-crypto, the first decryption test fails with "Failed to
>> > >   decrypt part: Decryption failed: No secret key".  Oddly, the next ones
>> > >   succeed, and if I permute them, then only the first one fails.  I was
>> > >   not able to reproduce this bug (even running the test on another
>> > >   machine made it disappear, go figure...), and I would guess that it
>> > >   comes from gmime30 (which is responsible for looking for said secret
>> > >   key) rather than notmuch.  Probably related to an environment variable
>> > >   or something else particular to the chroot in which I build.
>> > > - In T455-emacs-charsets, two tests related to the Yen character fail,
>> > >   but I think they shouldn't: the output is the "Yen sign" U+00A5, i.e.
>> > >   0xC2 0xA5, when the test expected the "Fullwidth Yen sign" U+FFE5,
>> > >   i.e. 0xEF 0xBF 0xA5.  What we get seems to be more correct.
>> > > - in T610-message-property, the "prefix" test fails, but this seems to
>> > >   be because the test is incorrect (it expects a certain order that is
>> > >   not guaranteed by the implementation: there is a key-multiple values
>> > >   map in which the keys are sorted, but not the values).  The test
>> > >   itself should be fixed.
>> > > I also ran the tests in T530-upgrade, which require a file to be
>> > > downloaded separately (I did not see a way to achieve this automatically
>> > > using bsd.port.mk, so I just downloaded the file on the side and ran the
>> > > test manually), and the tests pass (after a small patch in
>> > > notmuch-new.c).  It probably does not matter much anyway because these
>> > > tests concern upgrading from an old database.
>> > > 
>> > > So I am now happy with the result of the tests.
>> > > 
>> > > I did not touch the python bindings part of the port.  In fact I did not
>> > > even look at it, but the test pass so hopefully they're ok.  Grepping
>> > > for dump does not yield any match, so I guess that the removal of the
>> > > --gzip option makes no difference for them.
>> > > 
>> > > Note that there are also ruby bindings, which are currently not built by
>> > > the port, and that are presumably required for the vim plugin.  I do not
>> > > intend to look at them in the near future.
>> > > 
>> > > I hope that this port can now be commited.  I have been using notmuch on
>> > > OpenBSD for more than a year without issues now, but I have not tagged
>> > > anything (too lazy) and only used searching, and so I have never had any
>> > > use for the dump/restore feature.  I hope that Enric, Andrea and others
>> > > can test tagging more extensively now.
>> > > 
>> > > Next, there is a trivial patch for neomutt (notmuch is a configure
>> > > option), which I also have been happily using.  Would that be better as
>> > > a flavor or is notmuch small enough to be a dependency of neomutt?
>> > > 
>> > > PS: The three zlib-related bugs in notmuch mentioned in a previous email
>> > > are now fixed upstream, so they should vanish in the next version.
>> > 
>> > 
>> 
>> 
> # $OpenBSD: Makefile.template,v 1.54 2008/01/13 16:43:57 espie Exp $
>
> SUBDIR =
> SUBDIR += notmuch
> SUBDIR += py-notmuch
> SUBDIR += py-notmuch,python3
>
> .include <bsd.port.subdir.mk>
> # $OpenBSD$
>
> V =                   0.29.3
> DISTNAME =            notmuch-$V
> EXTRACT_SUFX =                .tar.xz
>
> CATEGORIES =          mail databases
>
> HOMEPAGE =            https://notmuchmail.org/
> MASTER_SITES =                https://notmuchmail.org/releases/
>
> # GPLv3+
> PERMIT_PACKAGE =      Yes
> # $OpenBSD: Makefile.template,v 1.54 2008/01/13 16:43:57 espie Exp $
>
> COMMENT-main =                mail indexer, tagger and threader
> COMMENT-emacs =               Emacs bindings for notmuch
>
> PKGNAME-main =                notmuch-${V}
> PKGNAME-emacs =               notmuch-emacs-${V}
>
> SHARED_LIBS +=                notmuch 0.0
>
> MULTI_PACKAGES =      -main -emacs
> DEBUG_PACKAGES =      -main
>
> COMPILER=             base-clang ports-gcc
>
> WANTLIB-main +=               ${COMPILER_LIBCXX} c glib-2.0 gmime-3.0
> WANTLIB-main +=               gobject-2.0 intl m talloc xapian z
>
> LIB_DEPENDS =         databases/xapian-core \
>                       devel/libtalloc \
>                       mail/gmime30
>
> RUN_DEPENDS-emacs =   devel/desktop-file-utils \
>                       databases/xapian-core \
>                       editors/emacs \
>                       ${FULLPKGNAME-main}:${FULLPKGPATH-main}
>
> BUILD_DEPENDS =               devel/doxygen \
>                       editors/emacs,gtk3 \
>                       shells/bash \
>                       textproc/py-sphinx${MODPY_FLAVOR}
>
> TEST_DEPENDS =                archivers/gtar \
>                       devel/gdb \
>                       misc/dtach \
>                       security/gnupg2 \
>                       sysutils/coreutils \
>                       ${FULLPKGNAME-main}:${FULLPKGPATH-main}
>
> MODULES =             lang/python
> MODPY_RUNDEP =                No
> MODPY_PYTEST =                Yes
> MODPY_VERSION =               ${MODPY_DEFAULT_VERSION_3}
> USE_GMAKE =           Yes
> CONFIGURE_STYLE =     simple
> CONFIGURE_ARGS =      --mandir=${PREFIX}/man \
>                       --infodir=${PREFIX}/info \
>                       --sysconfdir=${SYSCONFDIR} \
>                       
> --bashcompletiondir=${PREFIX}/share/notmuch/bash_completion.d
> CONFIGURE_ENV =               PYTHON=${MODPY_BIN}
> MAKE_FLAGS =          V=1
>
> LIBnotmuch_MAJOR =    ${LIBnotmuch_VERSION:R}
> LIBnotmuch_MINOR =    ${LIBnotmuch_VERSION:E}
> SUBST_VARS =          LIBnotmuch_MAJOR LIBnotmuch_MINOR NOTMUCH_LIBV
>
> # the --gzip option of notmuch dump is disabled so skip the relevant tests
> TEST_FLAGS =  V=1 \
>               NOTMUCH_TEST_SERIALIZE=1 \
>               NOTMUCH_SKIP_TESTS="dump-restore.14 dump-restore.15" \
>               TEST_CFLAGS="-O0 -g -I${LOCALBASE}/include -L${LOCALBASE}/lib"
> TEST_TARGET = test
>
> post-extract:
>       cd ${WRKSRC}/test; [ -r test-lib-OPENBSD.sh ] || \
>           cp test-lib-FREEBSD.sh test-lib-OPENBSD.sh
>
> # Avoid conflict with C++20 <version>, also see patches
> pre-configure:
>       cd ${WRKSRC}; mv version version.txt; \
>           ${SUBST_CMD} lib/notmuch.h
>
> post-install:
>       rm ${PREFIX}/man/man1/notmuch-setup.1.gz
>       gunzip ${PREFIX}/man/*/*gz
>       ln -s notmuch.1 ${PREFIX}/man/man1/notmuch-setup.1
>
> .include <bsd.port.mk>
> SHA256 (notmuch-0.29.3.tar.xz) = 1fcEuacjleQzA96bH02OFN0nvzZG/bs3S7Pbt9FQ3DU=
> SIZE (notmuch-0.29.3.tar.xz) = 660536
> $OpenBSD$
>
> Index: Makefile.global
> --- Makefile.global.orig
> +++ Makefile.global
> @@ -16,7 +16,7 @@ else
>  DATE:=$(shell date +%F)
>  endif
>  
> -VERSION:=$(shell cat ${srcdir}/version)
> +VERSION:=$(shell cat ${srcdir}/version.txt)
>  ELPA_VERSION:=$(subst ~,_,$(VERSION))
>  ifeq ($(filter release release-message pre-release 
> update-versions,$(MAKECMDGOALS)),)
>  ifeq ($(IS_GIT),yes)
> $OpenBSD$
>
> Index: Makefile.local
> --- Makefile.local.orig
> +++ Makefile.local
> @@ -19,7 +19,7 @@ endif
>  
>  # Depend (also) on the file 'version'. In case of ifeq ($(IS_GIT),yes)
>  # this file may already have been updated.
> -version.stamp: $(srcdir)/version
> +version.stamp: $(srcdir)/version.txt
>       echo $(VERSION) > $@
>  
>  $(TAR_FILE):
> $OpenBSD$
>
> Index: bindings/python/notmuch/globals.py
> --- bindings/python/notmuch/globals.py.orig
> +++ bindings/python/notmuch/globals.py
> @@ -27,7 +27,7 @@ try:
>      if uname()[0] == 'Darwin':
>          nmlib = CDLL("libnotmuch.{0:s}.dylib".format(SOVERSION))
>      else:
> -        nmlib = CDLL("libnotmuch.so.{0:s}".format(SOVERSION))
> +        nmlib = CDLL("libnotmuch.so")
>  except:
>      raise ImportError("Could not find shared 'notmuch' library.")
>  
> $OpenBSD$
>
> Index: configure
> --- configure.orig
> +++ configure
> @@ -588,9 +588,9 @@ if ! pkg-config --exists zlib; then
>    rm -f compat/gen_zlib_pc
>  fi
>  
> -printf "Checking for zlib (>= 1.2.5.2)... "
> +printf "Checking for zlib (>= 1.2.3)... "
>  have_zlib=0
> -if pkg-config --atleast-version=1.2.5.2 zlib; then
> +if pkg-config --atleast-version=1.2.3 zlib; then
>      printf "Yes.\n"
>      have_zlib=1
>      zlib_cflags=$(pkg-config --cflags zlib)
> @@ -713,7 +713,7 @@ have_makeinfo=0
>  have_install_info=0
>  if [ $WITH_DOCS = "1" ] ; then
>      printf "Checking if sphinx is available and supports nroff output... "
> -    if command -v sphinx-build > /dev/null && ${python} -m 
> sphinx.writers.manpage > /dev/null 2>&1 ; then
> +    if command -v sphinx-build-3 > /dev/null && ${python} -m 
> sphinx.writers.manpage > /dev/null 2>&1 ; then
>       printf "Yes.\n"
>       have_sphinx=1
>      else
> $OpenBSD$
>
> Index: devel/RELEASING
> --- devel/RELEASING.orig
> +++ devel/RELEASING
> @@ -62,7 +62,7 @@ repository. From here, there are just a few steps to r
>       be "1.0.1" and a subsequent bug-fix release would be "1.0.2"
>       etc.
>  
> -     When you are happy with the file 'version', run
> +     When you are happy with the file 'version.txt', run
>  
>            make update-versions
>  
> $OpenBSD$
>
> Index: devel/nmbug/doc/conf.py
> --- devel/nmbug/doc/conf.py.orig
> +++ devel/nmbug/doc/conf.py
> @@ -17,7 +17,7 @@ location = os.path.dirname(__file__)
>  
>  dirname = location
>  while True:
> -    version_file = os.path.join(dirname, 'version')
> +    version_file = os.path.join(dirname, 'version.txt')
>      if os.path.exists(version_file):
>          with open(version_file,'r') as f:
>              version = f.read().strip()
> $OpenBSD$
>
> Index: doc/Makefile.local
> --- doc/Makefile.local.orig
> +++ doc/Makefile.local
> @@ -4,7 +4,7 @@ dir := doc
>  
>  # You can set these variables from the command line.
>  SPHINXOPTS    := -q
> -SPHINXBUILD   = HAVE_EMACS=${HAVE_EMACS} WITH_EMACS=${WITH_EMACS} 
> sphinx-build
> +SPHINXBUILD   = HAVE_EMACS=${HAVE_EMACS} WITH_EMACS=${WITH_EMACS} 
> sphinx-build-3
>  DOCBUILDDIR      := $(dir)/_build
>  
>  # Internal variables.
> $OpenBSD$
>
> Index: doc/conf.py
> --- doc/conf.py.orig
> +++ doc/conf.py
> @@ -17,7 +17,7 @@ copyright = u'2009-2019, Carl Worth and many others'
>  location = os.path.dirname(__file__)
>  
>  for pathdir in ['.', '..']:
> -    version_file = os.path.join(location,pathdir,'version')
> +    version_file = os.path.join(location,pathdir,'version.txt')
>      if os.path.exists(version_file):
>          with open(version_file,'r') as infile:
>              version=infile.read().replace('\n','')
> $OpenBSD$
>
> no gzip option because OpenBSD's zlib does not have the "transparency"
> (no compression) feature when writing to a file.
>
> Index: doc/man1/notmuch-dump.rst
> --- doc/man1/notmuch-dump.rst.orig
> +++ doc/man1/notmuch-dump.rst
> @@ -5,7 +5,7 @@ notmuch-dump
>  SYNOPSIS
>  ========
>  
> -**notmuch** **dump** [--gzip] [--format=(batch-tag|sup)] [--output=<*file*>] 
> [--] [<*search-term*> ...]
> +**notmuch** **dump** [--format=(batch-tag|sup)] [--output=<*file*>] [--] 
> [<*search-term*> ...]
>  
>  DESCRIPTION
>  ===========
> @@ -26,8 +26,6 @@ the remaining arguments are search terms.
>  
>  Supported options for **dump** include
>  
> -``--gzip``
> -    Compress the output in a format compatible with **gzip(1)**.
>  
>  ``--format=(sup|batch-tag)``
>      Notmuch restore supports two plain text dump formats, both with
> $OpenBSD$
>
> Index: emacs/Makefile.local
> --- emacs/Makefile.local.orig
> +++ emacs/Makefile.local
> @@ -128,7 +128,6 @@ endif
>  ifeq ($(WITH_DESKTOP),1)
>       mkdir -p "$(DESTDIR)$(desktop_dir)"
>       desktop-file-install --mode 0644 --dir "$(DESTDIR)$(desktop_dir)" 
> $(emacs_mua_desktop)
> -     -update-desktop-database "$(DESTDIR)$(desktop_dir)"
>  endif
>  
>  CLEAN := $(CLEAN) $(emacs_bytecode) $(dir)/notmuch-version.el 
> $(dir)/notmuch-pkg.el \
> $OpenBSD$
>
> Index: lib/Makefile.local
> --- lib/Makefile.local.orig
> +++ lib/Makefile.local
> @@ -16,9 +16,15 @@ LIBNAME = libnotmuch.$(LIBNOTMUCH_VERSION_MAJOR).$(LIB
>  LIBRARY_LINK_FLAG = -dynamiclib -install_name $(libdir)/$(SONAME) 
> -compatibility_version 
> $(LIBNOTMUCH_VERSION_MAJOR).$(LIBNOTMUCH_VERSION_MINOR) -current_version 
> $(LIBNOTMUCH_VERSION_MAJOR).$(LIBNOTMUCH_VERSION_MINOR).$(LIBNOTMUCH_VERSION_RELEASE)
>  else
>  LIBRARY_SUFFIX = so
> +ifeq ($(PLATFORM),OPENBSD)
> +LINKER_NAME = 
> libnotmuch.$(LIBRARY_SUFFIX).$(LIBNOTMUCH_VERSION_MAJOR).$(LIBNOTMUCH_VERSION_MINOR)
> +SONAME = $(LINKER_NAME)
> +LIBNAME = $(SONAME)
> +else
>  LINKER_NAME = libnotmuch.$(LIBRARY_SUFFIX)
>  SONAME = $(LINKER_NAME).$(LIBNOTMUCH_VERSION_MAJOR)
>  LIBNAME = $(SONAME).$(LIBNOTMUCH_VERSION_MINOR).$(LIBNOTMUCH_VERSION_RELEASE)
> +endif
>  LIBRARY_LINK_FLAG = -shared 
> -Wl,--version-script=$(srcdir)/$(lib)/notmuch.sym,-soname=$(SONAME) 
> $(NO_UNDEFINED_LDFLAGS)
>  ifeq ($(PLATFORM),OPENBSD)
>  LIBRARY_LINK_FLAG += -lc
> @@ -69,19 +75,23 @@ $(dir)/libnotmuch.a: $(libnotmuch_modules)
>  $(dir)/$(LIBNAME): $(libnotmuch_modules) util/libnotmuch_util.a 
> parse-time-string/libparse-time-string.a
>       $(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) 
> $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@ util/libnotmuch_util.a 
> parse-time-string/libparse-time-string.a
>  
> +ifneq ($(SONAME),$(LINKER_NAME))
>  $(dir)/$(SONAME): $(dir)/$(LIBNAME)
>       ln -sf $(LIBNAME) $@
>  
>  $(dir)/$(LINKER_NAME): $(dir)/$(SONAME)
>       ln -sf $(LIBNAME) $@
> +endif
>  
>  install: install-$(dir)
>  
>  install-$(dir): $(dir)/$(LIBNAME)
>       mkdir -p "$(DESTDIR)$(libdir)/"
>       install -m0644 "$(lib)/$(LIBNAME)" "$(DESTDIR)$(libdir)/"
> +ifneq ($(SONAME),$(LINKER_NAME))
>       ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(SONAME)"
>       ln -sf $(LIBNAME) "$(DESTDIR)$(libdir)/$(LINKER_NAME)"
> +endif
>       mkdir -p "$(DESTDIR)$(includedir)"
>       install -m0644 "$(srcdir)/$(lib)/notmuch.h" "$(DESTDIR)$(includedir)/"
>       $(LIBRARY_INSTALL_POST_COMMAND)
> $OpenBSD$
>
> Index: lib/notmuch.h
> --- lib/notmuch.h.orig
> +++ lib/notmuch.h
> @@ -57,8 +57,8 @@ NOTMUCH_BEGIN_DECLS
>   * The library version number.  This must agree with the soname
>   * version in Makefile.local.
>   */
> -#define LIBNOTMUCH_MAJOR_VERSION     5
> -#define LIBNOTMUCH_MINOR_VERSION     2
> +#define LIBNOTMUCH_MAJOR_VERSION     ${LIBnotmuch_MAJOR}
> +#define LIBNOTMUCH_MINOR_VERSION     ${LIBnotmuch_MINOR}
>  #define LIBNOTMUCH_MICRO_VERSION     0
>  
>  
> $OpenBSD$
>
> For lack of transparent write mode in zlib, replace zlib by stdio in
> notmuch dump (the --gzip option no longer exists).
>
> Index: notmuch-dump.c
> --- notmuch-dump.c.orig
> +++ notmuch-dump.c
> @@ -24,7 +24,7 @@
>  #include <zlib.h>
>  
>  static int
> -database_dump_config (notmuch_database_t *notmuch, gzFile output)
> +database_dump_config (notmuch_database_t *notmuch, FILE *output)
>  {
>      notmuch_config_list_t *list;
>      int ret = EXIT_FAILURE;
> @@ -42,7 +42,8 @@ database_dump_config (notmuch_database_t *notmuch, gzF
>                    notmuch_config_list_key (list));
>           goto DONE;
>       }
> -     gzprintf (output, "#@ %s", buffer);
> +     if (fprintf (output, "#@ %s", buffer) < 0)
> +         exit (1);
>  
>       if (hex_encode (notmuch, notmuch_config_list_value (list),
>                       &buffer, &buffer_size) != HEX_SUCCESS) {
> @@ -51,7 +52,8 @@ database_dump_config (notmuch_database_t *notmuch, gzF
>           goto DONE;
>       }
>  
> -     gzprintf (output, " %s\n", buffer);
> +     if (fprintf (output, " %s\n", buffer) < 0)
> +         exit (1);
>      }
>  
>      ret = EXIT_SUCCESS;
> @@ -67,32 +69,37 @@ database_dump_config (notmuch_database_t *notmuch, gzF
>  }
>  
>  static void
> -print_dump_header (gzFile output, int output_format, int include)
> +print_dump_header (FILE *output, int output_format, int include)
>  {
>      const char *sep = "";
>  
> -    gzprintf (output, "#notmuch-dump %s:%d ",
> -           (output_format == DUMP_FORMAT_SUP) ? "sup" : "batch-tag",
> -           NOTMUCH_DUMP_VERSION);
> +    if (fprintf (output, "#notmuch-dump %s:%d ",
> +              (output_format == DUMP_FORMAT_SUP) ? "sup" : "batch-tag",
> +              NOTMUCH_DUMP_VERSION) < 0)
> +     exit (1);
>  
>      if (include & DUMP_INCLUDE_CONFIG) {
> -     gzputs (output, "config");
> +     if (fputs ("config", output) < 0)
> +         exit (1);
>       sep = ",";
>      }
>      if (include & DUMP_INCLUDE_PROPERTIES) {
> -     gzprintf (output, "%sproperties", sep);
> +     if (fprintf (output, "%sproperties", sep) < 0)
> +         exit (1);
>       sep = ",";
>      }
>      if (include & DUMP_INCLUDE_TAGS) {
> -     gzprintf (output, "%stags", sep);
> +     if (fprintf (output, "%stags", sep) < 0)
> +         exit (1);
>      }
> -    gzputs (output, "\n");
> +    if (fputs ("\n", output) < 0)
> +     exit (1);
>  }
>  
>  static int
>  dump_properties_message (void *ctx,
>                        notmuch_message_t *message,
> -                      gzFile output,
> +                      FILE *output,
>                        char **buffer_p, size_t *size_p)
>  {
>      const char *message_id;
> @@ -115,7 +122,8 @@ dump_properties_message (void *ctx,
>               fprintf (stderr, "Error: failed to hex-encode message-id %s\n", 
> message_id);
>               return 1;
>           }
> -         gzprintf (output, "#= %s", *buffer_p);
> +         if (fprintf (output, "#= %s", *buffer_p) < 0)
> +             exit (1);
>           first = false;
>       }
>  
> @@ -126,18 +134,21 @@ dump_properties_message (void *ctx,
>           fprintf (stderr, "Error: failed to hex-encode key %s\n", key);
>           return 1;
>       }
> -     gzprintf (output, " %s", *buffer_p);
> +     if (fprintf (output, " %s", *buffer_p) < 0)
> +         exit (1);
>  
>       if (hex_encode (ctx, val, buffer_p, size_p) != HEX_SUCCESS) {
>           fprintf (stderr, "Error: failed to hex-encode value %s\n", val);
>           return 1;
>       }
> -     gzprintf (output, "=%s", *buffer_p);
> +     if (fprintf (output, "=%s", *buffer_p) < 0)
> +         exit (1);
>      }
>      notmuch_message_properties_destroy (list);
>  
>      if (! first)
> -     gzprintf (output, "\n", *buffer_p);
> +     if (fputs ("\n", output) < 0)
> +         exit (1);
>  
>      return 0;
>  }
> @@ -145,7 +156,7 @@ dump_properties_message (void *ctx,
>  static int
>  dump_tags_message (void *ctx,
>                  notmuch_message_t *message, int output_format,
> -                gzFile output,
> +                FILE *output,
>                  char **buffer_p, size_t *size_p)
>  {
>      int first = 1;
> @@ -165,7 +176,8 @@ dump_tags_message (void *ctx,
>      }
>  
>      if (output_format == DUMP_FORMAT_SUP) {
> -     gzprintf (output, "%s (", message_id);
> +     if (fprintf (output, "%s (", message_id) < 0)
> +         exit (1);
>      }
>  
>      for (notmuch_tags_t *tags = notmuch_message_get_tags (message);
> @@ -174,12 +186,14 @@ dump_tags_message (void *ctx,
>       const char *tag_str = notmuch_tags_get (tags);
>  
>       if (! first)
> -         gzputs (output, " ");
> +         if (fputs (" ", output) < 0)
> +             exit (1);
>  
>       first = 0;
>  
>       if (output_format == DUMP_FORMAT_SUP) {
> -         gzputs (output, tag_str);
> +         if (fputs (tag_str, output) < 0)
> +             exit (1);
>       } else {
>           if (hex_encode (ctx, tag_str,
>                           buffer_p, size_p) != HEX_SUCCESS) {
> @@ -187,12 +201,14 @@ dump_tags_message (void *ctx,
>                        tag_str);
>               return EXIT_FAILURE;
>           }
> -         gzprintf (output, "+%s", *buffer_p);
> +         if (fprintf (output, "+%s", *buffer_p) < 0)
> +             exit (1);
>       }
>      }
>  
>      if (output_format == DUMP_FORMAT_SUP) {
> -     gzputs (output, ")\n");
> +     if (fputs (")\n", output) < 0)
> +         exit (1);
>      } else {
>       if (make_boolean_term (ctx, "id", message_id,
>                              buffer_p, size_p)) {
> @@ -200,13 +216,14 @@ dump_tags_message (void *ctx,
>                    message_id, strerror (errno));
>           return EXIT_FAILURE;
>       }
> -     gzprintf (output, " -- %s\n", *buffer_p);
> +     if (fprintf (output, " -- %s\n", *buffer_p) < 0)
> +         exit (1);
>      }
>      return EXIT_SUCCESS;
>  }
>  
>  static int
> -database_dump_file (notmuch_database_t *notmuch, gzFile output,
> +database_dump_file (notmuch_database_t *notmuch, FILE *output,
>                   const char *query_str, int output_format, int include)
>  {
>      notmuch_query_t *query;
> @@ -279,8 +296,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
>                      dump_include_t include,
>                      bool gzip_output)
>  {
> -    gzFile output = NULL;
> -    const char *mode = gzip_output ? "w9" : "wT";
> +    FILE *output = NULL;
>      const char *name_for_error = output_file_name ? output_file_name : 
> "stdout";
>  
>      char *tempname = NULL;
> @@ -300,10 +316,10 @@ notmuch_database_dump (notmuch_database_t *notmuch,
>       goto DONE;
>      }
>  
> -    output = gzdopen (outfd, mode);
> +    output = fdopen (outfd, "w");
>  
>      if (output == NULL) {
> -     fprintf (stderr, "Error opening %s for (gzip) writing: %s\n",
> +     fprintf (stderr, "Error opening %s for writing: %s\n",
>                name_for_error, strerror (errno));
>       if (close (outfd))
>           fprintf (stderr, "Error closing %s during shutdown: %s\n",
> @@ -314,9 +330,10 @@ notmuch_database_dump (notmuch_database_t *notmuch,
>      ret = database_dump_file (notmuch, output, query_str, output_format, 
> include);
>      if (ret) goto DONE;
>  
> -    ret = gzflush (output, Z_FINISH);
> +    ret = fflush (output);
>      if (ret) {
> -     fprintf (stderr, "Error flushing output: %s\n", gzerror (output, NULL));
> +     fprintf (stderr, "Error flushing %s: %s\n",
> +              name_for_error, strerror (errno));
>       goto DONE;
>      }
>  
> @@ -329,10 +346,10 @@ notmuch_database_dump (notmuch_database_t *notmuch,
>       }
>      }
>  
> -    ret = gzclose_w (output);
> +    ret = fclose (output);
>      if (ret) {
>       fprintf (stderr, "Error closing %s: %s\n", name_for_error,
> -              gzerror (output, NULL));
> +              strerror (errno));
>       ret = EXIT_FAILURE;
>       output = NULL;
>       goto DONE;
> @@ -350,7 +367,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
>      }
>   DONE:
>      if (ret != EXIT_SUCCESS && output)
> -     (void) gzclose_w (output);
> +     (void) fclose (output);
>  
>      if (ret != EXIT_SUCCESS && output_file_name)
>       (void) unlink (tempname);
> @@ -388,7 +405,6 @@ notmuch_dump_command (notmuch_config_t *config, int ar
>                                 { "properties", DUMP_INCLUDE_PROPERTIES },
>                                 { "tags", DUMP_INCLUDE_TAGS} } },
>       { .opt_string = &output_file_name, .name = "output" },
> -     { .opt_bool = &gzip_output, .name = "gzip" },
>       { .opt_inherit = notmuch_shared_options },
>       { }
>      };
> $OpenBSD$
>
> when upgrading database, back up the old db without compression since
> --gzip is not supported in this port
>
> Index: notmuch-new.c
> --- notmuch-new.c.orig
> +++ notmuch-new.c
> @@ -1156,7 +1156,7 @@ notmuch_new_command (notmuch_config_t *config, int arg
>            * relatively small. */
>  
>           const char *backup_name =
> -             talloc_asprintf (notmuch, 
> "%s/dump-%04d%02d%02dT%02d%02d%02d.gz",
> +             talloc_asprintf (notmuch, "%s/dump-%04d%02d%02dT%02d%02d%02d",
>                                dot_notmuch_path,
>                                gm_time->tm_year + 1900,
>                                gm_time->tm_mon + 1,
> @@ -1168,11 +1168,11 @@ notmuch_new_command (notmuch_config_t *config, int arg
>           if (add_files_state.verbosity >= VERBOSITY_NORMAL) {
>               printf ("Welcome to a new version of notmuch! Your database 
> will now be upgraded.\n");
>               printf ("This process is safe to interrupt.\n");
> -             printf ("Backing up tags to %s...\n", backup_name);
> +             printf ("Backing up tags to %s (uncompressed)...\n", 
> backup_name);
>           }
>  
>           if (notmuch_database_dump (notmuch, backup_name, "",
> -                                    DUMP_FORMAT_BATCH_TAG, 
> DUMP_INCLUDE_DEFAULT, true)) {
> +                                    DUMP_FORMAT_BATCH_TAG, 
> DUMP_INCLUDE_DEFAULT, false)) {
>               fprintf (stderr, "Backup failed. Aborting upgrade.");
>               return EXIT_FAILURE;
>           }
> $OpenBSD$
>
> Index: notmuch-restore.c
> --- notmuch-restore.c.orig
> +++ notmuch-restore.c
> @@ -238,6 +238,7 @@ notmuch_restore_command (notmuch_config_t *config, int
>      int opt_index;
>      int include = 0;
>      int input_format = DUMP_FORMAT_AUTO;
> +    int errnum;
>  
>      if (notmuch_database_open (notmuch_config_get_database_path (config),
>                              NOTMUCH_DATABASE_MODE_READ_WRITE, &notmuch))
> @@ -449,10 +450,13 @@ notmuch_restore_command (notmuch_config_t *config, int
>      if (notmuch)
>       notmuch_database_destroy (notmuch);
>  
> -    if (input && gzclose_r (input)) {
> -     fprintf (stderr, "Error closing %s: %s\n",
> -              name_for_error, gzerror (input, NULL));
> -     ret = EXIT_FAILURE;
> +    if (input) {
> +     errnum = gzclose (input);
> +     if (errnum) {
> +         fprintf (stderr, "Error closing %s: %d\n",
> +                  name_for_error, errnum);
> +         ret = EXIT_FAILURE;
> +     }
>      }
>  
>      return ret ? EXIT_FAILURE : EXIT_SUCCESS;
> $OpenBSD$
>
> adapt tests
>
> Index: test/T240-dump-restore.sh
> --- test/T240-dump-restore.sh.orig
> +++ test/T240-dump-restore.sh
> @@ -95,14 +95,14 @@ gunzip dump-gzip-outfile.gz
>  test_expect_equal_file dump.expected dump-gzip-outfile
>  
>  test_begin_subtest "restoring gzipped stdin"
> -notmuch dump --gzip --output=backup.gz
> +notmuch dump | gzip >backup.gz
>  notmuch tag +new_tag '*'
>  notmuch restore < backup.gz
>  notmuch dump --output=dump.actual
>  test_expect_equal_file dump.expected dump.actual
>  
>  test_begin_subtest "restoring gzipped file"
> -notmuch dump --gzip --output=backup.gz
> +notmuch dump | gzip >backup.gz
>  notmuch tag +new_tag '*'
>  notmuch restore --input=backup.gz
>  notmuch dump --output=dump.actual
> $OpenBSD$
>
> OpenSSL has sha1 as default fingerprint algo
> LibreSSL has md5 as default fingerprint algo
>
> Index: test/T355-smime.sh
> --- test/T355-smime.sh.orig
> +++ test/T355-smime.sh
> @@ -21,7 +21,7 @@ test_require_external_prereq gpgsm
>  
>  cp $NOTMUCH_SRCDIR/test/smime/key+cert.pem test_suite.pem
>  
> -FINGERPRINT=$(openssl x509 -fingerprint -in test_suite.pem -noout | sed -e 
> 's/^.*=//' -e s/://g)
> +FINGERPRINT=$(openssl x509 -fingerprint -sha1 -in test_suite.pem -noout | 
> sed -e 's/^.*=//' -e s/://g)
>  
>  add_gpgsm_home
>  
> $OpenBSD$
>
> Index: test/T360-symbol-hiding.sh
> --- test/T360-symbol-hiding.sh.orig
> +++ test/T360-symbol-hiding.sh
> @@ -26,7 +26,7 @@ test_begin_subtest 'checking output'
>  test_expect_equal "$result" "$output"
>  
>  test_begin_subtest 'comparing existing to exported symbols'
> -nm -P $NOTMUCH_BUILDDIR/lib/libnotmuch.so | awk '$2 == "T" && $1 ~ 
> "^notmuch" {print $1}' | sort | uniq > ACTUAL
> +nm -P $NOTMUCH_BUILDDIR/lib/libnotmuch.so* | awk '$2 == "T" && $1 ~ 
> "^notmuch" {print $1}' | sort | uniq > ACTUAL
>  sed -n 's/^\(notmuch_[a-zA-Z0-9_]*\)[[:blank:]]*(.*/\1/p' 
> $NOTMUCH_SRCDIR/lib/notmuch.h | sort | uniq > EXPORTED
>  test_expect_equal_file EXPORTED ACTUAL
>  
> $OpenBSD$
>
> modify test because we don't have notmuch dump --gzip
>
> Index: test/T530-upgrade.sh
> --- test/T530-upgrade.sh.orig
> +++ test/T530-upgrade.sh
> @@ -38,8 +38,8 @@ Your notmuch database has now been upgraded.
>  No new mail."
>  
>  test_begin_subtest "tag backup matches pre-upgrade dump"
> -gunzip -c ${MAIL_DIR}/.notmuch/dump-*.gz | sort > backup-dump
> -test_expect_equal_file pre-upgrade-dump backup-dump
> +<${MAIL_DIR}/.notmuch/dump-* sort > backup-dump
> +test_expect_equal_file pre-upgrade-dump backup-dump 
>  
>  test_begin_subtest "folder: no longer matches in the middle of path"
>  output=$(notmuch search folder:baz)
> $OpenBSD$
>
> Index: test/test-lib-OPENBSD.sh
> --- test/test-lib-OPENBSD.sh.orig
> +++ test/test-lib-OPENBSD.sh
> @@ -4,6 +4,10 @@ if command -v gdate >/dev/null
>         date () { gdate "$@"; }
>         base64 () { gbase64 "$@"; }
>         wc () { gwc "$@"; }
> -       sed () { gsed "$@"; }
> +       seq () { gseq "$@"; }
> +       stat () { gstat "$@"; }
>         sha256sum () { gsha256sum "$@"; }
>     fi
> +gdb () { egdb "$@"; }
> +gpg () { gpg2 "$@"; }
> +tar () { gtar "$@"; }
> $OpenBSD$
>
> use gpg2 instead of gpg
>
> Index: test/test-lib.sh
> --- test/test-lib.sh.orig
> +++ test/test-lib.sh
> @@ -112,11 +112,11 @@ add_gnupg_home ()
>      _gnupg_exit () { gpgconf --kill all 2>/dev/null || true; }
>      at_exit_function _gnupg_exit
>      mkdir -m 0700 "$GNUPGHOME"
> -    gpg --no-tty --import <$NOTMUCH_SRCDIR/test/gnupg-secret-key.asc 
> >"$GNUPGHOME"/import.log 2>&1
> +    gpg2 --no-tty --import <$NOTMUCH_SRCDIR/test/gnupg-secret-key.asc 
> >"$GNUPGHOME"/import.log 2>&1
>      test_debug "cat $GNUPGHOME/import.log"
> -    if (gpg --quick-random --version >/dev/null 2>&1) ; then
> +    if (gpg2 --quick-random --version >/dev/null 2>&1) ; then
>       echo quick-random >> "$GNUPGHOME"/gpg.conf
> -    elif (gpg --debug-quick-random --version >/dev/null 2>&1) ; then
> +    elif (gpg2 --debug-quick-random --version >/dev/null 2>&1) ; then
>       echo debug-quick-random >> "$GNUPGHOME"/gpg.conf
>      fi
>      echo no-emit-version >> "$GNUPGHOME"/gpg.conf
> @@ -124,7 +124,7 @@ add_gnupg_home ()
>      # Change this if we ship a new test key
>      FINGERPRINT="5AEAB11F5E33DCE875DDB75B6D92612D94E46381"
>      SELF_USERID="Notmuch Test Suite <[email protected]> (INSECURE!)"
> -    printf '%s:6:\n' "$FINGERPRINT" | gpg --quiet --batch --no-tty 
> --import-ownertrust
> +    printf '%s:6:\n' "$FINGERPRINT" | gpg2 --quiet --batch --no-tty 
> --import-ownertrust
>  }
>  
>  # Each test should start with something like this, after copyright notices:
> $OpenBSD$
>
> Index: util/zlib-extra.c
> --- util/zlib-extra.c.orig
> +++ util/zlib-extra.c
> @@ -47,6 +47,7 @@ gz_getline (void *talloc_ctx, char **bufptr, ssize_t *
>           int zlib_status = 0;
>           (void) gzerror (stream, &zlib_status);
>           switch (zlib_status) {
> +         case Z_STREAM_END:
>           case Z_OK:
>               /* no data read before EOF */
>               if (offset == 0)
> @@ -78,8 +79,9 @@ gz_getline (void *talloc_ctx, char **bufptr, ssize_t *
>  
>  const char *gz_error_string (util_status_t status, gzFile file)
>  {
> +    int errnum;
>      if (status == UTIL_GZERROR)
> -     return gzerror (file, NULL);
> +     return gzerror (file, &errnum);
>      else
>       return util_error_string (status);
>  }
> The necessary runtime to run notmuch inside Emacs.
> Notmuch is a mail indexing program providing a fast tag-based email
> reader with global search to use within a text editor.
>
> "Notmuch is not much of an email program. It doesn't receive messages
> (no POP or IMAP suport). It doesn't send messages (no mail composer,
> no network code at all). And for what it does do (email search)
> that work is provided by an external library, Xapian. So if Notmuch
> provides no user interface and Xapian does all the heavy lifting,
> then what's left here? Not much."
> @comment $OpenBSD: PLIST-main,v$
> bin/notmuch-emacs-mua
> @info info/notmuch-emacs-mua.info
> @info info/notmuch-emacs.info
> @man man/man1/notmuch-emacs-mua.1
> share/applications/notmuch-emacs-mua.desktop
> share/emacs/site-lisp/coolj.el
> share/emacs/site-lisp/coolj.elc
> share/emacs/site-lisp/notmuch-address.el
> share/emacs/site-lisp/notmuch-address.elc
> share/emacs/site-lisp/notmuch-company.el
> share/emacs/site-lisp/notmuch-company.elc
> share/emacs/site-lisp/notmuch-compat.el
> share/emacs/site-lisp/notmuch-compat.elc
> share/emacs/site-lisp/notmuch-crypto.el
> share/emacs/site-lisp/notmuch-crypto.elc
> share/emacs/site-lisp/notmuch-draft.el
> share/emacs/site-lisp/notmuch-draft.elc
> share/emacs/site-lisp/notmuch-hello.el
> share/emacs/site-lisp/notmuch-hello.elc
> share/emacs/site-lisp/notmuch-jump.el
> share/emacs/site-lisp/notmuch-jump.elc
> share/emacs/site-lisp/notmuch-lib.el
> share/emacs/site-lisp/notmuch-lib.elc
> share/emacs/site-lisp/notmuch-logo.png
> share/emacs/site-lisp/notmuch-maildir-fcc.el
> share/emacs/site-lisp/notmuch-maildir-fcc.elc
> share/emacs/site-lisp/notmuch-message.el
> share/emacs/site-lisp/notmuch-message.elc
> share/emacs/site-lisp/notmuch-mua.el
> share/emacs/site-lisp/notmuch-mua.elc
> share/emacs/site-lisp/notmuch-parser.el
> share/emacs/site-lisp/notmuch-parser.elc
> share/emacs/site-lisp/notmuch-print.el
> share/emacs/site-lisp/notmuch-print.elc
> share/emacs/site-lisp/notmuch-query.el
> share/emacs/site-lisp/notmuch-query.elc
> share/emacs/site-lisp/notmuch-show.el
> share/emacs/site-lisp/notmuch-show.elc
> share/emacs/site-lisp/notmuch-tag.el
> share/emacs/site-lisp/notmuch-tag.elc
> share/emacs/site-lisp/notmuch-tree.el
> share/emacs/site-lisp/notmuch-tree.elc
> share/emacs/site-lisp/notmuch-version.el
> share/emacs/site-lisp/notmuch-version.elc
> share/emacs/site-lisp/notmuch-wash.el
> share/emacs/site-lisp/notmuch-wash.elc
> share/emacs/site-lisp/notmuch.el
> share/emacs/site-lisp/notmuch.elc
> @tag update-desktop-database
> @comment $OpenBSD: PLIST-main,v$
> @bin bin/notmuch
> include/notmuch.h
> @info info/notmuch-address.info
> @info info/notmuch-compact.info
> @info info/notmuch-config.info
> @info info/notmuch-count.info
> @info info/notmuch-dump.info
> @info info/notmuch-hooks.info
> @info info/notmuch-insert.info
> @info info/notmuch-new.info
> @info info/notmuch-properties.info
> @info info/notmuch-reindex.info
> @info info/notmuch-reply.info
> @info info/notmuch-restore.info
> @info info/notmuch-search-terms.info
> @info info/notmuch-search.info
> @info info/notmuch-show.info
> @info info/notmuch-tag.info
> @info info/notmuch.info
> @lib lib/libnotmuch.so.${LIBnotmuch_VERSION}
> @man man/man1/notmuch-address.1
> @man man/man1/notmuch-compact.1
> @man man/man1/notmuch-config.1
> @man man/man1/notmuch-count.1
> @man man/man1/notmuch-dump.1
> @man man/man1/notmuch-insert.1
> @man man/man1/notmuch-new.1
> @man man/man1/notmuch-reindex.1
> @man man/man1/notmuch-reply.1
> @man man/man1/notmuch-restore.1
> @man man/man1/notmuch-search.1
> @man man/man1/notmuch-setup.1
> @man man/man1/notmuch-show.1
> @man man/man1/notmuch-tag.1
> @man man/man1/notmuch.1
> @man man/man3/notmuch.3
> @man man/man5/notmuch-hooks.5
> @man man/man7/notmuch-properties.7
> @man man/man7/notmuch-search-terms.7
> share/zsh/
> share/zsh/functions/
> share/zsh/functions/Completion/
> share/zsh/functions/Completion/Unix/
> share/zsh/functions/Completion/Unix/_email-notmuch
> share/zsh/functions/Completion/Unix/_notmuch
> # $OpenBSD: Makefile.template,v 1.54 2008/01/13 16:43:57 espie Exp $
>
> COMMENT =     Python bindings for notmuch
>
> PKGNAME =     py-notmuch-${V}
>
> MODULES =     lang/python
> MODPY_EGG_VERSION = ${V}
>
> FLAVORS =     python3
> FLAVOR ?=
>
> RUN_DEPENDS = mail/notmuch/notmuch
>
> WRKSRC =      ${WRKDIST}/bindings/python
>
> .include <bsd.port.mk>
> SHA256 (notmuch-0.29.3.tar.xz) = 1fcEuacjleQzA96bH02OFN0nvzZG/bs3S7Pbt9FQ3DU=
> SIZE (notmuch-0.29.3.tar.xz) = 660536
> $OpenBSD$
>
> Index: bindings/python/notmuch/globals.py
> --- bindings/python/notmuch/globals.py.orig
> +++ bindings/python/notmuch/globals.py
> @@ -27,7 +27,7 @@ try:
>      if uname()[0] == 'Darwin':
>          nmlib = CDLL("libnotmuch.{0:s}.dylib".format(SOVERSION))
>      else:
> -        nmlib = CDLL("libnotmuch.so.{0:s}".format(SOVERSION))
> +        nmlib = CDLL("libnotmuch.so")
>  except:
>      raise ImportError("Could not find shared 'notmuch' library.")
>  
> The bindings necessary to interact with Notmuch from within Python.
> @comment $OpenBSD: PLIST,v$
> lib/python${MODPY_VERSION}/site-packages/notmuch/
> lib/python${MODPY_VERSION}/site-packages/notmuch-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
> lib/python${MODPY_VERSION}/site-packages/notmuch/__init__.py
> ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}/
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}compat.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}database.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}directory.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}errors.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}filenames.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}globals.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}message.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}query.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}tag.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}thread.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}threads.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/${MODPY_PYCACHE}version.${MODPY_PYC_MAGIC_TAG}pyc
> lib/python${MODPY_VERSION}/site-packages/notmuch/compat.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/database.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/directory.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/errors.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/filenames.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/globals.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/message.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/messages.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/query.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/tag.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/thread.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/threads.py
> lib/python${MODPY_VERSION}/site-packages/notmuch/version.py

Reply via email to