notmuch on w32

Claudio Bley claudio.bley at googlemail.com
Mon Oct 21 14:59:45 PDT 2013


Hi.

At Sun, 20 Oct 2013 13:05:54 -0300,
David Bremner wrote:
> 
> Tomi Ollila <tomi.ollila at iki.fi> 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 <hash>)
> 
> 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



More information about the notmuch mailing list