Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 55FFB431FCB for ; Mon, 21 Oct 2013 15:00:02 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.185 X-Spam-Level: X-Spam-Status: No, score=-0.185 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_SORBS_WEB=0.614] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XXcXLxG1XcKi for ; Mon, 21 Oct 2013 14:59:56 -0700 (PDT) Received: from mail-bk0-f49.google.com (mail-bk0-f49.google.com [209.85.214.49]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id E8873431FAF for ; Mon, 21 Oct 2013 14:59:55 -0700 (PDT) Received: by mail-bk0-f49.google.com with SMTP id w14so990335bkz.36 for ; Mon, 21 Oct 2013 14:59:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=date:message-id:from:to:cc:subject:in-reply-to:references :user-agent:mime-version:content-type; bh=QSC/kZ0k8tosL4FdIOXLBvSEqhr8uFJS8rRUhexAxv8=; b=J2bwIrZiuOtdwjuBjJJLmrJV19mndx1+lqo6vBOVtE6vBC962AXAO4/DN5V27DBwps icahKv5jUHsSlW/wkHaOkEr5yGfl+5zjXCabAgRV7AHNj04GAyacmo5LXYB99rjby27i GhLxnYVGxdCdbOb8GfEQbgSFxFmI0RNra6rOGfV6AH5/eG1K6qCuGLIRoDtZdQ000uCu d2uDLtVK6CI8FhwhGL/JRpXocNi+elF3JTQp9zK1VpDeN1ctpqwivDlP8j/j6VUBIkKh 5KCMtrj9ek/3rgf7GgwiVIDMvrE7xnV05elsKUNuAnS81sZ6C+iPx8JeLMbAzdBsQKQb PFDg== X-Received: by 10.204.63.7 with SMTP id z7mr8707406bkh.23.1382392791959; Mon, 21 Oct 2013 14:59:51 -0700 (PDT) Received: from linux.localdomain.de (95-91-253-65-dynip.superkabel.de. [95.91.253.65]) by mx.google.com with ESMTPSA id no2sm10882180bkb.15.2013.10.21.14.59.50 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Oct 2013 14:59:51 -0700 (PDT) Date: Mon, 21 Oct 2013 23:59:45 +0200 Message-ID: <87sivu5lpq.wl%claudio.bley@gmail.com> From: Claudio Bley To: David Bremner Subject: Re: notmuch on w32 In-Reply-To: <87y55oudul.fsf@zancas.localnet> References: <87mwm71x91.wl%claudio.bley@gmail.com> <87bo2lvxx3.fsf@zancas.localnet> <87y55oudul.fsf@zancas.localnet> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.3 (x86_64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Mailman-Approved-At: Mon, 21 Oct 2013 23:06:59 -0700 Cc: Tomi Ollila , "notmuch@notmuchmail.org" X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 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: Mon, 21 Oct 2013 22:00:02 -0000 Hi. At Sun, 20 Oct 2013 13:05:54 -0300, David Bremner wrote: > > Tomi Ollila writes: > > > I'd suggest you do a system that attaches to the current system with as > > small changes as possible (so you get reviewers) and put all windows > > specific things to separate script(s) (which is executed *only* when windows > > build is detected). The gnulib dependency could be handled so that in > > case (ext/*)gnulib directory does not exist, first > > 'git clone git://git.savannah.gnu.org/gnulib.git' is done -- and then > > a specific commit is checked out from the clone (git reset --hard ) > > After looking at gnulib a bit yesterday, it seems unlikely that we need > or want all of it. Yes, it's seldom that one needs all of it. > It might be simpler to just grab the bits of gnulib > we need and throw them in ./compat. gnulib-tool seems to want autoconf, > but you don't have to use gnulib-tool. Currently, I'm using these modules for w32 compat: canonicalize errno execute fsync getdelim gethostname getline mkdir netdb progname readlink regex scandir sigaction signal-h strcasestr strsep sys_wait time_r timegm waitpid xvasprintf (some of which you already have implemented) but those modules in turn depend on other gnulib modules, so you'd end up with: alloca-opt areadlink-with-size at-internal bitrotate btowc canonicalize chdir chdir-long cloexec close closedir configmake d-ino dirent dirfd dirname dirname-lgpl dosname double-slash-root dup dup2 environ errno error execute exitfail extensions extern-inline fatal-signal fchdir fcntl fcntl-h fd-hook fdopendir file-set filename filenamecat-lgpl float fstat fstatat fsync getcwd getcwd-lgpl getdelim getdtablesize gethostname getline gettext-h hash hash-pjw hash-triple havelib include_next intprops langinfo largefile localcharset locale localeconv lock lstat malloc-gnu malloc-posix mbrtowc mbsinit mbtowc memchr mempcpy memrchr mkdir mktime mktime-internal msvc-inval msvc-nothrow multiarch netdb nl_langinfo nocrash open openat openat-die openat-h opendir pathmax posix_spawn-internal posix_spawn_file_actions_addopen posix_spawn_file_actions_destroy posix_spawn_file_actions_init posix_spawnattr_destroy posix_spawnattr_init posix_spawnattr_setflags posix_spawnattr_setsigmask posix_spawnp progname raise rawmemchr readdir readlink realloc-posix regex rewinddir same same-inode save-cwd scandir sched sigaction signal-h sigprocmask size_max snippet/_Noreturn snippet/arg-nonnull snippet/c++defs snippet/warn-on-use socketlib sockets socklen spawn ssize_t stat stdalign stdarg stdbool stddef stdint stdio stdlib strcase strcasestr strcasestr-simple strchrnul strdup-posix streq strerror strerror-override string strings strndup strnlen strsep sys_socket sys_stat sys_types sys_uio sys_wait threadlib time time_r timegm unistd unistd-safer vasnprintf vasprintf verify wait-process waitpid wchar wcrtomb wctype-h xalloc xalloc-die xalloc-oversized xgetcwd xsize xstrndup xvasprintf Of course, you'd also need the configure checks to enable/disable compiling those modules. Doing this without gnulib-tool / autotools seems to be a lot of (gratuitous) work. I don't think that I'll have to time to do this, so I'll just keep my patches in a private branch then, which saves me the effort of polishing the patches. Thanks for your attention. Claudio