mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-20 03:44:18 +08:00
383 lines
9.7 KiB
Diff
383 lines
9.7 KiB
Diff
diff -ruw 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-26 18:36:28.141445392 -0700
|
|
@@ -308,6 +308,7 @@
|
|
|
|
static void setup_early_output(struct rev_info *rev)
|
|
{
|
|
+#if !defined(__redox__)
|
|
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 -ruw 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-26 18:40:38.447229228 -0700
|
|
@@ -15,12 +15,14 @@
|
|
*/
|
|
static void restore_sigpipe_to_default(void)
|
|
{
|
|
+#if !defined(__redox__)
|
|
sigset_t unblock;
|
|
|
|
sigemptyset(&unblock);
|
|
sigaddset(&unblock, SIGPIPE);
|
|
sigprocmask(SIG_UNBLOCK, &unblock, NULL);
|
|
signal(SIGPIPE, SIG_DFL);
|
|
+#endif
|
|
}
|
|
|
|
int main(int argc, const char **argv)
|
|
diff -ruw 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-26 18:37:12.495372666 -0700
|
|
@@ -5,6 +5,7 @@
|
|
const char *githstrerror(int err)
|
|
{
|
|
static char buffer[48];
|
|
+#if !defined(__redox__)
|
|
switch (err)
|
|
{
|
|
case HOST_NOT_FOUND:
|
|
@@ -16,6 +17,7 @@
|
|
case TRY_AGAIN:
|
|
return "Non-authoritative \"host not found\", or SERVERFAIL";
|
|
}
|
|
+#endif
|
|
snprintf(buffer, sizeof(buffer), "Name resolution error %d", err);
|
|
return buffer;
|
|
}
|
|
diff -ruw 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-26 18:39:47.177777683 -0700
|
|
@@ -137,6 +137,18 @@
|
|
return buf.buf;
|
|
}
|
|
|
|
+#elif defined(__redox__)
|
|
+
|
|
+ssize_t __getline(char **lptr, size_t *n, FILE *fp);
|
|
+
|
|
+char *git_terminal_prompt(const char *prompt, int echo)
|
|
+{
|
|
+ char *line = NULL;
|
|
+ size_t n = 0;
|
|
+ __getline(&line, &n, stdin);
|
|
+ return line; // XXX leak
|
|
+}
|
|
+
|
|
#else
|
|
|
|
char *git_terminal_prompt(const char *prompt, int echo)
|
|
diff -ruw source/connect.c source-new/connect.c
|
|
--- source/connect.c 2017-06-04 19:08:11.000000000 -0600
|
|
+++ source-new/connect.c 2018-12-26 18:56:40.601235949 -0700
|
|
@@ -450,7 +450,7 @@
|
|
|
|
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 */
|
|
diff -ruw source/daemon.c source-new/daemon.c
|
|
--- source/daemon.c 2017-06-04 19:08:11.000000000 -0600
|
|
+++ source-new/daemon.c 2018-12-26 19:15:52.002437841 -0700
|
|
@@ -71,13 +71,21 @@
|
|
return hi->ip_address.buf;
|
|
}
|
|
|
|
+#if defined(__redox__)
|
|
+#define LOG_ERR 0
|
|
+#define LOG_INFO 1
|
|
+#endif
|
|
+
|
|
static void logreport(int priority, const char *err, va_list params)
|
|
{
|
|
+#if !defined(__redox__)
|
|
if (log_syslog) {
|
|
char buf[1024];
|
|
vsnprintf(buf, sizeof(buf), err, params);
|
|
syslog(priority, "%s", buf);
|
|
- } else {
|
|
+ } else
|
|
+#endif
|
|
+ {
|
|
/*
|
|
* Since stderr is set to buffered mode, the
|
|
* logging of different processes will not overlap
|
|
@@ -888,8 +896,12 @@
|
|
|
|
if (!reuseaddr)
|
|
return 0;
|
|
+#if defined(__redox__)
|
|
+ return 0;
|
|
+#else
|
|
return setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR,
|
|
&on, sizeof(on));
|
|
+#endif
|
|
}
|
|
|
|
struct socketlist {
|
|
@@ -1174,11 +1186,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;
|
|
@@ -1348,10 +1356,12 @@
|
|
usage(daemon_usage);
|
|
}
|
|
|
|
+#if !defined(__redox__)
|
|
if (log_syslog) {
|
|
openlog("git-daemon", LOG_PID, LOG_DAEMON);
|
|
set_die_routine(daemon_die);
|
|
} else
|
|
+#endif
|
|
/* avoid splitting a message in the middle */
|
|
setvbuf(stderr, NULL, _IOFBF, 4096);
|
|
|
|
diff -ruw 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-26 18:46:02.396322633 -0700
|
|
@@ -531,6 +531,7 @@
|
|
|
|
static void set_checkpoint_signal(void)
|
|
{
|
|
+#if !defined(__redox__)
|
|
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
|
|
}
|
|
|
|
#endif
|
|
diff -ruw 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-26 19:11:00.598201504 -0700
|
|
@@ -179,7 +179,9 @@
|
|
#include <assert.h>
|
|
#include <regex.h>
|
|
#include <utime.h>
|
|
+#if !defined(__redox__)
|
|
#include <syslog.h>
|
|
+#endif
|
|
#ifndef NO_SYS_POLL_H
|
|
#include <sys/poll.h>
|
|
#else
|
|
@@ -199,13 +201,17 @@
|
|
#include <sys/wait.h>
|
|
#include <sys/resource.h>
|
|
#include <sys/socket.h>
|
|
+#if !defined(__redox__)
|
|
#include <sys/ioctl.h>
|
|
+#endif
|
|
#include <termios.h>
|
|
#ifndef NO_SYS_SELECT_H
|
|
#include <sys/select.h>
|
|
#endif
|
|
#include <netinet/in.h>
|
|
+#if !defined(__redox__)
|
|
#include <netinet/tcp.h>
|
|
+#endif
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>
|
|
#include <pwd.h>
|
|
@@ -320,8 +326,20 @@
|
|
#endif
|
|
|
|
#ifndef PATH_SEP
|
|
+#if defined(__redox__)
|
|
+#define PATH_SEP ';'
|
|
+#else
|
|
#define PATH_SEP ':'
|
|
#endif
|
|
+#endif
|
|
+
|
|
+#ifndef DEV_NULL
|
|
+#if defined(__redox__)
|
|
+#define DEV_NULL "null:"
|
|
+#else
|
|
+#define DEV_NULL "/dev/null"
|
|
+#endif
|
|
+#endif
|
|
|
|
#ifdef HAVE_PATHS_H
|
|
#include <paths.h>
|
|
diff -ruw source/Makefile source-new/Makefile
|
|
--- source/Makefile 2017-06-04 19:08:11.000000000 -0600
|
|
+++ source-new/Makefile 2018-12-26 18:35:54.096906095 -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 -ruw source/progress.c source-new/progress.c
|
|
--- source/progress.c 2017-06-04 19:08:11.000000000 -0600
|
|
+++ source-new/progress.c 2018-12-26 19:13:24.522688882 -0700
|
|
@@ -52,11 +52,13 @@
|
|
|
|
progress_update = 0;
|
|
|
|
+#if !defined(__redox__)
|
|
memset(&sa, 0, sizeof(sa));
|
|
sa.sa_handler = progress_interval;
|
|
sigemptyset(&sa.sa_mask);
|
|
sa.sa_flags = SA_RESTART;
|
|
sigaction(SIGALRM, &sa, NULL);
|
|
+#endif
|
|
|
|
v.it_interval.tv_sec = 1;
|
|
v.it_interval.tv_usec = 0;
|
|
@@ -74,8 +76,12 @@
|
|
|
|
static int is_foreground_fd(int fd)
|
|
{
|
|
+#if defined(__redox__)
|
|
+ return 1;
|
|
+#else
|
|
int tpgrp = tcgetpgrp(fd);
|
|
return tpgrp < 0 || tpgrp == getpgid(0);
|
|
+#endif
|
|
}
|
|
|
|
static int display(struct progress *progress, unsigned n, const char *done)
|
|
diff -ruw 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-26 19:19:21.042685078 -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(DEV_NULL, O_RDWR);
|
|
if (fd < 0)
|
|
- die_errno(_("open /dev/null failed"));
|
|
+ die_errno(_("open %s failed"), DEV_NULL);
|
|
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, PATH_SEP);
|
|
|
|
strbuf_reset(&buf);
|
|
|
|
@@ -622,6 +622,7 @@
|
|
struct async *async = data;
|
|
intptr_t ret;
|
|
|
|
+#if !defined(__redox__)
|
|
if (async->isolate_sigpipe) {
|
|
sigset_t mask;
|
|
sigemptyset(&mask);
|
|
@@ -631,6 +632,7 @@
|
|
return (void *)ret;
|
|
}
|
|
}
|
|
+#endif
|
|
|
|
pthread_setspecific(async_key, async);
|
|
ret = async->proc(async->proc_in, async->proc_out, async->data);
|
|
diff -ruw source/setup.c source-new/setup.c
|
|
--- source/setup.c 2017-06-04 19:08:11.000000000 -0600
|
|
+++ source-new/setup.c 2018-12-26 18:52:50.070479933 -0700
|
|
@@ -1146,11 +1146,11 @@
|
|
/* if any standard file descriptor is missing open it to /dev/null */
|
|
void sanitize_stdfds(void)
|
|
{
|
|
- int fd = open("/dev/null", O_RDWR, 0);
|
|
+ int fd = open(DEV_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 %s or dup failed", DEV_NULL);
|
|
if (fd > 2)
|
|
close(fd);
|
|
}
|
|
@@ -1169,8 +1169,10 @@
|
|
default:
|
|
exit(0);
|
|
}
|
|
+#if !defined(__redox__)
|
|
if (setsid() == -1)
|
|
die_errno("setsid failed");
|
|
+#endif
|
|
close(0);
|
|
close(1);
|
|
close(2);
|
|
diff -ruw source/strbuf.c source-new/strbuf.c
|
|
--- source/strbuf.c 2017-06-04 19:08:11.000000000 -0600
|
|
+++ source-new/strbuf.c 2018-12-26 18:53:39.586122270 -0700
|
|
@@ -446,6 +446,13 @@
|
|
for (;; guessed_len *= 2) {
|
|
strbuf_grow(sb, guessed_len);
|
|
if (getcwd(sb->buf, sb->alloc)) {
|
|
+#if defined(__redox__)
|
|
+ if (strncmp(sb->buf, "file:", 5) == 0) {
|
|
+ char *x = strdup(sb->buf);
|
|
+ strcpy(sb->buf, x+5);
|
|
+ free(x);
|
|
+ }
|
|
+#endif
|
|
strbuf_setlen(sb, strlen(sb->buf));
|
|
return 0;
|
|
}
|