From: Markus Duft <markus.duft@salomon.at>
To: git@vger.kernel.org
Subject: git interix support
Date: Tue, 09 Mar 2010 11:35:02 +0100 [thread overview]
Message-ID: <4B962456.20600@salomon.at> (raw)
[-- Attachment #1: Type: text/plain, Size: 1277 bytes --]
Hey.
i have "ported" git to interix (haha, wasn't so much of a problem after
all ;)). i have a small patch (attached). i know that it sure doesn't
have production quality yet, but i try gathering ideas/input here.
additionally to the patch i'm setting:
147 if [[ ${CHOST} == *-interix* ]] ; then
148 myopts="${myopts} NO_IPV6=YesPlease"
149 myopts="${myopts} NO_MEMMEM=YesPlease"
150 myopts="${myopts} NO_MKDTEMP=YesPlease"
151 myopts="${myopts} NO_STRTOUMAX=YesPlease"
152 myopts="${myopts} NO_STRTOULL=YesPlease"
153 myopts="${myopts} NO_INET_NTOP=YesPlease"
154 myopts="${myopts} NO_INET_PTON=YesPlease"
155 myopts="${myopts} NO_NSEC=YesPlease"
156 myopts="${myopts} NO_MKSTEMPS=YesPlease"
157 fi
interix lacks propper poll() support (poll is there but broken), so some
of the things in git have to be disabled for now, or replaced by a
select() code (but that'd take precious time of mine to implement (argh)).
any comments on the patch? any chance to get stuff upstream?
(BTW. i know that this is not the most current git release i'm patching
(1.6.6.1), and i'll have to forward port the patch at some point anyway
- i hope i'll get to this soon...)
Thanks in advance!
Cheers, Markus
[-- Attachment #2: git-1.6.6.1-interix.patch --]
[-- Type: text/plain, Size: 2689 bytes --]
diff -ru git-1.6.6.1.orig/builtin-upload-archive.c git-1.6.6.1/builtin-upload-archive.c
--- git-1.6.6.1.orig/builtin-upload-archive.c 2010-03-09 10:51:28 +0100
+++ git-1.6.6.1/builtin-upload-archive.c 2010-03-09 11:06:45 +0100
@@ -132,8 +132,9 @@
packet_flush(1);
while (1) {
- struct pollfd pfd[2];
int status;
+#ifndef __INTERIX
+ struct pollfd pfd[2];
pfd[0].fd = fd1[0];
pfd[0].events = POLLIN;
@@ -156,6 +157,8 @@
if (process_input(pfd[0].fd, 1))
continue;
+#endif
+
if (waitpid(writer, &status, 0) < 0)
error_clnt("%s", lostchild);
else if (!WIFEXITED(status) || WEXITSTATUS(status) > 0)
diff -ru git-1.6.6.1.orig/daemon.c git-1.6.6.1/daemon.c
--- git-1.6.6.1.orig/daemon.c 2010-03-09 10:51:28 +0100
+++ git-1.6.6.1/daemon.c 2010-03-09 11:00:50 +0100
@@ -14,6 +14,8 @@
#define NI_MAXSERV 32
#endif
+#ifndef __INTERIX /* not available on interix! */
+
static int log_syslog;
static int verbose;
static int reuseaddr;
@@ -922,8 +924,13 @@
return service_loop(socknum, socklist);
}
+#endif /* __INTERIX */
+
int main(int argc, char **argv)
{
+#ifdef __INTERIX
+ die("not implemented on interix!");
+#else /* !__INTERIX */
int listen_port = 0;
char *listen_addr = NULL;
int inetd_mode = 0;
@@ -1121,4 +1128,5 @@
store_pid(pid_file);
return serve(listen_addr, listen_port, pass, gid);
+#endif /* __INTERIX */
}
diff -ru git-1.6.6.1.orig/git-compat-util.h git-1.6.6.1/git-compat-util.h
--- git-1.6.6.1.orig/git-compat-util.h 2010-03-09 10:51:29 +0100
+++ git-1.6.6.1/git-compat-util.h 2010-03-09 10:53:59 +0100
@@ -93,7 +93,9 @@
#include <utime.h>
#ifndef __MINGW32__
#include <sys/wait.h>
+#ifndef __INTERIX
#include <sys/poll.h>
+#endif
#include <sys/socket.h>
#include <sys/ioctl.h>
#ifndef NO_SYS_SELECT_H
@@ -104,7 +106,11 @@
#include <arpa/inet.h>
#include <netdb.h>
#include <pwd.h>
+#ifndef __INTERIX
#include <inttypes.h>
+#else
+#include <stdint.h>
+#endif
#if defined(__CYGWIN__)
#undef _XOPEN_SOURCE
#include <grp.h>
diff -ru git-1.6.6.1.orig/upload-pack.c git-1.6.6.1/upload-pack.c
--- git-1.6.6.1.orig/upload-pack.c 2010-03-09 10:51:33 +0100
+++ git-1.6.6.1/upload-pack.c 2010-03-09 10:58:02 +0100
@@ -150,6 +150,7 @@
static void create_pack_file(void)
{
+#ifndef __INTERIX
struct async rev_list;
struct child_process pack_objects;
int create_full_pack = (nr_our_refs == want_obj.nr && !have_obj.nr);
@@ -328,6 +329,9 @@
fail:
send_client_data(3, abort_msg, sizeof(abort_msg));
die("git upload-pack: %s", abort_msg);
+#else /* __INTERIX */
+ die("git upload-pack: not implemented on interix!");
+#endif /* __INTERIX */
}
static int got_sha1(char *hex, unsigned char *sha1)
next reply other threads:[~2010-03-09 12:28 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-09 10:35 Markus Duft [this message]
2010-03-09 11:24 ` git interix support Johannes Schindelin
2010-03-09 11:28 ` Erik Faye-Lund
2010-03-10 18:32 ` Daniel Barkalow
2010-03-11 7:13 ` Markus Duft
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B962456.20600@salomon.at \
--to=markus.duft@salomon.at \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).