upstream report: http://marc.info/?l=git&m=128774216918941&w=2 diff -ru git-1.7.3.1.orig/Makefile git-1.7.3.1/Makefile --- git-1.7.3.1.orig/Makefile 2010-10-22 10:58:17 +0200 +++ git-1.7.3.1/Makefile 2010-10-22 11:17:28 +0200 @@ -1091,6 +1091,25 @@ endif X = .exe endif +ifeq ($(uname_S),Interix) + NO_SYS_POLL_H = YesPlease + NO_INTTYPES_H = YesPlease + NO_INITGROUPS = YesPlease + NO_IPV6 = YesPlease + NO_MEMMEM = YesPlease + NO_MKDTEMP = YesPlease + NO_STRTOUMAX = YesPlease + NO_NSEC = YesPlease + NO_MKSTEMPS = YesPlease + ifeq ($(uname_R),3.5) + NO_INET_NTOP = YesPlease + NO_INET_PTON = YesPlease + endif + ifeq ($(uname_R),5.2) + NO_INET_NTOP = YesPlease + NO_INET_PTON = YesPlease + endif +endif ifneq (,$(findstring MINGW,$(uname_S))) pathsep = ; NO_PREAD = YesPlease @@ -1354,6 +1373,15 @@ ifdef NO_SYS_SELECT_H BASIC_CFLAGS += -DNO_SYS_SELECT_H endif +ifdef NO_SYS_POLL_H + BASIC_CFLAGS += -DNO_SYS_POLL_H +endif +ifdef NO_INTTYPES_H + BASIC_CFLAGS += -DNO_INTTYPES_H +endif +ifdef NO_INITGROUPS + BASIC_CFLAGS += -DNO_INITGROUPS +endif ifdef NO_MMAP COMPAT_CFLAGS += -DNO_MMAP COMPAT_OBJS += compat/mmap.o diff -ru git-1.7.3.1.orig/daemon.c git-1.7.3.1/daemon.c --- git-1.7.3.1.orig/daemon.c 2010-10-22 10:58:11 +0200 +++ git-1.7.3.1/daemon.c 2010-10-22 11:10:21 +0200 @@ -956,7 +956,11 @@ listen_addr, listen_port); if (pass && gid && - (initgroups(pass->pw_name, gid) || setgid (gid) || + ( +#ifndef NO_INITGROUPS + initgroups(pass->pw_name, gid) || +#endif + setgid (gid) || setuid(pass->pw_uid))) die("cannot drop privileges"); diff -ru git-1.7.3.1.orig/git-compat-util.h git-1.7.3.1/git-compat-util.h --- git-1.7.3.1.orig/git-compat-util.h 2010-10-22 10:58:16 +0200 +++ git-1.7.3.1/git-compat-util.h 2010-10-22 11:12:22 +0200 @@ -94,7 +94,11 @@ #include #ifndef __MINGW32__ #include +#ifndef NO_SYS_POLL_H #include +#else +#include +#endif #include #include #include @@ -106,7 +110,11 @@ #include #include #include +#ifndef NO_INTTYPES_H #include +#else +#include +#endif #if defined(__CYGWIN__) #undef _XOPEN_SOURCE #include