mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-11-05 04:06:38 +08:00
Merge branch 'gitup' into 'master'
Update git with workaround See merge request redox-os/redox!2413
This commit is contained in:
commit
75b8a78ea5
@ -1,240 +0,0 @@
|
|||||||
diff -ruwN git-2.13.1/compat/bswap.h source/compat/bswap.h
|
|
||||||
--- git-2.13.1/compat/bswap.h 2017-06-04 19:08:11.000000000 -0600
|
|
||||||
+++ source/compat/bswap.h 2025-04-24 11:20:06.475749424 -0600
|
|
||||||
@@ -1,3 +1,7 @@
|
|
||||||
+#if defined(__redox__)
|
|
||||||
+#include <machine/endian.h>
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Let's make sure we always have a sane definition for ntohl()/htonl().
|
|
||||||
* Some libraries define those as a function call, just to perform byte
|
|
||||||
diff -ruwN git-2.13.1/compat/terminal.c source/compat/terminal.c
|
|
||||||
--- git-2.13.1/compat/terminal.c 2017-06-04 19:08:11.000000000 -0600
|
|
||||||
+++ source/compat/terminal.c 2025-04-18 10:00:11.318697446 -0600
|
|
||||||
@@ -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 -ruwN git-2.13.1/configure source/configure
|
|
||||||
--- git-2.13.1/configure 2017-06-04 19:08:11.000000000 -0600
|
|
||||||
+++ source/configure 2025-04-18 10:00:11.318697446 -0600
|
|
||||||
@@ -6156,7 +6156,7 @@
|
|
||||||
ac_res=$ac_cv_search_getaddrinfo
|
|
||||||
if test "$ac_res" != no; then :
|
|
||||||
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
|
|
||||||
- NO_IPV6=
|
|
||||||
+ NO_IPV6=YesPlease
|
|
||||||
else
|
|
||||||
NO_IPV6=YesPlease
|
|
||||||
fi
|
|
||||||
diff -ruwN git-2.13.1/daemon.c source/daemon.c
|
|
||||||
--- git-2.13.1/daemon.c 2017-06-04 19:08:11.000000000 -0600
|
|
||||||
+++ source/daemon.c 2025-04-18 10:00:11.319697447 -0600
|
|
||||||
@@ -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 -ruwN git-2.13.1/git-compat-util.h source/git-compat-util.h
|
|
||||||
--- git-2.13.1/git-compat-util.h 2017-06-04 19:08:11.000000000 -0600
|
|
||||||
+++ source/git-compat-util.h 2025-04-18 10:00:11.319697447 -0600
|
|
||||||
@@ -1,6 +1,18 @@
|
|
||||||
#ifndef GIT_COMPAT_UTIL_H
|
|
||||||
#define GIT_COMPAT_UTIL_H
|
|
||||||
|
|
||||||
+#ifndef SIG_DFL
|
|
||||||
+#define SIG_DFL ((void (*)(int))0)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifndef SIG_IGN
|
|
||||||
+#define SIG_IGN ((void (*)(int))1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifndef SIG_ERR
|
|
||||||
+#define SIG_ERR ((void (*)(int))-1)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#define _FILE_OFFSET_BITS 64
|
|
||||||
|
|
||||||
|
|
||||||
@@ -323,6 +335,14 @@
|
|
||||||
#define PATH_SEP ':'
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef DEV_NULL
|
|
||||||
+#if defined(__redox__)
|
|
||||||
+#define DEV_NULL "/scheme/null"
|
|
||||||
+#else
|
|
||||||
+#define DEV_NULL "/dev/null"
|
|
||||||
+#endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifdef HAVE_PATHS_H
|
|
||||||
#include <paths.h>
|
|
||||||
#endif
|
|
||||||
diff -ruwN git-2.13.1/Makefile source/Makefile
|
|
||||||
--- git-2.13.1/Makefile 2017-06-05 08:08:11.000000000 +0700
|
|
||||||
+++ source/Makefile 2025-09-01 04:41:10.339224568 +0700
|
|
||||||
@@ -979,7 +979,7 @@
|
|
||||||
BUILTIN_OBJS += builtin/write-tree.o
|
|
||||||
|
|
||||||
GITLIBS = common-main.o $(LIB_FILE) $(XDIFF_LIB)
|
|
||||||
-EXTLIBS =
|
|
||||||
+EXTLIBS = -lnghttp2
|
|
||||||
|
|
||||||
GIT_USER_AGENT = git/$(GIT_VERSION)
|
|
||||||
|
|
||||||
@@ -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 -ruwN git-2.13.1/run-command.c source/run-command.c
|
|
||||||
--- git-2.13.1/run-command.c 2017-06-04 19:08:11.000000000 -0600
|
|
||||||
+++ source/run-command.c 2025-04-18 10:00:11.320697447 -0600
|
|
||||||
@@ -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);
|
|
||||||
diff -ruwN git-2.13.1/setup.c source/setup.c
|
|
||||||
--- git-2.13.1/setup.c 2017-06-05 08:08:11.000000000 +0700
|
|
||||||
+++ source/setup.c 2025-09-01 04:41:10.339224568 +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);
|
|
||||||
2
recipes/dev/git/gitconfig
Normal file
2
recipes/dev/git/gitconfig
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[protocol]
|
||||||
|
version = 0
|
||||||
@ -1,15 +1,13 @@
|
|||||||
[source]
|
[source]
|
||||||
tar = "https://www.kernel.org/pub/software/scm/git/git-2.13.1.tar.xz"
|
tar = "https://www.kernel.org/pub/software/scm/git/git-2.56.0.tar.xz"
|
||||||
blake3 = "bc78271bffd60c5b8b938d8c08fd74dc2de8d21fbaf8f8e0e3155436d9263f17"
|
blake3 = "596b02fea3d67e2ca45208aabebc92d2c14e7f2827f82cba59a630d55eea0854"
|
||||||
patches = ["git.patch"]
|
|
||||||
|
|
||||||
[build]
|
[build]
|
||||||
dependencies=[
|
dependencies=[
|
||||||
"curl",
|
"curl",
|
||||||
"expat",
|
"expat",
|
||||||
"nghttp2",
|
"zlib",
|
||||||
"openssl3",
|
"pcre2",
|
||||||
"zlib"
|
|
||||||
]
|
]
|
||||||
template = "custom"
|
template = "custom"
|
||||||
script = """
|
script = """
|
||||||
@ -18,36 +16,34 @@ DYNAMIC_INIT
|
|||||||
MAKEFLAGS=(
|
MAKEFLAGS=(
|
||||||
NEEDS_SSL_WITH_CURL=1
|
NEEDS_SSL_WITH_CURL=1
|
||||||
NEEDS_CRYPTO_WITH_SSL=1
|
NEEDS_CRYPTO_WITH_SSL=1
|
||||||
NO_IPV6=1
|
NO_IPV6=1 # not implemented
|
||||||
NO_PREAD=1
|
NO_MMAP=1 # mmap writes extra null padding
|
||||||
NO_MMAP=1
|
NO_SETITIMER=1 # deprecated
|
||||||
NO_SETITIMER=1
|
NO_UNIX_SOCKETS=1 # need inotify
|
||||||
NO_UNIX_SOCKETS=1
|
|
||||||
NEEDS_LIBICONV=
|
NEEDS_LIBICONV=
|
||||||
NEEDS_LIBRT=
|
NEEDS_LIBRT=
|
||||||
BLK_SHA1=1
|
BLK_SHA1=1
|
||||||
V=1
|
RUST_TARGETS=$TARGET
|
||||||
|
INSTALL_SYMLINKS=1
|
||||||
)
|
)
|
||||||
|
|
||||||
if [ "${COOKBOOK_DYNAMIC}" != "1" ]; then
|
|
||||||
# git does not use pkgconfig to be aware with zstd
|
|
||||||
MAKEFLAGS+=( EXTLIBS="-lzstd -lnghttp2 -lz" )
|
|
||||||
fi
|
|
||||||
|
|
||||||
export CURL_CONFIG="${COOKBOOK_SYSROOT}/usr/bin/curl-config"
|
export CURL_CONFIG="${COOKBOOK_SYSROOT}/usr/bin/curl-config"
|
||||||
./configure \
|
./configure \
|
||||||
--host="${GNU_TARGET}" \
|
--host="${GNU_TARGET}" \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
ac_cv_fread_reads_directories=yes \
|
ac_cv_fread_reads_directories=yes \
|
||||||
ac_cv_snprintf_returns_bogus=yes \
|
ac_cv_snprintf_returns_bogus=yes \
|
||||||
ac_cv_lib_curl_curl_global_init=yes
|
ac_cv_lib_curl_curl_global_init=yes
|
||||||
"${COOKBOOK_MAKE}" "${MAKEFLAGS[@]}" -j"${COOKBOOK_MAKE_JOBS}"
|
"${COOKBOOK_MAKE}" "${MAKEFLAGS[@]}" -j"${COOKBOOK_MAKE_JOBS}"
|
||||||
"${COOKBOOK_MAKE}" DESTDIR="${COOKBOOK_STAGE}" "${MAKEFLAGS[@]}" install
|
"${COOKBOOK_MAKE}" DESTDIR="${COOKBOOK_STAGE}" "${MAKEFLAGS[@]}" install
|
||||||
rm -rf "${COOKBOOK_STAGE}/usr/share/man"
|
|
||||||
|
# TODO: pinned to protocol v0 otherwise silently quit
|
||||||
|
mkdir -p "${COOKBOOK_STAGE}/etc"
|
||||||
|
cp "${COOKBOOK_RECIPE}/gitconfig" "${COOKBOOK_STAGE}/etc/"
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ca-certificates",
|
"ca-certificates",
|
||||||
"nghttp2"
|
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#TODO: require git update
|
#TODO: unable to init TUI due to bugs in pty
|
||||||
[source]
|
[source]
|
||||||
git = "https://github.com/willnode/lazygit"
|
git = "https://github.com/willnode/lazygit"
|
||||||
branch = "redox"
|
branch = "redox"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user