[PATCH 0/8] notmuch on Windows (Cygwin) and AppVeyor
Vladimir Panteleev
notmuch at thecybershadow.net
Tue Aug 22 15:43:31 PDT 2017
Hi,
I've spent a bit of time over the past few days trying to get notmuch
to build and run tests on CygWin and AppVeyor CI's systems (AppVeyor
being a gratis continuous integration provider for Windows). Not from
some personal need, but simply because I generally enjoy and have some
experience with tinkering with CI systems.
I've gotten as far as to get everything to build and the test suite to
run (but not pass). A few ugly hacks were needed (luckily, mostly
outside notmuch's existing codebase), mainly related to talloc, as it
seems that it (or Waf, which it uses) does not speak Cygwin well. I
will probably draw the line here, as it looks like actually fixing
some of the failing tests would take some non-trivial work (e.g. one
test failure I saw seems to point towards a bug in Xapian/Cygwin). I'm
also not convinced that, practically speaking, the effort would be
well spent, as probably the best way to run notmuch under Windows
would be using Windows Subsystem for Linux instead of an userspace
POSIX environment like Cygwin or MSYS.
Some notes:
- 64-bit Cygwin seems to work much better than the 32-bit version,
which ran into issues apparently caused by the limited address space
in some scenarios I've seen.
- Partial updates of a Cygwin installation can predictably lead to a
broken installation. --upgrade-also should always be used for
unattended invocations of Cygwin's setup.exe.
- MSYS also packages Xapian and gmime, however an MSYS port is likely
to be even more challenging, as it provides less of the POSIX
environment than Cygwin.
You can see the current AppVeyor results here (warning, large page):
https://ci.appveyor.com/project/CyberShadow/notmuch/build/1.0.26
Development drafts of patch series is here:
https://github.com/CyberShadow/notmuch/commits/appveyor
Vladimir Panteleev (8):
lib: Fix talloc not being defined on Cygwin
Split CONFIGURE_LDFLAGS out of FINAL_LIBNOTMUCH_LDFLAGS
lib: Fix libnotmuch.so link under Cygwin
configure: Refactor uname parsing into a case statement
configure: Detect Cygwin, and set PLATFORM accordingly
Fix linking shared library on Cygwin
test: Don't attempt to build symbol-test on Cygwin
Add AppVeyor CI configuration and test script
Makefile.global | 12 +++++-
Makefile.local | 2 +-
appveyor.yml | 7 ++++
configure | 106 +++++++++++++++++++++++++++----------------------
devel/appveyor.sh | 39 ++++++++++++++++++
lib/Makefile.local | 2 +-
lib/database-private.h | 4 +-
test/Makefile.local | 5 ++-
8 files changed, 123 insertions(+), 54 deletions(-)
create mode 100644 appveyor.yml
create mode 100644 devel/appveyor.sh
--
2.13.3
More information about the notmuch
mailing list