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