TERMUX_PKG_DESCRIPTION="Distributed version control system designed to handle everything from small to very large projects with speed and efficiency"
# less is required as a pager for git log, and the busybox less does not handle used escape sequences.
TERMUX_PKG_DEPENDS="libcurl, less, openssl"
-TERMUX_PKG_VERSION=2.14.2
-TERMUX_PKG_SHA256=50e9723996114ad1eec4dda89960d9fe34461749ae42031008a261fedd03c7a1
+TERMUX_PKG_VERSION=2.14.3
+TERMUX_PKG_SHA256=5330960dd52467f6e5bf1931b9fd42b76d3f8ce9bc75150b54ecfb57d407151d
TERMUX_PKG_SRCURL=https://www.kernel.org/pub/software/scm/git/git-${TERMUX_PKG_VERSION}.tar.xz
## This requires a working $TERMUX_PREFIX/bin/sh on the host building:
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-diff -u -r ../git-2.9.0/config.c ./config.c
---- ../git-2.9.0/config.c 2016-06-13 15:07:49.000000000 -0400
-+++ ./config.c 2016-06-19 20:16:44.473791157 -0400
-@@ -49,6 +49,25 @@
- */
- static struct config_set the_config_set;
+diff -u -r ../git-2.14.3/config.c ./config.c
+--- ../git-2.14.3/config.c 2017-10-23 08:03:35.000000000 +0200
++++ ./config.c 2017-10-25 14:27:28.038111765 +0200
+@@ -73,6 +73,25 @@
+ static int pack_compression_seen;
+ static int zlib_compression_seen;
+/*
+ * Protecting the project-specific git configuration file (.git/config) is
static int config_file_fgetc(struct config_source *conf)
{
return getc_unlocked(conf->u.file);
-@@ -2123,9 +2142,13 @@
+@@ -2535,9 +2554,13 @@
in_fd = -1;
- if (chmod(get_lock_file_path(lock), st.st_mode & 07777) < 0) {
+ if (chmod(get_lock_file_path(&lock), st.st_mode & 07777) < 0) {
+#ifdef __ANDROID__
+ termux_warn_once_about_lockfile();
+#else
- error_errno("chmod on %s failed", get_lock_file_path(lock));
+ error_errno("chmod on %s failed", get_lock_file_path(&lock));
ret = CONFIG_NO_WRITE;
goto out_free;
+#endif
}
if (store.seen == 0)
-@@ -2330,9 +2353,13 @@
- fstat(fileno(config_file), &st);
+@@ -2737,9 +2760,13 @@
+ }
if (chmod(get_lock_file_path(lock), st.st_mode & 07777) < 0) {
+#ifdef __ANDROID__