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..733f9c0 --- /dev/null +++ b/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch @@ -0,0 +1,73 @@ +From 89ccbc15948db9ddbf74530e3fd66dd78ae897ae Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +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ý +Signed-off-by: Todd Zullinger +--- + 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 2fb1b2ae56..4afdf5a6aa 100644 +--- a/t/lib-httpd.sh ++++ b/t/lib-httpd.sh +@@ -206,19 +206,26 @@ enable_cgipassauth () { + } + + 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..37637bc --- /dev/null +++ b/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch @@ -0,0 +1,88 @@ +From e90e1068ddc9cfa3badd23b16a46c57ed6d8308a Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +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 +--- + 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&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 +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 +--- + 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.52-sanitize-sideband-channel-messages.patch b/git-2.52-sanitize-sideband-channel-messages.patch new file mode 100644 index 0000000..786cb39 --- /dev/null +++ b/git-2.52-sanitize-sideband-channel-messages.patch @@ -0,0 +1,275 @@ +From 65e88e659008e2cbf79cf44975406ff0d569a3a9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= +Date: Thu, 20 Nov 2025 12:24:59 +0100 +Subject: [PATCH] sideband: mask control characters +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The output of `git clone` is a vital component for understanding what +has happened when things go wrong. However, these logs are partially +under the control of the remote server (via the "sideband", which +typically contains what the remote `git pack-objects` process sends to +`stderr`), and is currently not sanitized by Git. + +This makes Git susceptible to ANSI escape sequence injection (see +CWE-150, https://cwe.mitre.org/data/definitions/150.html), which allows +attackers to corrupt terminal state, to hide information, and even to +insert characters into the input buffer (i.e. as if the user had typed +those characters). + +To plug this vulnerability, disallow any control character in the +sideband, replacing them instead with the common `^` +(e.g. `^[` for `\x1b`, `^A` for `\x01`). + +There is likely a need for more fine-grained controls instead of using a +"heavy hammer" like this, which will be introduced subsequently. + +Signed-off-by: Johannes Schindelin + +sideband: introduce an "escape hatch" to allow control characters + +The preceding commit fixed the vulnerability whereas sideband messages +(that are under the control of the remote server) could contain ANSI +escape sequences that would be sent to the terminal verbatim. + +However, this fix may not be desirable under all circumstances, e.g. +when remote servers deliberately add coloring to their messages to +increase their urgency. + +To help with those use cases, give users a way to opt-out of the +protections: `sideband.allowControlCharacters`. + +Signed-off-by: Johannes Schindelin + +sideband: do allow ANSI color sequences by default + +The preceding two commits introduced special handling of the sideband +channel to neutralize ANSI escape sequences before sending the payload +to the terminal, and `sideband.allowControlCharacters` to override that +behavior. + +However, some `pre-receive` hooks that are actively used in practice +want to color their messages and therefore rely on the fact that Git +passes them through to the terminal. + +In contrast to other ANSI escape sequences, it is highly unlikely that +coloring sequences can be essential tools in attack vectors that mislead +Git users e.g. by hiding crucial information. + +Therefore we can have both: Continue to allow ANSI coloring sequences to +be passed to the terminal, and neutralize all other ANSI escape +sequences. + +Signed-off-by: Johannes Schindelin + +sideband: default to allowControlCharacters=true + +We don't want to change the default Git behaviour, just add the option +to filter control characters. + +Signed-off-by: Ondřej Pohořelský +--- + Documentation/config.adoc | 2 + + Documentation/config/sideband.adoc | 16 ++++++ + sideband.c | 78 ++++++++++++++++++++++++++++- + t/t5409-colorize-remote-messages.sh | 31 ++++++++++++ + 4 files changed, 125 insertions(+), 2 deletions(-) + create mode 100644 Documentation/config/sideband.adoc + +diff --git a/Documentation/config.adoc b/Documentation/config.adoc +index 62eebe7c54..dcea3c0c15 100644 +--- a/Documentation/config.adoc ++++ b/Documentation/config.adoc +@@ -523,6 +523,8 @@ include::config/sequencer.adoc[] + + include::config/showbranch.adoc[] + ++include::config/sideband.adoc[] ++ + include::config/sparse.adoc[] + + include::config/splitindex.adoc[] +diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc +new file mode 100644 +index 0000000000..c9ba24a02c +--- /dev/null ++++ b/Documentation/config/sideband.adoc +@@ -0,0 +1,16 @@ ++sideband.allowControlCharacters:: ++ By default, control characters that are delivered via the sideband ++ are NOT masked. Use this config setting to prevent potentially ++ unwanted ANSI escape sequences from being sent to the terminal: +++ ++-- ++ color:: ++ Allow ANSI color sequences, line feeds and horizontal tabs, ++ but mask all other control characters. ++ false:: ++ Mask all control characters other than line feeds and ++ horizontal tabs. ++ true:: ++ Allow all control characters to be sent to the terminal. ++ This is the default. ++-- +\ No newline at end of file +diff --git a/sideband.c b/sideband.c +index ea7c25211e..88d1b44a7a 100644 +--- a/sideband.c ++++ b/sideband.c +@@ -26,6 +26,12 @@ static struct keyword_entry keywords[] = { + { "error", GIT_COLOR_BOLD_RED }, + }; + ++static enum { ++ ALLOW_NO_CONTROL_CHARACTERS = 0, ++ ALLOW_ALL_CONTROL_CHARACTERS = 1, ++ ALLOW_ANSI_COLOR_SEQUENCES = 2 ++} allow_control_characters = ALLOW_ALL_CONTROL_CHARACTERS; ++ + /* Returns a color setting (GIT_COLOR_NEVER, etc). */ + static enum git_colorbool use_sideband_colors(void) + { +@@ -39,6 +45,25 @@ static enum git_colorbool use_sideband_colors(void) + if (use_sideband_colors_cached != GIT_COLOR_UNKNOWN) + return use_sideband_colors_cached; + ++ switch (repo_config_get_maybe_bool(the_repository, "sideband.allowcontrolcharacters", &i)) { ++ case 0: /* Boolean value */ ++ allow_control_characters = i ? ALLOW_ALL_CONTROL_CHARACTERS : ++ ALLOW_NO_CONTROL_CHARACTERS; ++ break; ++ case -1: /* non-Boolean value */ ++ if (repo_config_get_string_tmp(the_repository, "sideband.allowcontrolcharacters", ++ &value)) ++ ; /* huh? `get_maybe_bool()` returned -1 */ ++ else if (!strcmp(value, "color")) ++ allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES; ++ else ++ warning(_("unrecognized value for `sideband." ++ "allowControlCharacters`: '%s'"), value); ++ break; ++ default: ++ break; /* not configured */ ++ } ++ + if (!repo_config_get_string_tmp(the_repository, key, &value)) + use_sideband_colors_cached = git_config_colorbool(key, value); + else if (!repo_config_get_string_tmp(the_repository, "color.ui", &value)) +@@ -66,6 +91,55 @@ void list_config_color_sideband_slots(struct string_list *list, const char *pref + list_config_item(list, prefix, keywords[i].keyword); + } + ++static int handle_ansi_color_sequence(struct strbuf *dest, const char *src, int n) ++{ ++ int i; ++ ++ /* ++ * Valid ANSI color sequences are of the form ++ * ++ * ESC [ [ [; ]*] m ++ */ ++ ++ if (allow_control_characters != ALLOW_ANSI_COLOR_SEQUENCES || ++ n < 3 || src[0] != '\x1b' || src[1] != '[') ++ return 0; ++ ++ for (i = 2; i < n; i++) { ++ if (src[i] == 'm') { ++ strbuf_add(dest, src, i + 1); ++ return i; ++ } ++ if (!isdigit(src[i]) && src[i] != ';') ++ break; ++ } ++ ++ return 0; ++} ++ ++static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) ++{ ++ int i; ++ ++ if (allow_control_characters == ALLOW_ALL_CONTROL_CHARACTERS) { ++ strbuf_add(dest, src, n); ++ return; ++ } ++ ++ strbuf_grow(dest, n); ++ for (; n && *src; src++, n--) { ++ if (!iscntrl(*src) || *src == '\t' || *src == '\n') ++ strbuf_addch(dest, *src); ++ else if ((i = handle_ansi_color_sequence(dest, src, n))) { ++ src += i; ++ n -= i; ++ } else { ++ strbuf_addch(dest, '^'); ++ strbuf_addch(dest, 0x40 + *src); ++ } ++ } ++} ++ + /* + * Optionally highlight one keyword in remote output if it appears at the start + * of the line. This should be called for a single line only, which is +@@ -81,7 +155,7 @@ static void maybe_colorize_sideband(struct strbuf *dest, const char *src, int n) + int i; + + if (!want_color_stderr(use_sideband_colors())) { +- strbuf_add(dest, src, n); ++ strbuf_add_sanitized(dest, src, n); + return; + } + +@@ -114,7 +188,7 @@ static void maybe_colorize_sideband(struct strbuf *dest, const char *src, int n) + } + } + +- strbuf_add(dest, src, n); ++ strbuf_add_sanitized(dest, src, n); + } + + +diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh +index fa5de4500a..2d40d8c640 100755 +--- a/t/t5409-colorize-remote-messages.sh ++++ b/t/t5409-colorize-remote-messages.sh +@@ -98,4 +98,35 @@ test_expect_success 'fallback to color.ui' ' + grep "error: error" decoded + ' + ++test_expect_success 'disallow (color) control sequences in sideband' ' ++ write_script .git/color-me-surprised <<-\EOF && ++ printf "error: Have you \\033[31mread\\033[m this?\\a\\n" >&2 ++ exec "$@" ++ EOF ++ test_config_global uploadPack.packObjectshook ./color-me-surprised && ++ test_commit need-at-least-one-commit && ++ ++ git -c sideband.allowControlCharacters=color \ ++ clone --no-local . throw-away 2>stderr && ++ test_decode_color decoded && ++ test_grep RED decoded && ++ test_grep "\\^G" stderr && ++ tr -dc "\\007" actual && ++ test_must_be_empty actual && ++ ++ rm -rf throw-away && ++ git -c sideband.allowControlCharacters=false \ ++ clone --no-local . throw-away 2>stderr && ++ test_decode_color decoded && ++ test_grep ! RED decoded && ++ test_grep "\\^G" stderr && ++ ++ rm -rf throw-away && ++ git -c sideband.allowControlCharacters clone --no-local . throw-away 2>stderr && ++ test_decode_color decoded && ++ test_grep RED decoded && ++ tr -dc "\\007" actual && ++ test_file_not_empty actual ++' ++ + test_done +-- +2.51.1 + diff --git a/git-test-apache-davlockdbtype-config.patch b/git-test-apache-davlockdbtype-config.patch new file mode 100644 index 0000000..882006a --- /dev/null +++ b/git-test-apache-davlockdbtype-config.patch @@ -0,0 +1,14 @@ +diff -ur b/t/lib-httpd/apache.conf a/t/lib-httpd/apache.conf +--- b/t/lib-httpd/apache.conf 2024-01-09 11:06:46.660868023 +0100 ++++ a/t/lib-httpd/apache.conf 2024-01-09 11:09:09.572713625 +0100 +@@ -272,7 +272,9 @@ + + LoadModule dav_module modules/mod_dav.so + LoadModule dav_fs_module modules/mod_dav_fs.so +- ++ ++ DavLockDBType sdbm ++ + DAVLockDB DAVLock + + Dav on diff --git a/git.rpmlintrc b/git.rpmlintrc index a7cb9f2..8b09c35 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -1,5 +1,3 @@ -from Config import * - # the dictionary is a bit limited addFilter("git.* spelling-error %description .* subpackages") addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject|subtree)") @@ -7,14 +5,18 @@ addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject # git-core-doc requires git-core, which provides the symlink target addFilter("git(-core-doc)?\..*: W: dangling-relative-symlink /usr/share/doc/git/contrib/hooks ../../../git-core/contrib/hooks") -# git requires git-core, which provides the symlink target -addFilter("git\..*: W: dangling-relative-symlink /usr/libexec/git-core/git-difftool ../../bin/git") +# gitk requires git, which provides the symlink target +addFilter("gitk\.noarch: W: dangling-relative-symlink /usr/share/bash-completion/completions/gitk git") # git-gui requires git, which provides the git binary addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications/git-gui.desktop git") +# ignore no binary warning for main git package; making it noarch isn't trivial +# since we have arch-specific subpackages +addFilter("git\..*: E: no-binary$") + # ignore no doc/manpage warnings where we don't expect any documentation -addFilter("git-(all|core|gnome-keyring)\..*: W: no-documentation") +addFilter("git-(all|core|credential-libsecret)\..*: W: no-documentation") addFilter("perl-Git-SVN.noarch: W: no-documentation") addFilter("git-core\..*: W: no-manual-page-for-binary") @@ -22,5 +24,19 @@ addFilter("git-core\..*: W: no-manual-page-for-binary") # similarly ignore the warning when git-cvs and git-p4 are disabled addFilter("git.* obsolete-not-provided git-(cvs|gnome-keyring|p4)") -# we BR emacs which requires emacs-common and provides %{_emacs_version} -addFilter("git.(spec|src): .* Possible unexpanded macro in: Requires:.*emacs-filesystem >= %{_emacs_version}") +# git-svn has both man and html docs and only a single command +addFilter('git-svn\..*: W: package-with-huge-docs') + +# ignore potential "bashisms" in docs +addFilter('git-core-doc\.noarch: W: potential-bashisms /usr/share/doc/git/') + +# ignore unused-direct-shlib-dependency for libpcre; while it probably could be +# removed from some binaries, the cost of doing so isn't worth the gain. +addFilter('git-(core|daemon)\..*: W: unused-direct-shlib-dependency .* /lib64/libpcre2-.*') + +# ignore duplicate gvimdiff/nvimdiff files; they are only 29 bytes, sourcing the same base +# vimdiff mergetool +addFilter('git-core\..*: W: files-duplicate /usr/libexec/git-core/mergetools/[gn]vimdiff') + +# ignore non-standard-dir-in-var for gitweb (#479613) +addFilter('gitweb.noarch: W: non-standard-dir-in-var www') diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 429977f..a310f5a 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -1,17 +1,28 @@ +^ok 1 # SKIP enable client-side http/2 \(missing HTTP2\)$ +expensive 2GB clone test; enable with GIT_TEST_CLONE_2GB=true filesystem does not corrupt utf-8 +fsmonitor--daemon is not supported on this platform GIT_SKIP_TESTS missing AUTOIDENT +missing BUILTIN_TXT_ missing CASE_INSENSITIVE_FS -missing CLONE_2GB missing DONTHAVEIT -missing EXPENSIVE +missing ([!]LONG_IS_64BIT,)?EXPENSIVE +missing FSMONITOR_DAEMON +missing JGIT missing !?LAZY_(TRUE|FALSE) missing MINGW missing NATIVE_CRLF missing !PCRE missing !PTHREADS +missing !REFFILES missing RFC1991 +missing RUNTIME_PREFIX +missing SYMLINKS_WINDOWS missing TAR_NEEDS_PAX_FALLBACK +missing UTF8_NFD_TO_NFC +missing WINDOWS +skipped: skip all tests in t5559 skipping case insensitive tests skipping git p4 tests skipping remote-svn tests, python not available @@ -19,3 +30,4 @@ skipping svn-info test skipping Windows-(only path|specific) tests Test requiring writable / skipped used to test external credential helpers +You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test diff --git a/git.spec b/git.spec index 2156ad8..49c55d0 100644 --- a/git.spec +++ b/git.spec @@ -6,67 +6,61 @@ %global gitexecdir %{_libexecdir}/git-core -# Settings for Fedora > 29 and EL > 7 -%if 0%{?fedora} > 29 || 0%{?rhel} > 7 -%bcond_with python2 -%else -%bcond_without python2 -%endif - -# Settings for Fedora >= 29 and EL > 7 -%if 0%{?fedora} >= 29 || 0%{?rhel} > 7 -%global gitweb_httpd_conf gitweb.conf -%else -%global gitweb_httpd_conf git.conf -%endif - -# Settings for Fedora and EL > 7 -%if 0%{?fedora} || 0%{?rhel} > 7 -%bcond_without python3 -# linkchcker is not available on EL <= 7 +# Settings for Fedora +%if 0%{?fedora} +# linkchecker is not available on EL %bcond_without linkcheck +%else +%bcond_with linkcheck +%endif + +# Settings for Fedora >= 38 and EL >= 10 +%if 0%{?fedora} >= 38 || 0%{?rhel} >= 10 +%bcond_with perl_modcompat +%else +%bcond_without perl_modcompat +%endif + +# Settings for Fedora and EL == 9 +# In EL >= 10 docbook5-style-xsl, needed by asciidoctor, is unwanted package +%if 0%{?fedora} || 0%{?rhel} == 9 +%bcond_without asciidoctor +%else +%bcond_with asciidoctor +%endif + +# Settings for Fedora and EL >= 8 +%if 0%{?fedora} || 0%{?rhel} >= 8 +%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 -%bcond_with linkcheck +%global build_cflags %{build_cflags} -fPIC -std=gnu99 +%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 -%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 libsecret 1 -%global use_new_rpm_filters 1 -%global use_systemd 1 -%else -%global bashcomp_pkgconfig 0 -%global bashcompdir %{_sysconfdir}/bash_completion.d -%global bashcomproot %{bashcompdir} -%global emacs_filesystem 0 -%global libsecret 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 +# Disable cvs subpackage by default on EL >= 8 +%if 0%{?rhel} >= 8 %bcond_with cvs %else %bcond_without cvs %endif +# Allow credential-libsecret subpackage to be toggled via --with/--without +%bcond_without libsecret + # Allow p4 subpackage to be toggled via --with/--without -# Disable by default if we lack python2 support -%if %{without python2} +# Disable p4 package by default on EL >= 10 +%if 0%{?rhel} >= 10 %bcond_with p4 %else %bcond_without p4 @@ -77,23 +71,27 @@ %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 +# Define %%bash_completions_dir for EL <= 9 +%{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} -# Define for release candidates -#global rcrev .rc0 +# Set path to the package-notes linker script +%global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.21.0 -Release: 1%{?rcrev}%{?dist} +Version: 2.52.0 +Release: 1%{?dist} Summary: Fast Version Control System -License: GPLv2 +License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT 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 + +# Note: real_version must be defined _after_ Version +%global real_version %(echo %{version} | tr '~' '.') + +# Adjust Source URL path for release candidates +%global rcpath %(test "%{version}" = "%{real_version}" || echo testing/) + +Source0: https://www.kernel.org/pub/software/scm/git/%{rcpath}%{name}-%{real_version}.tar.xz +Source1: https://www.kernel.org/pub/software/scm/git/%{rcpath}%{name}-%{real_version}.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. @@ -104,7 +102,7 @@ Source1: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{ # # 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 -Source9: gpgkey-junio.asc +Source2: gpgkey-junio.asc # Local sources begin at 10 to allow for additional future upstream sources Source11: git.xinetd.in @@ -120,134 +118,192 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.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 +Patch1: 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch +# https://github.com/tmzullinger/git/commit/16750d024c +Patch2: 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch +# https://github.com/tmzullinger/git/commit/aa5105dc11 +Patch3: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch + +# Configurates Apache test server to use `DavLockDBType sdbm` +# Prevents t5540 failures on i686, s390x and ppc64le +Patch5: git-test-apache-davlockdbtype-config.patch + +# Adds the option to sanitize sideband channel messages +# CVE-2024-52005 wasn't fixed by upstream. This patch adds the option to harden Git against it. +# The default behaviour of Git remains unchanged. +# +# https://github.com/gitgitgadget/git/pull/1853 +Patch6: git-2.52-sanitize-sideband-channel-messages.patch + %if %{with docs} # pod2man is needed to build Git.3pm -BuildRequires: %{_bindir}/pod2man +BuildRequires: perl-podlators +%if %{with asciidoctor} +BuildRequires: docbook5-style-xsl +BuildRequires: rubygem-asciidoctor +%else BuildRequires: asciidoc >= 8.4.1 +%endif +# endif with asciidoctor BuildRequires: xmlto %if %{with linkcheck} BuildRequires: linkchecker -%endif # with linkcheck -%endif # with docs +%endif +# endif with linkcheck +%endif +# endif with docs +BuildRequires: coreutils BuildRequires: desktop-file-utils -BuildRequires: emacs +BuildRequires: diffutils +%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: glibc-utils BuildRequires: gnupg2 BuildRequires: libcurl-devel -%if %{libsecret} -BuildRequires: libsecret-devel -%endif # libsecret BuildRequires: make BuildRequires: openssl-devel BuildRequires: pcre2-devel BuildRequires: perl(Error) -BuildRequires: perl(Test) +BuildRequires: perl(lib) %if %{use_perl_generators} BuildRequires: perl-generators -%endif # use_perl_generators +%endif +# endif use_perl_generators %if %{use_perl_interpreter} BuildRequires: perl-interpreter %else BuildRequires: perl -%endif # use_perl_interpreter -%if %{bashcomp_pkgconfig} +%endif +# endif use_perl_interpreter BuildRequires: pkgconfig(bash-completion) -%endif # bashcomp_pkgconfig BuildRequires: sed -%if %{use_systemd} -# For macros +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: systemd-rpm-macros +%else BuildRequires: systemd -%endif # use_systemd +%endif 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 +%if (0%{?fedora} && 0%{?fedora} < 40) || (0%{?rhel} >= 8 && 0%{?rhel} < 10) +# Needed by t5540-http-push-webdav.sh; recent httpd obviates this BuildRequires: apr-util-bdb -%endif # fedora >= 27 +%endif +%if 0%{?fedora} || 0%{?rhel} >= 8 +# Needed by t5559-http-fetch-smart-http2.sh +BuildRequires: mod_http2 +%endif +# endif fedora or rhel >= 8 BuildRequires: bash %if %{with cvs} BuildRequires: cvs BuildRequires: cvsps -%endif # with cvs +%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 # use_glibc_langpacks -%if 0%{?fedora} && 0%{?fedora} < 30 -BuildRequires: gnupg -%endif # fedora < 30 -%if 0%{?fedora} || 0%{?rhel} > 8 +%endif +# endif use_glibc_langpacks +%if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: gnupg2-smime -%endif # fedora or el > 8 -%if 0%{?fedora} || ( 0%{?rhel} && ( 0%{?rhel} == 6 || 0%{?rhel} >= 7 && %{_arch} != ppc64 )) +%endif +# endif fedora or el >= 9 +%if 0%{?fedora} || 0%{?rhel} >= 8 || ( 0%{?rhel} == 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) BuildRequires: highlight -%endif # fedora, el-6, or el7-ppc64 +%endif +# endif fedora or el7+ (ppc64le/x86_64) +%if 0%{?fedora} >= 37 +BuildRequires: httpd-core +%else BuildRequires: httpd -%if 0%{?fedora} && %{_arch} != s390x +%endif +# endif fedora >= 37 +%if 0%{?fedora} && ! ( 0%{?fedora} >= 35 || "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) BuildRequires: jgit -%endif # fedora (except s390x) +%endif +# endif fedora (except i386 and s390x) BuildRequires: mod_dav_svn +BuildRequires: openssh-clients 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 # with python2 %if %{with python3} BuildRequires: python3-devel -%endif # with python3 +%else +%if %{with python2} +BuildRequires: python2-devel +%endif +# endif with python2 +%endif +# endif with python3 BuildRequires: subversion BuildRequires: subversion-perl +BuildRequires: tar BuildRequires: time -%endif # with tests +BuildRequires: zip +BuildRequires: zstd +%endif +# endif with tests Requires: git-core = %{version}-%{release} Requires: git-core-doc = %{version}-%{release} %if ! %{defined perl_bootstrap} Requires: perl(Term::ReadKey) -%endif # ! defined perl_bootstrap +%endif +# endif ! defined perl_bootstrap Requires: perl-Git = %{version}-%{release} -%if %{emacs_filesystem} && %{defined _emacs_version} -Requires: emacs-filesystem >= %{_emacs_version} -%endif # emacs_filesystem - # Obsolete git-cvs if it's disabled %if %{without cvs} Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release} -%endif # without cvs - -# Obsolete gnome-keyring credential helper (remove after Fedora 29) -%if 0%{?fedora} && 0%{?fedora} < 30 -Obsoletes: git-gnome-keyring < 2.11.1-4 -%endif # fedora < 30 +%endif +# endif without cvs # Obsolete git-p4 if it's disabled %if %{without p4} Obsoletes: git-p4 < %{?epoch:%{epoch}:}%{version}-%{release} -%endif # without p4 +%endif +# endif without p4 %description Git is a fast, scalable, distributed revision control system with an @@ -262,14 +318,21 @@ tools for integrating with other SCMs, install the git-all meta-package. 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 # with cvs +%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 # with p4 +%endif +# endif with p4 Requires: git-subtree = %{version}-%{release} Requires: git-svn = %{version}-%{release} Requires: git-instaweb = %{version}-%{release} @@ -277,10 +340,8 @@ Requires: gitk = %{version}-%{release} Requires: perl-Git = %{version}-%{release} %if ! %{defined perl_bootstrap} Requires: perl(Term::ReadKey) -%endif # ! defined perl_bootstrap -%if ! %{emacs_filesystem} -Requires: emacs-git = %{version}-%{release} -%endif # ! emacs_filesystem +%endif +# endif ! defined perl_bootstrap %description all Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations @@ -310,6 +371,16 @@ 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 @@ -320,19 +391,13 @@ Requires: cvsps Requires: perl(DBD::SQLite) %description cvs %{summary}. -%endif # with cvs +%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 # use_systemd +%{?systemd_requires} %description daemon The git daemon for supporting git:// access to git repositories @@ -341,27 +406,35 @@ Summary: Git tools for sending patches via email BuildArch: noarch Requires: git = %{version}-%{release} Requires: perl(Authen::SASL) +Requires: perl(Cwd) +%if ! 0%{?rhel} +# RHEL lacks perl-Email-Valid (rhbz#2166718) +Requires: perl(Email::Valid) +%endif +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 ! %{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 # ! emacs_filesystem - %package -n gitk Summary: Git repository browser BuildArch: noarch Requires: git = %{version}-%{release} -Requires: tk >= 8.4 +Requires: git-gui = %{version}-%{release} +Requires: tk %description -n gitk %{summary}. @@ -385,7 +458,11 @@ 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 @@ -395,17 +472,28 @@ repository. %package p4 Summary: Git tools for working with Perforce depots BuildArch: noarch +%if %{with python3} +BuildRequires: python3-devel +%else +%if %{with python2} BuildRequires: python2-devel +%endif +# endif with python2 +%endif +# endif with python3 Requires: git = %{version}-%{release} %description p4 %{summary}. -%endif # with p4 +%endif +# endif with p4 %package -n perl-Git Summary: Perl interface to Git BuildArch: noarch Requires: git = %{version}-%{release} +%if %{with perl_modcompat} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +%endif %description -n perl-Git %{summary}. @@ -413,12 +501,15 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $versi Summary: Perl interface to Git::SVN BuildArch: noarch Requires: git = %{version}-%{release} +%if %{with perl_modcompat} Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +%endif %description -n perl-Git-SVN %{summary}. %package subtree Summary: Git tools to merge and split repositories +BuildArch: noarch Requires: git-core = %{version}-%{release} %description subtree Git subtrees allow subprojects to be included within a subdirectory @@ -432,59 +523,66 @@ Requires: git = %{version}-%{release} Requires: perl(Digest::MD5) %if ! %{defined perl_bootstrap} Requires: perl(Term::ReadKey) -%endif # ! defined perl_bootstrap +%endif +# endif ! defined perl_bootstrap Requires: subversion %description svn %{summary}. %prep # Verify GPG signatures -gpghome="$(mktemp -qd)" # Ensure we don't use any existing gpg keyrings -# Convert the ascii-armored key to binary -# (use --yes to ensure an existing dearmored key is overwritten) -gpg2 --homedir "$gpghome" --dearmor --quiet --yes %{SOURCE9} -xz -dc %{SOURCE0} | # Upstream signs the uncompressed tarballs - gpgv2 --homedir "$gpghome" --quiet --keyring %{SOURCE9}.gpg %{SOURCE1} - -rm -rf "$gpghome" # Cleanup tmp gpg home dir +xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- -# Ensure a blank line follows autosetup, el6 chokes otherwise -# https://bugzilla.redhat.com/1310704 -%autosetup -p1 -n %{name}-%{version}%{?rcrev} +%autosetup -p1 -n %{name}-%{real_version} # Install print-failed-test-output script install -p -m 755 %{SOURCE99} print-failed-test-output -# Remove git-archimport from command list +# Remove git-archimport +sed -i '/^SCRIPT_PERL += git-archimport\.perl$/d' Makefile sed -i '/^git-archimport/d' command-list.txt +rm git-archimport.perl Documentation/git-archimport.adoc %if %{without cvs} # Remove git-cvs* from command list sed -i '/^git-cvs/d' command-list.txt -%endif # without cvs +%endif +# endif without cvs %if %{without p4} # Remove git-p4 from command list sed -i '/^git-p4/d' command-list.txt -%endif # without p4 +%endif +# endif without p4 # Use these same options for every invocation of 'make'. # Otherwise it will rebuild in %%install due to flags changes. -cat << \EOF > config.mak +# 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 0%{?rhel} && 0%{?rhel} < 8 +NO_UNCOMPRESS2 = 1 +%endif +%if %{with python3} +PYTHON_PATH = %{__python3} +%else %if %{with python2} PYTHON_PATH = %{__python2} %else NO_PYTHON = 1 -%endif # with python2 +%endif +%endif +%if %{with asciidoctor} +USE_ASCIIDOCTOR = 1 +%endif htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} prefix = %{_prefix} perllibdir = %{perl_vendorlib} @@ -492,31 +590,21 @@ gitwebdir = %{_localstatedir}/www/git # Test options DEFAULT_TEST_TARGET = prove -GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} +GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File GIT_TEST_OPTS = -x --verbose-log EOF -# Print config.mak to aid confirmation/verification of settings -cat config.mak - # 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 # ! defined perl_bootstrap -%else -cat << \EOF > %{name}-req -#!/bin/sh -%{__perl_requires} $* |\ -sed -e '/perl(packed-refs)/d' -EOF +%endif +# endif ! defined perl_bootstrap -%global __perl_requires %{_builddir}/%{name}-%{version}%{?rcrev}/%{name}-req -chmod +x %{__perl_requires} -%endif # use_new_rpm_filters +# Exclude sample hook files from automatic dependency detection +%global __requires_exclude_from ^%{_datadir}/git-core/templates/hooks/.*sample$ # Remove Git::LoadCPAN to ensure we use only system perl modules. This also # allows the dependencies to be automatically processed by rpm. @@ -529,7 +617,7 @@ sed -i 's@"++GITWEB_HOME_LINK_STR++"@$ENV{"SERVER_NAME"} ? "git://" . $ENV{"SERV # Move contrib/{contacts,subtree} docs to Documentation so they build with the # proper asciidoc/docbook/xmlto options -mv contrib/{contacts,subtree}/git-*.txt Documentation/ +mv contrib/{contacts,subtree}/git-*.adoc Documentation/ %build # Improve build reproducibility @@ -540,9 +628,12 @@ export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) %make_build -C contrib/contacts/ all -%if %{libsecret} +%if %{with libsecret} %make_build -C contrib/credential/libsecret/ -%endif # libsecret +%endif +# endif with libsecret + +%make_build -C contrib/credential/netrc/ %make_build -C contrib/diff-highlight/ @@ -551,46 +642,23 @@ export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) # 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 \ - contrib/hg-to-git/hg-to-git.py \ - contrib/hooks/multimail/git_multimail.py \ - contrib/hooks/multimail/migrate-mailhook-config \ - contrib/hooks/multimail/post-receive.example \ - contrib/svn-fe/svnrdump_sim.py + contrib/fast-import/import-zips.py %else -# Remove contrib/fast-import/import-zips.py, contrib/hg-to-git, and -# contrib/svn-fe which all require python2. -rm -rf contrib/fast-import/import-zips.py contrib/hg-to-git contrib/svn-fe -%endif # with python2 - -# The multimail hook is installed with git. Use python3 to avoid an -# unnecessary python2 dependency, if possible. -%if %{with python3} -sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ - contrib/hooks/multimail/git_multimail.py \ - contrib/hooks/multimail/migrate-mailhook-config \ - contrib/hooks/multimail/post-receive.example -%endif # with python3 +# Remove contrib/fast-import/import-zips.py which requires python2. +rm -rf contrib/fast-import/import-zips.py +%endif +# endif with python2 %install %make_install %{?with_docs:install-doc} %make_install -C contrib/contacts -%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 - -%if %{libsecret} +%if %{with libsecret} install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ %{buildroot}%{gitexecdir} -%endif # libsecret +%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 @@ -609,28 +677,34 @@ 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/persistent-https; a) this code requires compilation; and b) it +# is licensed differently than git +rm -rf contrib/persistent-https + +# 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 # without cvs +%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 # without p4 +%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|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" +exclude_re="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 @@ -642,42 +716,25 @@ sed -i "/Git\/SVN/ d" perl-git-files (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 # with docs +%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 # use_systemd # Setup bash completion -install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{bashcompdir}/git -ln -s git %{buildroot}%{bashcompdir}/gitk +install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{bash_completions_dir}/git +ln -s git %{buildroot}%{bash_completions_dir}/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/ -# Drop .py extension from git_multimail to avoid byte-compiling -mv contrib/hooks/multimail/git_multimail{.py,} - -# 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 \ @@ -706,12 +763,13 @@ 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-(libsecret|netrc)|difftool|filter-branch|instaweb|request-pull|send-mail)|gitweb" +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 # with docs +%endif +# endif with docs grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files ##### DOC @@ -719,9 +777,9 @@ grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files # contrib not_core_doc_re="(git-(cvs|gui|citool|daemon|instaweb|subtree))|p4|svn|email|gitk|gitweb" mkdir -p %{buildroot}%{_pkgdocdir}/ -cp -pr README.md Documentation/*.txt Documentation/RelNotes contrib %{buildroot}%{_pkgdocdir}/ +cp -pr CODE_OF_CONDUCT.md README.md Documentation/*.adoc Documentation/RelNotes contrib %{buildroot}%{_pkgdocdir}/ # Remove contrib/ files/dirs which have nothing useful for documentation -rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential,svn-fe}/ +rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential}/ cp -p gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb cp -p gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb @@ -730,7 +788,8 @@ cp -pr Documentation/*.html Documentation/docbook-xsl.css %{buildroot}%{_pkgdocd cp -pr Documentation/{howto,technical} %{buildroot}%{_pkgdocdir}/ find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \ |grep -o "%{_pkgdocdir}.*$" >> man-doc-files-core -%endif # with docs +%endif +# endif with docs { find %{buildroot}%{_pkgdocdir} -type f -maxdepth 1 \ @@ -747,90 +806,125 @@ find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \ %if %{without tests} echo "*** Skipping tests" exit 0 -%endif # without tests +%endif +# endif without tests %if %{with docs} && %{with linkcheck} # Test links in HTML documentation find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker -%endif # with docs && with linkcheck +%endif +# endif with docs && with linkcheck # Tests to skip on all releases and architectures -GIT_SKIP_TESTS="" +# +# 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/ +GIT_SKIP_TESTS="t5559" + +%if 0%{?rhel} && 0%{?rhel} < 8 +# Skip tests which require mod_http2 on el7 +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5559" +%endif +# endif rhel < 8 %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.33 'push 2000 tags over http' +# t5541.36 '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.33 t5551.25" -%endif # aarch64 %%{arm} %%{power64} +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.37 t5551.25" +%endif +# endif aarch64 %%{arm} %%{power64} -%ifarch %{power64} -# Skip tests which fail on ppc +%if 0%{?rhel} == 8 && "%{_arch}" == "s390x" +# Skip tests which fail on s390x on rhel-8 # -# t9115-git-svn-dcommit-funky-renames is disabled because it frequently fails. -# The port it uses (9115) is already in use. It is unclear if this is -# due to an issue in the test suite or a conflict with some other process on -# the build host. It only appears to occur on ppc-arches. -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" -%endif # %%{power64} +# 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 +%if "%{_arch}" == "s390x" +# Skip tests which fail on s390x +# +# The following tests are failing on s390x. +# https://lore.kernel.org/git/4dc4c8cd-c0cc-4784-8fcf-defa3a051087@mit.edu/ +# +# t8020.16 'cross merge boundaries in blaming' +# t8020.19 'last-modified merge undoes changes' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t8020.16 t8020.19" +%endif +# endif "%{_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_tristate in the test suite) -export GIT_SVN_TEST_HTTPD=true +# 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) +export 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 +%__make -C t all || ./print-failed-test-output # Run contrib/credential/netrc tests mkdir -p contrib/credential mv netrc contrib/credential/ -make -C contrib/credential/netrc/ test || \ -make -C contrib/credential/netrc/ testverbose +%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@.service +%systemd_post git.socket %preun daemon -%systemd_preun git@.service +%systemd_preun git.socket %postun daemon -%systemd_postun_with_restart git@.service -%endif # use_systemd +%systemd_postun_with_restart git.socket %files -f bin-man-doc-git-files -%if %{emacs_filesystem} -%{elispdir} -%endif # emacs_filesystem %{_datadir}/git-core/contrib/diff-highlight -%{_datadir}/git-core/contrib/hooks/multimail -%{_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! @@ -842,66 +936,58 @@ rmdir --ignore-fail-on-non-empty "$testdir" %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/multimail -%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} +%{bash_completions_dir}/git %{_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 # rhel <= 7 -%{_pkgdocdir}/contrib/hooks +%endif +# endif rhel <= 7 + +%if %{with libsecret} +%files credential-libsecret +%{gitexecdir}/git-credential-libsecret +%endif +# endif with libsecret %if %{with cvs} %files cvs -%{_pkgdocdir}/*git-cvs*.txt +%{_pkgdocdir}/*git-cvs*.adoc %{_bindir}/git-cvsserver %{gitexecdir}/*cvs* %{?with_docs:%{_mandir}/man1/*cvs*.1*} %{?with_docs:%{_pkgdocdir}/*git-cvs*.html} -%endif # with cvs +%endif +# endif with cvs %files daemon -%{_pkgdocdir}/git-daemon*.txt -%if %{use_systemd} +%{_pkgdocdir}/git-daemon*.adoc %{_unitdir}/git.socket -%{_unitdir}/git@.service -%else -%config(noreplace)%{_sysconfdir}/xinetd.d/git -%endif # use_systemd +%config(noreplace) %{_unitdir}/git@.service %{gitexecdir}/git-daemon %{_localstatedir}/lib/git %{?with_docs:%{_mandir}/man1/git-daemon*.1*} %{?with_docs:%{_pkgdocdir}/git-daemon*.html} -%if ! %{emacs_filesystem} -%files -n emacs-git -%{_pkgdocdir}/contrib/emacs/README -%{elispdir} -%endif # ! emacs_filesystem - %files email -%{_pkgdocdir}/*email*.txt +%{_pkgdocdir}/*email*.adoc %{gitexecdir}/*email* %{?with_docs:%{_mandir}/man1/*email*.1*} %{?with_docs:%{_pkgdocdir}/*email*.html} %files -n gitk -%{_pkgdocdir}/*gitk*.txt +%{_pkgdocdir}/*gitk*.adoc %{_bindir}/*gitk* %{_datadir}/gitk +%{bash_completions_dir}/gitk %{?with_docs:%{_mandir}/man1/*gitk*.1*} %{?with_docs:%{_pkgdocdir}/*gitk*.html} %files -n gitweb %{_pkgdocdir}/*.gitweb -%{_pkgdocdir}/gitweb*.txt +%{_pkgdocdir}/gitweb*.adoc %{?with_docs:%{_mandir}/man1/gitweb.1*} %{?with_docs:%{_mandir}/man5/gitweb.conf.5*} %{?with_docs:%{_pkgdocdir}/gitweb*.html} @@ -914,17 +1000,16 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{gitexecdir}/git-citool %{_datadir}/applications/*git-gui.desktop %{_datadir}/git-gui/ -%{_pkgdocdir}/git-gui.txt -%{_pkgdocdir}/git-citool.txt +%{_pkgdocdir}/git-gui.adoc +%{_pkgdocdir}/git-citool.adoc %{?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 +%{_pkgdocdir}/git-instaweb.adoc %{?with_docs:%{_mandir}/man1/git-instaweb.1*} %{?with_docs:%{_pkgdocdir}/git-instaweb.html} @@ -932,10 +1017,11 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files p4 %{gitexecdir}/*p4* %{gitexecdir}/mergetools/p4merge -%{_pkgdocdir}/*p4*.txt +%{_pkgdocdir}/*p4*.adoc %{?with_docs:%{_mandir}/man1/*p4*.1*} %{?with_docs:%{_pkgdocdir}/*p4*.html} -%endif # with p4 +%endif +# endif with p4 %files -n perl-Git -f perl-git-files %{?with_docs:%{_mandir}/man3/Git.3pm*} @@ -944,395 +1030,390 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files subtree %{gitexecdir}/git-subtree -%{_pkgdocdir}/git-subtree.txt +%{_pkgdocdir}/git-subtree.adoc %{?with_docs:%{_mandir}/man1/git-subtree.1*} %{?with_docs:%{_pkgdocdir}/git-subtree.html} %files svn %{gitexecdir}/git-svn -%{_pkgdocdir}/git-svn.txt +%{_pkgdocdir}/git-svn.adoc %{?with_docs:%{_mandir}/man1/git-svn.1*} %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog -* Sun Feb 24 2019 Todd Zullinger - 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 +* Thu Nov 20 2025 Ondřej Pohořelský - 2.52.0-1 +- update to 2.52.0 -* Tue Feb 19 2019 Todd Zullinger - 2.21.0-0.2.rc2 -- Update to 2.21.0.rc2 +* Thu Oct 23 2025 Ondřej Pohořelský - 2.51.1-1 +- update to 2.51.1 -* Fri Feb 15 2019 Todd Zullinger -- Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility +* Sun Oct 12 2025 Yaakov Selkowitz - 2.51.0-3 +- Revbump for tcl/tk 9 -* Wed Feb 13 2019 Todd Zullinger - 2.21.0-0.1.rc1 -- Update to 2.21.0.rc1 +* Thu Aug 21 2025 Ondřej Pohořelský - 2.51.0-2 +- exclude sample hook files from automatic dependency detection -* Thu Feb 07 2019 Todd Zullinger - 2.21.0-0.0.rc0 -- Update to 2.21.0.rc0 -- Remove %%changelog entries prior to 2017 +* Wed Aug 20 2025 Ondřej Pohořelský - 2.51.0-1 +- update to 2.51.0 -* Thu Jan 31 2019 Todd Zullinger - 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 +* Wed Jul 23 2025 Fedora Release Engineering - 2.50.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild -* Thu Jan 31 2019 Fedora Release Engineering - 2.20.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild +* Tue Jul 08 2025 Ondřej Pohořelský - 2.50.1-1 +- update to 2.50.1 -* Sat Dec 15 2018 Todd Zullinger - 2.20.1-1 -- Update to 2.20.1 +* Mon Jun 23 2025 Ondřej Pohořelský - 2.50.0-1 +- update to 2.50.0 -* Sun Dec 09 2018 Todd Zullinger - 2.20.0-1 -- Update to 2.20.0 +* Mon Mar 24 2025 Ondřej Pohořelský - 2.49.0-2 +- add the option to sanitize sideband channel messages -* Sat Dec 01 2018 Todd Zullinger - 2.20.0-0.2.rc2 -- Update to 2.20.0.rc2 +* Mon Mar 17 2025 Ondřej Pohořelský - 2.49.0-1 +- update to 2.49.0 -* Wed Nov 21 2018 Todd Zullinger - 2.20.0-0.1.rc1 -- Update to 2.20.0.rc1 +* Thu Feb 6 2025 Yanko Kaneti - 2.48.1-3 +- Keep gitk on tcl/tk 8.x until its ready for 9 -* Wed Nov 21 2018 Todd Zullinger - 2.19.2-1 -- Update to 2.19.2 +* Thu Jan 16 2025 Fedora Release Engineering - 2.48.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild -* Tue Oct 23 2018 Todd Zullinger -- 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 +* Wed Jan 15 2025 Ondřej Pohořelský - 2.48.1-1 +- update to 2.48.1 -* Mon Oct 22 2018 Pavel Cahyna - 2.19.1-2 -- Update condition for the t5540-http-push-webdav test for future RHEL +* Mon Jan 13 2025 Ondřej Pohořelský - 2.48.0-1 +- update to 2.48.0 -* Fri Oct 05 2018 Todd Zullinger - 2.19.1-1 -- Update to 2.19.1 (CVE-2018-17456) +* Mon Nov 25 2024 Ondřej Pohořelský - 2.47.1-1 +- update to 2.47.1 -* Mon Sep 10 2018 Todd Zullinger - 2.19.0-1 -- Update to 2.19.0 +* Tue Oct 08 2024 Ondřej Pohořelský - 2.47.0-1 +- update to 2.47.0 -* Fri Sep 07 2018 Todd Zullinger - 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 +* Tue Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 +- update to 2.46.2 -* Thu Sep 06 2018 Sebastian Kisela - 2.19.0-0.4.rc2 -- Move instaweb to a separate subpackage -- Fix builds without docs and without cvs and/or p4 +* Mon Sep 16 2024 Ondřej Pohořelský - 2.46.1-1 +- update to 2.46.1 -* Tue Sep 04 2018 Todd Zullinger - 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 +* Mon Aug 05 2024 Ondřej Pohořelský - 2.46.0-1 +- update to 2.46.0 -* Tue Sep 04 2018 Nils Philippsen - 2.19.0-0.2.rc1 -- obsolete git-p4 if it's disabled +* Thu Jul 18 2024 Fedora Release Engineering - 2.45.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild -* Tue Aug 28 2018 Todd Zullinger - 2.19.0-0.1.rc1 -- Update to 2.19.0.rc1 +* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-2 +- add glibc-utils BuildRequires -* Mon Aug 20 2018 Todd Zullinger - 2.19.0-0.0.rc0 -- Update to 2.19.0.rc0 +* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-1 +- update to 2.45.2 -* Mon Aug 20 2018 Todd Zullinger - 2.18.0-2.5 -- Remove git-remote-testsvn, make git-svn noarch -- Restore fixed contrib/credential/netrc tests +* Wed May 15 2024 Ondřej Pohořelský - 2.45.1-1 +- update to 2.45.1 -* Fri Jul 13 2018 Fedora Release Engineering - 2.18.0-2.4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild +* Tue Apr 30 2024 Ondřej Pohořelský - 2.45.0-1 +- update to 2.45.0 -* Tue Jul 03 2018 Petr Pisar - 2.18.0-2.3 -- Perl 5.28 rebuild +* Mon Feb 26 2024 Ondřej Pohořelský - 2.44.0-1 +- update to 2.44.0 -* Sun Jul 01 2018 Jitka Plesnikova - 2.18.0-2.2 -- Perl 5.28 re-rebuild of bootstrapped packages +* Thu Feb 15 2024 Ondřej Pohořelský - 2.43.2-1 +- update to 2.43.2 +- Resolves: #2264318 -* Fri Jun 29 2018 Jitka Plesnikova - 2.18.0-2.1 -- Perl 5.28 rebuild +* Mon Feb 12 2024 Ondřej Pohořelský - 2.43.1-1 +- update to 2.43.1 +- resolves: #2263575 -* Mon Jun 25 2018 Pavel Cahyna - 2.18.0-2 -- Fix build --without cvs +* Wed Jan 24 2024 Fedora Release Engineering - 2.43.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed Jun 20 2018 Todd Zullinger - 2.18.0-1 -- Update to 2.18.0 +* Fri Jan 19 2024 Fedora Release Engineering - 2.43.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Tue Jun 19 2018 Miro Hrončok - 2.18.0-0.3.rc2 -- Rebuilt for Python 3.7 +* Tue Nov 21 2023 Ondřej Pohořelský - 2.43.0-1 +- update to 2.43.0 -* Wed Jun 13 2018 Todd Zullinger - 2.18.0-0.2.rc2 -- Update to 2.18.0-rc2 -- Apply upstream zlib buffer handling patch (#1582555) +* Tue Nov 14 2023 Ondřej Pohořelský - 2.42.1-1 +- update to 2.42.1 -* Wed Jun 06 2018 Todd Zullinger -- Include git-contacts, SubmittingPatches suggests it to users -- Build git-subtree docs in %%build +* Wed Nov 1 2023 Joe Orton - 2.42.0-2 +- remove explicit BR for apr-util-bdb (#2247532) -* Mon Jun 04 2018 Todd Zullinger - 2.18.0-0.1.rc1 -- Update to 2.18.0-rc1 -- Drop flaky & out-of-place netrc credential helper tests +* Tue Oct 03 2023 Ondřej Pohořelský - 2.42.0-1 +- update to 2.42.0 -* Fri Jun 01 2018 Todd Zullinger - 2.18.0-0.0.rc0.1 -- add -p: fix counting empty context lines in edited patches +* Wed Jul 19 2023 Fedora Release Engineering - 2.41.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Wed May 30 2018 Todd Zullinger - 2.18.0-0.0.rc0 -- Update to 2.18.0-rc0 -- Use new INSTALL_SYMLINKS setting +* Thu Jun 01 2023 Todd Zullinger - 2.41.0-1 +- update to 2.41.0 -* Wed May 30 2018 Todd Zullinger - 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 +* Wed May 24 2023 Todd Zullinger - 2.41.0~rc2-1 +- update to 2.41.0-rc2 -* Tue May 29 2018 Todd Zullinger - 2.17.1-2 -- packfile: Correct zlib buffer handling (#1582555) +* Fri May 19 2023 Todd Zullinger - 2.41.0~rc1-1 +- update to 2.41.0-rc1 -* Tue May 29 2018 Todd Zullinger - 2.17.1-1 -- Update to 2.17.1 (CVE-2018-11233, CVE-2018-11235) +* Mon May 15 2023 Todd Zullinger - 2.41.0~rc0-1 +- update to 2.41.0-rc0 -* Thu May 24 2018 Todd Zullinger - 2.17.0-4 -- Fix segfault in rev-parse with invalid input (#1581678) -- Move TEST_SHELL_PATH setting to config.mak +* Fri May 12 2023 Todd Zullinger - 2.40.1-2 +- use tilde versioning for release candidates -* Mon Apr 16 2018 Todd Zullinger - 2.17.0-3 -- Move linkcheck macro to existing fedora/rhel > 7 block -- Re-enable t5000-tar-tree.sh test on f28 +* Tue Apr 25 2023 Todd Zullinger - 2.40.1-1 +- update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007) -* Fri Apr 13 2018 Pavel Cahyna -- Use BuildRequires: perl-interpreter per the packaging guidelines -- Update conditions for future RHEL +* Mon Mar 13 2023 Todd Zullinger - 2.40.0-1 +- update to 2.40.0 -* Tue Apr 10 2018 Todd Zullinger - 2.17.0-2 -- Require perl-generators on EL > 7 +* Tue Mar 07 2023 Todd Zullinger - 2.40.0-0.2.rc2 +- update to 2.40.0-rc2 -* Mon Apr 09 2018 Todd Zullinger -- daemon: use --log-destination=stderr with systemd -- daemon: fix condition for redirecting stderr -- git-svn: avoid uninitialized value warning +* Wed Mar 01 2023 Todd Zullinger - 2.40.0-0.1.rc1 +- update to 2.40.0-rc1 -* Sun Apr 08 2018 Todd Zullinger -- Clean up redundant and unneeded Requires +* Fri Feb 24 2023 Todd Zullinger - 2.40.0-0.0.rc0 +- update to 2.40.0-rc0 -* Sat Apr 07 2018 Todd Zullinger -- Remove Git::LoadCPAN to ensure we use only system perl modules +* Tue Feb 14 2023 Todd Zullinger - 2.39.2-1 +- update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) -* Mon Apr 02 2018 Todd Zullinger -- Allow git-p4 subpackage to be toggled via --with/--without -- Use %%bcond_(with|without) to enable/disable python3 -- Add support for disabling python2 +* Fri Feb 03 2023 Todd Zullinger - 2.39.1-2 +- drop perl Email::Valid dep on RHEL (#2166718) -* Mon Apr 02 2018 Todd Zullinger - 2.17.0-1 -- Update to 2.17.0 +* Thu Jan 19 2023 Fedora Release Engineering - 2.39.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild -* Wed Mar 28 2018 Todd Zullinger - 2.17.0-0.2.rc2 -- Update to 2.17.0-rc2 +* Tue Jan 17 2023 Todd Zullinger - 2.39.1-1 +- update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) -* Tue Mar 27 2018 Todd Zullinger -- Allow cvs subpackage to be toggled via --with/--without +* Mon Dec 12 2022 Todd Zullinger - 2.39.0-1 +- update to 2.39.0 -* Tue Mar 27 2018 Joe Orton -- Disable CVS support on EL > 7 +* Mon Dec 05 2022 Todd Zullinger - 2.39.0-0.2.rc2 +- update to 2.39.0-rc2 -* Tue Mar 27 2018 Todd Zullinger - 2.17.0-0.1.rc1.2 -- Add missing perl(Mail::Address) requirement (#1561086) +* Wed Nov 30 2022 Todd Zullinger - 2.39.0-0.1.rc1 +- update to 2.39.0-rc1 -* Thu Mar 22 2018 Todd Zullinger - 2.17.0-0.1.rc1.1 -- Drop .py extension from contrib/hooks/multimail/git_multimail.py -- Remove unnecessary "chmod +x contrib/hooks/*" +* Wed Nov 23 2022 Todd Zullinger - 2.39.0-0.0.rc0 +- update to 2.39.0-rc0 +- add mod_http2 BuildRequires for tests -* Wed Mar 21 2018 Todd Zullinger - 2.17.0-0.1.rc1 -- Update to 2.17.0-rc1 +* Sat Nov 12 2022 Todd Zullinger - 2.38.1-3 +- use %%bash_completions_dir -* Fri Mar 16 2018 Todd Zullinger -- Add findutils BuildRequires, improve 'find | xargs' calls +* Mon Nov 07 2022 Todd Zullinger - 2.38.1-2 +- don't ship contrib/persistent-https as documentation +- update license data and convert to SPDX format -* Thu Mar 15 2018 Todd Zullinger - 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) +* Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 +- update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) -* Thu Mar 15 2018 Todd Zullinger -- Use symlinks instead of hardlinks for installed binaries +* Mon Oct 03 2022 Todd Zullinger - 2.38.0-1 +- update to 2.38.0 -* Fri Feb 23 2018 Todd Zullinger -- Improve hardening flags for EL-6 & EL-7 +* Wed Sep 28 2022 Todd Zullinger - 2.38.0-0.2.rc2 +- update to 2.38.0-rc2 -* Fri Feb 16 2018 Todd Zullinger - 2.16.2-1 -- Update to 2.16.2 -- Add gawk, gcc, make, and sed BuildRequires +* Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 +- update to 2.38.0-rc1 +- git-subtree sub-package is noarch -* Wed Feb 07 2018 Todd Zullinger - 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 +* Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 +- update to 2.38.0-rc0 -* Wed Feb 07 2018 Fedora Release Engineering - 2.16.1-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild +* Tue Aug 30 2022 Todd Zullinger - 2.37.3-1 +- update to 2.37.3 +- remove %%changelog entries prior to 2020 +- tests: try harder to find open ports for apache, git, and svn -* Mon Jan 29 2018 Todd Zullinger - 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 - 2.16.1-1 -- Update to 2.16.1 -- Avoid python dependency in git-core (#1536471) - -* Thu Jan 18 2018 Todd Zullinger - 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 +* Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 +- consolidate git-archimport removal in %%prep -* Fri Jan 12 2018 Todd Zullinger -- Add %%{emacs_filesystem} to simplify emacs support -- Use .in template for git@.service to ensure paths are substituted +* Thu Aug 11 2022 Todd Zullinger - 2.37.2-1 +- update to 2.37.2 -* Thu Jan 11 2018 Todd Zullinger -- Update BuildRequires for tests +* Sat Jul 23 2022 Todd Zullinger - 2.37.1-2 +- require systemd-rpm-macros rather than systemd -* Mon Jan 08 2018 Todd Zullinger -- Avoid excluding non-existent .py[co] files in %%doc -- Remove obsolete gnome-keyring credential helper +* Thu Jul 21 2022 Fedora Release Engineering - 2.37.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -* Sun Jan 07 2018 Todd Zullinger -- Explicitly enable tests which may be skipped opportunistically +* Tue Jul 12 2022 Todd Zullinger - 2.37.1-1 +- update to 2.37.1 (CVE-2022-29187) -* Sat Dec 30 2017 Todd Zullinger -- Fix perl requires filtering on EL-6 +* Mon Jun 27 2022 Todd Zullinger - 2.37.0-1 +- update to 2.37.0 -* Thu Nov 30 2017 Todd Zullinger - 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 Jun 22 2022 Todd Zullinger - 2.37.0-0.2.rc2 +- update to 2.37.0-rc2 -* Wed Nov 29 2017 Todd Zullinger - 2.15.1-2 -- Fix debuginfo for gnome-keyring and libsecret credential helpers - -* Tue Nov 28 2017 Todd Zullinger - 2.15.1-1 -- Update to 2.15.1 - -* Tue Nov 21 2017 Todd Zullinger -- Add tcl/tk BuildRequires -- Enable support for release candidate builds - -* Tue Nov 07 2017 Todd Zullinger - 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 - 2.15.0-1 -- Update to 2.15.0 - -* Mon Oct 23 2017 Todd Zullinger - 2.14.3-1 -- Update to 2.14.3 - -* Tue Sep 26 2017 Todd Zullinger - 2.14.2-2 -- Update to 2.14.2 - -* Thu Aug 10 2017 Todd Zullinger - 2.14.1-2 -- Rebuild for rpm-4.14 bug (#1480407) - -* Thu Aug 10 2017 Todd Zullinger - 2.14.1-1 -- Update to 2.14.1 (resolves CVE-2017-1000117) - -* Tue Aug 08 2017 Iryna Shcherbina - 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 - 2.14.0-1 -- Update to 2.14.0 -- Use pcre2 library -- git-p4: explicitly require python2 - -* Tue Aug 01 2017 Todd Zullinger - 2.13.4-1 -- Update to 2.13.4 -- Remove EL-5 and old Fedora conditionals - -* Sun Jul 30 2017 Florian Weimer - 2.13.3-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Thu Jul 20 2017 Petr Stodulka - 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 - 2.13.3-1 -- Update to 2.13.3 - -* Sun Jun 25 2017 Todd Zullinger - 2.13.2-1 -- Update to 2.13.2 -- Skip grep tests which fail intermittently on s390x - -* Wed Jun 07 2017 Jitka Plesnikova - 2.13.1-2 -- Perl 5.26 re-rebuild of bootstrapped packages - -* Mon Jun 05 2017 Todd Zullinger - 2.13.1-1 -- Update to 2.13.1 - -* Sun Jun 04 2017 Jitka Plesnikova - 2.13.0-3 -- Perl 5.26 rebuild - -* Wed May 17 2017 Todd Zullinger - 2.13.0-2 -- Use default, collision-detecting SHA1 implementation - -* Tue May 09 2017 Todd Zullinger - 2.13.0-1 -- Update to 2.13.0 (resolves CVE-2017-8386) - -* Wed Mar 29 2017 Gwyn Ciesla - 2.12.2-1 -- Update to 2.12.2 - -* Tue Mar 21 2017 Gwyn Ciesla - 2.12.1-1 -- Update to 2.12.1 - -* Mon Feb 27 2017 Jon Ciesla - 2.12.0-1 -- Update to 2.12.0 - -* Fri Feb 17 2017 Petr Stodulka - 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 - 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 - 2.11.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Feb 03 2017 Jon Ciesla - 2.11.1-1 -- Update to 2.11.1 +* Fri Jun 17 2022 Todd Zullinger - 2.37.0-0.1.rc1 +- update to 2.37.0-rc1 + +* Tue Jun 14 2022 Todd Zullinger - 2.37.0-0.0.rc0 +- update to 2.37.0-rc0 +- fix GIT_SKIP_TESTS for EL8 s390x +- remove --with/--without emacs build conditional + +* Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 +- Perl 5.36 re-rebuild of bootstrapped packages + +* Wed Jun 01 2022 Jitka Plesnikova - 2.36.1-1.1 +- Perl 5.36 rebuild + +* Fri May 06 2022 Todd Zullinger - 2.36.1-1 +- update to 2.36.1 + +* Mon Apr 18 2022 Todd Zullinger - 2.36.0-1 +- update to 2.36.0 + +* Thu Apr 14 2022 Todd Zullinger - 2.36.0-0.3.rc2 +- usability improvements on top of CVE-2022-24765 + +* Wed Apr 13 2022 Todd Zullinger - 2.36.0-0.2.rc2 +- update to 2.36.0-rc2 (CVE-2022-24765) +- disable failing tests on s390x on EL8 + +* Fri Apr 08 2022 Todd Zullinger - 2.36.0-0.1.rc1 +- update to 2.36.0-rc1 + +* Tue Apr 05 2022 Todd Zullinger - 2.36.0-0.0.rc0 +- update to 2.36.0-rc0 +- use httpd-core for tests on Fedora >= 37 + +* Sat Jan 29 2022 Todd Zullinger - 2.35.1-1 +- update to 2.35.1 + +* Mon Jan 24 2022 Todd Zullinger - 2.35.0-1 +- update to 2.35.0 +- set path to linker script in %%_package_note_file + +* Sat Jan 22 2022 Todd Zullinger - 2.35.0-0.2.rc2.3 +- remove contrib/scalar to avoid cruft in git-core-doc + +* Fri Jan 21 2022 Todd Zullinger - 2.35.0-0.2.rc2.2 +- fix compilation on EL7 + +* Thu Jan 20 2022 Todd Zullinger - 2.35.0-0.2.rc2.1 +- checkout: avoid BUG() when hitting a broken repository (rhbz#2042920) + +* Wed Jan 19 2022 Todd Zullinger - 2.35.0-0.2.rc2 +- update to 2.35.0-rc2 + +* Sat Jan 15 2022 Todd Zullinger - 2.35.0-0.1.rc1 +- update to 2.35.0-rc1 + +* Mon Jan 10 2022 Todd Zullinger - 2.35.0-0.0.rc0 +- update to 2.35.0-rc0 + +* Thu Nov 25 2021 Todd Zullinger - 2.34.1-1 +- update to 2.34.1 +- fix gpgsm issues with gnupg-2.3 + +* Mon Nov 15 2021 Todd Zullinger - 2.34.0-1 +- update to 2.34.0 + +* Sun Nov 14 2021 Todd Zullinger - 2.33.1-3 +- add more git-email perl dependencies +- Resolves: rhbz#2020487 + +* Thu Nov 11 2021 Ondřej Pohořelský - 2.33.1-2 +- add Perl requires to git-email +- Resolves: rhbz#2020487 + +* Wed Oct 13 2021 Todd Zullinger - 2.33.1-1 +- update to 2.33.1 + +* Mon Sep 27 2021 Ondřej Pohořelský - 2.33.0-1 +- update to 2.33.0 +- contrib/hooks/multimail is no longer distributed with git + +* Tue Sep 14 2021 Sahana Prasad - 2.32.0-1.2 +- Rebuilt with OpenSSL 3.0.0 + +* Thu Jul 22 2021 Fedora Release Engineering - 2.32.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun Jun 06 2021 Todd Zullinger - 2.32.0-1 +- update to 2.32.0 +- add perl(File::Compare) BuildRequires +- fix var to enable git-svn tests with httpd +- remove %%changelog entries prior to 2019 + +* Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 +- drop jgit on Fedora >= 35 + Resolves: rhbz#1965808 + +* Wed Jun 02 2021 Todd Zullinger - 2.32.0-0.4.rc3 +- update to 2.32.0-rc3 + +* Fri May 28 2021 Todd Zullinger - 2.32.0-0.3.rc2 +- update to 2.32.0-rc2 + +* Mon May 24 2021 Jitka Plesnikova - 2.32.0-0.2.rc1 +- Perl 5.34 re-rebuild of bootstrapped packages + +* Sat May 22 2021 Todd Zullinger - 2.32.0-0.1.rc1 +- update to 2.32.0-rc1 +- rearrange python2/python3 conditionals +- re-enable git-p4 with python3 +- add coreutils BuildRequires +- remove unneeded NEEDS_CRYPTO_WITH_SSL + +* Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 +- Perl 5.34 rebuild + +* Mon May 17 2021 Todd Zullinger - 2.32.0-0.0.rc0 +- update to 2.32.0-rc0 + +* Sun May 16 2021 Todd Zullinger +- clean up various dist conditionals + +* Wed Apr 21 2021 Todd Zullinger - 2.31.1-3 +- apply upstream patch to fix clone --bare segfault + Resolves: rhbz#1952030 + +* Tue Apr 06 2021 Todd Zullinger - 2.31.1-2 +- remove two stray %%defattr macros from %%files sections + +* Sat Mar 27 2021 Todd Zullinger - 2.31.1-1 +- update to 2.31.1 + +* Fri Mar 19 2021 Todd Zullinger - 2.31.0-2 +- fix git bisect with annotaged tags + +* Mon Mar 15 2021 Todd Zullinger - 2.31.0-1 +- update to 2.31.0 + +* Tue Mar 09 2021 Todd Zullinger - 2.31.0-0.2.rc2 +- update to 2.31.0-rc2 + +* Wed Mar 03 2021 Todd Zullinger - 2.31.0-0.1.rc1 +- update to 2.31.0-rc1 + +* Tue Mar 02 2021 Todd Zullinger - 2.31.0-0.0.rc0 +- update to 2.31.0-rc0 + +* Tue Mar 02 2021 Todd Zullinger - 2.30.1-3 +- use %%{gpgverify} macro to verify tarball signature + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 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ý +- re-enable t7812-grep-icase-non-ascii on s390x + +* Tue Feb 09 2021 Todd Zullinger - 2.30.1-1 +- update to 2.30.1 + +* Mon Feb 08 2021 Ondřej Pohořelský - 2.30.0-2 +- add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb + +* Tue Jan 26 2021 Fedora Release Engineering - 2.30.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/gpgkey-junio.asc b/gpgkey-junio.asc index 032428d..5edb58f 100644 --- a/gpgkey-junio.asc +++ b/gpgkey-junio.asc @@ -59,108 +59,86 @@ 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 -=z4yI +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 +=7hTI -----END PGP PUBLIC KEY BLOCK----- diff --git a/print-failed-test-output b/print-failed-test-output index d0d63aa..4e65662 100644 --- a/print-failed-test-output +++ b/print-failed-test-output @@ -10,4 +10,17 @@ for exit_file in t/test-results/*.exit; do printf '\n%s\n%s\n%s\n' "$sep" "$out_file" "$sep" cat "$out_file" done + +# tar up test-results & $testdir, then print base64 encoded output +# +# copy $testdir contents to test-results to avoid absolute paths with tar +cp -a $testdir/* t/test-results/ +begin='-----BEGIN BASE64 MESSAGE-----' +end='-----END BASE64 MESSAGE-----' +printf '\n%s\n' 'test-results and trash directory output follows; decode via:' +printf '%s\n' "sed -n '/^${begin}$/,/^${end}$/{/^${begin}$/!{/^${end}$/!p}}' build.log | base64 -d >output.tar.zst" +printf '%s\n' "$begin" +tar -C t -cf - test-results/ | zstdmt -17 | base64 +printf '%s\n' "$end" + exit 1 diff --git a/sources b/sources index 985255b..4a04f56 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.21.0.tar.xz) = 83f57c3950a07f6773a3aea66611d22daba0e5599e5d8f0751a16f6fdbeab0f3844d942a39a5642051212df99d1d4513253c36829b1454b4f0977cc6026fd973 -SHA512 (git-2.21.0.tar.sign) = fbde8164e0c6d5f1447849ab573d5fe6d3585c1c463b75a81ce3f65cba0559cb84a2c63f13663e5c7fe5119e607a304e52cb13183babc40da72421a5c1a5db1b +SHA512 (git-2.52.0.tar.xz) = 965e5ebb72d1f080d64e34bdb75f0bb1689c9dd41dcf63b020d986bad49808ac09bfb1115962bc0c5b95bac8622367ac4cd09aa89266f73d2137fe94c90dd3ed +SHA512 (git-2.52.0.tar.sign) = a5a68ce131a5763650c477ec01a4de958dd6a946bdea0f613e26bdab41d2df6b3ca63f9028bbe603bf0c834bd415c86e6c616b1ff08cc48aa7c3c61a37b24b74