summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-05 02:05:39 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-05 02:05:39 +0000
commitd23cd896d4fde33b5e323ec84af1c1472c59c461 (patch)
tree1415b8bb99a5761240c41c8b1615a381cc84c16c
parent96b302672a8bc92199343579778067efaefe48c7 (diff)
automatic import of gitopeneuler24.03_LTS
-rw-r--r--.gitignore2
-rw-r--r--0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch73
-rw-r--r--0002-t-lib-git-daemon-try-harder-to-find-a-port.patch88
-rw-r--r--0003-t-lib-git-svn-try-harder-to-find-a-port.patch85
-rw-r--r--git-2.43.0-core-crypto-hmac.patch70
-rw-r--r--git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch26
-rw-r--r--git-gui.desktop9
-rw-r--r--git.socket9
-rw-r--r--git.spec1795
-rw-r--r--git.xinetd.in14
-rw-r--r--git@.service.in10
-rw-r--r--gitweb-httpd.conf7
-rw-r--r--gitweb.conf.in53
-rw-r--r--gpgkey-junio.asc144
-rw-r--r--print-failed-test-output13
-rw-r--r--sources2
16 files changed, 2400 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..19eefa3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/git-2.43.5.tar.sign
+/git-2.43.5.tar.xz
diff --git a/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch b/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch
new file mode 100644
index 0000000..f7c1509
--- /dev/null
+++ b/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch
@@ -0,0 +1,73 @@
+From aedeaaf788bd8a7fc5a1887196b6f6d8a5c31362 Mon Sep 17 00:00:00 2001
+From: Todd Zullinger <tmz@pobox.com>
+Date: Sun, 21 Aug 2022 13:49:57 -0400
+Subject: [PATCH] t/lib-httpd: try harder to find a port for apache
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When running multiple builds concurrently, tests which run daemons, like
+apache httpd, sometimes conflict with each other, leading to spurious
+failures:
+
+ ++ /usr/sbin/httpd -d '/tmp/git-t.ck9I/trash directory.t9118-git-svn-funky-branch-names/httpd' \
+ -f /builddir/build/BUILD/git-2.37.2/t/lib-httpd/apache.conf -DDAV -DSVN -c 'Listen 127.0.0.1:9118' \
+ -k start
+ (98)Address already in use: AH00072: make_sock: could not bind to address 127.0.0.1:9118
+ no listening sockets available, shutting down
+ AH00015: Unable to open logs
+ ++ test 1 -ne 0
+
+Try a bit harder to find an open port to use to avoid these intermittent
+failures. If we fail to start httpd, increment the port number and try
+again. By default, we make 3 attempts. This may be overridden by
+setting GIT_TEST_START_HTTPD_TRIES to a different value.
+
+Helped-by: Ondřej Pohořelský <opohorel@redhat.com>
+Signed-off-by: Todd Zullinger <tmz@pobox.com>
+---
+ t/lib-httpd.sh | 29 ++++++++++++++++++-----------
+ 1 file changed, 18 insertions(+), 11 deletions(-)
+
+diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
+index 1f6b9b08d1..9279dcd659 100644
+--- a/t/lib-httpd.sh
++++ b/t/lib-httpd.sh
+@@ -175,19 +175,26 @@ prepare_httpd() {
+ }
+
+ start_httpd() {
+- prepare_httpd >&3 2>&4
+-
+ test_atexit stop_httpd
+
+- "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
+- -f "$TEST_PATH/apache.conf" $HTTPD_PARA \
+- -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \
+- >&3 2>&4
+- if test $? -ne 0
+- then
+- cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null
+- test_skip_or_die GIT_TEST_HTTPD "web server setup failed"
+- fi
++ i=0
++ while test $i -lt ${GIT_TEST_START_HTTPD_TRIES:-3}
++ do
++ i=$(($i + 1))
++ prepare_httpd >&3 2>&4
++ say >&3 "Starting httpd on port $LIB_HTTPD_PORT"
++ "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
++ -f "$TEST_PATH/apache.conf" $HTTPD_PARA \
++ -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \
++ >&3 2>&4
++ test $? -eq 0 && return
++ LIB_HTTPD_PORT=$(($LIB_HTTPD_PORT + 1))
++ export LIB_HTTPD_PORT
++ # clean up modules symlink, prepare_httpd will re-create it
++ rm -f "$HTTPD_ROOT_PATH/modules"
++ done
++ cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null
++ test_skip_or_die GIT_TEST_HTTPD "web server setup failed"
+ }
+
+ stop_httpd() {
diff --git a/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch b/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch
new file mode 100644
index 0000000..4540b63
--- /dev/null
+++ b/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch
@@ -0,0 +1,88 @@
+From 16750d024ce038b019ab2e9ee5639901e445af37 Mon Sep 17 00:00:00 2001
+From: Todd Zullinger <tmz@pobox.com>
+Date: Fri, 26 Aug 2022 18:28:44 -0400
+Subject: [PATCH] t/lib-git-daemon: try harder to find a port
+
+As with the previous commit, try harder to find an open port to avoid
+intermittent failures on busy/shared build systems.
+
+By default, we make 3 attempts. This may be overridden by setting
+GIT_TEST_START_GIT_DAEMON_TRIES to a different value.
+
+Signed-off-by: Todd Zullinger <tmz@pobox.com>
+---
+ t/lib-git-daemon.sh | 60 ++++++++++++++++++++++++++++-----------------
+ 1 file changed, 37 insertions(+), 23 deletions(-)
+
+diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh
+index e62569222b..c3e8dda9ff 100644
+--- a/t/lib-git-daemon.sh
++++ b/t/lib-git-daemon.sh
+@@ -51,30 +51,44 @@ start_git_daemon() {
+ registered_stop_git_daemon_atexit_handler=AlreadyDone
+ fi
+
+- say >&3 "Starting git daemon ..."
+- mkfifo git_daemon_output
+- ${LIB_GIT_DAEMON_COMMAND:-git daemon} \
+- --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \
+- --reuseaddr --verbose --pid-file="$GIT_DAEMON_PIDFILE" \
+- --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
+- "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
+- >&3 2>git_daemon_output &
+- GIT_DAEMON_PID=$!
+- {
+- read -r line <&7
+- printf "%s\n" "$line" >&4
+- cat <&7 >&4 &
+- } 7<git_daemon_output &&
++ i=0
++ while test $i -lt ${GIT_TEST_START_GIT_DAEMON_TRIES:-3}
++ do
++ say >&3 "Starting git daemon on port $LIB_GIT_DAEMON_PORT ..."
++ mkfifo git_daemon_output
++ ${LIB_GIT_DAEMON_COMMAND:-git daemon} \
++ --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \
++ --reuseaddr --verbose --pid-file="$GIT_DAEMON_PIDFILE" \
++ --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
++ "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
++ >&3 2>git_daemon_output &
++ GIT_DAEMON_PID=$!
++ {
++ read -r line <&7
++ printf "%s\n" "$line" >&4
++ cat <&7 >&4 &
++ } 7<git_daemon_output &&
+
+- # Check expected output
+- if test x"$(expr "$line" : "\[[0-9]*\] \(.*\)")" != x"Ready to rumble"
+- then
+- kill "$GIT_DAEMON_PID"
+- wait "$GIT_DAEMON_PID"
+- unset GIT_DAEMON_PID
+- test_skip_or_die GIT_TEST_GIT_DAEMON \
+- "git daemon failed to start"
+- fi
++ # Check expected output
++ output="$(expr "$line" : "\[[0-9]*\] \(.*\)")"
++ # Return if found
++ test x"$output" = x"Ready to rumble" && return
++ # Increment port for retry if not found
++ LIB_GIT_DAEMON_PORT=$(($LIB_GIT_DAEMON_PORT + 1))
++ export LIB_GIT_DAEMON_PORT
++ GIT_DAEMON_HOST_PORT=127.0.0.1:$LIB_GIT_DAEMON_PORT
++ GIT_DAEMON_URL=git://$GIT_DAEMON_HOST_PORT
++ # unset GIT_DAEMON_PID; remove the fifo & pid file
++ GIT_DAEMON_PID=
++ rm -f git_daemon_output "$GIT_DAEMON_PIDFILE"
++ done
++
++ # Clean up and return failure
++ kill "$GIT_DAEMON_PID"
++ wait "$GIT_DAEMON_PID"
++ unset GIT_DAEMON_PID
++ test_skip_or_die GIT_TEST_GIT_DAEMON \
++ "git daemon failed to start"
+ }
+
+ stop_git_daemon() {
diff --git a/0003-t-lib-git-svn-try-harder-to-find-a-port.patch b/0003-t-lib-git-svn-try-harder-to-find-a-port.patch
new file mode 100644
index 0000000..56624e2
--- /dev/null
+++ b/0003-t-lib-git-svn-try-harder-to-find-a-port.patch
@@ -0,0 +1,85 @@
+From aa5105dc115b43edc6c9c11714b092583f1221aa Mon Sep 17 00:00:00 2001
+From: Todd Zullinger <tmz@pobox.com>
+Date: Fri, 26 Aug 2022 18:28:44 -0400
+Subject: [PATCH] t/lib-git-svn: try harder to find a port
+
+As with the previous commits, try harder to find an open port to avoid
+intermittent failures on busy/shared build systems.
+
+By default, we make 3 attempts. This may be overridden by setting
+GIT_TEST_START_SVNSERVE_TRIES to a different value.
+
+Run svnserve in daemon mode and use 'test_atexit' to stop it. This is
+cleaner than running in the foreground with --listen-once and having to
+manage the PID ourselves.
+
+Signed-off-by: Todd Zullinger <tmz@pobox.com>
+---
+ t/lib-git-svn.sh | 34 +++++++++++++++++++++++++----
+ t/t9113-git-svn-dcommit-new-file.sh | 1 -
+ 2 files changed, 30 insertions(+), 5 deletions(-)
+
+diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
+index ea28971e8e..04e660e2ba 100644
+--- a/t/lib-git-svn.sh
++++ b/t/lib-git-svn.sh
+@@ -17,6 +17,7 @@ fi
+ GIT_DIR=$PWD/.git
+ GIT_SVN_DIR=$GIT_DIR/svn/refs/remotes/git-svn
+ SVN_TREE=$GIT_SVN_DIR/svn-tree
++SVNSERVE_PIDFILE="$PWD"/daemon.pid
+ test_set_port SVNSERVE_PORT
+
+ svn >/dev/null 2>&1
+@@ -119,10 +120,35 @@ require_svnserve () {
+ }
+
+ start_svnserve () {
+- svnserve --listen-port $SVNSERVE_PORT \
+- --root "$rawsvnrepo" \
+- --listen-once \
+- --listen-host 127.0.0.1 &
++ test_atexit stop_svnserve
++
++ i=0
++ while test $i -lt ${GIT_TEST_START_SVNSERVE_TRIES:-3}
++ do
++ say >&3 "Starting svnserve on port $SVNSERVE_PORT ..."
++ svnserve --listen-port $SVNSERVE_PORT \
++ --root "$rawsvnrepo" \
++ --daemon --pid-file="$SVNSERVE_PIDFILE" \
++ --listen-host 127.0.0.1
++ ret=$?
++ # increment port and retry if unsuccessful
++ if test $ret -ne 0
++ then
++ SVNSERVE_PORT=$(($SVNSERVE_PORT + 1))
++ export SVNSERVE_PORT
++ else
++ break
++ fi
++ done
++}
++
++stop_svnserve () {
++ say >&3 "Stopping svnserve ..."
++ SVNSERVE_PID="$(cat "$SVNSERVE_PIDFILE")"
++ if test -n "$SVNSERVE_PID"
++ then
++ kill "$SVNSERVE_PID" 2>/dev/null
++ fi
+ }
+
+ prepare_utf8_locale () {
+diff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh
+index e8479cec7a..5925891f5d 100755
+--- a/t/t9113-git-svn-dcommit-new-file.sh
++++ b/t/t9113-git-svn-dcommit-new-file.sh
+@@ -28,7 +28,6 @@ test_expect_success 'create files in new directory with dcommit' "
+ echo hello > git-new-dir/world &&
+ git update-index --add git-new-dir/world &&
+ git commit -m hello &&
+- start_svnserve &&
+ git svn dcommit
+ "
+
diff --git a/git-2.43.0-core-crypto-hmac.patch b/git-2.43.0-core-crypto-hmac.patch
new file mode 100644
index 0000000..26343f8
--- /dev/null
+++ b/git-2.43.0-core-crypto-hmac.patch
@@ -0,0 +1,70 @@
+diff -ur b/builtin/receive-pack.c a/builtin/receive-pack.c
+--- b/builtin/receive-pack.c 2023-11-20 03:07:41.000000000 +0100
++++ a/builtin/receive-pack.c 2023-12-06 15:34:28.294170714 +0100
+@@ -40,6 +40,8 @@
+ #include "worktree.h"
+ #include "shallow.h"
+ #include "parse-options.h"
++#include <openssl/hmac.h>
++#include <openssl/evp.h>
+
+ static const char * const receive_pack_usage[] = {
+ N_("git receive-pack <git-dir>"),
+@@ -538,43 +540,11 @@
+ return 0;
+ }
+
+-static void hmac_hash(unsigned char *out,
++static inline void hmac_hash(unsigned char *out,
+ const char *key_in, size_t key_len,
+ const char *text, size_t text_len)
+ {
+- unsigned char key[GIT_MAX_BLKSZ];
+- unsigned char k_ipad[GIT_MAX_BLKSZ];
+- unsigned char k_opad[GIT_MAX_BLKSZ];
+- int i;
+- git_hash_ctx ctx;
+-
+- /* RFC 2104 2. (1) */
+- memset(key, '\0', GIT_MAX_BLKSZ);
+- if (the_hash_algo->blksz < key_len) {
+- the_hash_algo->init_fn(&ctx);
+- the_hash_algo->update_fn(&ctx, key_in, key_len);
+- the_hash_algo->final_fn(key, &ctx);
+- } else {
+- memcpy(key, key_in, key_len);
+- }
+-
+- /* RFC 2104 2. (2) & (5) */
+- for (i = 0; i < sizeof(key); i++) {
+- k_ipad[i] = key[i] ^ 0x36;
+- k_opad[i] = key[i] ^ 0x5c;
+- }
+-
+- /* RFC 2104 2. (3) & (4) */
+- the_hash_algo->init_fn(&ctx);
+- the_hash_algo->update_fn(&ctx, k_ipad, sizeof(k_ipad));
+- the_hash_algo->update_fn(&ctx, text, text_len);
+- the_hash_algo->final_fn(out, &ctx);
+-
+- /* RFC 2104 2. (6) & (7) */
+- the_hash_algo->init_fn(&ctx);
+- the_hash_algo->update_fn(&ctx, k_opad, sizeof(k_opad));
+- the_hash_algo->update_fn(&ctx, out, the_hash_algo->rawsz);
+- the_hash_algo->final_fn(out, &ctx);
++ HMAC(EVP_sha1(), key_in, key_len, text, text_len, out, NULL);
+ }
+
+ static char *prepare_push_cert_nonce(const char *path, timestamp_t stamp)
+diff -ur b/Makefile a/Makefile
+--- b/Makefile 2023-11-20 03:07:41.000000000 +0100
++++ a/Makefile 2023-12-06 15:35:08.506316431 +0100
+@@ -2123,6 +2123,8 @@
+ EXTLIBS += -lcrypto -lssl
+ endif
+
++EXTLIBS += -lcrypto
++
+ ifneq ($(PROCFS_EXECUTABLE_PATH),)
+ procfs_executable_path_SQ = $(subst ','\'',$(PROCFS_EXECUTABLE_PATH))
+ BASIC_CFLAGS += '-DPROCFS_EXECUTABLE_PATH="$(procfs_executable_path_SQ)"'
diff --git a/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch b/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
new file mode 100644
index 0000000..37a22dd
--- /dev/null
+++ b/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
@@ -0,0 +1,26 @@
+From 09891c65a5f7409ce0bd37daced0ff31fbb1b1c9 Mon Sep 17 00:00:00 2001
+From: Todd Zullinger <tmz@pobox.com>
+Date: Mon, 23 Mar 2009 00:03:36 -0400
+Subject: [PATCH] git-cvsimport: Ignore cvsps-2.2b1 Branches: output
+
+Signed-off-by: Todd Zullinger <tmz@pobox.com>
+---
+ git-cvsimport.perl | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/git-cvsimport.perl b/git-cvsimport.perl
+index e439202..d020f1a 100755
+--- a/git-cvsimport.perl
++++ b/git-cvsimport.perl
+@@ -952,7 +952,7 @@ while (<CVS>) {
+ } elsif (/^-+$/) { # end of unknown-line processing
+ $state = 1;
+ } elsif ($state != 11) { # ignore stuff when skipping
+- print STDERR "* UNKNOWN LINE * $_\n";
++ print STDERR "* UNKNOWN LINE * $_\n" unless /^Branches: /;
+ }
+ }
+ commit() if $branch and $state != 11;
+--
+1.6.2.2
+
diff --git a/git-gui.desktop b/git-gui.desktop
new file mode 100644
index 0000000..f74f066
--- /dev/null
+++ b/git-gui.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Git GUI
+GenericName=Git GUI
+Comment=A graphical interface to Git
+Exec=git gui
+Icon=/usr/share/git-gui/lib/git-gui.ico
+Terminal=false
+Type=Application
+Categories=Development;
diff --git a/git.socket b/git.socket
new file mode 100644
index 0000000..3dec01d
--- /dev/null
+++ b/git.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Git Activation Socket
+
+[Socket]
+ListenStream=9418
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/git.spec b/git.spec
new file mode 100644
index 0000000..4bf649e
--- /dev/null
+++ b/git.spec
@@ -0,0 +1,1795 @@
+# Pass --without docs to rpmbuild if you don't want the documentation
+%bcond_without docs
+
+# Pass --without tests to rpmbuild if you don't want to run the tests
+%bcond_without tests
+
+%global gitexecdir %{_libexecdir}/git-core
+
+# Settings for Fedora >= 34
+%if 0%{?fedora} >= 34
+%bcond_with emacs
+%else
+%bcond_without emacs
+%endif
+
+# Settings for Fedora
+%if 0%{?fedora}
+# linkchecker is not available on EL
+%bcond_without linkcheck
+%else
+%bcond_with linkcheck
+%endif
+
+# Settings for Fedora and EL >= 9
+%if 0%{?fedora} || 0%{?rhel} >= 9
+%bcond_without asciidoctor
+%else
+%bcond_with asciidoctor
+%endif
+
+# Settings for Fedora and EL > 7
+%if 0%{?fedora} || 0%{?rhel} > 7
+%bcond_with python2
+%bcond_without python3
+%global gitweb_httpd_conf gitweb.conf
+%global use_glibc_langpacks 1
+%global use_perl_generators 1
+%global use_perl_interpreter 1
+%else
+%bcond_without python2
+%bcond_with python3
+%global gitweb_httpd_conf git.conf
+%global use_glibc_langpacks 0
+%global use_perl_generators 0
+%global use_perl_interpreter 0
+%endif
+
+# Settings for Fedora and EL >= 7
+%if 0%{?fedora} || 0%{?rhel} >= 7
+%bcond_without libsecret
+%global bashcomp_pkgconfig 1
+%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null)
+%global bashcomproot %(dirname %{bashcompdir} 2>/dev/null)
+%global emacs_filesystem 1
+%global use_new_rpm_filters 1
+%global use_systemd 1
+%else
+%bcond_with libsecret
+%global bashcomp_pkgconfig 0
+%global bashcompdir %{_sysconfdir}/bash_completion.d
+%global bashcomproot %{bashcompdir}
+%global emacs_filesystem 0
+%global use_new_rpm_filters 0
+%global use_systemd 0
+%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
+%endif
+
+# Allow cvs subpackage to be toggled via --with/--without
+# Disable cvs subpackage by default on EL > 7
+%if 0%{?rhel} > 7
+%bcond_with cvs
+%else
+%bcond_without cvs
+%endif
+
+# Allow p4 subpackage to be toggled via --with/--without
+# Disable by default if we lack python2 support
+%if %{without python2}
+%bcond_with p4
+%else
+%bcond_without p4
+%endif
+
+# Hardening flags for EL-7
+%if 0%{?rhel} == 7
+%global _hardened_build 1
+%endif
+
+# Hardening flags for EL-6
+%if 0%{?rhel} == 6
+%global build_cflags %{build_cflags} -fPIC -pie
+%global build_ldflags -Wl,-z,relro -Wl,-z,now
+%endif
+
+# Set path to the package-notes linker script
+%global _package_note_file %{_builddir}/%{name}-%{version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld
+
+# Define for release candidates
+#global rcrev .rc0
+
+Name: git
+Version: 2.43.5
+Release: 1%{?rcrev}%{?dist}
+Summary: Fast Version Control System
+License: GPLv2
+URL: https://git-scm.com/
+Source0: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{name}-%{version}%{?rcrev}.tar.xz
+Source1: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{name}-%{version}%{?rcrev}.tar.sign
+
+# Junio C Hamano's key is used to sign git releases, it can be found in the
+# junio-gpg-pub tag within git.
+#
+# (Note that the tagged blob in git contains a version of the key with an
+# expired signing subkey. The subkey expiration has been extended on the
+# public keyservers, but the blob in git has not been updated.)
+#
+# https://git.kernel.org/cgit/git/git.git/tag/?h=junio-gpg-pub
+# https://git.kernel.org/cgit/git/git.git/blob/?h=junio-gpg-pub&id=7214aea37915ee2c4f6369eb9dea520aec7d855b
+Source2: gpgkey-junio.asc
+
+# Local sources begin at 10 to allow for additional future upstream sources
+Source11: git.xinetd.in
+Source12: git-gui.desktop
+Source13: gitweb-httpd.conf
+Source14: gitweb.conf.in
+Source15: git@.service.in
+Source16: git.socket
+
+# Script to print test failure output (used in %%check)
+Source99: print-failed-test-output
+
+# https://bugzilla.redhat.com/490602
+Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
+
+# https://bugzilla.redhat.com/1956345
+Patch1: git-2.43.0-core-crypto-hmac.patch
+
+# https://bugzilla.redhat.com/2114531
+# tests: try harder to find open ports for apache, git, and svn
+#
+# https://github.com/tmzullinger/git/commit/aedeaaf788
+Patch2: 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch
+# https://github.com/tmzullinger/git/commit/16750d024c
+Patch3: 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch
+# https://github.com/tmzullinger/git/commit/aa5105dc11
+Patch4: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch
+
+%if %{with docs}
+# pod2man is needed to build Git.3pm
+BuildRequires: %{_bindir}/pod2man
+%if %{with asciidoctor}
+BuildRequires: docbook5-style-xsl
+BuildRequires: rubygem-asciidoctor
+%else
+BuildRequires: asciidoc >= 8.4.1
+%endif
+# endif with asciidoctor
+BuildRequires: perl(File::Compare)
+BuildRequires: xmlto
+%if %{with linkcheck}
+BuildRequires: linkchecker
+%endif
+# endif with linkcheck
+%endif
+# endif with docs
+BuildRequires: desktop-file-utils
+BuildRequires: diffutils
+%if %{with emacs}
+BuildRequires: emacs-common
+%endif
+# endif emacs-common
+%if 0%{?rhel} && 0%{?rhel} < 9
+# Require epel-rpm-macros for the %%gpgverify macro on EL-7/EL-8, and
+# %%build_cflags & %%build_ldflags on EL-7.
+BuildRequires: epel-rpm-macros
+%endif
+# endif rhel < 9
+BuildRequires: expat-devel
+BuildRequires: findutils
+BuildRequires: gawk
+BuildRequires: gcc
+BuildRequires: gettext
+BuildRequires: gnupg2
+BuildRequires: libcurl-devel
+BuildRequires: make
+BuildRequires: openssl-devel
+BuildRequires: pcre2-devel
+BuildRequires: perl(Error)
+BuildRequires: perl(lib)
+BuildRequires: perl(Test)
+%if %{use_perl_generators}
+BuildRequires: perl-generators
+%endif
+# endif use_perl_generators
+%if %{use_perl_interpreter}
+BuildRequires: perl-interpreter
+%else
+BuildRequires: perl
+%endif
+# endif use_perl_interpreter
+%if %{bashcomp_pkgconfig}
+BuildRequires: pkgconfig(bash-completion)
+%endif
+# endif bashcomp_pkgconfig
+BuildRequires: sed
+%if %{use_systemd}
+# For macros
+BuildRequires: systemd
+%endif
+# endif use_systemd
+BuildRequires: tcl
+BuildRequires: tk
+BuildRequires: xz
+BuildRequires: zlib-devel >= 1.2
+
+%if %{with tests}
+# Test suite requirements
+BuildRequires: acl
+%if 0%{?fedora} >= 27 || 0%{?rhel} > 7
+# Needed by t5540-http-push-webdav.sh
+BuildRequires: apr-util-bdb
+# Needed by t5559-http-fetch-smart-http2.sh
+BuildRequires: mod_http2
+%endif
+# endif fedora >= 27
+BuildRequires: bash
+%if %{with cvs}
+BuildRequires: cvs
+BuildRequires: cvsps
+%endif
+# endif with cvs
+%if %{use_glibc_langpacks}
+# glibc-all-langpacks and glibc-langpack-is are needed for GETTEXT_LOCALE and
+# GETTEXT_ISO_LOCALE test prereq's, glibc-langpack-en ensures en_US.UTF-8.
+BuildRequires: glibc-all-langpacks
+BuildRequires: glibc-langpack-en
+BuildRequires: glibc-langpack-is
+%endif
+# endif use_glibc_langpacks
+%if 0%{?fedora} && 0%{?fedora} < 30
+BuildRequires: gnupg
+%endif
+# endif fedora < 30
+%if 0%{?fedora} || 0%{?rhel} > 8
+BuildRequires: gnupg2-smime
+%endif
+# endif fedora or el > 8
+%if 0%{?fedora} || 0%{?rhel} == 6 || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) )
+BuildRequires: highlight
+%endif
+# endif fedora, el-6, or el7+ (ppc64le/x86_64)
+BuildRequires: httpd
+%if 0%{?fedora} && ! ( "%{_arch}" == "i386" || "%{_arch}" == "s390x" )
+BuildRequires: jgit
+%endif
+# endif fedora (except i386 and s390x)
+BuildRequires: mod_dav_svn
+BuildRequires: perl(App::Prove)
+BuildRequires: perl(CGI)
+BuildRequires: perl(CGI::Carp)
+BuildRequires: perl(CGI::Util)
+BuildRequires: perl(DBD::SQLite)
+BuildRequires: perl(Digest::MD5)
+BuildRequires: perl(Fcntl)
+BuildRequires: perl(File::Basename)
+BuildRequires: perl(File::Copy)
+BuildRequires: perl(File::Find)
+BuildRequires: perl(filetest)
+BuildRequires: perl(HTTP::Date)
+BuildRequires: perl(IO::Pty)
+BuildRequires: perl(JSON)
+BuildRequires: perl(JSON::PP)
+BuildRequires: perl(Mail::Address)
+BuildRequires: perl(Memoize)
+BuildRequires: perl(POSIX)
+BuildRequires: perl(Term::ReadLine)
+BuildRequires: perl(Test::More)
+BuildRequires: perl(Time::HiRes)
+%if %{with python2}
+BuildRequires: python2-devel
+%endif
+# endif with python2
+%if %{with python3}
+BuildRequires: python3-devel
+%endif
+# endif with python3
+BuildRequires: subversion
+BuildRequires: subversion-perl
+BuildRequires: tar
+BuildRequires: time
+BuildRequires: zip
+%endif
+# endif with tests
+
+Requires: git-core = %{version}-%{release}
+Requires: git-core-doc = %{version}-%{release}
+%if ! %{defined perl_bootstrap}
+Requires: perl(Term::ReadKey)
+%endif
+# endif ! defined perl_bootstrap
+Requires: perl-Git = %{version}-%{release}
+
+%if %{with emacs} && %{emacs_filesystem} && %{defined _emacs_version}
+Requires: emacs-filesystem >= %{_emacs_version}
+%endif
+# endif with emacs && emacs_filesystem
+
+# Obsolete emacs-git if it's disabled
+%if %{without emacs}
+Obsoletes: emacs-git < %{?epoch:%{epoch}:}%{version}-%{release}
+%endif
+# endif without emacs
+
+# Obsolete git-cvs if it's disabled
+%if %{without cvs}
+Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release}
+%endif
+# endif without cvs
+
+# Obsolete git-p4 if it's disabled
+%if %{without p4}
+Obsoletes: git-p4 < %{?epoch:%{epoch}:}%{version}-%{release}
+%endif
+# endif without p4
+
+%description
+Git is a fast, scalable, distributed revision control system with an
+unusually rich command set that provides both high-level operations
+and full access to internals.
+
+The git rpm installs common set of tools which are usually using with
+small amount of dependencies. To install all git packages, including
+tools for integrating with other SCMs, install the git-all meta-package.
+
+%package all
+Summary: Meta-package to pull in all git tools
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+%if %{with libsecret}
+Requires: git-credential-libsecret = %{version}-%{release}
+%endif
+# endif with libsecret
+%if %{with cvs}
+Requires: git-cvs = %{version}-%{release}
+%endif
+# endif with cvs
+Requires: git-daemon = %{version}-%{release}
+Requires: git-email = %{version}-%{release}
+Requires: git-gui = %{version}-%{release}
+%if %{with p4}
+Requires: git-p4 = %{version}-%{release}
+%endif
+# endif with p4
+Requires: git-subtree = %{version}-%{release}
+Requires: git-svn = %{version}-%{release}
+Requires: git-instaweb = %{version}-%{release}
+Requires: gitk = %{version}-%{release}
+Requires: perl-Git = %{version}-%{release}
+%if ! %{defined perl_bootstrap}
+Requires: perl(Term::ReadKey)
+%endif
+# endif ! defined perl_bootstrap
+%if %{with emacs} && ! %{emacs_filesystem}
+Requires: emacs-git = %{version}-%{release}
+%endif
+# endif with emacs && ! emacs_filesystem
+%description all
+Git is a fast, scalable, distributed revision control system with an
+unusually rich command set that provides both high-level operations
+and full access to internals.
+
+This is a dummy package which brings in all subpackages.
+
+%package core
+Summary: Core package of git with minimal functionality
+Requires: less
+Requires: openssh-clients
+Requires: zlib >= 1.2
+%description core
+Git is a fast, scalable, distributed revision control system with an
+unusually rich command set that provides both high-level operations
+and full access to internals.
+
+The git-core rpm installs really the core tools with minimal
+dependencies. Install git package for common set of tools.
+To install all git packages, including tools for integrating with
+other SCMs, install the git-all meta-package.
+
+%package core-doc
+Summary: Documentation files for git-core
+BuildArch: noarch
+Requires: git-core = %{version}-%{release}
+%description core-doc
+Documentation files for git-core package including man pages.
+
+%if %{with libsecret}
+%package credential-libsecret
+Summary: Git helper for accessing credentials via libsecret
+BuildRequires: libsecret-devel
+Requires: git = %{version}-%{release}
+%description credential-libsecret
+%{summary}.
+%endif
+# endif with libsecret
+
+%if %{with cvs}
+%package cvs
+Summary: Git tools for importing CVS repositories
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: cvs
+Requires: cvsps
+Requires: perl(DBD::SQLite)
+%description cvs
+%{summary}.
+%endif
+# endif with cvs
+
+%package daemon
+Summary: Git protocol daemon
+Requires: git-core = %{version}-%{release}
+%if %{use_systemd}
+Requires: systemd
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+%else
+Requires: xinetd
+%endif
+# endif use_systemd
+%description daemon
+The git daemon for supporting git:// access to git repositories
+
+%package email
+Summary: Git tools for sending patches via email
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: perl(Authen::SASL)
+Requires: perl(Cwd)
+Requires: perl(File::Spec)
+Requires: perl(File::Spec::Functions)
+Requires: perl(File::Temp)
+Requires: perl(IO::Socket::SSL)
+Requires: perl(Mail::Address)
+Requires: perl(MIME::Base64)
+Requires: perl(MIME::QuotedPrint)
+Requires: perl(Net::Domain)
+Requires: perl(Net::SMTP)
+Requires: perl(Net::SMTP::SSL)
+Requires: perl(POSIX)
+Requires: perl(Sys::Hostname)
+Requires: perl(Term::ANSIColor)
+Requires: perl(Term::ReadLine)
+Requires: perl(Text::ParseWords)
+%description email
+%{summary}.
+
+%if %{with emacs} && ! %{emacs_filesystem}
+%package -n emacs-git
+Summary: Git version control system support for Emacs
+Requires: git = %{version}-%{release}
+BuildArch: noarch
+Requires: emacs(bin) >= %{_emacs_version}
+Obsoletes: emacs-git-el < 2.18.0-0.0
+Provides: emacs-git-el = %{version}-%{release}
+%description -n emacs-git
+%{summary}.
+%endif
+# endif with emacs && ! emacs_filesystem
+
+%package -n gitk
+Summary: Git repository browser
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: git-gui = %{version}-%{release}
+Requires: tk >= 8.4
+%description -n gitk
+%{summary}.
+
+%package -n gitweb
+Summary: Simple web interface to git repositories
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+%description -n gitweb
+%{summary}.
+
+%package gui
+Summary: Graphical interface to Git
+BuildArch: noarch
+Requires: gitk = %{version}-%{release}
+Requires: tk >= 8.4
+%description gui
+%{summary}.
+
+%package instaweb
+Summary: Repository browser in gitweb
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: gitweb = %{version}-%{release}
+%if 0%{?rhel} >= 9
+Requires: httpd
+%else
+Requires: lighttpd
+%endif
+
+%description instaweb
+A simple script to set up gitweb and a web server for browsing the local
+repository.
+
+%if %{with p4}
+%package p4
+Summary: Git tools for working with Perforce depots
+BuildArch: noarch
+BuildRequires: python2-devel
+Requires: git = %{version}-%{release}
+%description p4
+%{summary}.
+%endif
+# endif with p4
+
+%package -n perl-Git
+Summary: Perl interface to Git
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+%description -n perl-Git
+%{summary}.
+
+%package -n perl-Git-SVN
+Summary: Perl interface to Git::SVN
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+%description -n perl-Git-SVN
+%{summary}.
+
+%package subtree
+Summary: Git tools to merge and split repositories
+Requires: git-core = %{version}-%{release}
+%description subtree
+Git subtrees allow subprojects to be included within a subdirectory
+of the main project, optionally including the subproject's entire
+history.
+
+%package svn
+Summary: Git tools for interacting with Subversion repositories
+BuildArch: noarch
+Requires: git = %{version}-%{release}
+Requires: perl(Digest::MD5)
+%if ! %{defined perl_bootstrap}
+Requires: perl(Term::ReadKey)
+%endif
+# endif ! defined perl_bootstrap
+Requires: subversion
+%description svn
+%{summary}.
+
+%prep
+# Verify GPG signatures
+xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=-
+
+%autosetup -p1 -n %{name}-%{version}%{?rcrev}
+
+# Install print-failed-test-output script
+install -p -m 755 %{SOURCE99} print-failed-test-output
+
+# Remove git-archimport from command list
+sed -i '/^git-archimport/d' command-list.txt
+
+%if %{without cvs}
+# Remove git-cvs* from command list
+sed -i '/^git-cvs/d' command-list.txt
+%endif
+# endif without cvs
+
+%if %{without p4}
+# Remove git-p4 from command list
+sed -i '/^git-p4/d' command-list.txt
+%endif
+# endif without p4
+
+# Use these same options for every invocation of 'make'.
+# Otherwise it will rebuild in %%install due to flags changes.
+# Pipe to tee to aid confirmation/verification of settings.
+cat << \EOF | tee config.mak
+V = 1
+CFLAGS = %{build_cflags}
+LDFLAGS = %{build_ldflags}
+NEEDS_CRYPTO_WITH_SSL = 1
+USE_LIBPCRE = 1
+ETC_GITCONFIG = %{_sysconfdir}/gitconfig
+INSTALL_SYMLINKS = 1
+GITWEB_PROJECTROOT = %{_localstatedir}/lib/git
+GNU_ROFF = 1
+NO_PERL_CPAN_FALLBACKS = 1
+%if %{with python2}
+PYTHON_PATH = %{__python2}
+%else
+NO_PYTHON = 1
+%endif
+# endif with python2
+%if %{with asciidoctor}
+USE_ASCIIDOCTOR = 1
+%endif
+# endif with asciidoctor
+htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
+prefix = %{_prefix}
+perllibdir = %{perl_vendorlib}
+gitwebdir = %{_localstatedir}/www/git
+
+# Test options
+DEFAULT_TEST_TARGET = prove
+GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File
+GIT_TEST_OPTS = -x --verbose-log
+EOF
+
+# Filter bogus perl requires
+# packed-refs comes from a comment in contrib/hooks/update-paranoid
+%if %{use_new_rpm_filters}
+%{?perl_default_filter}
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(packed-refs\\)
+%if ! %{defined perl_bootstrap}
+%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(Term::ReadKey\\)
+%endif
+# endif ! defined perl_bootstrap
+%else
+cat << \EOF > %{name}-req
+#!/bin/sh
+%{__perl_requires} $* |\
+sed -e '/perl(packed-refs)/d'
+EOF
+
+%global __perl_requires %{_builddir}/%{name}-%{version}%{?rcrev}/%{name}-req
+chmod +x %{__perl_requires}
+%endif
+# endif use_new_rpm_filters
+
+# Remove Git::LoadCPAN to ensure we use only system perl modules. This also
+# allows the dependencies to be automatically processed by rpm.
+rm -rf perl/Git/LoadCPAN{.pm,/}
+grep -rlZ '^use Git::LoadCPAN::' | xargs -r0 sed -i 's/Git::LoadCPAN:://g'
+
+# Update gitweb default home link string
+sed -i 's@"++GITWEB_HOME_LINK_STR++"@$ENV{"SERVER_NAME"} ? "git://" . $ENV{"SERVER_NAME"} : "projects"@' \
+ gitweb/gitweb.perl
+
+# Move contrib/{contacts,subtree} docs to Documentation so they build with the
+# proper asciidoc/docbook/xmlto options
+mv contrib/{contacts,subtree}/git-*.txt Documentation/
+
+%build
+# Improve build reproducibility
+export TZ=UTC
+export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null)
+
+%make_build all %{?with_docs:doc}
+
+%make_build -C contrib/contacts/ all
+
+%if %{with libsecret}
+%make_build -C contrib/credential/libsecret/
+%endif
+# endif with libsecret
+
+%make_build -C contrib/credential/netrc/
+
+%make_build -C contrib/diff-highlight/
+
+%make_build -C contrib/subtree/ all
+
+# Fix shebang in a few places to silence rpmlint complaints
+%if %{with python2}
+sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \
+ contrib/fast-import/import-zips.py
+%else
+# Remove contrib/fast-import/import-zips.py which requires python2.
+rm -rf contrib/fast-import/import-zips.py
+%endif
+# endif with python2
+
+# Use python3 to avoid an unnecessary python2 dependency, if possible.
+%if %{with python3}
+sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \
+ contrib/hg-to-git/hg-to-git.py
+%endif
+# endif with python3
+
+%install
+%make_install %{?with_docs:install-doc}
+
+%make_install -C contrib/contacts
+
+%if %{with emacs}
+%global elispdir %{_emacs_sitelispdir}/git
+pushd contrib/emacs >/dev/null
+for el in *.el ; do
+ # Note: No byte-compiling is done. These .el files are one-line stubs
+ # which only serve to point users to better alternatives.
+ install -Dpm 644 $el %{buildroot}%{elispdir}/$el
+ rm -f $el # clean up to avoid cruft in git-core-doc
+done
+popd >/dev/null
+%endif
+# endif with emacs
+
+%if %{with libsecret}
+install -pm 755 contrib/credential/libsecret/git-credential-libsecret \
+ %{buildroot}%{gitexecdir}
+%endif
+# endif with libsecret
+install -pm 755 contrib/credential/netrc/git-credential-netrc \
+ %{buildroot}%{gitexecdir}
+# temporarily move contrib/credential/netrc aside to prevent it from being
+# deleted in the docs preparation, so the tests can be run in %%check
+mv contrib/credential/netrc .
+
+%make_install -C contrib/subtree
+
+mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d
+install -pm 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf}
+sed "s|@PROJECTROOT@|%{_localstatedir}/lib/git|g" \
+ %{SOURCE14} > %{buildroot}%{_sysconfdir}/gitweb.conf
+
+# install contrib/diff-highlight and clean up to avoid cruft in git-core-doc
+install -Dpm 0755 contrib/diff-highlight/diff-highlight \
+ %{buildroot}%{_datadir}/git-core/contrib/diff-highlight
+rm -rf contrib/diff-highlight/{Makefile,diff-highlight,*.perl,t}
+
+# Remove contrib/scalar to avoid cruft in the git-core-doc docdir
+rm -rf contrib/scalar
+
+# Clean up contrib/subtree to avoid cruft in the git-core-doc docdir
+rm -rf contrib/subtree/{INSTALL,Makefile,git-subtree*,t}
+
+# git-archimport is not supported
+find %{buildroot} Documentation -type f -name 'git-archimport*' -exec rm -f {} ';'
+
+%if %{without cvs}
+# Remove git-cvs* and gitcvs*
+find %{buildroot} Documentation \( -type f -o -type l \) \
+ \( -name 'git-cvs*' -o -name 'gitcvs*' \) -exec rm -f {} ';'
+%endif
+# endif without cvs
+
+%if %{without p4}
+# Remove git-p4* and mergetools/p4merge
+find %{buildroot} Documentation -type f -name 'git-p4*' -exec rm -f {} ';'
+rm -f %{buildroot}%{gitexecdir}/mergetools/p4merge
+%endif
+# endif without p4
+
+# Remove unneeded git-remote-testsvn so git-svn can be noarch
+rm -f %{buildroot}%{gitexecdir}/git-remote-testsvn
+
+exclude_re="archimport|email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge"
+(find %{buildroot}{%{_bindir},%{_libexecdir}} -type f -o -type l | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files
+(find %{buildroot}{%{_bindir},%{_libexecdir}} -mindepth 1 -type d | grep -vE "$exclude_re" | sed -e 's@^%{buildroot}@%dir @') >> bin-man-doc-files
+(find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files
+(find %{buildroot}%{perl_vendorlib} -mindepth 1 -type d | sed -e 's@^%{buildroot}@%dir @') >> perl-git-files
+# Split out Git::SVN files
+grep Git/SVN perl-git-files > perl-git-svn-files
+sed -i "/Git\/SVN/ d" perl-git-files
+%if %{with docs}
+(find %{buildroot}%{_mandir} -type f | grep -vE "$exclude_re|Git" | sed -e s@^%{buildroot}@@ -e 's/$/*/' ) >> bin-man-doc-files
+%else
+rm -rf %{buildroot}%{_mandir}
+%endif
+# endif with docs
+
+mkdir -p %{buildroot}%{_localstatedir}/lib/git
+%if %{use_systemd}
+install -Dp -m 0644 %{SOURCE16} %{buildroot}%{_unitdir}/git.socket
+perl -p \
+ -e "s|\@GITEXECDIR\@|%{gitexecdir}|g;" \
+ -e "s|\@BASE_PATH\@|%{_localstatedir}/lib/git|g;" \
+ %{SOURCE15} > %{buildroot}%{_unitdir}/git@.service
+%else
+mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d
+perl -p \
+ -e "s|\@GITEXECDIR\@|%{gitexecdir}|g;" \
+ -e "s|\@BASE_PATH\@|%{_localstatedir}/lib/git|g;" \
+ %{SOURCE11} > %{buildroot}%{_sysconfdir}/xinetd.d/git
+%endif
+# endif use_systemd
+
+# Setup bash completion
+install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{bashcompdir}/git
+ln -s git %{buildroot}%{bashcompdir}/gitk
+
+# Install tcsh completion
+mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion
+install -pm 644 contrib/completion/git-completion.tcsh \
+ %{buildroot}%{_datadir}/git-core/contrib/completion/
+
+# Move contrib/hooks out of %%docdir
+mkdir -p %{buildroot}%{_datadir}/git-core/contrib
+mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib
+pushd contrib > /dev/null
+ln -s ../../../git-core/contrib/hooks
+popd > /dev/null
+
+# Install git-prompt.sh
+mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion
+install -pm 644 contrib/completion/git-prompt.sh \
+ %{buildroot}%{_datadir}/git-core/contrib/completion/
+
+# install git-gui .desktop file
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE12}
+
+# symlink git-citool to git-gui if they are identical
+pushd %{buildroot}%{gitexecdir} >/dev/null
+if cmp -s git-gui git-citool 2>/dev/null; then
+ ln -svf git-gui git-citool
+fi
+popd >/dev/null
+
+# find translations
+%find_lang %{name} %{name}.lang
+cat %{name}.lang >> bin-man-doc-files
+
+# quiet some rpmlint complaints
+chmod -R g-w %{buildroot}
+chmod a-x %{buildroot}%{gitexecdir}/git-mergetool--lib
+# These files probably are not needed
+find . -regex '.*/\.\(git\(attributes\|ignore\)\|perlcriticrc\)' -delete
+chmod a-x Documentation/technical/api-index.sh
+find contrib -type f -print0 | xargs -r0 chmod -x
+
+# Split core files
+not_core_re="git-(add--interactive|contacts|credential-netrc|filter-branch|instaweb|request-pull|send-mail)|gitweb"
+grep -vE "$not_core_re|%{_mandir}" bin-man-doc-files > bin-files-core
+touch man-doc-files-core
+%if %{with docs}
+grep -vE "$not_core_re" bin-man-doc-files | grep "%{_mandir}" > man-doc-files-core
+%endif
+# endif with docs
+grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files
+
+##### DOC
+# place doc files into %%{_pkgdocdir} and split them into expected packages
+# contrib
+not_core_doc_re="(git-(cvs|gui|citool|daemon|instaweb|subtree))|p4|svn|email|gitk|gitweb"
+mkdir -p %{buildroot}%{_pkgdocdir}/
+cp -pr CODE_OF_CONDUCT.md README.md Documentation/*.txt Documentation/RelNotes contrib %{buildroot}%{_pkgdocdir}/
+# Remove contrib/ files/dirs which have nothing useful for documentation
+rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential}/
+cp -p gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb
+cp -p gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb
+
+%if %{with docs}
+cp -pr Documentation/*.html Documentation/docbook-xsl.css %{buildroot}%{_pkgdocdir}/
+cp -pr Documentation/{howto,technical} %{buildroot}%{_pkgdocdir}/
+find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \
+ |grep -o "%{_pkgdocdir}.*$" >> man-doc-files-core
+%endif
+# endif with docs
+
+{
+ find %{buildroot}%{_pkgdocdir} -type f -maxdepth 1 \
+ | grep -o "%{_pkgdocdir}.*$" \
+ | grep -vE "$not_core_doc_re"
+ find %{buildroot}%{_pkgdocdir}/{contrib,RelNotes} -type f \
+ | grep -o "%{_pkgdocdir}.*$"
+ find %{buildroot}%{_pkgdocdir} -type d | grep -o "%{_pkgdocdir}.*$" \
+ | sed "s/^/\%dir /"
+} >> man-doc-files-core
+##### #DOC
+
+%check
+%if %{without tests}
+echo "*** Skipping tests"
+exit 0
+%endif
+# endif without tests
+
+%if %{with docs} && %{with linkcheck}
+# Test links in HTML documentation
+find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker
+%endif
+# endif with docs && with linkcheck
+
+# t5559-http-fetch-smart-http2 runs t5551-http-fetch-smart with
+# HTTP_PROTO=HTTP/2. Unfortunately, it fails quite regularly.
+# https://lore.kernel.org/git/Y4fUntdlc1mqwad5@pobox.com/
+# Tests to skip on all releases and architectures
+GIT_SKIP_TESTS="t5559"
+
+%ifarch aarch64 %{arm} %{power64}
+# Skip tests which fail on aarch64, arm, and ppc
+#
+# The following 2 tests use run_with_limited_cmdline, which calls ulimit -s 128
+# to limit the maximum stack size.
+# t5541.35 'push 2000 tags over http'
+# t5551.25 'clone the 2,000 tag repo to check OS command line overflow'
+GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.37 t5551.25"
+%endif
+# endif aarch64 %%{arm} %%{power64}
+
+%if 0%{?rhel} == 8 && "%{_arch}" == "s390x"
+# Skip tests which fail on s390x on rhel-8
+#
+# The following tests fail on s390x & el8. The cause should be investigated.
+# However, it's a lower priority since the same tests work consistently on
+# s390x with Fedora and RHEL-9. The failures seem to originate in t5300.
+#
+# t5300.10 'unpack without delta'
+# t5300.12 'unpack with REF_DELTA'
+# t5300.13 'unpack with REF_DELTA'
+# t5300.14 'unpack with OFS_DELTA'
+# t5300.18 'compare delta flavors'
+# t5300.20 'use packed deltified (REF_DELTA) objects'
+# t5300.23 'verify pack'
+# t5300.24 'verify pack -v'
+# t5300.25 'verify-pack catches mismatched .idx and .pack files'
+# t5300.29 'verify-pack catches a corrupted sum of the index file itself'
+# t5300.30 'build pack index for an existing pack'
+# t5300.45 'make sure index-pack detects the SHA1 collision'
+# t5300.46 'make sure index-pack detects the SHA1 collision (large blobs)'
+# t5303.5 'create corruption in data of first object'
+# t5303.7 '... and loose copy of second object allows for partial recovery'
+# t5303.11 'create corruption in data of first delta'
+# t6300.35 'basic atom: head objectsize:disk'
+# t6300.91 'basic atom: tag objectsize:disk'
+# t6300.92 'basic atom: tag *objectsize:disk'
+GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[56] t5303.[57] t5303.11 t6300.35 t6300.9[12]"
+%endif
+# endif rhel == 8 && arch == s390x
+
+export GIT_SKIP_TESTS
+
+# Set LANG so various UTF-8 tests are run
+export LANG=en_US.UTF-8
+
+# Explicitly enable tests which may be skipped opportunistically
+# Check for variables set via test_bool_env in the test suite:
+# git grep 'test_bool_env GIT_' -- t/{lib-,t[0-9]}*.sh |
+# sed -r 's/.* (GIT_[^ ]+) .*/\1/g' | sort -u
+export GIT_TEST_GIT_DAEMON=true
+export GIT_TEST_HTTPD=true
+export GIT_TEST_SVNSERVE=true
+export GIT_TEST_SVN_HTTPD=true
+
+# Create tmpdir for test output and update GIT_TEST_OPTS
+# Also update GIT-BUILD-OPTIONS to keep make from any needless rebuilding
+testdir=$(mktemp -d -p /tmp git-t.XXXX)
+sed -i "s@^GIT_TEST_OPTS = .*@& --root=$testdir@" config.mak
+touch -r GIT-BUILD-OPTIONS ts
+sed -i "s@\(GIT_TEST_OPTS='.*\)'@\1 --root=$testdir'@" GIT-BUILD-OPTIONS
+touch -r ts GIT-BUILD-OPTIONS
+
+# Run the tests
+%__make test || ./print-failed-test-output
+
+# Run contrib/credential/netrc tests
+mkdir -p contrib/credential
+mv netrc contrib/credential/
+%make_build -C contrib/credential/netrc/ test || \
+%make_build -C contrib/credential/netrc/ testverbose
+
+# Clean up test dir
+rmdir --ignore-fail-on-non-empty "$testdir"
+
+%if %{use_systemd}
+%post daemon
+%systemd_post git.socket
+
+%preun daemon
+%systemd_preun git.socket
+
+%postun daemon
+%systemd_postun_with_restart git.socket
+%endif
+# endif use_systemd
+
+%files -f bin-man-doc-git-files
+%if %{with emacs} && %{emacs_filesystem}
+%{elispdir}
+%endif
+# endif with emacs && emacs_filesystem
+%{_datadir}/git-core/contrib/diff-highlight
+%{_datadir}/git-core/contrib/hooks/update-paranoid
+%{_datadir}/git-core/contrib/hooks/setgitperms.perl
+%{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample
+%{_datadir}/git-core/templates/hooks/pre-rebase.sample
+%{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample
+
+%files all
+# No files for you!
+
+%files core -f bin-files-core
+#NOTE: this is only use of the %%doc macro in this spec file and should not
+# be used elsewhere
+%{!?_licensedir:%global license %doc}
+%license COPYING
+# exclude is best way here because of troubles with symlinks inside git-core/
+%exclude %{_datadir}/git-core/contrib/diff-highlight
+%exclude %{_datadir}/git-core/contrib/hooks/update-paranoid
+%exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl
+%exclude %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample
+%exclude %{_datadir}/git-core/templates/hooks/pre-rebase.sample
+%exclude %{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample
+%{bashcomproot}
+%{_datadir}/git-core/
+
+%files core-doc -f man-doc-files-core
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# .py files are only bytecompiled on EL <= 7
+%exclude %{_pkgdocdir}/contrib/*/*.py[co]
+%endif
+# endif rhel <= 7
+%{_pkgdocdir}/contrib/hooks
+
+%if %{with libsecret}
+%files credential-libsecret
+%defattr(-,root,root)
+%{gitexecdir}/git-credential-libsecret
+%endif
+# endif with libsecret
+
+%if %{with cvs}
+%files cvs
+%{_pkgdocdir}/*git-cvs*.txt
+%{_bindir}/git-cvsserver
+%{gitexecdir}/*cvs*
+%{?with_docs:%{_mandir}/man1/*cvs*.1*}
+%{?with_docs:%{_pkgdocdir}/*git-cvs*.html}
+%endif
+# endif with cvs
+
+%files daemon
+%{_pkgdocdir}/git-daemon*.txt
+%if %{use_systemd}
+%{_unitdir}/git.socket
+%{_unitdir}/git@.service
+%else
+%config(noreplace)%{_sysconfdir}/xinetd.d/git
+%endif
+# endif use_systemd
+%{gitexecdir}/git-daemon
+%{_localstatedir}/lib/git
+%{?with_docs:%{_mandir}/man1/git-daemon*.1*}
+%{?with_docs:%{_pkgdocdir}/git-daemon*.html}
+
+%if %{with emacs} && ! %{emacs_filesystem}
+%files -n emacs-git
+%{_pkgdocdir}/contrib/emacs/README
+%{elispdir}
+%endif
+# endif with emacs && ! emacs_filesystem
+
+%files email
+%{_pkgdocdir}/*email*.txt
+%{gitexecdir}/*email*
+%{?with_docs:%{_mandir}/man1/*email*.1*}
+%{?with_docs:%{_pkgdocdir}/*email*.html}
+
+%files -n gitk
+%{_pkgdocdir}/*gitk*.txt
+%{_bindir}/*gitk*
+%{_datadir}/gitk
+%{?with_docs:%{_mandir}/man1/*gitk*.1*}
+%{?with_docs:%{_pkgdocdir}/*gitk*.html}
+
+%files -n gitweb
+%{_pkgdocdir}/*.gitweb
+%{_pkgdocdir}/gitweb*.txt
+%{?with_docs:%{_mandir}/man1/gitweb.1*}
+%{?with_docs:%{_mandir}/man5/gitweb.conf.5*}
+%{?with_docs:%{_pkgdocdir}/gitweb*.html}
+%config(noreplace)%{_sysconfdir}/gitweb.conf
+%config(noreplace)%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf}
+%{_localstatedir}/www/git/
+
+%files gui
+%{gitexecdir}/git-gui*
+%{gitexecdir}/git-citool
+%{_datadir}/applications/*git-gui.desktop
+%{_datadir}/git-gui/
+%{_pkgdocdir}/git-gui.txt
+%{_pkgdocdir}/git-citool.txt
+%{?with_docs:%{_mandir}/man1/git-gui.1*}
+%{?with_docs:%{_pkgdocdir}/git-gui.html}
+%{?with_docs:%{_mandir}/man1/git-citool.1*}
+%{?with_docs:%{_pkgdocdir}/git-citool.html}
+
+%files instaweb
+%defattr(-,root,root)
+%{gitexecdir}/git-instaweb
+%{_pkgdocdir}/git-instaweb.txt
+%{?with_docs:%{_mandir}/man1/git-instaweb.1*}
+%{?with_docs:%{_pkgdocdir}/git-instaweb.html}
+
+%if %{with p4}
+%files p4
+%{gitexecdir}/*p4*
+%{gitexecdir}/mergetools/p4merge
+%{_pkgdocdir}/*p4*.txt
+%{?with_docs:%{_mandir}/man1/*p4*.1*}
+%{?with_docs:%{_pkgdocdir}/*p4*.html}
+%endif
+# endif with p4
+
+%files -n perl-Git -f perl-git-files
+%{?with_docs:%{_mandir}/man3/Git.3pm*}
+
+%files -n perl-Git-SVN -f perl-git-svn-files
+
+%files subtree
+%{gitexecdir}/git-subtree
+%{_pkgdocdir}/git-subtree.txt
+%{?with_docs:%{_mandir}/man1/git-subtree.1*}
+%{?with_docs:%{_pkgdocdir}/git-subtree.html}
+
+%files svn
+%{gitexecdir}/git-svn
+%{_pkgdocdir}/git-svn.txt
+%{?with_docs:%{_mandir}/man1/git-svn.1*}
+%{?with_docs:%{_pkgdocdir}/git-svn.html}
+
+%changelog
+* Thu Jun 27 2024 Ondřej Pohořelský <opohorel@redhat.com> - 2.43.5-1
+- Update to 2.43.5
+- Resolves: RHEL-36353, RHEL-36357, RHEL-36371, RHEL-36383, RHEL-36387
+
+* Wed Dec 06 2023 Ondřej Pohořelský <opohorel@redhat.com> - 2.43.0-1
+- Update to 2.43.0
+- Resolves: RHEL-17100
+
+* Wed Apr 26 2023 Ondřej Pohořelský <opohorel@redhat.com> - 2.39.3-1
+- Update to 2.39.3
+- Resolves: #2188363, #2188353, #2189872, #2189873
+
+* Thu Jan 19 2023 Ondřej Pohořelský <opohorel@redhat.com> - 2.39.1-1
+- Update to 2.39.1
+- Resolves: #2162070
+
+* Wed Dec 14 2022 Ondřej Pohořelský <opohorel@redhat.com> - 2.39.0-2
+- Remove perl(Email::Valid) require from git-email
+- Related: #2139379
+
+* Tue Dec 13 2022 Ondřej Pohořelský <opohorel@redhat.com> - 2.39.0-1
+- Update to 2.39.0
+- Related: #2139379
+
+* Wed Dec 07 2022 Ondřej Pohořelský <opohorel@redhat.com> - 2.38.1-1
+- Update to 2.38.1
+- Resolves: #2139379
+
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.31.1-2.2
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+ Related: rhbz#1991688
+
+* Tue Jun 15 2021 Mohan Boddu <mboddu@redhat.com> - 2.31.1-2.1
+- Rebuilt for RHEL 9 BETA for openssl 3.0
+ Related: rhbz#1971065
+
+* Mon May 03 2021 Ondřej Pohořelský <opohorel@redhat.com> - 2.31.1-2
+- Use HMAC from libcrypto instead of git's implementation
+- Resolves: #1956345
+
+* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 2.31.1-1.1
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Sat Mar 27 2021 Todd Zullinger <tmz@pobox.com> - 2.31.1-1
+- update to 2.31.1
+
+* Fri Mar 19 2021 Todd Zullinger <tmz@pobox.com> - 2.31.0-2
+- fix git bisect with annotaged tags
+
+* Mon Mar 15 2021 Todd Zullinger <tmz@pobox.com> - 2.31.0-1
+- update to 2.31.0
+
+* Tue Mar 09 2021 Todd Zullinger <tmz@pobox.com> - 2.30.2-1
+- update to 2.30.2 (CVE-2021-21300)
+
+* Tue Mar 02 2021 Todd Zullinger <tmz@pobox.com> - 2.30.1-3
+- use %%{gpgverify} macro to verify tarball signature
+
+* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.30.1-2.1
+- Rebuilt for updated systemd-rpm-macros
+ See https://pagure.io/fesco/issue/2583.
+
+* Thu Feb 18 2021 Ondřej Pohořelský <opohorel@redhat.com - 2.30.1-2
+- include git-daemon in git-all meta-package
+
+* Thu Feb 18 2021 Todd Zullinger <tmz@pobox.com>
+- re-enable t7812-grep-icase-non-ascii on s390x
+
+* Tue Feb 09 2021 Todd Zullinger <tmz@pobox.com> - 2.30.1-1
+- update to 2.30.1
+
+* Mon Feb 08 2021 Ondřej Pohořelský <opohorel@redhat.com> - 2.30.0-2
+- add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.30.0-1.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Dec 28 2020 Todd Zullinger <tmz@pobox.com> - 2.30.0-1
+- update to 2.30.0
+
+* Wed Dec 23 2020 Todd Zullinger <tmz@pobox.com> - 2.30.0-0.2.rc2
+- update to 2.30.0-rc2
+
+* Sat Dec 19 2020 Todd Zullinger <tmz@pobox.com> - 2.30.0-0.1.rc1
+- update to 2.30.0-rc1
+
+* Mon Dec 14 2020 Todd Zullinger <tmz@pobox.com> - 2.30.0-0.0.rc0
+- update to 2.30.0-rc0
+
+* Sun Dec 06 2020 Todd Zullinger <tmz@pobox.com> - 2.29.2-4
+- move git-difftool to git-core, it does not require perl
+
+* Wed Nov 25 2020 Todd Zullinger <tmz@pobox.com> - 2.29.2-3
+- apply upstream patch to resolve git fast-import memory leak (#1900335)
+- add epel-rpm-macros BuildRequires on EL-7 (#1872865)
+
+* Sat Nov 07 2020 Todd Zullinger <tmz@pobox.com> - 2.29.2-2
+- apply upstream patch to resolve git log segfault (#1791810)
+
+* Thu Oct 29 2020 Todd Zullinger <tmz@pobox.com> - 2.29.2-1
+- update to 2.29.2
+
+* Sat Oct 24 2020 Todd Zullinger <tmz@pobox.com> - 2.29.1-1
+- update to 2.29.1
+- fix bugs in am/rebase handling of committer ident/date
+
+* Mon Oct 19 2020 Todd Zullinger <tmz@pobox.com> - 2.29.0-1
+- update to 2.29.0
+
+* Thu Oct 15 2020 Todd Zullinger <tmz@pobox.com> - 2.29.0-0.2.rc2
+- update to 2.29.0-rc2
+
+* Fri Oct 09 2020 Todd Zullinger <tmz@pobox.com> - 2.29.0-0.1.rc1
+- update to 2.29.0-rc1
+- drop emacs-git stub for fedora >= 34 (#1882360)
+- adjust python hashbang in contrib/hg-to-git, it supports python3
+
+* Mon Oct 05 2020 Todd Zullinger <tmz@pobox.com> - 2.29.0-0.0.rc0
+- update to 2.29.0-rc0
+
+* Mon Jul 27 2020 Todd Zullinger <tmz@pobox.com> - 2.28.0-1
+- update to 2.28.0
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.28.0-0.3.rc2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Wed Jul 22 2020 Todd Zullinger <tmz@pobox.com> - 2.28.0-0.2.rc2
+- update to 2.28.0-rc2
+
+* Sat Jul 18 2020 Todd Zullinger <tmz@pobox.com> - 2.28.0-0.1.rc1
+- update to 2.28.0-rc1
+
+* Thu Jul 09 2020 Todd Zullinger <tmz@pobox.com> - 2.28.0-0.0.rc0
+- update to 2.28.0-rc0
+
+* Fri Jun 26 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2.27.0-1.2
+- Perl 5.32 re-rebuild of bootstrapped packages
+
+* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 2.27.0-1.1
+- Perl 5.32 rebuild
+
+* Mon Jun 01 2020 Todd Zullinger <tmz@pobox.com> - 2.27.0-1
+- update to 2.27.0
+
+* Tue May 26 2020 Todd Zullinger <tmz@pobox.com> - 2.27.0-0.2.rc2
+- update to 2.27.0-rc2
+
+* Thu May 21 2020 Todd Zullinger <tmz@pobox.com> - 2.27.0-0.1.rc1
+- update to 2.27.0-rc1
+
+* Thu May 21 2020 Merlin Mathesius <mmathesi@redhat.com> - 2.26.2-2
+- Minor conditional fixes for ELN
+
+* Mon Apr 20 2020 Todd Zullinger <tmz@pobox.com> - 2.26.2-1
+- update to 2.26.2 (CVE-2020-11008)
+
+* Tue Apr 14 2020 Todd Zullinger <tmz@pobox.com> - 2.26.1-1
+- update to 2.26.1 (CVE-2020-5260)
+
+* Sat Apr 04 2020 Todd Zullinger <tmz@pobox.com> - 2.26.0-2
+- fix issue with fast-forward rebases when rebase.abbreviateCommands is set
+- fix/quiet rpmlint issues from libsecret split
+
+* Thu Apr 02 2020 Björn Esser <besser82@fedoraproject.org> - 2.26.0-1.1
+- Fix string quoting for rpm >= 4.16
+
+* Sun Mar 22 2020 Todd Zullinger <tmz@pobox.com> - 2.26.0-1
+- update to 2.26.0
+
+* Mon Mar 16 2020 Todd Zullinger <tmz@pobox.com> - 2.26.0-0.3.rc2
+- update to 2.26.0-rc2
+
+* Thu Mar 12 2020 Todd Zullinger <tmz@pobox.com> - 2.26.0-0.2.rc1
+- remove s390x gcc10 workaround (#1799408)
+
+* Tue Mar 10 2020 Todd Zullinger <tmz@pobox.com> - 2.26.0-0.1.rc1
+- update to 2.26.0-rc1
+- adjust make test options
+- add missing build deps for tests
+
+* Fri Mar 06 2020 Todd Zullinger <tmz@pobox.com> - 2.26.0-0.0.rc0
+- update to 2.26.0-rc0
+
+* Wed Feb 26 2020 Todd Zullinger <tmz@pobox.com> - 2.25.1-4
+- use Asciidoctor to build documentation when possible
+
+* Sat Feb 22 2020 Todd Zullinger <tmz@pobox.com> - 2.25.1-3
+- work around issue on s390x with gcc10 (#1799408)
+
+* Wed Feb 19 2020 Todd Zullinger <tmz@pobox.com> - 2.25.1-2
+- split libsecret credential helper into a subpackage (#1804741)
+- consolidate macros for Fedora/EPEL
+- remove unneeded gnome-keyring obsoletes
+
+* Mon Feb 17 2020 Todd Zullinger <tmz@pobox.com> - 2.25.1-1
+- update to 2.25.1
+
+* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.25.0-2.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Tue Jan 14 2020 Tom Stellard <tstellar@redhat.com> - 2.25.0-2
+- Use make_build macro when running tests
+
+* Tue Jan 14 2020 Todd Zullinger <tmz@pobox.com> - 2.25.0-1
+- update to 2.25.0
+
+* Thu Jan 09 2020 Todd Zullinger <tmz@pobox.com> - 2.25.0-0.2.rc2
+- update to 2.25.0-rc2
+
+* Fri Jan 03 2020 Todd Zullinger <tmz@pobox.com> - 2.25.0-0.1.rc1
+- update to 2.25.0-rc1
+- only add highlight test BR for ppc64le/x86_64 on EL7+
+
+* Wed Dec 25 2019 Todd Zullinger <tmz@pobox.com> - 2.25.0-0.0.rc0
+- update to 2.25.0-rc0
+
+* Thu Dec 19 2019 Todd Zullinger <tmz@pobox.com> - 2.24.1-2
+- fix git-daemon systemd scriptlets (#1785088)
+
+* Tue Dec 10 2019 Todd Zullinger <tmz@pobox.com> - 2.24.1-1
+- update to 2.24.1 (CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351,
+ CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387)
+
+* Wed Dec 04 2019 Todd Zullinger <tmz@pobox.com> - 2.24.0-2
+- restore jgit BR for use in tests
+
+* Mon Nov 04 2019 Todd Zullinger <tmz@pobox.com> - 2.24.0-1
+- update to 2.24.0
+
+* Thu Oct 31 2019 Todd Zullinger <tmz@pobox.com> - 2.24.0-0.2.rc2
+- update to 2.24.0-rc2
+
+* Sun Oct 27 2019 Todd Zullinger <tmz@pobox.com> - 2.24.0-0.1.rc1.1
+- disable linkchecker on all EL releases
+
+* Thu Oct 24 2019 Todd Zullinger <tmz@pobox.com> - 2.24.0-0.1.rc1
+- update to 2.24.0-rc1
+- skip failing test in t7812-grep-icase-non-ascii on s390x
+- gitk: add Requires: git-gui (#1765113)
+
+* Sat Oct 19 2019 Todd Zullinger <tmz@pobox.com> - 2.24.0-0.0.rc0
+- update to 2.24.0-rc0
+- fix t0500-progress-display on big-endian arches
+
+* Fri Aug 16 2019 Todd Zullinger <tmz@pobox.com> - 2.23.0-1
+- Update to 2.23.0
+
+* Sun Aug 11 2019 Todd Zullinger <tmz@pobox.com> - 2.23.0-0.2.rc2
+- Update to 2.23.0-rc2
+
+* Fri Aug 02 2019 Todd Zullinger <tmz@pobox.com> - 2.23.0-0.1.rc1
+- Update to 2.23.0-rc1
+
+* Mon Jul 29 2019 Todd Zullinger <tmz@pobox.com> - 2.23.0-0.0.rc0
+- Update to 2.23.0-rc0
+
+* Thu Jul 25 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-2
+- completion: do not cache if --git-completion-helper fails
+- avoid trailing comments in spec file
+- drop jgit on Fedora > 30
+
+* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.22.0-1.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Jun 07 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-1
+- Update to 2.22.0
+
+* Tue Jun 04 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.22.0-0.7.rc3
+- Perl 5.30 re-rebuild updated packages
+
+* Mon Jun 03 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-0.6.rc3
+- Update to 2.22.0-rc3
+
+* Sun Jun 02 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.22.0-0.5.rc2
+- Perl 5.30 re-rebuild of bootstrapped packages
+
+* Sat Jun 01 2019 Jitka Plesnikova <jplesnik@redhat.com> - 2.22.0-0.4.rc2
+- Perl 5.30 rebuild
+
+* Thu May 30 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-0.3.rc2
+- Update to 2.22.0-rc1
+
+* Fri May 24 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-0.2.rc1
+- Apply upstream fixes for diff-parseopt issues on s390x
+
+* Sun May 19 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-0.1.rc1
+- Update to 2.22.0-rc1
+
+* Mon May 13 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-0.0.rc0
+- Update to 2.22.0-rc0
+- Ensure a consistent format for test output
+- Improve JGIT test prereq (jgit on Fedora >= 30 is broken)
+- Add perl(JSON::PP) BuildRequires for trace2 tests
+
+* Sun Feb 24 2019 Todd Zullinger <tmz@pobox.com> - 2.21.0-1
+- Update to 2.21.0
+- Move gitweb manpages to gitweb package
+- Link git-citool to git-gui if they are identical
+
+* Tue Feb 19 2019 Todd Zullinger <tmz@pobox.com> - 2.21.0-0.2.rc2
+- Update to 2.21.0.rc2
+
+* Fri Feb 15 2019 Todd Zullinger <tmz@pobox.com>
+- Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility
+
+* Wed Feb 13 2019 Todd Zullinger <tmz@pobox.com> - 2.21.0-0.1.rc1
+- Update to 2.21.0.rc1
+
+* Thu Feb 07 2019 Todd Zullinger <tmz@pobox.com> - 2.21.0-0.0.rc0
+- Update to 2.21.0.rc0
+- Remove %%changelog entries prior to 2017
+
+* Thu Jan 31 2019 Todd Zullinger <tmz@pobox.com> - 2.20.1-2
+- Remove extraneous pcre BuildRequires
+- Add additional BuildRequires for i18n locales used in tests
+- Replace gitweb home-link with inline sed
+- Add gnupg2-smime and perl JSON BuildRequires for tests
+- Work around gpg-agent issues in the test suite
+- Drop gnupg BuildRequires on fedora >= 30
+- Fix formatting of contrib/{contacts,subtree} docs
+- Use %%{build_cflags} and %%{build_ldflags}
+- Drop unneeded TEST_SHELL_PATH make variable
+
+* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.20.1-1.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Sat Dec 15 2018 Todd Zullinger <tmz@pobox.com> - 2.20.1-1
+- Update to 2.20.1
+
+* Sun Dec 09 2018 Todd Zullinger <tmz@pobox.com> - 2.20.0-1
+- Update to 2.20.0
+
+* Sat Dec 01 2018 Todd Zullinger <tmz@pobox.com> - 2.20.0-0.2.rc2
+- Update to 2.20.0.rc2
+
+* Wed Nov 21 2018 Todd Zullinger <tmz@pobox.com> - 2.20.0-0.1.rc1
+- Update to 2.20.0.rc1
+
+* Wed Nov 21 2018 Todd Zullinger <tmz@pobox.com> - 2.19.2-1
+- Update to 2.19.2
+
+* Tue Oct 23 2018 Todd Zullinger <tmz@pobox.com>
+- Skip test BuildRequires when --without tests is used
+- Simplify gpg verification of Source0
+- Use %%{without ...} macro consistently
+- Add comments to %%endif statements
+- Add glibc-langpack-en BuildRequires for en_US.UTF-8 locale
+
+* Mon Oct 22 2018 Pavel Cahyna <pcahyna@redhat.com> - 2.19.1-2
+- Update condition for the t5540-http-push-webdav test for future RHEL
+
+* Fri Oct 05 2018 Todd Zullinger <tmz@pobox.com> - 2.19.1-1
+- Update to 2.19.1 (CVE-2018-17456)
+
+* Mon Sep 10 2018 Todd Zullinger <tmz@pobox.com> - 2.19.0-1
+- Update to 2.19.0
+
+* Fri Sep 07 2018 Todd Zullinger <tmz@pobox.com> - 2.19.0-0.5.rc2
+- Fix smart-http test due to changes in cookie sort order in curl-7.61.1
+- Add --without tests option to skip tests
+
+* Thu Sep 06 2018 Sebastian Kisela <skisela@redhat.com> - 2.19.0-0.4.rc2
+- Move instaweb to a separate subpackage
+- Fix builds without docs and without cvs and/or p4
+
+* Tue Sep 04 2018 Todd Zullinger <tmz@pobox.com> - 2.19.0-0.3.rc2
+- Update to 2.19.0.rc2
+- Drop unnecessary Conflicts: when git-p4 is disabled
+- Obsolete git-cvs if it's disabled
+- Remove contrib/fast-import/import-zips.py, contrib/hg-to-git, and
+ contrib/svn-fe which all require python2
+- Drop git-gnome-keyring obsolete for fedora > 30
+
+* Tue Sep 04 2018 Nils Philippsen <nils@redhat.com> - 2.19.0-0.2.rc1
+- obsolete git-p4 if it's disabled
+
+* Tue Aug 28 2018 Todd Zullinger <tmz@pobox.com> - 2.19.0-0.1.rc1
+- Update to 2.19.0.rc1
+
+* Mon Aug 20 2018 Todd Zullinger <tmz@pobox.com> - 2.19.0-0.0.rc0
+- Update to 2.19.0.rc0
+
+* Mon Aug 20 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-2.5
+- Remove git-remote-testsvn, make git-svn noarch
+- Restore fixed contrib/credential/netrc tests
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.18.0-2.4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Tue Jul 03 2018 Petr Pisar <ppisar@redhat.com> - 2.18.0-2.3
+- Perl 5.28 rebuild
+
+* Sun Jul 01 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.18.0-2.2
+- Perl 5.28 re-rebuild of bootstrapped packages
+
+* Fri Jun 29 2018 Jitka Plesnikova <jplesnik@redhat.com> - 2.18.0-2.1
+- Perl 5.28 rebuild
+
+* Mon Jun 25 2018 Pavel Cahyna <pcahyna@redhat.com> - 2.18.0-2
+- Fix build --without cvs
+
+* Wed Jun 20 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-1
+- Update to 2.18.0
+
+* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.18.0-0.3.rc2
+- Rebuilt for Python 3.7
+
+* Wed Jun 13 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-0.2.rc2
+- Update to 2.18.0-rc2
+- Apply upstream zlib buffer handling patch (#1582555)
+
+* Wed Jun 06 2018 Todd Zullinger <tmz@pobox.com>
+- Include git-contacts, SubmittingPatches suggests it to users
+- Build git-subtree docs in %%build
+
+* Mon Jun 04 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-0.1.rc1
+- Update to 2.18.0-rc1
+- Drop flaky & out-of-place netrc credential helper tests
+
+* Fri Jun 01 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-0.0.rc0.1
+- add -p: fix counting empty context lines in edited patches
+
+* Wed May 30 2018 Todd Zullinger <tmz@pobox.com> - 2.18.0-0.0.rc0
+- Update to 2.18.0-rc0
+- Use new INSTALL_SYMLINKS setting
+
+* Wed May 30 2018 Todd Zullinger <tmz@pobox.com> - 2.17.1-3
+- Use %%apply_patch for aarch64 zlib patch, return to %%autosetup
+- Disable jgit tests on s390x, they're unreliable
+- Use %%make_build and %%make_install
+
+* Tue May 29 2018 Todd Zullinger <tmz@pobox.com> - 2.17.1-2
+- packfile: Correct zlib buffer handling (#1582555)
+
+* Tue May 29 2018 Todd Zullinger <tmz@pobox.com> - 2.17.1-1
+- Update to 2.17.1 (CVE-2018-11233, CVE-2018-11235)
+
+* Thu May 24 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-4
+- Fix segfault in rev-parse with invalid input (#1581678)
+- Move TEST_SHELL_PATH setting to config.mak
+
+* Mon Apr 16 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-3
+- Move linkcheck macro to existing fedora/rhel > 7 block
+- Re-enable t5000-tar-tree.sh test on f28
+
+* Fri Apr 13 2018 Pavel Cahyna <pcahyna@redhat.com>
+- Use BuildRequires: perl-interpreter per the packaging guidelines
+- Update conditions for future RHEL
+
+* Tue Apr 10 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-2
+- Require perl-generators on EL > 7
+
+* Mon Apr 09 2018 Todd Zullinger <tmz@pobox.com>
+- daemon: use --log-destination=stderr with systemd
+- daemon: fix condition for redirecting stderr
+- git-svn: avoid uninitialized value warning
+
+* Sun Apr 08 2018 Todd Zullinger <tmz@pobox.com>
+- Clean up redundant and unneeded Requires
+
+* Sat Apr 07 2018 Todd Zullinger <tmz@pobox.com>
+- Remove Git::LoadCPAN to ensure we use only system perl modules
+
+* Mon Apr 02 2018 Todd Zullinger <tmz@pobox.com>
+- Allow git-p4 subpackage to be toggled via --with/--without
+- Use %%bcond_(with|without) to enable/disable python3
+- Add support for disabling python2
+
+* Mon Apr 02 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-1
+- Update to 2.17.0
+
+* Wed Mar 28 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-0.2.rc2
+- Update to 2.17.0-rc2
+
+* Tue Mar 27 2018 Todd Zullinger <tmz@pobox.com>
+- Allow cvs subpackage to be toggled via --with/--without
+
+* Tue Mar 27 2018 Joe Orton <jorton@redhat.com>
+- Disable CVS support on EL > 7
+
+* Tue Mar 27 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-0.1.rc1.2
+- Add missing perl(Mail::Address) requirement (#1561086)
+
+* Thu Mar 22 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-0.1.rc1.1
+- Drop .py extension from contrib/hooks/multimail/git_multimail.py
+- Remove unnecessary "chmod +x contrib/hooks/*"
+
+* Wed Mar 21 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-0.1.rc1
+- Update to 2.17.0-rc1
+
+* Fri Mar 16 2018 Todd Zullinger <tmz@pobox.com>
+- Add findutils BuildRequires, improve 'find | xargs' calls
+
+* Thu Mar 15 2018 Todd Zullinger <tmz@pobox.com> - 2.17.0-0.0.rc0
+- Update to 2.17.0-rc0
+- Adjust for simplified perl install
+- Require git-core rather than git for git-daemon
+- Rename gitweb httpd config file
+- Install contrib/diff-highlight (#1550251)
+
+* Thu Mar 15 2018 Todd Zullinger <tmz@pobox.com>
+- Use symlinks instead of hardlinks for installed binaries
+
+* Fri Feb 23 2018 Todd Zullinger <tmz@pobox.com>
+- Improve hardening flags for EL-6 & EL-7
+
+* Fri Feb 16 2018 Todd Zullinger <tmz@pobox.com> - 2.16.2-1
+- Update to 2.16.2
+- Add gawk, gcc, make, and sed BuildRequires
+
+* Wed Feb 07 2018 Todd Zullinger <tmz@pobox.com> - 2.16.1-3
+- Order %%files and %%packages sections by name
+- Remove obsolete %%defattr
+- Don't package contrib/svn-fe in %%doc
+- Split git-subtree into a separate package
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.16.1-2.1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Mon Jan 29 2018 Todd Zullinger <tmz@pobox.com> - 2.16.1-2
+- git-svn: avoid segfaults in 'git svn branch', re-enable t9128, t9141, and
+ t9167
+- Drop obsolete BuildRoot, Group, %%clean, and buildroot cleanup
+
+* Mon Jan 22 2018 Todd Zullinger <tmz@pobox.com> - 2.16.1-1
+- Update to 2.16.1
+- Avoid python dependency in git-core (#1536471)
+
+* Thu Jan 18 2018 Todd Zullinger <tmz@pobox.com> - 2.16.0-1
+- Update to 2.16.0
+- Use 'prove' as test harness, enable shell tracing
+- Disable t5000-tar-tree.sh on x86 in f28
+
+* Fri Jan 12 2018 Todd Zullinger <tmz@pobox.com>
+- Add %%{emacs_filesystem} to simplify emacs support
+- Use .in template for git@.service to ensure paths are substituted
+
+* Thu Jan 11 2018 Todd Zullinger <tmz@pobox.com>
+- Update BuildRequires for tests
+
+* Mon Jan 08 2018 Todd Zullinger <tmz@pobox.com>
+- Avoid excluding non-existent .py[co] files in %%doc
+- Remove obsolete gnome-keyring credential helper
+
+* Sun Jan 07 2018 Todd Zullinger <tmz@pobox.com>
+- Explicitly enable tests which may be skipped opportunistically
+
+* Sat Dec 30 2017 Todd Zullinger <tmz@pobox.com>
+- Fix perl requires filtering on EL-6
+
+* Thu Nov 30 2017 Todd Zullinger <tmz@pobox.com> - 2.15.1-3
+- Include verbose logs in build output for 'make test' failures
+- Use %%autosetup macro to unpack and patch source
+- Remove second make invocation for doc build/install
+- Fix builds using '--without docs'
+- Mark git-core-docs sub-package noarch
+- Avoid failures in svnserve tests when run in parallel
+- Run tests in parallel by default on Fedora
+- Skip 'git svn branch' tests which fail intermittently
+- Re-enable grep tests on s390x
+
+* Wed Nov 29 2017 Todd Zullinger <tmz@pobox.com> - 2.15.1-2
+- Fix debuginfo for gnome-keyring and libsecret credential helpers
+
+* Tue Nov 28 2017 Todd Zullinger <tmz@pobox.com> - 2.15.1-1
+- Update to 2.15.1
+
+* Tue Nov 21 2017 Todd Zullinger <tmz@pobox.com>
+- Add tcl/tk BuildRequires
+- Enable support for release candidate builds
+
+* Tue Nov 07 2017 Todd Zullinger <tmz@pobox.com> - 2.15.0-2
+- Fix git-clone memory exhaustion (CVE-2017-15298)
+ Resolves: #1510455, #1510457
+- Disable cross-directory hardlinks
+- Drop ancient obsoletes for git and git-arch
+- Update summary/description of numerous subpackages
+- Fix shebang in a few places to silence rpmlint complaints
+- Fix t9020-remote-svn failure when setting PYTHON_PATH
+- Rename %%gitcoredir to %%gitexecdir; upstream uses the latter
+- Move commands which no longer require perl into git-core
+- Move filter-branch out of core, it needs perl now
+- Improve test suite coverage
+
+* Mon Oct 30 2017 Todd Zullinger <tmz@pobox.com> - 2.15.0-1
+- Update to 2.15.0
+
+* Mon Oct 23 2017 Todd Zullinger <tmz@pobox.com> - 2.14.3-1
+- Update to 2.14.3
+
+* Tue Sep 26 2017 Todd Zullinger <tmz@pobox.com> - 2.14.2-2
+- Update to 2.14.2
+
+* Thu Aug 10 2017 Todd Zullinger <tmz@pobox.com> - 2.14.1-2
+- Rebuild for rpm-4.14 bug (#1480407)
+
+* Thu Aug 10 2017 Todd Zullinger <tmz@pobox.com> - 2.14.1-1
+- Update to 2.14.1 (resolves CVE-2017-1000117)
+
+* Tue Aug 08 2017 Iryna Shcherbina <ishcherb@redhat.com> - 2.14.0-2
+- Add a build-time dependency on python2-devel for p4
+ Resolves: #1479713
+- Skip all grep tests on s390x for now because it failes intermittently
+
+* Fri Aug 04 2017 Todd Zullinger <tmz@pobox.com> - 2.14.0-1
+- Update to 2.14.0
+- Use pcre2 library
+- git-p4: explicitly require python2
+
+* Tue Aug 01 2017 Todd Zullinger <tmz@pobox.com> - 2.13.4-1
+- Update to 2.13.4
+- Remove EL-5 and old Fedora conditionals
+
+* Sun Jul 30 2017 Florian Weimer <fweimer@redhat.com> - 2.13.3-3
+- Rebuild with binutils fix for ppc64le (#1475636)
+
+* Thu Jul 20 2017 Petr Stodulka <pstodulk@redhat.com> - 2.13.3-2
+- Move documentation files from all subpackages into the %%{_pkgdocdir}
+ directory, so links inside doc and man files are correct
+ Resolves: #1357438
+- Quiet a few rpmlint complaints regarding hidden files in contrib dir
+- Remove explicit libcurl requirement from git-core
+
+* Thu Jul 13 2017 Gwyn Ciesla <limburgher@gmail.com> - 2.13.3-1
+- Update to 2.13.3
+
+* Sun Jun 25 2017 Todd Zullinger <tmz@pobox.com> - 2.13.2-1
+- Update to 2.13.2
+- Skip grep tests which fail intermittently on s390x
+
+* Wed Jun 07 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.13.1-2
+- Perl 5.26 re-rebuild of bootstrapped packages
+
+* Mon Jun 05 2017 Todd Zullinger <tmz@pobox.com> - 2.13.1-1
+- Update to 2.13.1
+
+* Sun Jun 04 2017 Jitka Plesnikova <jplesnik@redhat.com> - 2.13.0-3
+- Perl 5.26 rebuild
+
+* Wed May 17 2017 Todd Zullinger <tmz@pobox.com> - 2.13.0-2
+- Use default, collision-detecting SHA1 implementation
+
+* Tue May 09 2017 Todd Zullinger <tmz@pobox.com> - 2.13.0-1
+- Update to 2.13.0 (resolves CVE-2017-8386)
+
+* Wed Mar 29 2017 Gwyn Ciesla <limburgher@gmail.com> - 2.12.2-1
+- Update to 2.12.2
+
+* Tue Mar 21 2017 Gwyn Ciesla <limburgher@gmail.com> - 2.12.1-1
+- Update to 2.12.1
+
+* Mon Feb 27 2017 Jon Ciesla <limburgher@gmail.com> - 2.12.0-1
+- Update to 2.12.0
+
+* Fri Feb 17 2017 Petr Stodulka <pstodulk@redhat.com> - 2.11.1-3
+- remove non-ASCII characters from description and title of packages
+- fix requiremets
+- fix spec to be compatible for other systems
+- remove deprecated credential-gnome-keyring
+
+* Fri Feb 17 2017 Todd Zullinger <tmz@pobox.com> - 2.11.1-3
+- Remove unnecessary rsync requirement from git-core
+- Move gnome-keyring credential helper from git-core to git
+- Enable libsecret credential helper
+- Run git test suite
+- Use %%{_mandir} in git/git-core file list filters
+- Fix version of emacs-git and emacs-git-el provides
+- Clean up contrib/{credential,subtree} to avoid cruft in git-core-doc
+- Fix a number of macro-in-comment warnings from rpmlint
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Fri Feb 03 2017 Jon Ciesla <limburgher@gmail.com> - 2.11.1-1
+- Update to 2.11.1
diff --git a/git.xinetd.in b/git.xinetd.in
new file mode 100644
index 0000000..d4ca95d
--- /dev/null
+++ b/git.xinetd.in
@@ -0,0 +1,14 @@
+# default: off
+# description: The git dæmon allows git repositories to be exported using \
+# the git:// protocol.
+
+service git
+{
+ disable = yes
+ socket_type = stream
+ wait = no
+ user = nobody
+ server = @GITEXECDIR@/git-daemon
+ server_args = --base-path=@BASE_PATH@ --export-all --user-path=public_git --syslog --inetd --verbose
+ log_on_failure += USERID
+}
diff --git a/git@.service.in b/git@.service.in
new file mode 100644
index 0000000..7abcfeb
--- /dev/null
+++ b/git@.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=Git Repositories Server Daemon
+Documentation=man:git-daemon(1)
+
+[Service]
+User=nobody
+ExecStart=-@GITEXECDIR@/git-daemon --base-path=@BASE_PATH@ --export-all \
+ --user-path=public_git --inetd --log-destination=stderr --verbose
+StandardInput=socket
+StandardError=journal
diff --git a/gitweb-httpd.conf b/gitweb-httpd.conf
new file mode 100644
index 0000000..4f4eac7
--- /dev/null
+++ b/gitweb-httpd.conf
@@ -0,0 +1,7 @@
+Alias /git /var/www/git
+
+<Directory /var/www/git>
+ Options +ExecCGI
+ AddHandler cgi-script .cgi
+ DirectoryIndex gitweb.cgi
+</Directory>
diff --git a/gitweb.conf.in b/gitweb.conf.in
new file mode 100644
index 0000000..c04a96b
--- /dev/null
+++ b/gitweb.conf.in
@@ -0,0 +1,53 @@
+# The gitweb config file is a fragment of perl code. You can set variables
+# using "our $variable = value"; text from "#" character until the end of a
+# line is ignored. See perlsyn(1) man page for details.
+#
+# See /usr/share/doc/gitweb-*/README and /usr/share/doc/gitweb-*/INSTALL for
+# more details and available configuration variables.
+
+# Set the path to git projects. This is an absolute filesystem path which will
+# be prepended to the project path.
+#our $projectroot = "@PROJECTROOT@";
+
+# Set the list of git base URLs used for URL to where fetch project from, i.e.
+# the full URL is "$git_base_url/$project". By default this is empty
+#our @git_base_url_list = qw(git://git.example.com
+# ssh://git.example.com@PROJECTROOT@);
+
+# Enable the 'blame' blob view, showing the last commit that modified
+# each line in the file. This can be very CPU-intensive. Disabled by default
+#$feature{'blame'}{'default'} = [1];
+#
+# Allow projects to override the default setting via git config file.
+# Example: gitweb.blame = 0|1;
+#$feature{'blame'}{'override'} = 1;
+
+# Disable the 'snapshot' link, providing a compressed archive of any tree. This
+# can potentially generate high traffic if you have large project. Enabled for
+# .tar.gz snapshots by default.
+#
+# Value is a list of formats defined in %known_snapshot_formats that you wish
+# to offer.
+#$feature{'snapshot'}{'default'} = [];
+#
+# Allow projects to override the default setting via git config file.
+# Example: gitweb.snapshot = tbz2,zip; (use "none" to disable)
+#$feature{'snapshot'}{'override'} = 1;
+
+# Disable grep search, which will list the files in currently selected tree
+# containing the given string. This can be potentially CPU-intensive, of
+# course. Enabled by default.
+#$feature{'grep'}{'default'} = [0];
+#
+# Allow projects to override the default setting via git config file.
+# Example: gitweb.grep = 0|1;
+#$feature{'grep'}{'override'} = 1;
+
+# Disable the pickaxe search, which will list the commits that modified a given
+# string in a file. This can be practical and quite faster alternative to
+# 'blame', but still potentially CPU-intensive. Enabled by default.
+#$feature{'pickaxe'}{'default'} = [0];
+#
+# Allow projects to override the default setting via git config file.
+# Example: gitweb.pickaxe = 0|1;
+#$feature{'pickaxe'}{'override'} = 1;
diff --git a/gpgkey-junio.asc b/gpgkey-junio.asc
new file mode 100644
index 0000000..5edb58f
--- /dev/null
+++ b/gpgkey-junio.asc
@@ -0,0 +1,144 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=7hTI
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/print-failed-test-output b/print-failed-test-output
new file mode 100644
index 0000000..d0d63aa
--- /dev/null
+++ b/print-failed-test-output
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+shopt -s failglob
+
+# Print output from failing tests
+printf -v sep "%0.s-" {1..80}
+for exit_file in t/test-results/*.exit; do
+ [ "$(< "$exit_file")" -eq 0 ] && continue
+ out_file="${exit_file%exit}out"
+ printf '\n%s\n%s\n%s\n' "$sep" "$out_file" "$sep"
+ cat "$out_file"
+done
+exit 1
diff --git a/sources b/sources
new file mode 100644
index 0000000..b1ff92e
--- /dev/null
+++ b/sources
@@ -0,0 +1,2 @@
+fe1b6816eeda80a0ad1854afc7bbe3aa git-2.43.5.tar.sign
+b2a0e95a31b41b8ed8ab5d543db823ad git-2.43.5.tar.xz