From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id B77BB6DE12D1 for ; Tue, 22 Aug 2017 15:44:12 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.068 X-Spam-Level: X-Spam-Status: No, score=-0.068 tagged_above=-999 required=5 tests=[AWL=-0.107, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.211, SPF_PASS=-0.001] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OgH6jMzTKfRe for ; Tue, 22 Aug 2017 15:44:11 -0700 (PDT) Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com [209.85.128.196]) by arlo.cworth.org (Postfix) with ESMTPS id E78836DE11D4 for ; Tue, 22 Aug 2017 15:44:10 -0700 (PDT) Received: by mail-wr0-f196.google.com with SMTP id f8so52957wrf.3 for ; Tue, 22 Aug 2017 15:44:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=zQIxSIh0CpXXOyh1Us7QGRuD3n5a9T6SGisGX/jFw0M=; b=jzGx24fei5c0/oLjAJ6Y1jvEQ7gUzdXUXXasYx5eJk2cGjEJZM0bUIgd3jrpsS6cd5 3EwQfexU1wZw6hvnOu+4eUXHnhuRMEleCYQePBDj3QeOUHvRk6cRycuMmRRQFC64xrBq MTDqJpjWVrjM/sKi5QP6DuTgMs61fXL3nedmiY6uQoU9Np0i5Dc+AhQd3H6aiy3kdrzY ps6hTJp8ol7sfR8Ki2+ZsGGxW00LVbfeeq+DLN7Syyl4BYxHN5EGNPWVKzPl9Sv8bzsG 1Ee+RMLVNaD0mCpbDNy4srMOXOOLTZgqKL/h+lONv/IoEm9+sxDp/TO5rUhTBLcrBKlV nERw== X-Gm-Message-State: AHYfb5jEvMykv1SR/U3U4TUdnEFcr+5TRnqOmHbrDSXvbvaQ+bxYAxCZ mU0XZF11so2q5N10R64= X-Received: by 10.223.139.197 with SMTP id w5mr376745wra.146.1503441847863; Tue, 22 Aug 2017 15:44:07 -0700 (PDT) Received: from home.thecybershadow.net ([89.28.117.31]) by smtp.gmail.com with ESMTPSA id e137sm491385wma.29.2017.08.22.15.44.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Aug 2017 15:44:06 -0700 (PDT) From: Vladimir Panteleev To: notmuch@notmuchmail.org Subject: [PATCH 0/8] notmuch on Windows (Cygwin) and AppVeyor Date: Tue, 22 Aug 2017 22:43:31 +0000 Message-Id: <20170822224339.22601-1-notmuch@thecybershadow.net> X-Mailer: git-send-email 2.13.3 X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Aug 2017 22:44:12 -0000 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