diff -ru source/builtin/log.c source-new/builtin/log.c --- source/builtin/log.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/builtin/log.c 2018-12-02 16:07:24.784757087 -0700 @@ -308,6 +308,7 @@ static void setup_early_output(struct rev_info *rev) { +#if 0 struct sigaction sa; /* @@ -333,6 +334,7 @@ early_output_timer.it_value.tv_sec = 0; early_output_timer.it_value.tv_usec = 100000; setitimer(ITIMER_REAL, &early_output_timer, NULL); +#endif } static void finish_early_output(struct rev_info *rev) diff -ru source/common-main.c source-new/common-main.c --- source/common-main.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/common-main.c 2018-12-02 16:07:24.784757087 -0700 @@ -15,12 +15,14 @@ */ static void restore_sigpipe_to_default(void) { +/* sigset_t unblock; sigemptyset(&unblock); sigaddset(&unblock, SIGPIPE); sigprocmask(SIG_UNBLOCK, &unblock, NULL); signal(SIGPIPE, SIG_DFL); +*/ } int main(int argc, const char **argv) diff -ru source/compat/hstrerror.c source-new/compat/hstrerror.c --- source/compat/hstrerror.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/compat/hstrerror.c 2018-12-02 16:07:24.784757087 -0700 @@ -5,17 +5,6 @@ const char *githstrerror(int err) { static char buffer[48]; - switch (err) - { - case HOST_NOT_FOUND: - return "Authoritative answer: host not found"; - case NO_DATA: - return "Valid name, no data record of requested type"; - case NO_RECOVERY: - return "Non recoverable errors, FORMERR, REFUSED, NOTIMP"; - case TRY_AGAIN: - return "Non-authoritative \"host not found\", or SERVERFAIL"; - } snprintf(buffer, sizeof(buffer), "Name resolution error %d", err); return buffer; } diff -ru source/compat/poll/poll.c source-new/compat/poll/poll.c --- source/compat/poll/poll.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/compat/poll/poll.c 2018-12-02 16:07:24.784757087 -0700 @@ -302,7 +302,7 @@ happened |= (POLLIN | POLLRDNORM) & sought; /* Distinguish hung-up sockets from other errors. */ - else if (socket_errno == ESHUTDOWN || socket_errno == ECONNRESET + else if (socket_errno == ECONNRESET || socket_errno == ECONNABORTED || socket_errno == ENETRESET) happened |= POLLHUP; diff -ru source/compat/terminal.c source-new/compat/terminal.c --- source/compat/terminal.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/compat/terminal.c 2018-12-02 16:07:24.784757087 -0700 @@ -3,7 +3,9 @@ #include "sigchain.h" #include "strbuf.h" -#if defined(HAVE_DEV_TTY) || defined(GIT_WINDOWS_NATIVE) +ssize_t __getline(char **lptr, size_t *n, FILE *fp); + +#if 0 static void restore_term(void); @@ -141,7 +143,10 @@ char *git_terminal_prompt(const char *prompt, int echo) { - return getpass(prompt); + char *line = NULL; + size_t n = 0; + __getline(&line, &n, stdin); + return line; // XXX leak } #endif diff -ru source/config.c source-new/config.c --- source/config.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/config.c 2018-12-02 16:07:24.788757117 -0700 @@ -1094,7 +1094,7 @@ } if (!strcmp(var, "core.packedgitwindowsize")) { - int pgsz_x2 = getpagesize() * 2; + int pgsz_x2 = 4096 * 2; packed_git_window_size = git_config_ulong(var, value); /* This value must be multiple of (pagesize * 2) */ diff -ru source/connect.c source-new/connect.c --- source/connect.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/connect.c 2018-12-02 16:07:24.788757117 -0700 @@ -450,14 +450,11 @@ he = gethostbyname(host); if (!he) - die("Unable to look up %s (%s)", host, hstrerror(h_errno)); + die("Unable to look up %s (%s)", host, strerror(errno)); nport = strtoul(port, &ep, 10); if ( ep == port || *ep ) { /* Not numeric */ - struct servent *se = getservbyname(port,"tcp"); - if ( !se ) - die("Unknown port %s", port); - nport = se->s_port; + die("Unknown port %s", port); } if (flags & CONNECT_VERBOSE) @@ -507,7 +504,7 @@ int sockfd = git_tcp_connect_sock(host, flags); fd[0] = sockfd; - fd[1] = dup(sockfd); + fd[1] = sockfd; } diff -ru source/credential-cache--daemon.c source-new/credential-cache--daemon.c --- source/credential-cache--daemon.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/credential-cache--daemon.c 2018-12-02 16:07:24.788757117 -0700 @@ -156,6 +156,7 @@ strbuf_release(&action); } +#if 0 static int serve_cache_loop(int fd) { struct pollfd pfd; @@ -256,6 +257,7 @@ free(path_copy); } +#endif int cmd_main(int argc, const char **argv) { @@ -274,6 +276,7 @@ git_config_get_bool("credentialcache.ignoresighup", &ignore_sighup); +#if 0 argc = parse_options(argc, argv, NULL, options, usage, 0); socket_path = argv[0]; @@ -291,6 +294,9 @@ serve_cache(socket_path, debug); delete_tempfile(&socket_file); +#endif + + printf("git-credential-cache--daemon not working on Redox\n"); return 0; } diff -ru source/daemon.c source-new/daemon.c --- source/daemon.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/daemon.c 2018-12-02 16:07:24.788757117 -0700 @@ -71,6 +71,7 @@ return hi->ip_address.buf; } +#if 0 static void logreport(int priority, const char *err, va_list params) { if (log_syslog) { @@ -89,13 +90,14 @@ fflush(stderr); } } +#endif __attribute__((format (printf, 1, 2))) static void logerror(const char *err, ...) { va_list params; va_start(params, err); - logreport(LOG_ERR, err, params); + //logreport(LOG_ERR, err, params); va_end(params); } @@ -106,13 +108,13 @@ if (!verbose) return; va_start(params, err); - logreport(LOG_INFO, err, params); + //logreport(LOG_INFO, err, params); va_end(params); } static void NORETURN daemon_die(const char *err, va_list params) { - logreport(LOG_ERR, err, params); + //logreport(LOG_ERR, err, params); exit(1); } @@ -888,8 +890,7 @@ if (!reuseaddr) return 0; - return setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, - &on, sizeof(on)); + return 0; } struct socketlist { @@ -901,7 +902,7 @@ static const char *ip2str(int family, struct sockaddr *sin, socklen_t len) { #ifdef NO_IPV6 - static char ip[INET_ADDRSTRLEN]; + static char ip[1]; #else static char ip[INET6_ADDRSTRLEN]; #endif @@ -980,7 +981,7 @@ close(sockfd); continue; /* not fatal */ } - if (listen(sockfd, 5) < 0) { + if (1) { logerror("Could not listen to %s: %s", ip2str(ai->ai_family, ai->ai_addr, ai->ai_addrlen), strerror(errno)); @@ -1042,7 +1043,7 @@ return 0; } - if (listen(sockfd, 5) < 0) { + if (0) { logerror("Could not listen to %s: %s", ip2str(AF_INET, (struct sockaddr *)&sin, sizeof(sin)), strerror(errno)); @@ -1080,6 +1081,8 @@ static int service_loop(struct socketlist *socklist) { + die_errno("No daemon support"); +#if 0 struct pollfd *pfd; int i; @@ -1116,7 +1119,7 @@ #endif } ss; socklen_t sslen = sizeof(ss); - int incoming = accept(pfd[i].fd, &ss.sa, &sslen); + int incoming = -1; if (incoming < 0) { switch (errno) { case EAGAIN: @@ -1131,6 +1134,7 @@ } } } +#endif } #ifdef NO_POSIX_GOODIES @@ -1158,7 +1162,7 @@ static void drop_privileges(struct credentials *cred) { if (cred && (initgroups(cred->pass->pw_name, cred->gid) || - setgid (cred->gid) || setuid(cred->pass->pw_uid))) + 1)) die("cannot drop privileges"); } @@ -1174,11 +1178,7 @@ if (!group_name) c.gid = c.pass->pw_gid; else { - struct group *group = getgrnam(group_name); - if (!group) die("group not found - %s", group_name); - - c.gid = group->gr_gid; } return &c; @@ -1349,7 +1349,7 @@ } if (log_syslog) { - openlog("git-daemon", LOG_PID, LOG_DAEMON); + //openlog("git-daemon", LOG_PID, LOG_DAEMON); set_die_routine(daemon_die); } else /* avoid splitting a message in the middle */ diff -ru source/dir.c source-new/dir.c --- source/dir.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/dir.c 2018-12-02 16:07:24.788757117 -0700 @@ -1891,14 +1891,14 @@ static const char *get_ident_string(void) { static struct strbuf sb = STRBUF_INIT; - struct utsname uts; + //struct utsname uts; if (sb.len) return sb.buf; - if (uname(&uts) < 0) - die_errno(_("failed to get kernel name and information")); + //if (uname(&uts) < 0) + // die_errno(_("failed to get kernel name and information")); strbuf_addf(&sb, "Location %s, system %s", get_git_work_tree(), - uts.sysname); + "Redox"); return sb.buf; } diff -ru source/fast-import.c source-new/fast-import.c --- source/fast-import.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/fast-import.c 2018-12-02 16:07:24.788757117 -0700 @@ -531,6 +531,7 @@ static void set_checkpoint_signal(void) { + /* struct sigaction sa; memset(&sa, 0, sizeof(sa)); @@ -538,6 +539,7 @@ sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; sigaction(SIGUSR1, &sa, NULL); + */ } #endif diff -ru source/git-compat-util.h source-new/git-compat-util.h --- source/git-compat-util.h 2017-06-04 19:08:11.000000000 -0600 +++ source-new/git-compat-util.h 2018-12-02 16:07:24.788757117 -0700 @@ -179,7 +179,6 @@ #include #include #include -#include #ifndef NO_SYS_POLL_H #include #else @@ -195,21 +194,16 @@ #elif defined(_MSC_VER) #include "compat/msvc.h" #else -#include #include #include #include -#include -#include #ifndef NO_SYS_SELECT_H #include #endif #include -#include #include #include #include -#include #ifndef NO_INTTYPES_H #include #else @@ -319,9 +313,7 @@ #define PRIo32 "o" #endif -#ifndef PATH_SEP -#define PATH_SEP ':' -#endif +#define PATH_SEP ';' #ifdef HAVE_PATHS_H #include @@ -1123,4 +1115,7 @@ extern int cmd_main(int, const char **); +#define utime(...) 0 +#define shutdown(...) 0 + #endif diff -ru source/Makefile source-new/Makefile --- source/Makefile 2017-06-04 19:08:11.000000000 -0600 +++ source-new/Makefile 2018-12-02 16:07:24.788757117 -0700 @@ -1802,7 +1802,6 @@ $(BUILT_INS): git$X $(QUIET_BUILT_IN)$(RM) $@ && \ - ln $< $@ 2>/dev/null || \ ln -s $< $@ 2>/dev/null || \ cp $< $@ @@ -2096,7 +2095,6 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY) $(QUIET_LNCP)$(RM) $@ && \ - ln $< $@ 2>/dev/null || \ ln -s $< $@ 2>/dev/null || \ cp $< $@ @@ -2449,14 +2447,12 @@ for p in $(filter $(install_bindir_programs),$(BUILT_INS)); do \ $(RM) "$$bindir/$$p" && \ test -z "$(NO_INSTALL_HARDLINKS)" && \ - ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \ ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \ cp "$$bindir/git$X" "$$bindir/$$p" || exit; \ done && \ for p in $(BUILT_INS); do \ $(RM) "$$execdir/$$p" && \ test -z "$(NO_INSTALL_HARDLINKS)" && \ - ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \ ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \ cp "$$execdir/git$X" "$$execdir/$$p" || exit; \ done && \ @@ -2464,7 +2460,6 @@ for p in $$remote_curl_aliases; do \ $(RM) "$$execdir/$$p" && \ test -z "$(NO_INSTALL_HARDLINKS)" && \ - ln "$$execdir/git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \ done && \ diff -ru source/progress.c source-new/progress.c --- source/progress.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/progress.c 2018-12-02 16:07:24.788757117 -0700 @@ -52,11 +52,13 @@ progress_update = 0; + /* memset(&sa, 0, sizeof(sa)); sa.sa_handler = progress_interval; sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; sigaction(SIGALRM, &sa, NULL); + */ v.it_interval.tv_sec = 1; v.it_interval.tv_usec = 0; @@ -74,8 +76,7 @@ static int is_foreground_fd(int fd) { - int tpgrp = tcgetpgrp(fd); - return tpgrp < 0 || tpgrp == getpgid(0); + return 1; } static int display(struct progress *progress, unsigned n, const char *done) diff -ru source/rerere.c source-new/rerere.c --- source/rerere.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/rerere.c 2018-12-02 16:07:24.788757117 -0700 @@ -682,7 +682,7 @@ * A successful replay of recorded resolution. * Mark that "postimage" was used to help gc. */ - if (utime(rerere_path(id, "postimage"), NULL) < 0) + if (1) warning_errno("failed utime() on %s", rerere_path(id, "postimage")); diff -ru source/run-command.c source-new/run-command.c --- source/run-command.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/run-command.c 2018-12-02 16:07:55.100993213 -0700 @@ -120,9 +120,9 @@ #ifndef GIT_WINDOWS_NATIVE static inline void dup_devnull(int to) { - int fd = open("/dev/null", O_RDWR); + int fd = open("null:", O_RDWR); if (fd < 0) - die_errno(_("open /dev/null failed")); + die_errno(_("open null: failed")); if (dup2(fd, to) < 0) die_errno(_("dup2(%d,%d) failed"), fd, to); close(fd); @@ -138,7 +138,7 @@ return NULL; while (1) { - const char *end = strchrnul(p, ':'); + const char *end = strchrnul(p, ';'); strbuf_reset(&buf); diff -ru source/send-pack.c source-new/send-pack.c --- source/send-pack.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/send-pack.c 2018-12-02 16:07:24.788757117 -0700 @@ -570,7 +570,7 @@ if (args->stateless_rpc) close(out); if (git_connection_is_socket(conn)) - shutdown(fd[0], SHUT_WR); + ; // XXX /* * Do not even bother with the return value; we know we diff -ru source/setup.c source-new/setup.c --- source/setup.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/setup.c 2018-12-02 16:07:24.788757117 -0700 @@ -1143,21 +1143,21 @@ return read_gitfile_gently(suspect, return_error_code); } -/* if any standard file descriptor is missing open it to /dev/null */ +/* if any standard file descriptor is missing open it to null: */ void sanitize_stdfds(void) { - int fd = open("/dev/null", O_RDWR, 0); + int fd = open("null:", O_RDWR, 0); while (fd != -1 && fd < 2) fd = dup(fd); if (fd == -1) - die_errno("open /dev/null or dup failed"); + die_errno("open null: or dup failed"); if (fd > 2) close(fd); } int daemonize(void) { -#ifdef NO_POSIX_GOODIES +#if 1 errno = ENOSYS; return -1; #else diff -ru source/sha1_file.c source-new/sha1_file.c --- source/sha1_file.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/sha1_file.c 2018-12-02 16:07:24.792757146 -0700 @@ -723,7 +723,7 @@ "pack_report: getpagesize() = %10" SZ_FMT "\n" "pack_report: core.packedGitWindowSize = %10" SZ_FMT "\n" "pack_report: core.packedGitLimit = %10" SZ_FMT "\n", - sz_fmt(getpagesize()), + sz_fmt(4096), sz_fmt(packed_git_window_size), sz_fmt(packed_git_limit)); fprintf(stderr, diff -ru source/strbuf.c source-new/strbuf.c --- source/strbuf.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/strbuf.c 2018-12-02 16:07:24.792757146 -0700 @@ -446,6 +446,11 @@ for (;; guessed_len *= 2) { strbuf_grow(sb, guessed_len); if (getcwd(sb->buf, sb->alloc)) { + if (strncmp(sb->buf, "file:", 5) == 0) { + char *x = strdup(sb->buf); + strcpy(sb->buf, x+5); + free(x); + } strbuf_setlen(sb, strlen(sb->buf)); return 0; } diff -ru source/wrapper.c source-new/wrapper.c --- source/wrapper.c 2017-06-04 19:08:11.000000000 -0600 +++ source-new/wrapper.c 2018-12-02 16:07:24.792757146 -0700 @@ -227,6 +227,7 @@ } } +#if 0 static int handle_nonblock(int fd, short poll_events, int err) { struct pollfd pfd; @@ -244,6 +245,7 @@ poll(&pfd, 1, -1); return 1; } +#endif /* * xread() is the same a read(), but it automatically restarts read() @@ -260,8 +262,6 @@ if (nr < 0) { if (errno == EINTR) continue; - if (handle_nonblock(fd, POLLIN, errno)) - continue; } return nr; } @@ -282,8 +282,6 @@ if (nr < 0) { if (errno == EINTR) continue; - if (handle_nonblock(fd, POLLOUT, errno)) - continue; } return nr; @@ -653,7 +651,7 @@ void sleep_millisec(int millisec) { - poll(NULL, 0, millisec); + //poll(NULL, 0, millisec); } int xgethostname(char *buf, size_t len)