diff --git a/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch b/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch new file mode 100644 index 0000000..b8bc81b --- /dev/null +++ b/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch @@ -0,0 +1,81 @@ +From 7fc363e4e64f095553e1a1ceed27caef3a33effd Mon Sep 17 00:00:00 2001 +From: "brian m. carlson" +Date: Wed, 10 Mar 2021 01:11:20 +0000 +Subject: [PATCH] builtin/init-db: handle bare clones when core.bare set to + false + +In 552955ed7f ("clone: use more conventional config/option layering", +2020-10-01), clone learned to read configuration options earlier in its +execution, before creating the new repository. However, that led to a +problem: if the core.bare setting is set to false in the global config, +cloning a bare repository segfaults. This happens because the +repository is falsely thought to be non-bare, but clone has set the work +tree to NULL, which is then dereferenced. + +The code to initialize the repository already considers the fact that a +user might want to override the --bare option for git init, but it +doesn't take into account clone, which uses a different option. Let's +just check that the work tree is not NULL, since that's how clone +indicates that the repository is bare. This is also the case for git +init, so we won't be regressing that case. + +Reported-by: Joseph Vusich +Signed-off-by: brian m. carlson +Signed-off-by: Junio C Hamano +(cherry picked from commit 75555676ad3908b0f847a9ae154c35e12114c82f) +--- + builtin/init-db.c | 4 ++-- + t/t5606-clone-options.sh | 8 ++++++++ + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/builtin/init-db.c b/builtin/init-db.c +index dcc45bef51..f82efe4aff 100644 +--- a/builtin/init-db.c ++++ b/builtin/init-db.c +@@ -212,6 +212,7 @@ static int create_default_files(const char *template_path, + int reinit; + int filemode; + struct strbuf err = STRBUF_INIT; ++ const char *work_tree = get_git_work_tree(); + + /* Just look for `init.templatedir` */ + init_db_template_dir = NULL; /* re-set in case it was set before */ +@@ -235,7 +236,7 @@ static int create_default_files(const char *template_path, + * We must make sure command-line options continue to override any + * values we might have just re-read from the config. + */ +- is_bare_repository_cfg = init_is_bare_repository; ++ is_bare_repository_cfg = init_is_bare_repository || !work_tree; + if (init_shared_repository != -1) + set_shared_repository(init_shared_repository); + +@@ -299,7 +300,6 @@ static int create_default_files(const char *template_path, + if (is_bare_repository()) + git_config_set("core.bare", "true"); + else { +- const char *work_tree = get_git_work_tree(); + git_config_set("core.bare", "false"); + /* allow template config file to override the default */ + if (log_all_ref_updates == LOG_REFS_UNSET) +diff --git a/t/t5606-clone-options.sh b/t/t5606-clone-options.sh +index 1da6ddb2c5..428b0aac93 100755 +--- a/t/t5606-clone-options.sh ++++ b/t/t5606-clone-options.sh +@@ -104,6 +104,14 @@ test_expect_success 'redirected clone -v does show progress' ' + + ' + ++test_expect_success 'clone does not segfault with --bare and core.bare=false' ' ++ test_config_global core.bare false && ++ git clone --bare parent clone-bare && ++ echo true >expect && ++ git -C clone-bare rev-parse --is-bare-repository >actual && ++ test_cmp expect actual ++' ++ + test_expect_success 'chooses correct default initial branch name' ' + GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= \ + git -c init.defaultBranch=foo init --bare empty && +-- +2.31.1 + 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 deleted file mode 100644 index 733f9c0..0000000 --- a/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch +++ /dev/null @@ -1,73 +0,0 @@ -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 deleted file mode 100644 index 37637bc..0000000 --- a/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch +++ /dev/null @@ -1,88 +0,0 @@ -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 deleted file mode 100644 index 786cb39..0000000 --- a/git-2.52-sanitize-sideband-channel-messages.patch +++ /dev/null @@ -1,275 +0,0 @@ -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 deleted file mode 100644 index 882006a..0000000 --- a/git-test-apache-davlockdbtype-config.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 8b09c35..9fd93ce 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -1,3 +1,5 @@ +from Config import * + # the dictionary is a bit limited addFilter("git.* spelling-error %description .* subpackages") addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject|subtree)") @@ -5,9 +7,6 @@ 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") -# 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") @@ -24,19 +23,5 @@ 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)") -# 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') +# we BR emacs which requires emacs-common and provides %{_emacs_version} +addFilter("git.(spec|src): .* Possible unexpanded macro in: Requires:.*emacs-filesystem >= %{_emacs_version}") diff --git a/git.skip-test-patterns b/git.skip-test-patterns index a310f5a..28a66b8 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -1,28 +1,19 @@ -^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 DONTHAVEIT -missing ([!]LONG_IS_64BIT,)?EXPENSIVE -missing FSMONITOR_DAEMON +missing EXPENSIVE 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 @@ -30,4 +21,3 @@ 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 49c55d0..76c25c7 100644 --- a/git.spec +++ b/git.spec @@ -6,6 +6,13 @@ %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 @@ -14,23 +21,15 @@ %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 +# 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 >= 8 -%if 0%{?fedora} || 0%{?rhel} >= 8 +# Settings for Fedora and EL > 7 +%if 0%{?fedora} || 0%{?rhel} > 7 %bcond_with python2 %bcond_without python3 %global gitweb_httpd_conf gitweb.conf @@ -40,27 +39,43 @@ %else %bcond_without python2 %bcond_with python3 -%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 +%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 >= 8 -%if 0%{?rhel} >= 8 +# Disable cvs subpackage by default on EL > 7 +%if 0%{?rhel} > 7 %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 p4 package by default on EL >= 10 -%if 0%{?rhel} >= 10 +# Disable by default if we lack python2 support +%if %{without python2} %bcond_with p4 %else %bcond_without p4 @@ -71,27 +86,23 @@ %global _hardened_build 1 %endif -# Define %%bash_completions_dir for EL <= 9 -%{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} +# 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}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld +# Define for release candidates +#global rcrev .rc0 Name: git -Version: 2.52.0 -Release: 1%{?dist} +Version: 2.31.1 +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System -License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT +License: GPLv2 URL: https://git-scm.com/ - -# 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 +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. @@ -118,30 +129,14 @@ 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 +# https://bugzilla.redhat.com/1952030 +# https://lore.kernel.org/git/D99DD9AD-54E5-4357-BA50-8B9CAE23084E@amazon.com/ +# https://github.com/git/git/commit/75555676ad +Patch1: 0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch %if %{with docs} # pod2man is needed to build Git.3pm -BuildRequires: perl-podlators +BuildRequires: %{_bindir}/pod2man %if %{with asciidoctor} BuildRequires: docbook5-style-xsl BuildRequires: rubygem-asciidoctor @@ -156,9 +151,12 @@ BuildRequires: linkchecker # endif with linkcheck %endif # endif with docs -BuildRequires: coreutils 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. @@ -170,7 +168,6 @@ BuildRequires: findutils BuildRequires: gawk BuildRequires: gcc BuildRequires: gettext -BuildRequires: glibc-utils BuildRequires: gnupg2 BuildRequires: libcurl-devel BuildRequires: make @@ -178,6 +175,7 @@ BuildRequires: openssl-devel BuildRequires: pcre2-devel BuildRequires: perl(Error) BuildRequires: perl(lib) +BuildRequires: perl(Test) %if %{use_perl_generators} BuildRequires: perl-generators %endif @@ -188,13 +186,16 @@ BuildRequires: perl-interpreter BuildRequires: perl %endif # endif use_perl_interpreter +%if %{bashcomp_pkgconfig} BuildRequires: pkgconfig(bash-completion) +%endif +# endif bashcomp_pkgconfig BuildRequires: sed -%if 0%{?fedora} || 0%{?rhel} >= 8 -BuildRequires: systemd-rpm-macros -%else +%if %{use_systemd} +# For macros BuildRequires: systemd %endif +# endif use_systemd BuildRequires: tcl BuildRequires: tk BuildRequires: xz @@ -203,15 +204,11 @@ BuildRequires: zlib-devel >= 1.2 %if %{with tests} # Test suite requirements BuildRequires: acl -%if (0%{?fedora} && 0%{?fedora} < 40) || (0%{?rhel} >= 8 && 0%{?rhel} < 10) -# Needed by t5540-http-push-webdav.sh; recent httpd obviates this +%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 +# Needed by t5540-http-push-webdav.sh BuildRequires: apr-util-bdb %endif -%if 0%{?fedora} || 0%{?rhel} >= 8 -# Needed by t5559-http-fetch-smart-http2.sh -BuildRequires: mod_http2 -%endif -# endif fedora or rhel >= 8 +# endif fedora >= 27 BuildRequires: bash %if %{with cvs} BuildRequires: cvs @@ -226,26 +223,24 @@ BuildRequires: glibc-langpack-en BuildRequires: glibc-langpack-is %endif # endif use_glibc_langpacks -%if 0%{?fedora} || 0%{?rhel} >= 9 +%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 >= 9 -%if 0%{?fedora} || 0%{?rhel} >= 8 || ( 0%{?rhel} == 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) +# endif fedora or el > 8 +%if 0%{?fedora} || 0%{?rhel} == 6 || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) BuildRequires: highlight %endif -# endif fedora or el7+ (ppc64le/x86_64) -%if 0%{?fedora} >= 37 -BuildRequires: httpd-core -%else +# endif fedora, el-6, or el7+ (ppc64le/x86_64) BuildRequires: httpd -%endif -# endif fedora >= 37 -%if 0%{?fedora} && ! ( 0%{?fedora} >= 35 || "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) +%if 0%{?fedora} && ! ( "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) BuildRequires: jgit %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) @@ -267,13 +262,12 @@ BuildRequires: perl(POSIX) BuildRequires: perl(Term::ReadLine) BuildRequires: perl(Test::More) BuildRequires: perl(Time::HiRes) -%if %{with python3} -BuildRequires: python3-devel -%else %if %{with python2} BuildRequires: python2-devel %endif # endif with python2 +%if %{with python3} +BuildRequires: python3-devel %endif # endif with python3 BuildRequires: subversion @@ -281,7 +275,6 @@ BuildRequires: subversion-perl BuildRequires: tar BuildRequires: time BuildRequires: zip -BuildRequires: zstd %endif # endif with tests @@ -293,6 +286,17 @@ Requires: perl(Term::ReadKey) # 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} @@ -342,6 +346,10 @@ Requires: perl-Git = %{version}-%{release} 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 @@ -397,7 +405,15 @@ Requires: perl(DBD::SQLite) %package daemon Summary: Git protocol daemon Requires: git-core = %{version}-%{release} -%{?systemd_requires} +%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 @@ -406,35 +422,29 @@ 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 %{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 +Requires: tk >= 8.4 %description -n gitk %{summary}. @@ -472,15 +482,7 @@ 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}. @@ -491,9 +493,7 @@ Requires: git = %{version}-%{release} 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}. @@ -501,15 +501,12 @@ 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 @@ -533,15 +530,13 @@ Requires: subversion # Verify GPG signatures xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- -%autosetup -p1 -n %{name}-%{real_version} +%autosetup -p1 -n %{name}-%{version}%{?rcrev} # Install print-failed-test-output script install -p -m 755 %{SOURCE99} print-failed-test-output -# Remove git-archimport -sed -i '/^SCRIPT_PERL += git-archimport\.perl$/d' Makefile +# Remove git-archimport from command list 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 @@ -562,27 +557,23 @@ 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 -%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} @@ -596,15 +587,24 @@ 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 -# Exclude sample hook files from automatic dependency detection -%global __requires_exclude_from ^%{_datadir}/git-core/templates/hooks/.*sample$ +%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. @@ -617,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-*.adoc Documentation/ +mv contrib/{contacts,subtree}/git-*.txt Documentation/ %build # Improve build reproducibility @@ -642,18 +642,46 @@ 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/fast-import/import-zips.py \ + contrib/hooks/multimail/git_multimail.py \ + contrib/hooks/multimail/migrate-mailhook-config \ + contrib/hooks/multimail/post-receive.example %else # Remove contrib/fast-import/import-zips.py which requires python2. rm -rf contrib/fast-import/import-zips.py %endif # endif with python2 +# The multimail hook is installed with git. Use python3 to avoid an +# unnecessary python2 dependency, if possible. Also fix contrib/hg-to-git +# while here. +%if %{with python3} +sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ + 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 +%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} @@ -677,16 +705,12 @@ 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 \) \ @@ -704,7 +728,7 @@ rm -f %{buildroot}%{gitexecdir}/mergetools/p4merge # Remove unneeded git-remote-testsvn so git-svn can be noarch rm -f %{buildroot}%{gitexecdir}/git-remote-testsvn -exclude_re="email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" +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 @@ -720,21 +744,40 @@ rm -rf %{buildroot}%{_mandir} # 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}%{bash_completions_dir}/git -ln -s git %{buildroot}%{bash_completions_dir}/gitk +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/ +# 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 \ @@ -777,7 +820,7 @@ 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 CODE_OF_CONDUCT.md README.md Documentation/*.adoc Documentation/RelNotes contrib %{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 @@ -816,94 +859,52 @@ find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker # endif with docs && with linkcheck # Tests to skip on all releases and architectures -# -# 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 +GIT_SKIP_TESTS="" %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.36 'push 2000 tags over http' +# 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" +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.35 t5551.25" %endif # endif aarch64 %%{arm} %%{power64} -%if 0%{?rhel} == 8 && "%{_arch}" == "s390x" -# Skip tests which fail on s390x on rhel-8 +%ifarch %{power64} +# Skip tests which fail on ppc # -# 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]" +# 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 -# endif rhel == 8 && arch == s390x +# endif %%{power64} -%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_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 +# (Check for variables set via test_tristate in the test suite) +export GIT_SVN_TEST_HTTPD=true 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 -export testdir=$(mktemp -d -p /tmp git-t.XXXX) +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 -C t all || ./print-failed-test-output +%__make test || ./print-failed-test-output # Run contrib/credential/netrc tests mkdir -p contrib/credential @@ -914,6 +915,7 @@ mv netrc contrib/credential/ # Clean up test dir rmdir --ignore-fail-on-non-empty "$testdir" +%if %{use_systemd} %post daemon %systemd_post git.socket @@ -922,9 +924,21 @@ rmdir --ignore-fail-on-non-empty "$testdir" %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/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! @@ -936,7 +950,13 @@ 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 -%{bash_completions_dir}/git +%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} %{_datadir}/git-core/ %files core-doc -f man-doc-files-core @@ -945,6 +965,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %exclude %{_pkgdocdir}/contrib/*/*.py[co] %endif # endif rhel <= 7 +%{_pkgdocdir}/contrib/hooks %if %{with libsecret} %files credential-libsecret @@ -954,7 +975,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %if %{with cvs} %files cvs -%{_pkgdocdir}/*git-cvs*.adoc +%{_pkgdocdir}/*git-cvs*.txt %{_bindir}/git-cvsserver %{gitexecdir}/*cvs* %{?with_docs:%{_mandir}/man1/*cvs*.1*} @@ -963,31 +984,42 @@ rmdir --ignore-fail-on-non-empty "$testdir" # endif with cvs %files daemon -%{_pkgdocdir}/git-daemon*.adoc +%{_pkgdocdir}/git-daemon*.txt +%if %{use_systemd} %{_unitdir}/git.socket -%config(noreplace) %{_unitdir}/git@.service +%{_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*.adoc +%{_pkgdocdir}/*email*.txt %{gitexecdir}/*email* %{?with_docs:%{_mandir}/man1/*email*.1*} %{?with_docs:%{_pkgdocdir}/*email*.html} %files -n gitk -%{_pkgdocdir}/*gitk*.adoc +%{_pkgdocdir}/*gitk*.txt %{_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*.adoc +%{_pkgdocdir}/gitweb*.txt %{?with_docs:%{_mandir}/man1/gitweb.1*} %{?with_docs:%{_mandir}/man5/gitweb.conf.5*} %{?with_docs:%{_pkgdocdir}/gitweb*.html} @@ -1000,8 +1032,8 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{gitexecdir}/git-citool %{_datadir}/applications/*git-gui.desktop %{_datadir}/git-gui/ -%{_pkgdocdir}/git-gui.adoc -%{_pkgdocdir}/git-citool.adoc +%{_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*} @@ -1009,7 +1041,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files instaweb %{gitexecdir}/git-instaweb -%{_pkgdocdir}/git-instaweb.adoc +%{_pkgdocdir}/git-instaweb.txt %{?with_docs:%{_mandir}/man1/git-instaweb.1*} %{?with_docs:%{_pkgdocdir}/git-instaweb.html} @@ -1017,7 +1049,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files p4 %{gitexecdir}/*p4* %{gitexecdir}/mergetools/p4merge -%{_pkgdocdir}/*p4*.adoc +%{_pkgdocdir}/*p4*.txt %{?with_docs:%{_mandir}/man1/*p4*.1*} %{?with_docs:%{_pkgdocdir}/*p4*.html} %endif @@ -1030,347 +1062,17 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files subtree %{gitexecdir}/git-subtree -%{_pkgdocdir}/git-subtree.adoc +%{_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.adoc +%{_pkgdocdir}/git-svn.txt %{?with_docs:%{_mandir}/man1/git-svn.1*} %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog -* Thu Nov 20 2025 Ondřej Pohořelský - 2.52.0-1 -- update to 2.52.0 - -* Thu Oct 23 2025 Ondřej Pohořelský - 2.51.1-1 -- update to 2.51.1 - -* Sun Oct 12 2025 Yaakov Selkowitz - 2.51.0-3 -- Revbump for tcl/tk 9 - -* Thu Aug 21 2025 Ondřej Pohořelský - 2.51.0-2 -- exclude sample hook files from automatic dependency detection - -* Wed Aug 20 2025 Ondřej Pohořelský - 2.51.0-1 -- update to 2.51.0 - -* Wed Jul 23 2025 Fedora Release Engineering - 2.50.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jul 08 2025 Ondřej Pohořelský - 2.50.1-1 -- update to 2.50.1 - -* Mon Jun 23 2025 Ondřej Pohořelský - 2.50.0-1 -- update to 2.50.0 - -* Mon Mar 24 2025 Ondřej Pohořelský - 2.49.0-2 -- add the option to sanitize sideband channel messages - -* Mon Mar 17 2025 Ondřej Pohořelský - 2.49.0-1 -- update to 2.49.0 - -* Thu Feb 6 2025 Yanko Kaneti - 2.48.1-3 -- Keep gitk on tcl/tk 8.x until its ready for 9 - -* Thu Jan 16 2025 Fedora Release Engineering - 2.48.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jan 15 2025 Ondřej Pohořelský - 2.48.1-1 -- update to 2.48.1 - -* Mon Jan 13 2025 Ondřej Pohořelský - 2.48.0-1 -- update to 2.48.0 - -* Mon Nov 25 2024 Ondřej Pohořelský - 2.47.1-1 -- update to 2.47.1 - -* Tue Oct 08 2024 Ondřej Pohořelský - 2.47.0-1 -- update to 2.47.0 - -* Tue Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 -- update to 2.46.2 - -* Mon Sep 16 2024 Ondřej Pohořelský - 2.46.1-1 -- update to 2.46.1 - -* Mon Aug 05 2024 Ondřej Pohořelský - 2.46.0-1 -- update to 2.46.0 - -* Thu Jul 18 2024 Fedora Release Engineering - 2.45.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-2 -- add glibc-utils BuildRequires - -* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-1 -- update to 2.45.2 - -* Wed May 15 2024 Ondřej Pohořelský - 2.45.1-1 -- update to 2.45.1 - -* Tue Apr 30 2024 Ondřej Pohořelský - 2.45.0-1 -- update to 2.45.0 - -* Mon Feb 26 2024 Ondřej Pohořelský - 2.44.0-1 -- update to 2.44.0 - -* Thu Feb 15 2024 Ondřej Pohořelský - 2.43.2-1 -- update to 2.43.2 -- Resolves: #2264318 - -* Mon Feb 12 2024 Ondřej Pohořelský - 2.43.1-1 -- update to 2.43.1 -- resolves: #2263575 - -* Wed Jan 24 2024 Fedora Release Engineering - 2.43.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 2.43.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Tue Nov 21 2023 Ondřej Pohořelský - 2.43.0-1 -- update to 2.43.0 - -* Tue Nov 14 2023 Ondřej Pohořelský - 2.42.1-1 -- update to 2.42.1 - -* Wed Nov 1 2023 Joe Orton - 2.42.0-2 -- remove explicit BR for apr-util-bdb (#2247532) - -* Tue Oct 03 2023 Ondřej Pohořelský - 2.42.0-1 -- update to 2.42.0 - -* Wed Jul 19 2023 Fedora Release Engineering - 2.41.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jun 01 2023 Todd Zullinger - 2.41.0-1 -- update to 2.41.0 - -* Wed May 24 2023 Todd Zullinger - 2.41.0~rc2-1 -- update to 2.41.0-rc2 - -* Fri May 19 2023 Todd Zullinger - 2.41.0~rc1-1 -- update to 2.41.0-rc1 - -* Mon May 15 2023 Todd Zullinger - 2.41.0~rc0-1 -- update to 2.41.0-rc0 - -* Fri May 12 2023 Todd Zullinger - 2.40.1-2 -- use tilde versioning for release candidates - -* Tue Apr 25 2023 Todd Zullinger - 2.40.1-1 -- update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007) - -* Mon Mar 13 2023 Todd Zullinger - 2.40.0-1 -- update to 2.40.0 - -* Tue Mar 07 2023 Todd Zullinger - 2.40.0-0.2.rc2 -- update to 2.40.0-rc2 - -* Wed Mar 01 2023 Todd Zullinger - 2.40.0-0.1.rc1 -- update to 2.40.0-rc1 - -* Fri Feb 24 2023 Todd Zullinger - 2.40.0-0.0.rc0 -- update to 2.40.0-rc0 - -* Tue Feb 14 2023 Todd Zullinger - 2.39.2-1 -- update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) - -* Fri Feb 03 2023 Todd Zullinger - 2.39.1-2 -- drop perl Email::Valid dep on RHEL (#2166718) - -* Thu Jan 19 2023 Fedora Release Engineering - 2.39.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Jan 17 2023 Todd Zullinger - 2.39.1-1 -- update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) - -* Mon Dec 12 2022 Todd Zullinger - 2.39.0-1 -- update to 2.39.0 - -* Mon Dec 05 2022 Todd Zullinger - 2.39.0-0.2.rc2 -- update to 2.39.0-rc2 - -* Wed Nov 30 2022 Todd Zullinger - 2.39.0-0.1.rc1 -- update to 2.39.0-rc1 - -* Wed Nov 23 2022 Todd Zullinger - 2.39.0-0.0.rc0 -- update to 2.39.0-rc0 -- add mod_http2 BuildRequires for tests - -* Sat Nov 12 2022 Todd Zullinger - 2.38.1-3 -- use %%bash_completions_dir - -* 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 - -* Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 -- update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) - -* Mon Oct 03 2022 Todd Zullinger - 2.38.0-1 -- update to 2.38.0 - -* Wed Sep 28 2022 Todd Zullinger - 2.38.0-0.2.rc2 -- update to 2.38.0-rc2 - -* Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 -- update to 2.38.0-rc1 -- git-subtree sub-package is noarch - -* Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 -- update to 2.38.0-rc0 - -* 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 - -* Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 -- consolidate git-archimport removal in %%prep - -* Thu Aug 11 2022 Todd Zullinger - 2.37.2-1 -- update to 2.37.2 - -* Sat Jul 23 2022 Todd Zullinger - 2.37.1-2 -- require systemd-rpm-macros rather than systemd - -* Thu Jul 21 2022 Fedora Release Engineering - 2.37.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Jul 12 2022 Todd Zullinger - 2.37.1-1 -- update to 2.37.1 (CVE-2022-29187) - -* Mon Jun 27 2022 Todd Zullinger - 2.37.0-1 -- update to 2.37.0 - -* Wed Jun 22 2022 Todd Zullinger - 2.37.0-0.2.rc2 -- update to 2.37.0-rc2 - -* 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 @@ -1417,3 +1119,602 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Tue Jan 26 2021 Fedora Release Engineering - 2.30.0-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 28 2020 Todd Zullinger - 2.30.0-1 +- update to 2.30.0 + +* Wed Dec 23 2020 Todd Zullinger - 2.30.0-0.2.rc2 +- update to 2.30.0-rc2 + +* Sat Dec 19 2020 Todd Zullinger - 2.30.0-0.1.rc1 +- update to 2.30.0-rc1 + +* Mon Dec 14 2020 Todd Zullinger - 2.30.0-0.0.rc0 +- update to 2.30.0-rc0 + +* Sun Dec 06 2020 Todd Zullinger - 2.29.2-4 +- move git-difftool to git-core, it does not require perl + +* Wed Nov 25 2020 Todd Zullinger - 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 - 2.29.2-2 +- apply upstream patch to resolve git log segfault (#1791810) + +* Thu Oct 29 2020 Todd Zullinger - 2.29.2-1 +- update to 2.29.2 + +* Sat Oct 24 2020 Todd Zullinger - 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 - 2.29.0-1 +- update to 2.29.0 + +* Thu Oct 15 2020 Todd Zullinger - 2.29.0-0.2.rc2 +- update to 2.29.0-rc2 + +* Fri Oct 09 2020 Todd Zullinger - 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 - 2.29.0-0.0.rc0 +- update to 2.29.0-rc0 + +* Mon Jul 27 2020 Todd Zullinger - 2.28.0-1 +- update to 2.28.0 + +* Mon Jul 27 2020 Fedora Release Engineering - 2.28.0-0.3.rc2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 22 2020 Todd Zullinger - 2.28.0-0.2.rc2 +- update to 2.28.0-rc2 + +* Sat Jul 18 2020 Todd Zullinger - 2.28.0-0.1.rc1 +- update to 2.28.0-rc1 + +* Thu Jul 09 2020 Todd Zullinger - 2.28.0-0.0.rc0 +- update to 2.28.0-rc0 + +* Fri Jun 26 2020 Jitka Plesnikova - 2.27.0-1.2 +- Perl 5.32 re-rebuild of bootstrapped packages + +* Tue Jun 23 2020 Jitka Plesnikova - 2.27.0-1.1 +- Perl 5.32 rebuild + +* Mon Jun 01 2020 Todd Zullinger - 2.27.0-1 +- update to 2.27.0 + +* Tue May 26 2020 Todd Zullinger - 2.27.0-0.2.rc2 +- update to 2.27.0-rc2 + +* Thu May 21 2020 Todd Zullinger - 2.27.0-0.1.rc1 +- update to 2.27.0-rc1 + +* Thu May 21 2020 Merlin Mathesius - 2.26.2-2 +- Minor conditional fixes for ELN + +* Mon Apr 20 2020 Todd Zullinger - 2.26.2-1 +- update to 2.26.2 (CVE-2020-11008) + +* Tue Apr 14 2020 Todd Zullinger - 2.26.1-1 +- update to 2.26.1 (CVE-2020-5260) + +* Sat Apr 04 2020 Todd Zullinger - 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 - 2.26.0-1.1 +- Fix string quoting for rpm >= 4.16 + +* Sun Mar 22 2020 Todd Zullinger - 2.26.0-1 +- update to 2.26.0 + +* Mon Mar 16 2020 Todd Zullinger - 2.26.0-0.3.rc2 +- update to 2.26.0-rc2 + +* Thu Mar 12 2020 Todd Zullinger - 2.26.0-0.2.rc1 +- remove s390x gcc10 workaround (#1799408) + +* Tue Mar 10 2020 Todd Zullinger - 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 - 2.26.0-0.0.rc0 +- update to 2.26.0-rc0 + +* Wed Feb 26 2020 Todd Zullinger - 2.25.1-4 +- use Asciidoctor to build documentation when possible + +* Sat Feb 22 2020 Todd Zullinger - 2.25.1-3 +- work around issue on s390x with gcc10 (#1799408) + +* Wed Feb 19 2020 Todd Zullinger - 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 - 2.25.1-1 +- update to 2.25.1 + +* Tue Jan 28 2020 Fedora Release Engineering - 2.25.0-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 14 2020 Tom Stellard - 2.25.0-2 +- Use make_build macro when running tests + +* Tue Jan 14 2020 Todd Zullinger - 2.25.0-1 +- update to 2.25.0 + +* Thu Jan 09 2020 Todd Zullinger - 2.25.0-0.2.rc2 +- update to 2.25.0-rc2 + +* Fri Jan 03 2020 Todd Zullinger - 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 - 2.25.0-0.0.rc0 +- update to 2.25.0-rc0 + +* Thu Dec 19 2019 Todd Zullinger - 2.24.1-2 +- fix git-daemon systemd scriptlets (#1785088) + +* Tue Dec 10 2019 Todd Zullinger - 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 - 2.24.0-2 +- restore jgit BR for use in tests + +* Mon Nov 04 2019 Todd Zullinger - 2.24.0-1 +- update to 2.24.0 + +* Thu Oct 31 2019 Todd Zullinger - 2.24.0-0.2.rc2 +- update to 2.24.0-rc2 + +* Sun Oct 27 2019 Todd Zullinger - 2.24.0-0.1.rc1.1 +- disable linkchecker on all EL releases + +* Thu Oct 24 2019 Todd Zullinger - 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 - 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 - 2.23.0-1 +- Update to 2.23.0 + +* Sun Aug 11 2019 Todd Zullinger - 2.23.0-0.2.rc2 +- Update to 2.23.0-rc2 + +* Fri Aug 02 2019 Todd Zullinger - 2.23.0-0.1.rc1 +- Update to 2.23.0-rc1 + +* Mon Jul 29 2019 Todd Zullinger - 2.23.0-0.0.rc0 +- Update to 2.23.0-rc0 + +* Thu Jul 25 2019 Todd Zullinger - 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 - 2.22.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 07 2019 Todd Zullinger - 2.22.0-1 +- Update to 2.22.0 + +* Tue Jun 04 2019 Jitka Plesnikova - 2.22.0-0.7.rc3 +- Perl 5.30 re-rebuild updated packages + +* Mon Jun 03 2019 Todd Zullinger - 2.22.0-0.6.rc3 +- Update to 2.22.0-rc3 + +* Sun Jun 02 2019 Jitka Plesnikova - 2.22.0-0.5.rc2 +- Perl 5.30 re-rebuild of bootstrapped packages + +* Sat Jun 01 2019 Jitka Plesnikova - 2.22.0-0.4.rc2 +- Perl 5.30 rebuild + +* Thu May 30 2019 Todd Zullinger - 2.22.0-0.3.rc2 +- Update to 2.22.0-rc1 + +* Fri May 24 2019 Todd Zullinger - 2.22.0-0.2.rc1 +- Apply upstream fixes for diff-parseopt issues on s390x + +* Sun May 19 2019 Todd Zullinger - 2.22.0-0.1.rc1 +- Update to 2.22.0-rc1 + +* Mon May 13 2019 Todd Zullinger - 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 - 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 - 2.21.0-0.2.rc2 +- Update to 2.21.0.rc2 + +* Fri Feb 15 2019 Todd Zullinger +- Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility + +* Wed Feb 13 2019 Todd Zullinger - 2.21.0-0.1.rc1 +- Update to 2.21.0.rc1 + +* Thu Feb 07 2019 Todd Zullinger - 2.21.0-0.0.rc0 +- Update to 2.21.0.rc0 +- Remove %%changelog entries prior to 2017 + +* 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 + +* Thu Jan 31 2019 Fedora Release Engineering - 2.20.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Dec 15 2018 Todd Zullinger - 2.20.1-1 +- Update to 2.20.1 + +* Sun Dec 09 2018 Todd Zullinger - 2.20.0-1 +- Update to 2.20.0 + +* Sat Dec 01 2018 Todd Zullinger - 2.20.0-0.2.rc2 +- Update to 2.20.0.rc2 + +* Wed Nov 21 2018 Todd Zullinger - 2.20.0-0.1.rc1 +- Update to 2.20.0.rc1 + +* Wed Nov 21 2018 Todd Zullinger - 2.19.2-1 +- Update to 2.19.2 + +* 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 + +* Mon Oct 22 2018 Pavel Cahyna - 2.19.1-2 +- Update condition for the t5540-http-push-webdav test for future RHEL + +* Fri Oct 05 2018 Todd Zullinger - 2.19.1-1 +- Update to 2.19.1 (CVE-2018-17456) + +* Mon Sep 10 2018 Todd Zullinger - 2.19.0-1 +- Update to 2.19.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 + +* 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 + +* 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 + +* Tue Sep 04 2018 Nils Philippsen - 2.19.0-0.2.rc1 +- obsolete git-p4 if it's disabled + +* Tue Aug 28 2018 Todd Zullinger - 2.19.0-0.1.rc1 +- Update to 2.19.0.rc1 + +* Mon Aug 20 2018 Todd Zullinger - 2.19.0-0.0.rc0 +- Update to 2.19.0.rc0 + +* 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 + +* Fri Jul 13 2018 Fedora Release Engineering - 2.18.0-2.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 03 2018 Petr Pisar - 2.18.0-2.3 +- Perl 5.28 rebuild + +* Sun Jul 01 2018 Jitka Plesnikova - 2.18.0-2.2 +- Perl 5.28 re-rebuild of bootstrapped packages + +* Fri Jun 29 2018 Jitka Plesnikova - 2.18.0-2.1 +- Perl 5.28 rebuild + +* Mon Jun 25 2018 Pavel Cahyna - 2.18.0-2 +- Fix build --without cvs + +* Wed Jun 20 2018 Todd Zullinger - 2.18.0-1 +- Update to 2.18.0 + +* Tue Jun 19 2018 Miro Hrončok - 2.18.0-0.3.rc2 +- Rebuilt for Python 3.7 + +* 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) + +* Wed Jun 06 2018 Todd Zullinger +- Include git-contacts, SubmittingPatches suggests it to users +- Build git-subtree docs in %%build + +* 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 + +* Fri Jun 01 2018 Todd Zullinger - 2.18.0-0.0.rc0.1 +- add -p: fix counting empty context lines in edited patches + +* Wed May 30 2018 Todd Zullinger - 2.18.0-0.0.rc0 +- Update to 2.18.0-rc0 +- Use new INSTALL_SYMLINKS setting + +* 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 + +* Tue May 29 2018 Todd Zullinger - 2.17.1-2 +- packfile: Correct zlib buffer handling (#1582555) + +* Tue May 29 2018 Todd Zullinger - 2.17.1-1 +- Update to 2.17.1 (CVE-2018-11233, CVE-2018-11235) + +* 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 + +* 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 + +* Fri Apr 13 2018 Pavel Cahyna +- Use BuildRequires: perl-interpreter per the packaging guidelines +- Update conditions for future RHEL + +* Tue Apr 10 2018 Todd Zullinger - 2.17.0-2 +- Require perl-generators on EL > 7 + +* 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 + +* Sun Apr 08 2018 Todd Zullinger +- Clean up redundant and unneeded Requires + +* Sat Apr 07 2018 Todd Zullinger +- Remove Git::LoadCPAN to ensure we use only system perl modules + +* 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 + +* Mon Apr 02 2018 Todd Zullinger - 2.17.0-1 +- Update to 2.17.0 + +* Wed Mar 28 2018 Todd Zullinger - 2.17.0-0.2.rc2 +- Update to 2.17.0-rc2 + +* Tue Mar 27 2018 Todd Zullinger +- Allow cvs subpackage to be toggled via --with/--without + +* Tue Mar 27 2018 Joe Orton +- Disable CVS support on EL > 7 + +* Tue Mar 27 2018 Todd Zullinger - 2.17.0-0.1.rc1.2 +- Add missing perl(Mail::Address) requirement (#1561086) + +* 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 Mar 21 2018 Todd Zullinger - 2.17.0-0.1.rc1 +- Update to 2.17.0-rc1 + +* Fri Mar 16 2018 Todd Zullinger +- Add findutils BuildRequires, improve 'find | xargs' calls + +* 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) + +* Thu Mar 15 2018 Todd Zullinger +- Use symlinks instead of hardlinks for installed binaries + +* Fri Feb 23 2018 Todd Zullinger +- Improve hardening flags for EL-6 & EL-7 + +* Fri Feb 16 2018 Todd Zullinger - 2.16.2-1 +- Update to 2.16.2 +- Add gawk, gcc, make, and sed BuildRequires + +* 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 + +* Wed Feb 07 2018 Fedora Release Engineering - 2.16.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* 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 + +* 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 Jan 11 2018 Todd Zullinger +- Update BuildRequires for tests + +* Mon Jan 08 2018 Todd Zullinger +- Avoid excluding non-existent .py[co] files in %%doc +- Remove obsolete gnome-keyring credential helper + +* Sun Jan 07 2018 Todd Zullinger +- Explicitly enable tests which may be skipped opportunistically + +* Sat Dec 30 2017 Todd Zullinger +- Fix perl requires filtering on EL-6 + +* 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 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 diff --git a/print-failed-test-output b/print-failed-test-output index 4e65662..d0d63aa 100644 --- a/print-failed-test-output +++ b/print-failed-test-output @@ -10,17 +10,4 @@ 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 4a04f56..c9311bd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.52.0.tar.xz) = 965e5ebb72d1f080d64e34bdb75f0bb1689c9dd41dcf63b020d986bad49808ac09bfb1115962bc0c5b95bac8622367ac4cd09aa89266f73d2137fe94c90dd3ed -SHA512 (git-2.52.0.tar.sign) = a5a68ce131a5763650c477ec01a4de958dd6a946bdea0f613e26bdab41d2df6b3ca63f9028bbe603bf0c834bd415c86e6c616b1ff08cc48aa7c3c61a37b24b74 +SHA512 (git-2.31.1.tar.xz) = 9aa334a3e8519700ff5d112153ec42677722980094caa9d22aa91afdb65166bd9a98fa445c0d327c428ebfa73bf4832e9b3836109a1d9319feafe3191cfd170e +SHA512 (git-2.31.1.tar.sign) = 0a721876f9869d1dc9a43e7f83f8e63a3d8fa932ff2d2e69bb98f3e314e2e9a896c2171cb6a020d6c6e929fdf1af736dbeb3f25f93fb4d359a9aaa5b859069c3