diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..88615c5 --- /dev/null +++ b/.mailmap @@ -0,0 +1,18 @@ + + + + + + +James Bowes + +Josh Boyer + + + + + + + + + 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-1.7-el5-emacs-support.patch b/git-1.7-el5-emacs-support.patch deleted file mode 100644 index 25b3c31..0000000 --- a/git-1.7-el5-emacs-support.patch +++ /dev/null @@ -1,252 +0,0 @@ -From 424058e0607b4b3c558d19633090e06e7bd2b851 Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Wed, 2 Feb 2011 21:24:44 -0500 -Subject: [PATCH] Restore vc-git.el for basic compatibility on EL-5 - -This is the vc-git.el from 1.6.4.1, the last version to include it. -Most uses will be better served by the vc-git.el which is provided by -emacs >= 22.2, but on EL-5 we don't have the luxury of a modern emacs. ---- - contrib/emacs/Makefile | 2 +- - contrib/emacs/vc-git.el | 216 +++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 217 insertions(+), 1 deletions(-) - create mode 100644 contrib/emacs/vc-git.el - -diff --git a/contrib/emacs/Makefile b/contrib/emacs/Makefile -index 24d9312..a48540a 100644 ---- a/contrib/emacs/Makefile -+++ b/contrib/emacs/Makefile -@@ -2,7 +2,7 @@ - - EMACS = emacs - --ELC = git.elc git-blame.elc -+ELC = git.elc vc-git.elc git-blame.elc - INSTALL ?= install - INSTALL_ELC = $(INSTALL) -m 644 - prefix ?= $(HOME) -diff --git a/contrib/emacs/vc-git.el b/contrib/emacs/vc-git.el -new file mode 100644 -index 0000000..b8f6be5 ---- /dev/null -+++ b/contrib/emacs/vc-git.el -@@ -0,0 +1,216 @@ -+;;; vc-git.el --- VC backend for the git version control system -+ -+;; Copyright (C) 2006 Alexandre Julliard -+ -+;; This program is free software; you can redistribute it and/or -+;; modify it under the terms of the GNU General Public License as -+;; published by the Free Software Foundation; either version 2 of -+;; the License, or (at your option) any later version. -+;; -+;; This program is distributed in the hope that it will be -+;; useful, but WITHOUT ANY WARRANTY; without even the implied -+;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -+;; PURPOSE. See the GNU General Public License for more details. -+;; -+;; You should have received a copy of the GNU General Public -+;; License along with this program; if not, write to the Free -+;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+;; MA 02111-1307 USA -+ -+;;; Commentary: -+ -+;; This file contains a VC backend for the git version control -+;; system. -+;; -+;; To install: put this file on the load-path and add GIT to the list -+;; of supported backends in `vc-handled-backends'; the following line, -+;; placed in your ~/.emacs, will accomplish this: -+;; -+;; (add-to-list 'vc-handled-backends 'GIT) -+;; -+;; TODO -+;; - changelog generation -+;; - working with revisions other than HEAD -+;; -+ -+(eval-when-compile (require 'cl)) -+ -+(defvar git-commits-coding-system 'utf-8 -+ "Default coding system for git commits.") -+ -+(defun vc-git--run-command-string (file &rest args) -+ "Run a git command on FILE and return its output as string." -+ (let* ((ok t) -+ (str (with-output-to-string -+ (with-current-buffer standard-output -+ (unless (eq 0 (apply #'call-process "git" nil '(t nil) nil -+ (append args (list (file-relative-name file))))) -+ (setq ok nil)))))) -+ (and ok str))) -+ -+(defun vc-git--run-command (file &rest args) -+ "Run a git command on FILE, discarding any output." -+ (let ((name (file-relative-name file))) -+ (eq 0 (apply #'call-process "git" nil (get-buffer "*Messages") nil (append args (list name)))))) -+ -+(defun vc-git-registered (file) -+ "Check whether FILE is registered with git." -+ (with-temp-buffer -+ (let* ((dir (file-name-directory file)) -+ (name (file-relative-name file dir))) -+ (and (ignore-errors -+ (when dir (cd dir)) -+ (eq 0 (call-process "git" nil '(t nil) nil "ls-files" "-c" "-z" "--" name))) -+ (let ((str (buffer-string))) -+ (and (> (length str) (length name)) -+ (string= (substring str 0 (1+ (length name))) (concat name "\0")))))))) -+ -+(defun vc-git-state (file) -+ "git-specific version of `vc-state'." -+ (let ((diff (vc-git--run-command-string file "diff-index" "-z" "HEAD" "--"))) -+ (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} [ADMU]\0[^\0]+\0" diff)) -+ 'edited -+ 'up-to-date))) -+ -+(defun vc-git-workfile-version (file) -+ "git-specific version of `vc-workfile-version'." -+ (let ((str (with-output-to-string -+ (with-current-buffer standard-output -+ (call-process "git" nil '(t nil) nil "symbolic-ref" "HEAD"))))) -+ (if (string-match "^\\(refs/heads/\\)?\\(.+\\)$" str) -+ (match-string 2 str) -+ str))) -+ -+(defun vc-git-symbolic-commit (commit) -+ "Translate COMMIT string into symbolic form. -+Returns nil if not possible." -+ (and commit -+ (with-temp-buffer -+ (and -+ (zerop -+ (call-process "git" nil '(t nil) nil "name-rev" -+ "--name-only" "--tags" -+ commit)) -+ (goto-char (point-min)) -+ (= (forward-line 2) 1) -+ (bolp) -+ (buffer-substring-no-properties (point-min) (1- (point-max))))))) -+ -+(defun vc-git-previous-version (file rev) -+ "git-specific version of `vc-previous-version'." -+ (let ((default-directory (file-name-directory (expand-file-name file))) -+ (file (file-name-nondirectory file))) -+ (vc-git-symbolic-commit -+ (with-temp-buffer -+ (and -+ (zerop -+ (call-process "git" nil '(t nil) nil "rev-list" -+ "-2" rev "--" file)) -+ (goto-char (point-max)) -+ (bolp) -+ (zerop (forward-line -1)) -+ (not (bobp)) -+ (buffer-substring-no-properties -+ (point) -+ (1- (point-max)))))))) -+ -+(defun vc-git-next-version (file rev) -+ "git-specific version of `vc-next-version'." -+ (let* ((default-directory (file-name-directory -+ (expand-file-name file))) -+ (file (file-name-nondirectory file)) -+ (current-rev -+ (with-temp-buffer -+ (and -+ (zerop -+ (call-process "git" nil '(t nil) nil "rev-list" -+ "-1" rev "--" file)) -+ (goto-char (point-max)) -+ (bolp) -+ (zerop (forward-line -1)) -+ (bobp) -+ (buffer-substring-no-properties -+ (point) -+ (1- (point-max))))))) -+ (and current-rev -+ (vc-git-symbolic-commit -+ (with-temp-buffer -+ (and -+ (zerop -+ (call-process "git" nil '(t nil) nil "rev-list" -+ "HEAD" "--" file)) -+ (goto-char (point-min)) -+ (search-forward current-rev nil t) -+ (zerop (forward-line -1)) -+ (buffer-substring-no-properties -+ (point) -+ (progn (forward-line 1) (1- (point)))))))))) -+ -+(defun vc-git-revert (file &optional contents-done) -+ "Revert FILE to the version stored in the git repository." -+ (if contents-done -+ (vc-git--run-command file "update-index" "--") -+ (vc-git--run-command file "checkout" "HEAD"))) -+ -+(defun vc-git-checkout-model (file) -+ 'implicit) -+ -+(defun vc-git-workfile-unchanged-p (file) -+ (let ((sha1 (vc-git--run-command-string file "hash-object" "--")) -+ (head (vc-git--run-command-string file "ls-tree" "-z" "HEAD" "--"))) -+ (and head -+ (string-match "[0-7]\\{6\\} blob \\([0-9a-f]\\{40\\}\\)\t[^\0]+\0" head) -+ (string= (car (split-string sha1 "\n")) (match-string 1 head))))) -+ -+(defun vc-git-register (file &optional rev comment) -+ "Register FILE into the git version-control system." -+ (vc-git--run-command file "update-index" "--add" "--")) -+ -+(defun vc-git-print-log (file &optional buffer) -+ (let ((name (file-relative-name file)) -+ (coding-system-for-read git-commits-coding-system)) -+ (vc-do-command buffer 'async "git" name "rev-list" "--pretty" "HEAD" "--"))) -+ -+(defun vc-git-diff (file &optional rev1 rev2 buffer) -+ (let ((name (file-relative-name file)) -+ (buf (or buffer "*vc-diff*"))) -+ (if (and rev1 rev2) -+ (vc-do-command buf 0 "git" name "diff-tree" "-p" rev1 rev2 "--") -+ (vc-do-command buf 0 "git" name "diff-index" "-p" (or rev1 "HEAD") "--")) -+ ; git-diff-index doesn't set exit status like diff does -+ (if (vc-git-workfile-unchanged-p file) 0 1))) -+ -+(defun vc-git-checkin (file rev comment) -+ (let ((coding-system-for-write git-commits-coding-system)) -+ (vc-git--run-command file "commit" "-m" comment "--only" "--"))) -+ -+(defun vc-git-checkout (file &optional editable rev destfile) -+ (if destfile -+ (let ((fullname (substring -+ (vc-git--run-command-string file "ls-files" "-z" "--full-name" "--") -+ 0 -1)) -+ (coding-system-for-read 'no-conversion) -+ (coding-system-for-write 'no-conversion)) -+ (with-temp-file destfile -+ (eq 0 (call-process "git" nil t nil "cat-file" "blob" -+ (concat (or rev "HEAD") ":" fullname))))) -+ (vc-git--run-command file "checkout" (or rev "HEAD")))) -+ -+(defun vc-git-annotate-command (file buf &optional rev) -+ ; FIXME: rev is ignored -+ (let ((name (file-relative-name file))) -+ (call-process "git" nil buf nil "blame" name))) -+ -+(defun vc-git-annotate-time () -+ (and (re-search-forward "[0-9a-f]+ (.* \\([0-9]+\\)-\\([0-9]+\\)-\\([0-9]+\\) \\([0-9]+\\):\\([0-9]+\\):\\([0-9]+\\) \\([-+0-9]+\\) +[0-9]+)" nil t) -+ (vc-annotate-convert-time -+ (apply #'encode-time (mapcar (lambda (match) (string-to-number (match-string match))) '(6 5 4 3 2 1 7)))))) -+ -+;; Not really useful since we can't do anything with the revision yet -+;;(defun vc-annotate-extract-revision-at-line () -+;; (save-excursion -+;; (move-beginning-of-line 1) -+;; (and (looking-at "[0-9a-f]+") -+;; (buffer-substring (match-beginning 0) (match-end 0))))) -+ -+(provide 'vc-git) --- -1.7.3.4 - diff --git a/git-1.8-gitweb-home-link.patch b/git-1.8-gitweb-home-link.patch deleted file mode 100644 index aeb29e0..0000000 --- a/git-1.8-gitweb-home-link.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up git-1.8.4.2/gitweb/gitweb.perl.orig git-1.8.4.2/gitweb/gitweb.perl ---- git-1.8.4.2/gitweb/gitweb.perl.orig 2013-10-28 14:17:38.000000000 -0400 -+++ git-1.8.4.2/gitweb/gitweb.perl 2013-10-29 16:49:07.302747507 -0400 -@@ -83,7 +83,7 @@ our $projectroot = "++GITWEB_PROJECTROOT - our $project_maxdepth = "++GITWEB_PROJECT_MAXDEPTH++"; - - # string of the home link on top of all pages --our $home_link_str = "++GITWEB_HOME_LINK_STR++"; -+our $home_link_str = $ENV{'SERVER_NAME'} ? "git://" . $ENV{'SERVER_NAME'} : "projects"; - - # extra breadcrumbs preceding the home link - our @extra_breadcrumbs = (); 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-infinite-loop.patch b/git-infinite-loop.patch deleted file mode 100644 index 0eae28f..0000000 --- a/git-infinite-loop.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/refs.c b/refs.c -index 67d6745..ddb9a77 100644 ---- a/refs.c -+++ b/refs.c -@@ -1422,6 +1422,7 @@ static struct ref_dir *get_loose_refs(struct ref_cache *refs) - /* We allow "recursive" symbolic refs. Only within reason, though */ - #define MAXDEPTH 5 - #define MAXREFLEN (1024) -+#define MAXRETRIES 5 - - /* - * Called by resolve_gitlink_ref_recursive() after it failed to read -@@ -1576,6 +1577,7 @@ const char *resolve_ref_unsafe(const char *refname, int resolve_flags, unsigned - struct stat st; - char *buf; - int fd; -+ int retries = 0; - - if (--depth < 0) { - errno = ELOOP; -@@ -1612,7 +1614,8 @@ const char *resolve_ref_unsafe(const char *refname, int resolve_flags, unsigned - if (S_ISLNK(st.st_mode)) { - len = readlink(path, buffer, sizeof(buffer)-1); - if (len < 0) { -- if (errno == ENOENT || errno == EINVAL) -+ if ((errno == ENOENT || errno == EINVAL) && -+ retries++ < MAXRETRIES) - /* inconsistent with lstat; retry */ - goto stat_ref; - else -@@ -1645,7 +1648,7 @@ const char *resolve_ref_unsafe(const char *refname, int resolve_flags, unsigned - */ - fd = open(path, O_RDONLY); - if (fd < 0) { -- if (errno == ENOENT) -+ if (errno == ENOENT && retries++ < MAXRETRIES) - /* inconsistent with lstat; retry */ - goto stat_ref; - else diff --git a/git-init.el b/git-init.el deleted file mode 100644 index d2a96a7..0000000 --- a/git-init.el +++ /dev/null @@ -1,5 +0,0 @@ -;; Git VC backend -(add-to-list 'vc-handled-backends 'GIT t) -(autoload 'git-status "git" "GIT mode." t) -(autoload 'git-blame-mode "git-blame" - "Minor mode for incremental blame for Git." t) 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 new file mode 100644 index 0000000..8b09c35 --- /dev/null +++ b/git.rpmlintrc @@ -0,0 +1,42 @@ +# the dictionary is a bit limited +addFilter("git.* spelling-error %description .* subpackages") +addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject|subtree)") + +# 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") + +# 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|credential-libsecret)\..*: W: no-documentation") +addFilter("perl-Git-SVN.noarch: W: no-documentation") +addFilter("git-core\..*: W: no-manual-page-for-binary") + +# nothing provides git-gnome-keyring, it's simply obsolete +# 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') diff --git a/git.skip-test-patterns b/git.skip-test-patterns new file mode 100644 index 0000000..a310f5a --- /dev/null +++ b/git.skip-test-patterns @@ -0,0 +1,33 @@ +^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 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 +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 ba54484..49c55d0 100644 --- a/git.spec +++ b/git.spec @@ -1,57 +1,97 @@ # Pass --without docs to rpmbuild if you don't want the documentation +%bcond_without docs -%global gitcoredir %{_libexecdir}/git-core +# Pass --without tests to rpmbuild if you don't want to run the tests +%bcond_without tests -# Settings for F-19+ 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 libsecret 1 -%global use_new_rpm_filters 1 -%global use_systemd 1 +%global gitexecdir %{_libexecdir}/git-core + +# Settings for Fedora +%if 0%{?fedora} +# linkchecker is not available on EL +%bcond_without linkcheck %else -%global bashcomp_pkgconfig 0 -%global bashcompdir %{_sysconfdir}/bash_completion.d -%global bashcomproot %{bashcompdir} -%global libsecret 0 -%global use_new_rpm_filters 0 -%global use_systemd 0 +%bcond_with linkcheck %endif -# gnome-keyring is deprecated, however someone would like -# to use it on older fedora instead of libsecret. So that's -# why this ugly solution -# TODO: we should maybe update conditions according to supported systems -%if ( 0%{?fedora} && 0%{?fedora} < 26 ) || 0%{?rhel} == 7 -%global gnome_keyring 1 +# Settings for Fedora >= 38 and EL >= 10 +%if 0%{?fedora} >= 38 || 0%{?rhel} >= 10 +%bcond_with perl_modcompat %else -%global gnome_keyring 0 +%bcond_without perl_modcompat %endif -# Settings for EL <= 7 -%if 0%{?rhel} && 0%{?rhel} <= 7 -%{!?__global_ldflags: %global __global_ldflags -Wl,-z,relro} -%endif - -# fallback for F17- && RHEL6- -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -%if 0%{?fedora} && 0%{?fedora} >= 25 -%global test_links 1 +# 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 -%global test_links 0 +%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 +%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 + +# Allow cvs subpackage to be toggled via --with/--without +# 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 p4 package by default on EL >= 10 +%if 0%{?rhel} >= 10 +%bcond_with p4 +%else +%bcond_without p4 +%endif + +# Hardening flags for EL-7 +%if 0%{?rhel} == 7 +%global _hardened_build 1 +%endif + +# Define %%bash_completions_dir for EL <= 9 +%{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} + +# 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.13.4 +Version: 2.52.0 Release: 1%{?dist} Summary: Fast Version Control System -License: GPLv2 -Group: Development/Tools +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/%{name}-%{version}.tar.xz -Source1: https://www.kernel.org/pub/software/scm/git/%{name}-%{version}.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. @@ -62,72 +102,208 @@ Source1: https://www.kernel.org/pub/software/scm/git/%{name}-%{version}.t # # 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 -Source10: git-init.el Source11: git.xinetd.in -Source12: git.conf.httpd -Source13: git-gui.desktop +Source12: git-gui.desktop +Source13: gitweb-httpd.conf Source14: gitweb.conf.in -Source15: git@.service +Source15: git@.service.in Source16: git.socket -Patch0: git-1.8-gitweb-home-link.patch + +# Script to print test failure output (used in %%check) +Source99: print-failed-test-output + # https://bugzilla.redhat.com/490602 -Patch1: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# 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 -%if ! 0%{?_without_docs} +# 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: 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 %{test_links} +%if %{with linkcheck} BuildRequires: linkchecker %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 -BuildRequires: pcre-devel -%if 0%{?fedora} +BuildRequires: make +BuildRequires: openssl-devel +BuildRequires: pcre2-devel +BuildRequires: perl(Error) +BuildRequires: perl(lib) +%if %{use_perl_generators} BuildRequires: perl-generators %endif -BuildRequires: perl(Test) -BuildRequires: openssl-devel -BuildRequires: zlib-devel >= 1.2 -%if %{bashcomp_pkgconfig} -BuildRequires: pkgconfig(bash-completion) +# endif use_perl_generators +%if %{use_perl_interpreter} +BuildRequires: perl-interpreter +%else +BuildRequires: perl %endif -%if %{use_systemd} -# For macros +# endif use_perl_interpreter +BuildRequires: pkgconfig(bash-completion) +BuildRequires: sed +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: systemd-rpm-macros +%else BuildRequires: systemd %endif +BuildRequires: tcl +BuildRequires: tk +BuildRequires: xz +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 +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 +BuildRequires: bash +%if %{with cvs} +BuildRequires: cvs +BuildRequires: cvsps +%endif +# endif with cvs +%if %{use_glibc_langpacks} +# glibc-all-langpacks and glibc-langpack-is are needed for GETTEXT_LOCALE and +# GETTEXT_ISO_LOCALE test prereq's, glibc-langpack-en ensures en_US.UTF-8. +BuildRequires: glibc-all-langpacks +BuildRequires: glibc-langpack-en +BuildRequires: glibc-langpack-is +%endif +# endif use_glibc_langpacks +%if 0%{?fedora} || 0%{?rhel} >= 9 +BuildRequires: gnupg2-smime +%endif +# endif fedora or el >= 9 +%if 0%{?fedora} || 0%{?rhel} >= 8 || ( 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 +BuildRequires: httpd +%endif +# endif fedora >= 37 +%if 0%{?fedora} && ! ( 0%{?fedora} >= 35 || "%{_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) +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 python3} +BuildRequires: python3-devel +%else +%if %{with python2} +BuildRequires: python2-devel +%endif +# endif with python2 +%endif +# endif with python3 +BuildRequires: subversion +BuildRequires: subversion-perl +BuildRequires: tar +BuildRequires: time +BuildRequires: zip +BuildRequires: zstd +%endif +# endif with tests Requires: git-core = %{version}-%{release} Requires: git-core-doc = %{version}-%{release} -Requires: perl(Error) %if ! %{defined perl_bootstrap} Requires: perl(Term::ReadKey) %endif +# endif ! defined perl_bootstrap Requires: perl-Git = %{version}-%{release} -%if 0%{?fedora} || 0%{?rhel} >= 7 -Requires: emacs-filesystem >= %{_emacs_version} -# These can be removed in Fedora 26 -Obsoletes: emacs-git <= 2.4.5 -Obsoletes: emacs-git-el <= 2.4.5 -Provides: emacs-git = %{version}-%{release} -Provides: emacs-git-el = %{version}-%{release} +# Obsolete git-cvs if it's disabled +%if %{without cvs} +Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release} %endif +# endif without cvs -# Obsolete git-arch -Obsoletes: git-arch < %{version}-%{release} +# Obsolete git-p4 if it's disabled +%if %{without p4} +Obsoletes: git-p4 < %{?epoch:%{epoch}:}%{version}-%{release} +%endif +# endif without p4 %description Git is a fast, scalable, distributed revision control system with an @@ -140,27 +316,32 @@ tools for integrating with other SCMs, install the git-all meta-package. %package all Summary: Meta-package to pull in all git tools -Group: Development/Tools BuildArch: noarch Requires: git = %{version}-%{release} -%if %{gnome_keyring} -Requires: git-gnome-keyring = %{version}-%{release} +%if %{with libsecret} +Requires: git-credential-libsecret = %{version}-%{release} %endif +# endif with libsecret +%if %{with cvs} Requires: git-cvs = %{version}-%{release} +%endif +# endif with cvs +Requires: git-daemon = %{version}-%{release} Requires: git-email = %{version}-%{release} Requires: git-gui = %{version}-%{release} -Requires: git-svn = %{version}-%{release} +%if %{with p4} Requires: git-p4 = %{version}-%{release} +%endif +# endif with p4 +Requires: git-subtree = %{version}-%{release} +Requires: git-svn = %{version}-%{release} +Requires: git-instaweb = %{version}-%{release} Requires: gitk = %{version}-%{release} Requires: perl-Git = %{version}-%{release} %if ! %{defined perl_bootstrap} Requires: perl(Term::ReadKey) %endif -%if 0%{?rhel} && 0%{?rhel} <= 6 -Requires: emacs-git = %{version}-%{release} -%endif -Obsoletes: git <= 1.5.4.3 - +# 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 @@ -170,7 +351,6 @@ This is a dummy package which brings in all subpackages. %package core Summary: Core package of git with minimal functionality -Group: Development/Tools Requires: less Requires: openssh-clients Requires: zlib >= 1.2 @@ -186,339 +366,389 @@ other SCMs, install the git-all meta-package. %package core-doc Summary: Documentation files for git-core -Group: Development/Tools +BuildArch: noarch Requires: git-core = %{version}-%{release} - %description core-doc Documentation files for git-core package including man pages. +%if %{with libsecret} +%package credential-libsecret +Summary: Git helper for accessing credentials via libsecret +BuildRequires: libsecret-devel +Requires: git = %{version}-%{release} +%description credential-libsecret +%{summary}. +%endif +# endif with libsecret + +%if %{with cvs} +%package cvs +Summary: Git tools for importing CVS repositories +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: cvs +Requires: cvsps +Requires: perl(DBD::SQLite) +%description cvs +%{summary}. +%endif +# endif with cvs + %package daemon Summary: Git protocol daemon -Group: Development/Tools -Requires: git = %{version}-%{release} -%if %{use_systemd} -Requires: systemd -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -%else -Requires: xinetd -%endif +Requires: git-core = %{version}-%{release} +%{?systemd_requires} %description daemon The git daemon for supporting git:// access to git repositories -%package -n gitweb -Summary: Simple web interface to git repositories -Group: Development/Tools +%package email +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}. +%package -n gitk +Summary: Git repository browser +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: git-gui = %{version}-%{release} +Requires: tk +%description -n gitk +%{summary}. + +%package -n gitweb +Summary: Simple web interface to git repositories +BuildArch: noarch +Requires: git = %{version}-%{release} %description -n gitweb -Simple web interface to track changes in git repositories +%{summary}. +%package gui +Summary: Graphical interface to Git +BuildArch: noarch +Requires: gitk = %{version}-%{release} +Requires: tk >= 8.4 +%description gui +%{summary}. + +%package instaweb +Summary: Repository browser in gitweb +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: gitweb = %{version}-%{release} +%if 0%{?rhel} >= 9 +Requires: httpd +%else +Requires: lighttpd +%endif + +%description instaweb +A simple script to set up gitweb and a web server for browsing the local +repository. + +%if %{with p4} %package p4 Summary: Git tools for working with Perforce depots -Group: Development/Tools BuildArch: noarch -BuildRequires: python +%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 +# 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}. + +%package -n perl-Git-SVN +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 +of the main project, optionally including the subproject's entire +history. %package svn -Summary: Git tools for importing Subversion repositories -Group: Development/Tools -Requires: git = %{version}-%{release}, subversion +Summary: Git tools for interacting with Subversion repositories +BuildArch: noarch +Requires: git = %{version}-%{release} Requires: perl(Digest::MD5) %if ! %{defined perl_bootstrap} Requires: perl(Term::ReadKey) %endif +# endif ! defined perl_bootstrap +Requires: subversion %description svn -Git tools for importing Subversion repositories. - -%package cvs -Summary: Git tools for importing CVS repositories -Group: Development/Tools -BuildArch: noarch -Requires: git = %{version}-%{release}, cvs -Requires: cvsps -Requires: perl(DBD::SQLite) -Requires: perl(Git) -%description cvs -Git tools for importing CVS repositories. - -%package email -Summary: Git tools for sending email -Group: Development/Tools -BuildArch: noarch -Requires: git = %{version}-%{release}, perl-Git = %{version}-%{release} -Requires: perl(Authen::SASL) -Requires: perl(Net::SMTP::SSL) -Requires: perl(Git) -%description email -Git tools for sending email. - -%package gui -Summary: Git GUI tool -Group: Development/Tools -BuildArch: noarch -Requires: git = %{version}-%{release}, tk >= 8.4 -Requires: gitk = %{version}-%{release} -%description gui -Git GUI tool. - -%package -n gitk -Summary: Git revision tree visualiser -Group: Development/Tools -BuildArch: noarch -Requires: git = %{version}-%{release}, tk >= 8.4 -%description -n gitk -Git revision tree visualiser. - -%package -n perl-Git -Summary: Perl interface to Git -Group: Development/Libraries -BuildArch: noarch -Requires: git = %{version}-%{release} -BuildRequires: perl(Error), perl(ExtUtils::MakeMaker) -Requires: perl(Error) -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) - -%description -n perl-Git -Perl interface to Git. - -%package -n perl-Git-SVN -Summary: Perl interface to Git::SVN -Group: Development/Libraries -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) - -%description -n perl-Git-SVN -Perl interface to Git. - -%if 0%{?rhel} && 0%{?rhel} <= 6 -%package -n emacs-git -Summary: Git version control system support for Emacs -Group: Applications/Editors -Requires: git = %{version}-%{release} -BuildArch: noarch -Requires: emacs(bin) >= %{_emacs_version} - -%description -n emacs-git %{summary}. -%package -n emacs-git-el -Summary: Elisp source files for git version control system support for Emacs -Group: Applications/Editors -BuildArch: noarch -Requires: emacs-git = %{version}-%{release} - -%description -n emacs-git-el -%{summary}. -%endif - -%if %{gnome_keyring} -%package gnome-keyring -Summary: Git module for working with gnome-keyring -BuildRequires: libgnome-keyring-devel -Requires: git = %{version}-%{release} -Requires: gnome-keyring -%description gnome-keyring -%{summary}. -%endif - - %prep # Verify GPG signatures -gpghome="$(mktemp -qd)" # Ensure we don't use any existing gpg keyrings -key="%{SOURCE9}" -src="%{SOURCE0}" -# Ignore noisy output from GnuPG 2.0, used on EL <= 7 -# https://bugs.gnupg.org/gnupg/issue1555 -gpg2 --dearmor --quiet --batch --yes $key >/dev/null -# Upstream signs the uncompressed tarballs -tar=${src/%.xz/} -xz -dc $src > $tar -gpgv2 --homedir "$gpghome" --quiet --keyring $key.gpg $tar.sign $tar -rm -rf "$tar" "$gpghome" # Cleanup tar files and tmp gpg home dir +xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- -%setup -q -%patch0 -p1 -%patch1 -p1 +%autosetup -p1 -n %{name}-%{real_version} -# Remove git-archimport from command list +# 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 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 +# endif without cvs + +%if %{without p4} +# Remove git-p4 from command list +sed -i '/^git-p4/d' command-list.txt +%endif +# endif without p4 # Use these same options for every invocation of 'make'. # Otherwise it will rebuild in %%install due to flags changes. -cat << \EOF > config.mak +# Pipe to tee to aid confirmation/verification of settings. +cat << \EOF | tee config.mak V = 1 -CFLAGS = %{optflags} -LDFLAGS = %{__global_ldflags} -NEEDS_CRYPTO_WITH_SSL = 1 +CFLAGS = %{build_cflags} +LDFLAGS = %{build_ldflags} USE_LIBPCRE = 1 ETC_GITCONFIG = %{_sysconfdir}/gitconfig -DESTDIR = %{buildroot} -INSTALL = install -p +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 +%if %{with asciidoctor} +USE_ASCIIDOCTOR = 1 +%endif htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} prefix = %{_prefix} +perllibdir = %{perl_vendorlib} gitwebdir = %{_localstatedir}/www/git -EOF -%if "%{gitcoredir}" == "%{_bindir}" -echo gitexecdir = %{_bindir} >> config.mak -%endif +# Test options +DEFAULT_TEST_TARGET = prove +GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File +GIT_TEST_OPTS = -x --verbose-log +EOF # Filter bogus perl requires # packed-refs comes from a comment in contrib/hooks/update-paranoid -# YAML::Any is optional and not available on el5 -%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 -%else -cat << \EOF > %{name}-req -#!/bin/sh -%{__perl_requires} $* |\ -sed -e '/perl(packed-refs)/d' -EOF +# endif ! defined perl_bootstrap -%global __perl_requires %{_builddir}/%{name}-%{version}/%{name}-req -chmod +x %{__perl_requires} -%endif +# 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. +rm -rf perl/Git/LoadCPAN{.pm,/} +grep -rlZ '^use Git::LoadCPAN::' | xargs -r0 sed -i 's/Git::LoadCPAN:://g' + +# Update gitweb default home link string +sed -i 's@"++GITWEB_HOME_LINK_STR++"@$ENV{"SERVER_NAME"} ? "git://" . $ENV{"SERVER_NAME"} : "projects"@' \ + gitweb/gitweb.perl + +# Move contrib/{contacts,subtree} docs to Documentation so they build with the +# proper asciidoc/docbook/xmlto options +mv contrib/{contacts,subtree}/git-*.adoc Documentation/ %build -make %{?_smp_mflags} all -%if ! 0%{?_without_docs} -make %{?_smp_mflags} doc +# Improve build reproducibility +export TZ=UTC +export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) + +%make_build all %{?with_docs:doc} + +%make_build -C contrib/contacts/ all + +%if %{with libsecret} +%make_build -C contrib/credential/libsecret/ %endif +# endif with libsecret -make -C contrib/emacs +%make_build -C contrib/credential/netrc/ -%if %{gnome_keyring} -make -C contrib/credential/gnome-keyring/ +%make_build -C contrib/diff-highlight/ + +%make_build -C contrib/subtree/ all + +# Fix shebang in a few places to silence rpmlint complaints +%if %{with python2} +sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \ + contrib/fast-import/import-zips.py +%else +# Remove contrib/fast-import/import-zips.py which requires python2. +rm -rf contrib/fast-import/import-zips.py %endif -%if %{libsecret} -make -C contrib/credential/libsecret/ -%endif -make -C contrib/credential/netrc/ - -make -C contrib/subtree/ - -# Remove shebang from bash-completion script -sed -i '/^#!bash/,+1 d' contrib/completion/git-completion.bash +# endif with python2 %install -rm -rf %{buildroot} -make %{?_smp_mflags} INSTALLDIRS=vendor install -%if ! 0%{?_without_docs} -make %{?_smp_mflags} INSTALLDIRS=vendor install-doc -%else -cp -a prebuilt_docs/man/* %{buildroot}%{_mandir} -cp -a prebuilt_docs/html/* Documentation/ -%endif +%make_install %{?with_docs:install-doc} -%global elispdir %{_emacs_sitelispdir}/git -make -C contrib/emacs install \ - emacsdir=%{buildroot}%{elispdir} -for elc in %{buildroot}%{elispdir}/*.elc ; do - install -pm 644 contrib/emacs/$(basename $elc .elc).el \ - %{buildroot}%{elispdir} -done -install -Dpm 644 %{SOURCE10} \ - %{buildroot}%{_emacs_sitestartdir}/git-init.el +%make_install -C contrib/contacts -%if %{gnome_keyring} -install -pm 755 contrib/credential/gnome-keyring/git-credential-gnome-keyring \ - %{buildroot}%{gitcoredir} -# Remove built binary files, otherwise they will be installed in doc -make -C contrib/credential/gnome-keyring/ clean -%endif -%if %{libsecret} +%if %{with libsecret} install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ - %{buildroot}%{gitcoredir} -# Remove built binary files, otherwise they will be installed in doc -make -C contrib/credential/libsecret/ clean + %{buildroot}%{gitexecdir} %endif +# endif with libsecret install -pm 755 contrib/credential/netrc/git-credential-netrc \ - %{buildroot}%{gitcoredir} + %{buildroot}%{gitexecdir} +# temporarily move contrib/credential/netrc aside to prevent it from being +# deleted in the docs preparation, so the tests can be run in %%check +mv contrib/credential/netrc . -make -C contrib/subtree install -make -C contrib/subtree install-doc +%make_install -C contrib/subtree mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d -install -pm 0644 %{SOURCE12} %{buildroot}%{_sysconfdir}/httpd/conf.d/git.conf +install -pm 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf} sed "s|@PROJECTROOT@|%{_localstatedir}/lib/git|g" \ %{SOURCE14} > %{buildroot}%{_sysconfdir}/gitweb.conf -find %{buildroot} -type f -name .packlist -exec rm -f {} ';' -find %{buildroot} -type f -name '*.bs' -empty -exec rm -f {} ';' -find %{buildroot} -type f -name perllocal.pod -exec rm -f {} ';' +# install contrib/diff-highlight and clean up to avoid cruft in git-core-doc +install -Dpm 0755 contrib/diff-highlight/diff-highlight \ + %{buildroot}%{_datadir}/git-core/contrib/diff-highlight +rm -rf contrib/diff-highlight/{Makefile,diff-highlight,*.perl,t} -# Clean up contrib/credential to avoid cruft in the git-core-doc docdir -rm -rf contrib/credential +# 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{,.{1,html,sh,txt,xml}},t} +rm -rf contrib/subtree/{INSTALL,Makefile,git-subtree*,t} -# git-archimport is not supported -find %{buildroot} Documentation -type f -name 'git-archimport*' -exec rm -f {} ';' +%if %{without cvs} +# Remove git-cvs* and gitcvs* +find %{buildroot} Documentation \( -type f -o -type l \) \ + \( -name 'git-cvs*' -o -name 'gitcvs*' \) -exec rm -f {} ';' +%endif +# endif without cvs -exclude_re="archimport|email|git-citool|git-cvs|git-daemon|git-gui|git-remote-bzr|git-remote-hg|gitk|p4|svn" -(find %{buildroot}{%{_bindir},%{_libexecdir}} -type f | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files +%if %{without p4} +# Remove git-p4* and mergetools/p4merge +find %{buildroot} Documentation -type f -name 'git-p4*' -exec rm -f {} ';' +rm -f %{buildroot}%{gitexecdir}/mergetools/p4merge +%endif +# endif without p4 + +# Remove unneeded git-remote-testsvn so git-svn can be noarch +rm -f %{buildroot}%{gitexecdir}/git-remote-testsvn + +exclude_re="email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" +(find %{buildroot}{%{_bindir},%{_libexecdir}} -type f -o -type l | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files (find %{buildroot}{%{_bindir},%{_libexecdir}} -mindepth 1 -type d | grep -vE "$exclude_re" | sed -e 's@^%{buildroot}@%dir @') >> bin-man-doc-files (find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files (find %{buildroot}%{perl_vendorlib} -mindepth 1 -type d | sed -e 's@^%{buildroot}@%dir @') >> perl-git-files # Split out Git::SVN files grep Git/SVN perl-git-files > perl-git-svn-files sed -i "/Git\/SVN/ d" perl-git-files -%if %{!?_without_docs:1}0 +%if %{with docs} (find %{buildroot}%{_mandir} -type f | grep -vE "$exclude_re|Git" | sed -e s@^%{buildroot}@@ -e 's/$/*/' ) >> bin-man-doc-files %else rm -rf %{buildroot}%{_mandir} %endif +# endif with docs mkdir -p %{buildroot}%{_localstatedir}/lib/git -%if %{use_systemd} -mkdir -p %{buildroot}%{_unitdir} -cp -a %{SOURCE15} %{SOURCE16} %{buildroot}%{_unitdir} -%else -mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d +install -Dp -m 0644 %{SOURCE16} %{buildroot}%{_unitdir}/git.socket perl -p \ - -e "s|\@GITCOREDIR\@|%{gitcoredir}|g;" \ + -e "s|\@GITEXECDIR\@|%{gitexecdir}|g;" \ -e "s|\@BASE_PATH\@|%{_localstatedir}/lib/git|g;" \ - %{SOURCE11} > %{buildroot}%{_sysconfdir}/xinetd.d/git -%endif + %{SOURCE15} > %{buildroot}%{_unitdir}/git@.service # 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/ -# Move contrib/hooks out of %%docdir and make them executable -mkdir -p %{buildroot}%{_datadir}/git-core/contrib -mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib -chmod +x %{buildroot}%{_datadir}/git-core/contrib/hooks/* -pushd contrib > /dev/null -ln -s ../../../git-core/contrib/hooks -popd > /dev/null - # Install git-prompt.sh mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion install -pm 644 contrib/completion/git-prompt.sh \ %{buildroot}%{_datadir}/git-core/contrib/completion/ # install git-gui .desktop file -desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE13} +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE12} + +# symlink git-citool to git-gui if they are identical +pushd %{buildroot}%{gitexecdir} >/dev/null +if cmp -s git-gui git-citool 2>/dev/null; then + ln -svf git-gui git-citool +fi +popd >/dev/null # find translations %find_lang %{name} %{name}.lang @@ -526,34 +756,40 @@ cat %{name}.lang >> bin-man-doc-files # quiet some rpmlint complaints chmod -R g-w %{buildroot} -find %{buildroot} -name git-mergetool--lib | xargs chmod a-x +chmod a-x %{buildroot}%{gitexecdir}/git-mergetool--lib # These files probably are not needed find . -regex '.*/\.\(git\(attributes\|ignore\)\|perlcriticrc\)' -delete chmod a-x Documentation/technical/api-index.sh -find contrib -type f | xargs chmod -x +find contrib -type f -print0 | xargs -r0 chmod -x # Split core files -not_core_re="git-(add--interactive|am|credential-(gnome-keyring|libsecret|netrc)|difftool|instaweb|relink|request-pull|send-mail|submodule)|gitweb|prepare-commit-msg|pre-rebase" +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 -grep -E "$not_core_re" bin-man-doc-files \ - | grep -v "credential-gnome-keyring" > bin-man-doc-git-files +%endif +# endif with docs +grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files ##### DOC # place doc files into %%{_pkgdocdir} and split them into expected packages # contrib -not_core_doc_re="(git-(cvs|gui|citool|daemon))|p4|svn|email|gitk|gitweb" +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}/ cp -p gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb cp -p gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb -%if ! 0%{?_without_docs} +%if %{with docs} cp -pr Documentation/*.html Documentation/docbook-xsl.css %{buildroot}%{_pkgdocdir}/ cp -pr Documentation/{howto,technical} %{buildroot}%{_pkgdocdir}/ find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \ |grep -o "%{_pkgdocdir}.*$" >> man-doc-files-core %endif +# endif with docs { find %{buildroot}%{_pkgdocdir} -type f -maxdepth 1 \ @@ -567,1264 +803,617 @@ find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \ ##### #DOC %check -%if %{test_links} -find %{buildroot}%{_pkgdocdir} -name "*.html" | xargs linkchecker +%if %{without tests} +echo "*** Skipping tests" +exit 0 %endif -%ifarch s390x -# Skip grep tests which fail intermittently on s390x -export GIT_SKIP_TESTS="t7810" +# endif without tests + +%if %{with docs} && %{with linkcheck} +# Test links in HTML documentation +find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker %endif -make test +# endif with docs && with linkcheck -%clean -rm -rf %{buildroot} +# 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 + +%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' +# t5551.25 'clone the 2,000 tag repo to check OS command line overflow' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.37 t5551.25" +%endif +# endif aarch64 %%{arm} %%{power64} + +%if 0%{?rhel} == 8 && "%{_arch}" == "s390x" +# Skip tests which fail on s390x on rhel-8 +# +# The following tests fail on s390x & el8. The cause should be investigated. +# However, it's a lower priority since the same tests work consistently on +# s390x with Fedora and RHEL-9. The failures seem to originate in t5300. +# +# t5300.10 'unpack without delta' +# t5300.12 'unpack with REF_DELTA' +# t5300.13 'unpack with REF_DELTA' +# t5300.14 'unpack with OFS_DELTA' +# t5300.18 'compare delta flavors' +# t5300.20 'use packed deltified (REF_DELTA) objects' +# t5300.23 'verify pack' +# t5300.24 'verify pack -v' +# t5300.25 'verify-pack catches mismatched .idx and .pack files' +# t5300.29 'verify-pack catches a corrupted sum of the index file itself' +# t5300.30 'build pack index for an existing pack' +# t5300.45 'make sure index-pack detects the SHA1 collision' +# t5300.46 'make sure index-pack detects the SHA1 collision (large blobs)' +# t5303.5 'create corruption in data of first object' +# t5303.7 '... and loose copy of second object allows for partial recovery' +# t5303.11 'create corruption in data of first delta' +# t6300.35 'basic atom: head objectsize:disk' +# t6300.91 'basic atom: tag objectsize:disk' +# t6300.92 'basic atom: tag *objectsize:disk' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[56] t5303.[57] t5303.11 t6300.35 t6300.9[12]" +%endif +# endif rhel == 8 && arch == s390x + +%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 +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) +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 + +# Run contrib/credential/netrc tests +mkdir -p contrib/credential +mv netrc contrib/credential/ +%make_build -C contrib/credential/netrc/ test || \ +%make_build -C contrib/credential/netrc/ testverbose + +# Clean up test dir +rmdir --ignore-fail-on-non-empty "$testdir" -%if %{use_systemd} %post daemon -%systemd_post git@.service +%systemd_post git.socket %preun daemon -%systemd_preun git@.service +%systemd_preun git.socket %postun daemon -%systemd_postun_with_restart git@.service -%endif +%systemd_postun_with_restart git.socket %files -f bin-man-doc-git-files -%defattr(-,root,root) -%if 0%{?fedora} || 0%{?rhel} >= 7 -%{elispdir} -%{_emacs_sitestartdir}/git-init.el -%endif -%{_datadir}/git-core/contrib/hooks/update-paranoid -%{_datadir}/git-core/contrib/hooks/setgitperms.perl - -%files core -f bin-files-core -%defattr(-,root,root) -#NOTE: this is only use of the %%doc macro in this spec file and should not -# be used elsewhere -%{!?_licensedir:%global license %doc} -%license COPYING -# exlude is best way here because of troubels with symlinks inside git-core/ -%exclude %{_datadir}/git-core/contrib/hooks/update-paranoid -%exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl -%{bashcomproot} -%{_datadir}/git-core/ - -%files core-doc -f man-doc-files-core -%defattr(-,root,root) -%exclude %{_pkgdocdir}/contrib/*/*.py[co] -%{_pkgdocdir}/contrib/hooks - -%files p4 -%defattr(-,root,root) -%{gitcoredir}/*p4* -%{gitcoredir}/mergetools/p4merge -%{_pkgdocdir}/*p4*.txt -%{!?_without_docs: %{_mandir}/man1/*p4*.1*} -%{!?_without_docs: %{_pkgdocdir}/*p4*.html } - -%files svn -%defattr(-,root,root) -%{gitcoredir}/*svn* -#NOTE: what about svn-fe -%{_pkgdocdir}/*svn*.txt -%{!?_without_docs: %{_mandir}/man1/*svn*.1*} -%{!?_without_docs: %{_pkgdocdir}/*svn*.html } - -%files cvs -%defattr(-,root,root) -%{_pkgdocdir}/*git-cvs*.txt -%if "%{gitcoredir}" != "%{_bindir}" -%{_bindir}/git-cvsserver -%endif -%{gitcoredir}/*cvs* -%{!?_without_docs: %{_mandir}/man1/*cvs*.1*} -%{!?_without_docs: %{_pkgdocdir}/*git-cvs*.html } - -%files email -%defattr(-,root,root) -%{_pkgdocdir}/*email*.txt -%{gitcoredir}/*email* -%{!?_without_docs: %{_mandir}/man1/*email*.1*} -%{!?_without_docs: %{_pkgdocdir}/*email*.html } - -%files gui -%defattr(-,root,root) -%{gitcoredir}/git-gui* -%{gitcoredir}/git-citool -%{_datadir}/applications/*git-gui.desktop -%{_datadir}/git-gui/ -%{_pkgdocdir}/git-gui.txt -%{_pkgdocdir}/git-citool.txt -%{!?_without_docs: %{_mandir}/man1/git-gui.1*} -%{!?_without_docs: %{_pkgdocdir}/git-gui.html} -%{!?_without_docs: %{_mandir}/man1/git-citool.1*} -%{!?_without_docs: %{_pkgdocdir}/git-citool.html} - -%files -n gitk -%defattr(-,root,root) -%{_pkgdocdir}/*gitk*.txt -%{_bindir}/*gitk* -%{_datadir}/gitk -%{!?_without_docs: %{_mandir}/man1/*gitk*.1*} -%{!?_without_docs: %{_pkgdocdir}/*gitk*.html } - -%files -n perl-Git -f perl-git-files -%defattr(-,root,root) -%exclude %{_mandir}/man3/*Git*SVN*.3pm* -%{!?_without_docs: %{_mandir}/man3/*Git*.3pm*} - -%files -n perl-Git-SVN -f perl-git-svn-files -%defattr(-,root,root) -%{!?_without_docs: %{_mandir}/man3/*Git*SVN*.3pm*} - -%if 0%{?rhel} && 0%{?rhel} <= 6 -%files -n emacs-git -%defattr(-,root,root) -%{_pkgdocdir}/contrib/emacs/README -%dir %{elispdir} -%{elispdir}/*.elc -%{_emacs_sitestartdir}/git-init.el - -%files -n emacs-git-el -%defattr(-,root,root) -%{elispdir}/*.el -%endif - -%files daemon -%defattr(-,root,root) -%{_pkgdocdir}/git-daemon*.txt -%if %{use_systemd} -%{_unitdir}/git.socket -%{_unitdir}/git@.service -%else -%config(noreplace)%{_sysconfdir}/xinetd.d/git -%endif -%{gitcoredir}/git-daemon -%{_localstatedir}/lib/git -%{!?_without_docs: %{_mandir}/man1/git-daemon*.1*} -%{!?_without_docs: %{_pkgdocdir}/git-daemon*.html} - -%files -n gitweb -%defattr(-,root,root) -%{_pkgdocdir}/*.gitweb -%{_pkgdocdir}/gitweb*.txt -%{!?_without_docs: %{_pkgdocdir}/gitweb*.html} -%config(noreplace)%{_sysconfdir}/gitweb.conf -%config(noreplace)%{_sysconfdir}/httpd/conf.d/git.conf -%{_localstatedir}/www/git/ - -%if %{gnome_keyring} -%files gnome-keyring -%defattr(-,root,root) -%{gitcoredir}/git-credential-gnome-keyring -%endif - +%{_datadir}/git-core/contrib/diff-highlight %files all # No files for you! +%files core -f bin-files-core +#NOTE: this is only use of the %%doc macro in this spec file and should not +# be used elsewhere +%{!?_licensedir:%global license %doc} +%license COPYING +# exclude is best way here because of troubles with symlinks inside git-core/ +%exclude %{_datadir}/git-core/contrib/diff-highlight +%{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 +# 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*.adoc +%{_bindir}/git-cvsserver +%{gitexecdir}/*cvs* +%{?with_docs:%{_mandir}/man1/*cvs*.1*} +%{?with_docs:%{_pkgdocdir}/*git-cvs*.html} +%endif +# endif with cvs + +%files daemon +%{_pkgdocdir}/git-daemon*.adoc +%{_unitdir}/git.socket +%config(noreplace) %{_unitdir}/git@.service +%{gitexecdir}/git-daemon +%{_localstatedir}/lib/git +%{?with_docs:%{_mandir}/man1/git-daemon*.1*} +%{?with_docs:%{_pkgdocdir}/git-daemon*.html} + +%files email +%{_pkgdocdir}/*email*.adoc +%{gitexecdir}/*email* +%{?with_docs:%{_mandir}/man1/*email*.1*} +%{?with_docs:%{_pkgdocdir}/*email*.html} + +%files -n gitk +%{_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*.adoc +%{?with_docs:%{_mandir}/man1/gitweb.1*} +%{?with_docs:%{_mandir}/man5/gitweb.conf.5*} +%{?with_docs:%{_pkgdocdir}/gitweb*.html} +%config(noreplace)%{_sysconfdir}/gitweb.conf +%config(noreplace)%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf} +%{_localstatedir}/www/git/ + +%files gui +%{gitexecdir}/git-gui* +%{gitexecdir}/git-citool +%{_datadir}/applications/*git-gui.desktop +%{_datadir}/git-gui/ +%{_pkgdocdir}/git-gui.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 +%{gitexecdir}/git-instaweb +%{_pkgdocdir}/git-instaweb.adoc +%{?with_docs:%{_mandir}/man1/git-instaweb.1*} +%{?with_docs:%{_pkgdocdir}/git-instaweb.html} + +%if %{with p4} +%files p4 +%{gitexecdir}/*p4* +%{gitexecdir}/mergetools/p4merge +%{_pkgdocdir}/*p4*.adoc +%{?with_docs:%{_mandir}/man1/*p4*.1*} +%{?with_docs:%{_pkgdocdir}/*p4*.html} +%endif +# endif with p4 + +%files -n perl-Git -f perl-git-files +%{?with_docs:%{_mandir}/man3/Git.3pm*} + +%files -n perl-Git-SVN -f perl-git-svn-files + +%files subtree +%{gitexecdir}/git-subtree +%{_pkgdocdir}/git-subtree.adoc +%{?with_docs:%{_mandir}/man1/git-subtree.1*} +%{?with_docs:%{_pkgdocdir}/git-subtree.html} + +%files svn +%{gitexecdir}/git-svn +%{_pkgdocdir}/git-svn.adoc +%{?with_docs:%{_mandir}/man1/git-svn.1*} +%{?with_docs:%{_pkgdocdir}/git-svn.html} + %changelog -* Tue Aug 01 2017 Todd Zullinger - 2.13.4-1 -- Update to 2.13.4 -- Remove EL-5 and old Fedora conditionals +* Thu Nov 20 2025 Ondřej Pohořelský - 2.52.0-1 +- update to 2.52.0 -* Sun Jul 30 2017 Florian Weimer - 2.13.3-3 -- Rebuild with binutils fix for ppc64le (#1475636) +* Thu Oct 23 2025 Ondřej Pohořelský - 2.51.1-1 +- update to 2.51.1 -* 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 +* Sun Oct 12 2025 Yaakov Selkowitz - 2.51.0-3 +- Revbump for tcl/tk 9 -* Thu Jul 13 2017 Gwyn Ciesla - 2.13.3-1 -- Update to 2.13.3 +* Thu Aug 21 2025 Ondřej Pohořelský - 2.51.0-2 +- exclude sample hook files from automatic dependency detection -* Sun Jun 25 2017 Todd Zullinger - 2.13.2-1 -- Update to 2.13.2 -- Skip grep tests which fail intermittently on s390x +* Wed Aug 20 2025 Ondřej Pohořelský - 2.51.0-1 +- update to 2.51.0 -* Wed Jun 07 2017 Jitka Plesnikova - 2.13.1-2 -- Perl 5.26 re-rebuild of bootstrapped packages +* Wed Jul 23 2025 Fedora Release Engineering - 2.50.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild -* Mon Jun 05 2017 Todd Zullinger - 2.13.1-1 -- Update to 2.13.1 +* Tue Jul 08 2025 Ondřej Pohořelský - 2.50.1-1 +- update to 2.50.1 -* Sun Jun 04 2017 Jitka Plesnikova - 2.13.0-3 -- Perl 5.26 rebuild +* Mon Jun 23 2025 Ondřej Pohořelský - 2.50.0-1 +- update to 2.50.0 -* Wed May 17 2017 Todd Zullinger - 2.13.0-2 -- Use default, collision-detecting SHA1 implementation +* Mon Mar 24 2025 Ondřej Pohořelský - 2.49.0-2 +- add the option to sanitize sideband channel messages -* Tue May 09 2017 Todd Zullinger - 2.13.0-1 -- Update to 2.13.0 (resolves CVE-2017-8386) +* Mon Mar 17 2025 Ondřej Pohořelský - 2.49.0-1 +- update to 2.49.0 -* Wed Mar 29 2017 Gwyn Ciesla - 2.12.2-1 -- Update to 2.12.2 +* Thu Feb 6 2025 Yanko Kaneti - 2.48.1-3 +- Keep gitk on tcl/tk 8.x until its ready for 9 -* Tue Mar 21 2017 Gwyn Ciesla - 2.12.1-1 -- Update to 2.12.1 +* Thu Jan 16 2025 Fedora Release Engineering - 2.48.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild -* Mon Feb 27 2017 Jon Ciesla - 2.12.0-1 -- Update to 2.12.0 +* Wed Jan 15 2025 Ondřej Pohořelský - 2.48.1-1 +- update to 2.48.1 -* 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 +* Mon Jan 13 2025 Ondřej Pohořelský - 2.48.0-1 +- update to 2.48.0 -* 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 +* Mon Nov 25 2024 Ondřej Pohořelský - 2.47.1-1 +- update to 2.47.1 -* Fri Feb 10 2017 Fedora Release Engineering - 2.11.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild +* Tue Oct 08 2024 Ondřej Pohořelský - 2.47.0-1 +- update to 2.47.0 -* Fri Feb 03 2017 Jon Ciesla - 2.11.1-1 -- Update to 2.11.1 +* Tue Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 +- update to 2.46.2 -* Wed Nov 30 2016 Jon Ciesla - 2.11.0-1 -- Update to 2.11.0 +* Mon Sep 16 2024 Ondřej Pohořelský - 2.46.1-1 +- update to 2.46.1 -* Mon Oct 31 2016 Jon Ciesla - 2.10.2-1 -- Update to 2.10.2 +* Mon Aug 05 2024 Ondřej Pohořelský - 2.46.0-1 +- update to 2.46.0 -* Tue Oct 04 2016 Jon Ciesla - 2.10.1-1 -- Update to 2.10.1 +* Thu Jul 18 2024 Fedora Release Engineering - 2.45.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild -* Sat Sep 03 2016 Todd Zullinger - 2.10.0-1 -- Update to 2.10.0 +* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-2 +- add glibc-utils BuildRequires -* Mon Aug 15 2016 Jon Ciesla - 2.9.3-1 -- Update to 2.9.3. +* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-1 +- update to 2.45.2 -* Fri Jul 15 2016 Jon Ciesla - 2.9.2-1 -- Update to 2.9.2. +* Wed May 15 2024 Ondřej Pohořelský - 2.45.1-1 +- update to 2.45.1 -* Tue Jul 12 2016 Jon Ciesla - 2.9.1-1 -- Update to 2.9.1. +* Tue Apr 30 2024 Ondřej Pohořelský - 2.45.0-1 +- update to 2.45.0 -* Tue Jun 14 2016 Jon Ciesla - 2.9.0-1 -- Update to 2.9.0. +* Mon Feb 26 2024 Ondřej Pohořelský - 2.44.0-1 +- update to 2.44.0 -* Wed Jun 08 2016 Jon Ciesla - 2.8.4-1 -- Update to 2.8.4. +* Thu Feb 15 2024 Ondřej Pohořelský - 2.43.2-1 +- update to 2.43.2 +- Resolves: #2264318 -* Fri May 20 2016 Jitka Plesnikova - 2.8.3-2 -- Perl 5.24 rebuild +* Mon Feb 12 2024 Ondřej Pohořelský - 2.43.1-1 +- update to 2.43.1 +- resolves: #2263575 -* Thu May 19 2016 Todd Zullinger - 2.8.3-1 -- Update to 2.8.3 +* Wed Jan 24 2024 Fedora Release Engineering - 2.43.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Thu May 19 2016 Jitka Plesnikova - 2.8.2-5 -- Perl 5.24 re-rebuild of bootstrapped packages +* Fri Jan 19 2024 Fedora Release Engineering - 2.43.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed May 18 2016 Todd Zullinger - 2.8.2-4 -- Use perl(MOD::NAME) format for perl-DBD-SQLite and perl-Digest-MD5 deps -- Define __global_ldflags on EL < 7 (#1337137) +* Tue Nov 21 2023 Ondřej Pohořelský - 2.43.0-1 +- update to 2.43.0 -* Wed May 18 2016 Jitka Plesnikova - 2.8.2-3 -- Perl 5.24 re-rebuild of bootstrapped packages +* Tue Nov 14 2023 Ondřej Pohořelský - 2.42.1-1 +- update to 2.42.1 -* Sun May 15 2016 Jitka Plesnikova - 2.8.2-2 -- Perl 5.24 rebuild +* Wed Nov 1 2023 Joe Orton - 2.42.0-2 +- remove explicit BR for apr-util-bdb (#2247532) -* Fri Apr 29 2016 Todd Zullinger - 2.8.2-1 -- Update to 2.8.2 +* Tue Oct 03 2023 Ondřej Pohořelský - 2.42.0-1 +- update to 2.42.0 -* Mon Apr 11 2016 Todd Zullinger - 2.8.1-3 -- Set LDFLAGS for hardened builds (#1289728) +* Wed Jul 19 2023 Fedora Release Engineering - 2.41.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild -* Wed Apr 06 2016 Paolo Bonzini - 2.8.1-2 -- Install git-credentials-netrc (#1303358) +* Thu Jun 01 2023 Todd Zullinger - 2.41.0-1 +- update to 2.41.0 -* Tue Apr 05 2016 Jon Ciesla - 2.8.1-1 -- Update to 2.8.1. +* Wed May 24 2023 Todd Zullinger - 2.41.0~rc2-1 +- update to 2.41.0-rc2 -* Tue Mar 29 2016 Neal Gompa - 2.8.0-1 -- Update to 2.8.0 -- Use license macro for COPYING +* Fri May 19 2023 Todd Zullinger - 2.41.0~rc1-1 +- update to 2.41.0-rc1 -* Sun Mar 27 2016 Todd Zullinger - 2.7.4-2 -- Use https for URL / Source and smaller tar.xz files -- Check upstream GPG signatures in %%prep +* Mon May 15 2023 Todd Zullinger - 2.41.0~rc0-1 +- update to 2.41.0-rc0 -* Tue Mar 22 2016 Konrad Scherer -- Workaround missing git subtree documentation in prebuilt docs (bug 1320210) -- Only add git-cvsserver binary once if the core dir matches the bin dir as it - does on el5 (bug 1320210) +* Fri May 12 2023 Todd Zullinger - 2.40.1-2 +- use tilde versioning for release candidates -* Tue Mar 22 2016 Todd Zullinger -- Conditionalize bash-completion pkg-config usage for EL <= 6 (bug 1320210) +* 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 Mar 18 2016 David Woodhouse - 2.7.4-1 -- Update to 2.7.4 (for CVE-2016-2315, CVE-2016-2324) - Resolves: #1318220 +* Mon Mar 13 2023 Todd Zullinger - 2.40.0-1 +- update to 2.40.0 -* Mon Mar 14 2016 Jon Ciesla - 2.7.3-1 -- Update to 2.7.3. +* Tue Mar 07 2023 Todd Zullinger - 2.40.0-0.2.rc2 +- update to 2.40.0-rc2 -* Tue Feb 23 2016 Jon Ciesla - 2.7.2-1 -- Update to 2.7.2. +* Wed Mar 01 2023 Todd Zullinger - 2.40.0-0.1.rc1 +- update to 2.40.0-rc1 -* Sat Feb 06 2016 Jon Ciesla - 2.7.1-1 -- Update to 2.7.1. +* Fri Feb 24 2023 Todd Zullinger - 2.40.0-0.0.rc0 +- update to 2.40.0-rc0 -* Thu Feb 04 2016 Petr Stodulka - 2.7.0-3 -- remove all '.gitignore' files from packages +* Tue Feb 14 2023 Todd Zullinger - 2.39.2-1 +- update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) -* Wed Feb 03 2016 Fedora Release Engineering - 2.7.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild +* Fri Feb 03 2023 Todd Zullinger - 2.39.1-2 +- drop perl Email::Valid dep on RHEL (#2166718) -* Tue Jan 05 2016 Jon Ciesla - 2.7.0-1 -- Update to 2.7.0. -- Infinite loop patch appears obsolete. +* Thu Jan 19 2023 Fedora Release Engineering - 2.39.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild -* Wed Dec 09 2015 Jon Ciesla - 2.6.4-1 -- Update to 2.6.4. +* Tue Jan 17 2023 Todd Zullinger - 2.39.1-1 +- update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) -* Fri Nov 27 2015 Petr Stodulka - 2.6.3-2 -- found 2 perl scripts in git-core, move them to git package - (#1284688) +* Mon Dec 12 2022 Todd Zullinger - 2.39.0-1 +- update to 2.39.0 -* Fri Nov 06 2015 Jon Ciesla - 2.6.3-1 -- Update to 2.6.3. +* Mon Dec 05 2022 Todd Zullinger - 2.39.0-0.2.rc2 +- update to 2.39.0-rc2 -* Tue Nov 03 2015 Petr Stodulka - 2.6.2-2 -- provides failback for the macro _pkgdocdir (#1277550) +* Wed Nov 30 2022 Todd Zullinger - 2.39.0-0.1.rc1 +- update to 2.39.0-rc1 -* Sat Oct 17 2015 Jon Ciesla - 2.6.2-1 -- Update to 2.6.2. +* Wed Nov 23 2022 Todd Zullinger - 2.39.0-0.0.rc0 +- update to 2.39.0-rc0 +- add mod_http2 BuildRequires for tests -* Tue Oct 06 2015 Jon Ciesla - 2.6.1-1 -- Update to 2.6.1. +* Sat Nov 12 2022 Todd Zullinger - 2.38.1-3 +- use %%bash_completions_dir -* Tue Sep 29 2015 Jon Ciesla - 2.6.0-1 -- Update to 2.6.0. +* 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 -* Fri Sep 18 2015 Jon Ciesla - 2.5.3-1 -- Update to 2.5.3. +* Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 +- update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) -* Fri Sep 11 2015 Jon Ciesla - 2.5.2-1 -- Update to 2.5.2. +* Mon Oct 03 2022 Todd Zullinger - 2.38.0-1 +- update to 2.38.0 -* Sat Aug 29 2015 Petr Stodulka - 2.5.1-1 -- Update to 2.5.1 +* Wed Sep 28 2022 Todd Zullinger - 2.38.0-0.2.rc2 +- update to 2.38.0-rc2 -* Tue Jul 28 2015 Jon Ciesla - 2.5.0-1 -- Update to 2.5.0. +* Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 +- update to 2.38.0-rc1 +- git-subtree sub-package is noarch -* Thu Jul 16 2015 Petr Stodulka - 2.4.6-1 -- New upstream release 2.4.6 +* Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 +- update to 2.38.0-rc0 -* Tue Jul 7 2015 Jonathan Underwood - 2.4.5-2 -- Comply with modern Emacs packaging guidelines on recent Fedora - No longer split out emacs-git and emacs-git-el sub-packages on recent Fedora - Require emacs-filesystem on recent Fedora (#1234552) +* 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 -* Fri Jun 26 2015 Jon Ciesla - 2.4.5-1 -- Update to 2.4.5. +* Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 +- consolidate git-archimport removal in %%prep -* Mon Jun 22 2015 Petr Stodulka - 2.4.4-2 -- git-svn - added requires for perl-Digest-MD5 (#1218176) -- solve troubles with infinite loop due to broken symlink (probably - shouldn't be problem here, but it's reproducible manually) - (#1204193) +* Thu Aug 11 2022 Todd Zullinger - 2.37.2-1 +- update to 2.37.2 -* Tue Jun 16 2015 Jon Ciesla - 2.4.4-1 -- Update to 2.4.4. +* Sat Jul 23 2022 Todd Zullinger - 2.37.1-2 +- require systemd-rpm-macros rather than systemd -* Wed Jun 10 2015 Jitka Plesnikova - 2.4.3-4 -- Perl 5.22 re-rebuild of bootstrapped packages +* Thu Jul 21 2022 Fedora Release Engineering - 2.37.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild -* Tue Jun 09 2015 Jitka Plesnikova - 2.4.3-3 -- Perl 5.22 rebuild +* Tue Jul 12 2022 Todd Zullinger - 2.37.1-1 +- update to 2.37.1 (CVE-2022-29187) -* Mon Jun 08 2015 Petr Stodulka - 2.4.3-2 -- separate documentation files from git-core package to git-core-doc - including core man pages +* Mon Jun 27 2022 Todd Zullinger - 2.37.0-1 +- update to 2.37.0 -* Sat Jun 06 2015 Jon Ciesla - 2.4.3-1 -- Update to 2.4.3. +* Wed Jun 22 2022 Todd Zullinger - 2.37.0-0.2.rc2 +- update to 2.37.0-rc2 -* Fri Jun 05 2015 Jitka Plesnikova -- Perl 5.22 rebuild +* Fri Jun 17 2022 Todd Zullinger - 2.37.0-0.1.rc1 +- update to 2.37.0-rc1 -* Wed Jun 03 2015 Petr Stodulka - 2.4.2-2 -- split create subpackage git-core (perl-less) from git package -- git package requires git-core and it has same tool set as - before -- relevant docs are part of git-core package too -- removed proved and obsoletes in git for git-core +* 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 -* Tue May 26 2015 Jon Ciesla - 2.4.2-1 -- Update to 2.4.2. +* Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 +- Perl 5.36 re-rebuild of bootstrapped packages -* Thu May 14 2015 Jon Ciesla - 2.4.1-1 -- Update to 2.4.1. +* Wed Jun 01 2022 Jitka Plesnikova - 2.36.1-1.1 +- Perl 5.36 rebuild -* Fri May 01 2015 Jon Ciesla - 2.4.0-1 -- Update to 2.4.0. +* Fri May 06 2022 Todd Zullinger - 2.36.1-1 +- update to 2.36.1 -* Tue Apr 28 2015 Jon Ciesla - 2.3.7-1 -- Update to 2.3.7. +* Mon Apr 18 2022 Todd Zullinger - 2.36.0-1 +- update to 2.36.0 -* Wed Apr 22 2015 Jon Ciesla - 2.3.6-1 -- Update to 2.3.6. +* Thu Apr 14 2022 Todd Zullinger - 2.36.0-0.3.rc2 +- usability improvements on top of CVE-2022-24765 -* Mon Apr 06 2015 Jon Ciesla - 2.3.5-1 -- Update to 2.3.5. +* 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 -* Tue Mar 24 2015 Petr Stodulka - 2.3.4-1 -- Update to 2.3.4. +* Fri Apr 08 2022 Todd Zullinger - 2.36.0-0.1.rc1 +- update to 2.36.0-rc1 -* Mon Mar 16 2015 Jon Ciesla - 2.3.3-1 -- Update to 2.3.3. +* 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 -* Mon Mar 09 2015 Jon Ciesla - 2.3.2-1 -- Update to 2.3.2. +* Sat Jan 29 2022 Todd Zullinger - 2.35.1-1 +- update to 2.35.1 -* Fri Feb 27 2015 Jon Ciesla - 2.3.1-1 -- Update to 2.3.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 Feb 21 2015 Till Maas - 2.3.0-2 -- Rebuilt for Fedora 23 Change - https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code +* Sat Jan 22 2022 Todd Zullinger - 2.35.0-0.2.rc2.3 +- remove contrib/scalar to avoid cruft in git-core-doc -* Fri Feb 06 2015 Jon Ciesla - 2.3.0-1 -- Update to 2.3.0. +* Fri Jan 21 2022 Todd Zullinger - 2.35.0-0.2.rc2.2 +- fix compilation on EL7 -* Tue Jan 27 2015 Ville Skyttä - 2.2.2-2 -- Install bash completion to %%{_datadir}/bash-completion/completions +* Thu Jan 20 2022 Todd Zullinger - 2.35.0-0.2.rc2.1 +- checkout: avoid BUG() when hitting a broken repository (rhbz#2042920) -* Fri Jan 23 2015 Jon Ciesla - 2.2.2-1 -- Update to 2.2.2. +* Wed Jan 19 2022 Todd Zullinger - 2.35.0-0.2.rc2 +- update to 2.35.0-rc2 -* Thu Jan 08 2015 Jon Ciesla - 2.2.1-1 -- Update to 2.2.1. +* Sat Jan 15 2022 Todd Zullinger - 2.35.0-0.1.rc1 +- update to 2.35.0-rc1 -* Thu Dec 11 2014 Petr Stodulka - 2.2.0-3 -- removed subpackage git-hg which is replaced by git-remote-hg from - separated package +* Mon Jan 10 2022 Todd Zullinger - 2.35.0-0.0.rc0 +- update to 2.35.0-rc0 -* Fri Nov 28 2014 Petr Stodulka - 2.2.0-2 -- removed subpackage git-bzr which is replaced by git-remote-bzr from - separated package +* Thu Nov 25 2021 Todd Zullinger - 2.34.1-1 +- update to 2.34.1 +- fix gpgsm issues with gnupg-2.3 -* Fri Nov 28 2014 Petr Stodulka - 2.2.0-1 -- 2.2.0 +* Mon Nov 15 2021 Todd Zullinger - 2.34.0-1 +- update to 2.34.0 -* Fri Oct 24 2014 Pierre-Yves Chibon - 2.1.0-5 -- Rename the git.service into git@.service fixing - https://bugzilla.redhat.com/980574 +* Sun Nov 14 2021 Todd Zullinger - 2.33.1-3 +- add more git-email perl dependencies +- Resolves: rhbz#2020487 -* Mon Sep 08 2014 Jitka Plesnikova - 2.1.0-4 -- Perl 5.20 re-rebuild of bootstrapped packages +* Thu Nov 11 2021 Ondřej Pohořelský - 2.33.1-2 +- add Perl requires to git-email +- Resolves: rhbz#2020487 -* Thu Aug 28 2014 Jitka Plesnikova - 2.1.0-3 -- Perl 5.20 rebuild +* Wed Oct 13 2021 Todd Zullinger - 2.33.1-1 +- update to 2.33.1 -* Tue Aug 26 2014 Jitka Plesnikova - 2.1.0-2 -- Disable requires perl(Term::ReadKey) when perl bootstraping +* 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 -* Mon Aug 18 2014 Ondrej Oprala - 2.32.0-1.2 +- Rebuilt with OpenSSL 3.0.0 -* Sat Aug 16 2014 Fedora Release Engineering - 2.0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild +* Thu Jul 22 2021 Fedora Release Engineering - 2.32.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Thu Jul 31 2014 Ondrej Oprala - 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 -* Mon Jul 28 2014 Ondrej Oprala - 2.32.0-0.5.rc3 +- drop jgit on Fedora >= 35 + Resolves: rhbz#1965808 -* Fri Jul 11 2014 Ondrej Oprala - 2.32.0-0.4.rc3 +- update to 2.32.0-rc3 -* Tue Jun 10 2014 Ondrej Oprala - 2.0.0-4 -- Change source URLs, as googlecode doesn't have up-to-date tarballs +* Fri May 28 2021 Todd Zullinger - 2.32.0-0.3.rc2 +- update to 2.32.0-rc2 -* Tue Jun 10 2014 Ondrej Oprala - 2.0.0-3 -- Conditionalize an ancient obsolete +* Mon May 24 2021 Jitka Plesnikova - 2.32.0-0.2.rc1 +- Perl 5.34 re-rebuild of bootstrapped packages -* Sat Jun 07 2014 Fedora Release Engineering - 2.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild +* 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 -* Thu May 29 2014 Ondrej Oprala - 2.0.0-1 -- Update to 2.0.0 +* Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 +- Perl 5.34 rebuild -* Mon May 19 2014 Jon Ciesla - 1.9.3-1 -- Update to 1.9.3 +* Mon May 17 2021 Todd Zullinger - 2.32.0-0.0.rc0 +- update to 2.32.0-rc0 -* Mon Feb 17 2014 Ondrej Oprala - 1.9.0-1 -- Update to 1.9.0 +* Sun May 16 2021 Todd Zullinger +- clean up various dist conditionals -* Thu Jan 16 2014 Todd Zullinger - 1.8.5.3-2 -- Drop unused python DESTIR patch -- Consolidate settings for Fedora 19+ and EL 7+ -- Use new rpm filtering on Fedora 19+ and EL 7+ -- Rebuild with file-5.14-14 (#1026760) +* Wed Apr 21 2021 Todd Zullinger - 2.31.1-3 +- apply upstream patch to fix clone --bare segfault + Resolves: rhbz#1952030 -* Thu Jan 16 2014 Ondrej Oprala - 1.8.5.3-1 -* Update to 1.8.5.3 +* Tue Apr 06 2021 Todd Zullinger - 2.31.1-2 +- remove two stray %%defattr macros from %%files sections -* Wed Dec 18 2013 Ondrej Oprala - 1.8.5.2-1 -* Update to 1.8.5.2 +* Sat Mar 27 2021 Todd Zullinger - 2.31.1-1 +- update to 2.31.1 -* Wed Nov 13 2013 Ville Skyttä - 1.8.4.2-2 -- Fix htmldir when doc dir is unversioned (#993779). +* Fri Mar 19 2021 Todd Zullinger - 2.31.0-2 +- fix git bisect with annotaged tags -* Tue Oct 29 2013 Todd Zullinger - 1.8.4.2-1 -- Update to 1.8.4.2 (#1024497) +* Mon Mar 15 2021 Todd Zullinger - 2.31.0-1 +- update to 2.31.0 -* Sat Oct 05 2013 Todd Zullinger -- Add mercurial version requirement to git-hg, for those rebuilding on EL +* Tue Mar 09 2021 Todd Zullinger - 2.31.0-0.2.rc2 +- update to 2.31.0-rc2 -* Sat Aug 03 2013 Fedora Release Engineering - 1.8.3.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild +* Wed Mar 03 2021 Todd Zullinger - 2.31.0-0.1.rc1 +- update to 2.31.0-rc1 -* Mon Jul 15 2013 Petr Pisar - 1.8.3.1-2 -- Perl 5.18 rebuild +* Tue Mar 02 2021 Todd Zullinger - 2.31.0-0.0.rc0 +- update to 2.31.0-rc0 -* Fri Jun 14 2013 Todd Zullinger - 1.8.3.1-1 -- Update to 1.8.3.1 -- Add bzr and hg subpackages, thanks to Michael Scherer (#974800) +* Tue Mar 02 2021 Todd Zullinger - 2.30.1-3 +- use %%{gpgverify} macro to verify tarball signature -* Mon May 13 2013 Jon Ciesla - 1.8.2.1-4 -- Fix typo introduced in 1.8.2-3, fixed desktop tag. +* 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. -* Wed May 1 2013 Tom Callaway - 1.8.2.1-3 -- conditionalize systemd vs xinetd -- cleanup systemd handling (it was not quite right in -2) +* Thu Feb 18 2021 Ondřej Pohořelský - 1.8.2.1-2 -- switch to systemd instead of xinetd (bz 737183) +* Thu Feb 18 2021 Todd Zullinger +- re-enable t7812-grep-icase-non-ascii on s390x -* Sun Apr 14 2013 Todd Zullinger - 1.8.2.1-1 -- Update to 1.8.2.1 -- Exclude optional perl(YAML::Any) dependency on EL-5 +* Tue Feb 09 2021 Todd Zullinger - 2.30.1-1 +- update to 2.30.1 -* Wed Apr 10 2013 Jon Ciesla - 1.8.2-3 -- Drop desktop vendor tag for >= f19. +* 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 -* Wed Mar 27 2013 Todd Zullinger - 1.8.2-2 -- Require perl(Term::ReadKey) for git add --interactive (#928328) -- Drop DESTDIR from python instlibdir -- Fix bogus changelog dates - -* Tue Mar 19 2013 Adam Tkac - 1.8.2-1 -- update to 1.8.2 -- 0001-DESTDIR-support-in-contrib-subtree-Makefile.patch has been merged - -* Tue Feb 26 2013 Todd Zullinger - 1.8.1.4-2 -- Update asciidoc requirements, drop unsupported ASCIIDOC7 -- Define GNU_ROFF to force ASCII apostrophes in manpages (so copy/paste works) -- Install tcsh completion (requires manual setup by users) -- Clean up dist conditionals, don't pretend to support EL-4 builds -- Use prebuilt documentation on EL-5, where asciidoc is too old -- Respect gitexecdir variable in git-subtree install - -* Wed Feb 20 2013 Adam Tkac - 1.8.1.4-1 -- update to 1.8.1.4 - -* Wed Jan 30 2013 Adam Tkac - 1.8.1.2-1 -- update to 1.8.1.2 -- own directories which should be owned (#902517) - -* Thu Jan 03 2013 Adam Tkac - 1.8.1-1 -- update to 1.8.1 -- build git-svn as arch subpkg due to new git-remote-testsvn binary - -* Tue Dec 11 2012 Adam Tkac - 1.8.0.2-1 -- update to 1.8.0.2 - -* Thu Dec 06 2012 Adam Tkac - 1.8.0.1-2 -- don't install some unneeded credential-gnome-keyring stuff - -* Thu Nov 29 2012 Adam Tkac - 1.8.0.1-1 -- update to 1.8.0.1 -- include git-subtree in git rpm (#864651) - -* Mon Oct 29 2012 Adam Tkac - 1.8.0-1 -- update to 1.8.0 -- include git-credential-gnome-keyring helper in git pkg -- 0001-cvsimport-strip-all-inappropriate-tag-strings.patch was merged - -* Thu Oct 25 2012 Adam Tkac - 1.7.12.1-2 -- move git-prompt.sh into usr/share/git-core/contrib/completion (#854061) - -* Thu Sep 27 2012 Adam Tkac - 1.7.12.1-1 -- update to 1.7.12.1 -- cvsimport should skip more characters (#850640) - -* Thu Aug 23 2012 Todd Zullinger - 1.7.12-2 -- Install git-prompt.sh which provides __git_ps1() - -* Wed Aug 22 2012 Adam Tkac - 1.7.12-1 -- update to 1.7.12 - -* Wed Aug 15 2012 Todd Zullinger - 1.7.11.5-1 -- Update to 1.7.11.5 -- Add git-p4 subpackage (#844008) - -* Tue Aug 07 2012 Adam Tkac - 1.7.11.4-1 -- update to 1.7.11.4 - -* Fri Jul 27 2012 Fedora Release Engineering - 1.7.11.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jul 25 2012 Todd Zullinger - 1.7.11.2-2 -- Split perl(Git::SVN) into its own package (#843182) - -* Mon Jul 16 2012 Adam Tkac - 1.7.11.2-1 -- update to 1.7.11.2 - -* Thu Jun 28 2012 Petr Pisar - 1.7.10.4-2 -- Perl 5.16 rebuild - -* Fri Jun 15 2012 Adam Tkac - 1.7.10.4-1 -- update to 1.7.10.4 - -* Thu Jun 07 2012 Petr Pisar - 1.7.10.2-2 -- Perl 5.16 rebuild - -* Mon May 14 2012 Adam Tkac - 1.7.10.2-1 -- update to 1.7.10.2 - -* Thu May 03 2012 Adam Tkac - 1.7.10.1-1 -- update to 1.7.10.1 - -* Tue Apr 10 2012 Adam Tkac - 1.7.10-1 -- update to 1.7.10 - -* Fri Mar 30 2012 Adam Tkac - 1.7.9.5-1 -- update to 1.7.9.5 - -* Thu Mar 08 2012 Adam Tkac - 1.7.9.3-1 -- update to 1.7.9.3 - -* Wed Feb 15 2012 Todd Zullinger - 1.7.9.1-1 -- Update to 1.7.9.1 -- Fix EPEL builds (rpm doesn't accept multiple -f options in %%files) - -* Fri Feb 10 2012 Petr Pisar - 1.7.9-2 -- Rebuild against PCRE 8.30 - -* Mon Jan 30 2012 Adam Tkac - 1.7.9-1 -- update to 1.7.9 - -* Thu Jan 19 2012 Adam Tkac - 1.7.8.4-1 -- update to 1.7.8.4 - -* Thu Jan 12 2012 Adam Tkac - 1.7.8.3-1 -- update to 1.7.8.3 - -* Mon Jan 02 2012 Adam Tkac - 1.7.8.2-1 -- update to 1.7.8.2 - -* Fri Dec 23 2011 Adam Tkac - 1.7.8.1-1 -- update to 1.7.8.1 - -* Wed Dec 07 2011 Adam Tkac - 1.7.8-1 -- update to 1.7.8 - -* Tue Nov 29 2011 Adam Tkac - 1.7.7.4-1 -- update to 1.7.7.4 - -* Thu Nov 10 2011 Adam Tkac - 1.7.7.3-1 -- update to 1.7.7.3 - -* Mon Nov 07 2011 Adam Tkac - 1.7.7.2-1 -- update to 1.7.7.2 - -* Tue Nov 01 2011 Adam Tkac - 1.7.7.1-1 -- update to 1.7.7.1 - -* Wed Oct 26 2011 Fedora Release Engineering - 1.7.7-2 -- Rebuilt for glibc bug#747377 - -* Thu Oct 20 2011 Adam Tkac - 1.7.7-1 -- update to 1.7.7 - - git-1.6-update-contrib-hooks-path.patch is no longer needed - -* Mon Sep 26 2011 Adam Tkac - 1.7.6.4-1 -- update to 1.7.6.4 - -* Wed Sep 07 2011 Todd Zullinger - 1.7.6.2-1 -- Update to 1.7.6.2 -- Fixes incompatibility caused by git push --quiet fix - http://thread.gmane.org/gmane.comp.version-control.git/180652 - -* Mon Aug 29 2011 Todd Zullinger - 1.7.6.1-2 -- Build with PCRE support (#734269) - -* Fri Aug 26 2011 Todd Zullinger - 1.7.6.1-1 -- Update to 1.7.6.1 -- Include gpg signature for tarball in SRPM - -* Fri Aug 05 2011 Todd Zullinger - 1.7.6-5 -- Fix git push --quiet, thanks to Clemens Buchacher (#725593) -- Obsolete git-arch as needed - -* Tue Jul 26 2011 Todd Zullinger - 1.7.6-4 -- Drop git-arch on fedora >= 16, the tla package has been retired -- Rework most spec file dist conditionals to make future changes easier - -* Thu Jul 21 2011 Petr Sabata - 1.7.6-3 -- Perl mass rebuild - -* Wed Jul 20 2011 Petr Sabata - 1.7.6-2 -- Perl mass rebuild - -* Wed Jun 29 2011 Adam Tkac - 1.7.6-1 -- update to 1.7.6 - -* Mon Jun 20 2011 Marcela Mašláňová - 1.7.5.4-2 -- Perl mass rebuild - -* Thu Jun 09 2011 Adam Tkac - 1.7.5.4-1 -- update to 1.7.5.4 - -* Tue May 24 2011 Adam Tkac - 1.7.5.2-1 -- update to 1.7.5.2 - -* Thu May 05 2011 Adam Tkac - 1.7.5.1-1 -- update to 1.7.5.1 - -* Wed Apr 27 2011 Adam Tkac - 1.7.5-1 -- update to 1.7.5 - -* Mon Apr 11 2011 Adam Tkac - 1.7.4.4-1 -- update to 1.7.4.4 - -* Mon Mar 28 2011 Adam Tkac - 1.7.4.2-1 -- update to 1.7.4.2 -- move man3/Git.3pm file to perl-Git subpkg (#664889) -- add perl-DBD-SQLite dependency to git-cvs (#602410) - -* Sun Feb 13 2011 Todd Zullinger - 1.7.4.1-1 -- Update to 1.7.4.1 -- Clean up documentation settings (the defaults changed in 1.7.4) -- Improve EL-5 compatibility, thanks to Kevin Fenzi for emacs testing - -* Tue Feb 08 2011 Fedora Release Engineering - 1.7.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Jan 31 2011 Adam Tkac - 1.7.4-1 -- update to 1.7.4 - -* Wed Jan 19 2011 Adam Tkac - 1.7.3.5-1 -- update to 1.7.3.5 - -* Thu Dec 16 2010 Adam Tkac - 1.7.3.4-1 -- update to 1.7.3.4 - -* Mon Dec 06 2010 Adam Tkac - 1.7.3.3-1 -- update to 1.7.3.3 - -* Fri Oct 22 2010 Adam Tkac - 1.7.3.2-1 -- update to 1.7.3.2 - -* Thu Sep 30 2010 Adam Tkac - 1.7.3.1-1 -- update to 1.7.3.1 - -* Wed Sep 29 2010 jkeating - 1.7.3-3 -- Rebuilt for gcc bug 634757 - -* Mon Sep 20 2010 Todd Zullinger - 1.7.3-2 -- Ensure the release notes are included in %%doc - -* Sun Sep 19 2010 Todd Zullinger - 1.7.3-1 -- Update to 1.7.3 - -* Tue Sep 07 2010 Adam Tkac - 1.7.2.3-1 -- update to 1.7.2.3 - -* Fri Aug 20 2010 Adam Tkac - 1.7.2.2-1 -- update to 1.7.2.2 - -* Fri Jul 30 2010 Thomas Spura - 1.7.2.1-2 -- cherry-pick: "Do not unquote + into ' ' in URLs" - -* Thu Jul 29 2010 Todd Zullinger - 1.7.2.1-1 -- Update to git-1.7.2.1 - -* Thu Jul 22 2010 Adam Tkac - 1.7.2-1 -- update to 1.7.2 - -* Fri Jul 02 2010 Adam Tkac - 1.7.1.1-1 -- update to 1.7.1.1 - -* Fri Jun 25 2010 Adam Tkac - 1.7.1-2 -- rebuild against new perl - -* Tue May 04 2010 Todd Zullinger - 1.7.1-1 -- git-1.7.1 -- Fix conditionals for EL-6 -- Comply with Emacs add-on packaging guidelines (#573423), Jonathan Underwood - - Place elisp source files in separate emacs-git-el package - - Place git support files in own directory under site-lisp - - Use Emacs packaging macros - -* Thu Apr 29 2010 Marcela Maslanova - 1.7.0.1-2 -- Mass rebuild with perl-5.12.0 - -* Mon Mar 01 2010 Todd Zullinger - 1.7.0.1-1 -- git-1.7.0.1 - -* Sat Feb 13 2010 Todd Zullinger - 1.7.0-1 -- git-1.7.0 -- Link imap-send with libcrypto (#565147) -- Disable building of unused python remote helper libs - -* Tue Jan 26 2010 Todd Zullinger - 1.6.6.1-1 -- git-1.6.6.1 -- Use %%{gitcoredir}/git-daemon as xinetd server option, for SELinux (#529682) -- Make %%{_var}/lib/git the default gitweb projectroot (#556299) -- Include gitweb/INSTALL file as documentation, the gitweb README refers to it -- Ship a short example gitweb config file (%%{_sysconfdir}/gitweb.conf) -- Remove long fixed xinetd IPv6 workaround on Fedora (#557528) -- Install missing gitweb.js (#558740) - -* Wed Dec 23 2009 Todd Zullinger - 1.6.6-1 -- git-1.6.6 - -* Fri Dec 11 2009 Todd Zullinger - 1.6.5.6-1 -- git-1.6.5.6 - -* Sun Dec 06 2009 Todd Zullinger - 1.6.5.5-1 -- git-1.6.5.5 - -* Fri Dec 4 2009 Stepan Kasal - 1.6.5.3-2 -- rebuild against perl 5.10.1 - -* Sat Nov 21 2009 Todd Zullinger - 1.6.5.3-1 -- git-1.6.5.3 -- Only BR perl(Error) on Fedora and RHEL >= 5 -- Use config.mak to set build options -- Improve compatibility with EPEL -- Replace $RPM_BUILD_ROOT with %%{buildroot} -- Fix Obsoletes for those rebuilding on EL-4 - -* Mon Oct 26 2009 Todd Zullinger - 1.6.5.2-1 -- git-1.6.5.2 -- Drop asciidoc --unsafe option, it should not be needed anymore -- Don't use install -t/-T, they're not compatible with older coreutils -- Don't use -perm /a+x with find, it's incompatible with older findutils - -* Sat Oct 17 2009 Todd Zullinger - 1.6.5.1-1 -- git-1.6.5.1 - -* Sun Oct 11 2009 Todd Zullinger - 1.6.5-1 -- git-1.6.5 - -* Mon Sep 28 2009 Todd Zullinger - 1.6.5-0.2.rc2 -- git-1.6.5.rc2 -- Enable Linus' block-sha1 implementation - -* Wed Sep 16 2009 Todd Zullinger - 1.6.4.4-1 -- git-1.6.4.4 - -* Sun Sep 13 2009 Todd Zullinger - 1.6.4.3-1 -- git-1.6.4.3 - -* Sun Aug 30 2009 Todd Zullinger - 1.6.4.2-1 -- git-1.6.4.2 - -* Sat Aug 22 2009 Todd Zullinger - 1.6.4.1-1 -- git-1.6.4.1 - -* Fri Aug 21 2009 Tomas Mraz - 1.6.4-2 -- rebuilt with new openssl - -* Wed Jul 29 2009 Todd Zullinger - 1.6.4-1 -- git-1.6.4 - -* Fri Jul 24 2009 Fedora Release Engineering - 1.6.3.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Sun Jun 28 2009 Todd Zullinger - 1.6.3.3-1 -- git-1.6.3.3 -- Move contributed hooks to %%{_datadir}/git-core/contrib/hooks (bug 500137) -- Fix rpmlint warnings about Summary and git-mergetool--lib missing shebang - -* Fri Jun 19 2009 Todd Zullinger - 1.6.3.2-3 -- Temporarily disable asciidoc's safe mode until bug 506953 is fixed - -* Fri Jun 19 2009 Todd Zullinger - 1.6.3.2-2 -- Fix git-daemon hang on invalid input (CVE-2009-2108, bug 505761) - -* Fri Jun 05 2009 Todd Zullinger - 1.6.3.2-1 -- git-1.6.3.2 -- Require emacs >= 22.2 for emacs support (bug 495312) -- Add a .desktop file for git-gui (bug 498801) -- Set ASCIIDOC8 and ASCIIDOC_NO_ROFF to correct documentation issues, - the sed hack to fix bug 485161 should no longer be needed -- Escape newline in git-daemon xinetd description (bug 502393) -- Add xinetd to git-daemon Requires (bug 504105) -- Organize BuildRequires/Requires, drop redundant expat Requires -- Only build noarch subpackages on Fedora >= 10 -- Only build emacs and arch subpackages on Fedora -- Handle curl/libcurl naming for EPEL and Fedora - -* Fri Apr 03 2009 Todd Zullinger - 1.6.2.2-1 -- git-1.6.2.2 -- Include contrib/ dir in %%doc (bug 492490) -- Don't set DOCBOOK_XSL_172, fix the '\&.ft' with sed (bug 485161) -- Ignore Branches output from cvsps-2.2b1 (bug 490602) -- Remove shebang from bash-completion script -- Include README in gitweb subpackage - -* Mon Mar 09 2009 Todd Zullinger - 1.6.2-1 -- git-1.6.2 -- Include contrib/emacs/README in emacs subpackage -- Drop upstreamed git-web--browse patch - -* Tue Feb 24 2009 Todd Zullinger - 1.6.1.3-2 -- Require perl(Authen::SASL) in git-email (bug 483062) -- Build many of the subpackages as noarch -- Update URL field - -* Mon Feb 09 2009 Todd Zullinger 1.6.1.3-1 -- git-1.6.1.3 -- Set htmldir so "git help -w " works -- Patch git-web--browse to not use "/sbin/start" to browse -- Include git-daemon documentation in the git-daemon package - -* Thu Jan 29 2009 Josh Boyer 1.6.1.2-1 -- git-1.6.1.2 - -* Mon Jan 26 2009 Todd Zullinger 1.6.1.1-1 -- git-1.6.1.1 -- Make compile more verbose - -* Fri Jan 16 2009 Tomas Mraz 1.6.1-2 -- rebuild with new openssl - -* Sat Jan 03 2009 Todd Zullinger 1.6.1-1 -- Install git-* commands in %%{_libexecdir}/git-core, the upstream default -- Remove libcurl from Requires, rpm will pick this up automatically -- Consolidate build/install options in %%make_git (Roland McGrath) -- Include DirectoryIndex in gitweb httpd-config (bug 471692) -- Define DOCBOOK_XSL_172 to fix minor manpage issues -- Rename %%{_var}/lib/git-daemon to %%{_var}/lib/git -- Preserve timestamps on installed files -- Quiet some rpmlint complaints -- Use macros more consistently - -* Sat Dec 20 2008 Todd Zullinger 1.6.0.6-1 -- git-1.6.0.6 -- Fixes a local privilege escalation bug in gitweb - (http://article.gmane.org/gmane.comp.version-control.git/103624) -- Add gitk Requires to git-gui (bug 476308) - -* Thu Dec 11 2008 Josh Boyer 1.6.0.5-1 -- git-1.6.0.5 - -* Mon Nov 17 2008 Seth Vidal -- switch from /srv/git to /var/lib/git-daemon for packaging rules compliance - -* Fri Nov 14 2008 Josh Boyer 1.6.0.4-1 -- git-1.6.0.4 - -* Wed Oct 22 2008 Josh Boyer 1.6.0.3-1 -- git-1.6.0.3 -- Drop curl requirement in favor of libcurl (bug 449388) -- Add requires for SMTP-SSL perl module to make git-send-email work (bug 443615) - -* Thu Aug 28 2008 James Bowes 1.6.0.1-1 -- git-1.6.0.1 - -* Thu Jul 24 2008 James Bowes 1.5.6-4 -- git-1.5.6.4 - -* Thu Jun 19 2008 James Bowes 1.5.6-1 -- git-1.5.6 - -* Tue Jun 3 2008 Stepan Kasal 1.5.5.3-2 -- use tar.bz2 instead of tar.gz - -* Wed May 28 2008 James Bowes 1.5.5.3-1 -- git-1.5.5.3 - -* Mon May 26 2008 James Bowes 1.5.5.2-1 -- git-1.5.5.2 - -* Mon Apr 21 2008 James Bowes 1.5.5.1-1 -- git-1.5.5.1 - -* Wed Apr 09 2008 James Bowes 1.5.5-1 -- git-1.5.5 - -* Fri Apr 04 2008 James Bowes 1.5.4.5-3 -- Remove the last two requires on git-core. - -* Wed Apr 02 2008 James Bowes 1.5.4.5-2 -- Remove a patch that's already upstream. - -* Fri Mar 28 2008 James Bowes 1.5.4.5-1 -- git-1.5.4.5 - -* Wed Mar 26 2008 James Bowes 1.5.4.4-4 -- Own /etc/bash_completion.d in case bash-completion isn't installed. - -* Tue Mar 25 2008 James Bowes 1.5.4.4-3 -- Include the sample hooks from contrib/hooks as docs (bug 321151). -- Install the bash completion script from contrib (bug 433255). -- Include the html docs in the 'core' package again (bug 434271). - -* Wed Mar 19 2008 James Bowes 1.5.4.4-2 -- Obsolete git <= 1.5.4.3, to catch going from F8 to rawhide/F9 - -* Thu Mar 13 2008 James Bowes 1.5.4.4-1 -- git-1.5.4.4 - -* Mon Mar 3 2008 Tom "spot" Callaway 1.5.4.3-3 -- rebuild for new perl (again) - -* Sun Feb 24 2008 Bernardo Innocenti 1.5.4.3-2 -- Do not silently overwrite /etc/httpd/conf.d/git.conf - -* Sat Feb 23 2008 James Bowes 1.5.4.3-1 -- git-1.5.4.3 -- Include Kristian Høgsberg's changes to rename git-core to - git and git to git-all. - -* Sun Feb 17 2008 James Bowes 1.5.4.2-1 -- git-1.5.4.2 - -* Mon Feb 11 2008 Jeremy Katz - 1.5.4.1-2 -- Add upstream patch (e62a641de17b172ffc4d3a803085c8afbfbec3d1) to have - gitweb rss feeds point be commitdiffs instead of commit - -* Sun Feb 10 2008 James Bowes 1.5.4.1-1 -- git-1.5.4.1 - -* Tue Feb 05 2008 Tom "spot" Callaway 1.5.4-3 -- rebuild for new perl - -* Sun Feb 03 2008 James Bowes 1.5.4-1 -- Add BuidRequires on gettext. - -* Sat Feb 02 2008 James Bowes 1.5.4-1 -- git-1.5.4 - -* Tue Jan 08 2008 James Bowes 1.5.3.8-1 -- git-1.5.3.8 - -* Fri Dec 21 2007 James Bowes 1.5.3.7-2 -- Have git metapackage require explicit versions (bug 247214) - -* Mon Dec 03 2007 Josh Boyer 1.5.3.7-1 -- git-1.5.3.7 - -* Tue Nov 27 2007 Josh Boyer 1.5.3.6-1 -- git-1.5.3.6 -- git-core requires perl(Error) (bug 367861) -- git-svn requires perl(Term:ReadKey) (bug 261361) -- git-email requires perl-Git (bug 333061) - -* Wed Oct 24 2007 Lubomir Kundrak 1.5.3.4-2 -- git-Perl requires Error package - -* Tue Oct 09 2007 James Bowes 1.5.3.4-1 -- git-1.5.3.4 - -* Sun Sep 30 2007 James Bowes 1.5.3.3-1 -- git-1.5.3.3 - -* Wed Sep 26 2007 James Bowes 1.5.3.2-1 -- git-1.5.3.2 - -* Thu Sep 06 2007 Josh Boyer 1.5.3.1-2 -- Include git-gui and git-citool docs - -* Thu Sep 06 2007 Josh Boyer 1.5.3.1-1 -- git-1.5.3.1-1 - -* Thu Aug 23 2007 James Bowes 1.5.2.5-1 -- git-1.5.2.5-1 - -* Fri Aug 03 2007 Josh Boyer 1.5.2.4-1 -- git-1.5.2.4-1 - -* Tue Jul 03 2007 Josh Boyer 1.5.2.2-3 -- Add git-daemon and gitweb packages - -* Thu Jun 21 2007 Josh Boyer 1.5.2.2-2 -- Add emacs-git package (#235431) - -* Mon Jun 18 2007 James Bowes 1.5.2.2-1 -- git-1.5.2.2 - -* Fri Jun 08 2007 James Bowes 1.5.2.1-1 -- git-1.5.2.1 - -* Sun May 13 2007 Quy Tonthat -- Added lib files for git-gui -- Added Documentation/technical (As needed by Git Users Manual) - -* Tue May 8 2007 Quy Tonthat -- Added howto files - -* Fri Mar 30 2007 Chris Wright 1.5.0.6-1 -- git-1.5.0.6 - -* Mon Mar 19 2007 Chris Wright 1.5.0.5-1 -- git-1.5.0.5 - -* Tue Mar 13 2007 Chris Wright 1.5.0.3-1 -- git-1.5.0.3 - -* Fri Mar 2 2007 Chris Wright 1.5.0.2-2 -- BuildRequires perl-devel as of perl-5.8.8-14 (bz 230680) - -* Mon Feb 26 2007 Chris Wright 1.5.0.2-1 -- git-1.5.0.2 - -* Tue Feb 13 2007 Nicolas Pitre -- Update core package description (Git isn't as stupid as it used to be) - -* Mon Feb 12 2007 Junio C Hamano -- Add git-gui and git-citool. - -* Sun Dec 10 2006 Chris Wright 1.4.4.2-2 -- no need to install manpages executable (bz 216790) -- use bytes for git-cvsserver - -* Sun Dec 10 2006 Chris Wright 1.4.4.2-1 -- git-1.4.4.2 - -* Mon Nov 6 2006 Jindrich Novy 1.4.2.4-2 -- rebuild against the new curl - -* Tue Oct 17 2006 Chris Wright 1.4.2.4-1 -- git-1.4.2.4 - -* Wed Oct 4 2006 Chris Wright 1.4.2.3-1 -- git-1.4.2.3 - -* Fri Sep 22 2006 Chris Wright 1.4.2.1-1 -- git-1.4.2.1 - -* Mon Sep 11 2006 Chris Wright 1.4.2-1 -- git-1.4.2 - -* Thu Jul 6 2006 Chris Wright 1.4.1-1 -- git-1.4.1 - -* Tue Jun 13 2006 Chris Wright 1.4.0-1 -- git-1.4.0 - -* Thu May 4 2006 Chris Wright 1.3.3-1 -- git-1.3.3 -- enable git-email building, prereqs have been relaxed - -* Thu May 4 2006 Chris Wright 1.3.2-1 -- git-1.3.2 - -* Fri Apr 28 2006 Chris Wright 1.3.1-1 -- git-1.3.1 - -* Wed Apr 19 2006 Chris Wright 1.3.0-1 -- git-1.3.0 - -* Mon Apr 10 2006 Chris Wright 1.2.6-1 -- git-1.2.6 - -* Wed Apr 5 2006 Chris Wright 1.2.5-1 -- git-1.2.5 - -* Wed Mar 1 2006 Chris Wright 1.2.4-1 -- git-1.2.4 - -* Wed Feb 22 2006 Chris Wright 1.2.3-1 -- git-1.2.3 - -* Tue Feb 21 2006 Chris Wright 1.2.2-1 -- git-1.2.2 - -* Thu Feb 16 2006 Chris Wright 1.2.1-1 -- git-1.2.1 - -* Mon Feb 13 2006 Chris Wright 1.2.0-1 -- git-1.2.0 - -* Wed Feb 1 2006 Chris Wright 1.1.6-1 -- git-1.1.6 - -* Tue Jan 24 2006 Chris Wright 1.1.4-1 -- git-1.1.4 - -* Sun Jan 15 2006 Chris Wright 1.1.2-1 -- git-1.1.2 - -* Tue Jan 10 2006 Chris Wright 1.1.1-1 -- git-1.1.1 - -* Tue Jan 10 2006 Chris Wright 1.1.0-1 -- Update to latest git-1.1.0 (drop git-email for now) -- Now creates multiple packages: -- git-core, git-svn, git-cvs, git-arch, gitk - -* Mon Nov 14 2005 H. Peter Anvin 0.99.9j-1 -- Change subpackage names to git- instead of git-core- -- Create empty root package which brings in all subpackages -- Rename git-tk -> gitk - -* Thu Nov 10 2005 Chris Wright 0.99.9g-1 -- zlib dependency fix -- Minor cleanups from split -- Move arch import to separate package as well - -* Tue Sep 27 2005 Jim Radford -- Move programs with non-standard dependencies (svn, cvs, email) - into separate packages - -* Tue Sep 27 2005 H. Peter Anvin -- parallelize build -- COPTS -> CFLAGS - -* Fri Sep 16 2005 Chris Wright 0.99.6-1 -- update to 0.99.6 - -* Fri Sep 16 2005 Horst H. von Brand -- Linus noticed that less is required, added to the dependencies - -* Sun Sep 11 2005 Horst H. von Brand -- Updated dependencies -- Don't assume manpages are gzipped - -* Thu Aug 18 2005 Chris Wright 0.99.4-4 -- drop sh_utils, sh-utils, diffutils, mktemp, and openssl Requires -- use RPM_OPT_FLAGS in spec file, drop patch0 - -* Wed Aug 17 2005 Tom "spot" Callaway 0.99.4-3 -- use dist tag to differentiate between branches -- use rpm optflags by default (patch0) -- own %%{_datadir}/git-core/ - -* Mon Aug 15 2005 Chris Wright -- update spec file to fix Buildroot, Requires, and drop Vendor - -* Sun Aug 07 2005 Horst H. von Brand -- Redid the description -- Cut overlong make line, loosened changelog a bit -- I think Junio (or perhaps OSDL?) should be vendor... - -* Thu Jul 14 2005 Eric Biederman -- Add the man pages, and the --without docs build option - -* Thu Jul 7 2005 Chris Wright -- initial git spec file +* 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/git.xinetd.in b/git.xinetd.in index 540e070..d4ca95d 100644 --- a/git.xinetd.in +++ b/git.xinetd.in @@ -8,7 +8,7 @@ service git socket_type = stream wait = no user = nobody - server = @GITCOREDIR@/git-daemon + server = @GITEXECDIR@/git-daemon server_args = --base-path=@BASE_PATH@ --export-all --user-path=public_git --syslog --inetd --verbose log_on_failure += USERID } diff --git a/git@.service b/git@.service deleted file mode 100644 index 185ff25..0000000 --- a/git@.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Git Repositories Server Daemon -Documentation=man:git-daemon(1) - -[Service] -User=nobody -ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose -StandardInput=socket diff --git a/git@.service.in b/git@.service.in new file mode 100644 index 0000000..7abcfeb --- /dev/null +++ b/git@.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=Git Repositories Server Daemon +Documentation=man:git-daemon(1) + +[Service] +User=nobody +ExecStart=-@GITEXECDIR@/git-daemon --base-path=@BASE_PATH@ --export-all \ + --user-path=public_git --inetd --log-destination=stderr --verbose +StandardInput=socket +StandardError=journal diff --git a/git.conf.httpd b/gitweb-httpd.conf similarity index 100% rename from git.conf.httpd rename to gitweb-httpd.conf diff --git a/gpgkey-junio.asc b/gpgkey-junio.asc index 7214aea..5edb58f 100644 --- a/gpgkey-junio.asc +++ b/gpgkey-junio.asc @@ -1,5 +1,4 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1 mQINBE6GdewBEADE3szNmKeUAUad22z1tWkLjLzyDcJpF7IzEnLs8bD1y0I6iqH0 169ru5iXKn29wc+YAuxWorb4P5a2i2B/vs32hJy/rXE7dpvsAqlHLSGSDUJXiFzM @@ -12,349 +11,134 @@ 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 -mal7K7p+HI72Vw5shRYbmhlYrNUM0yLpmKVLprw= -=K5VA +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 +=7hTI -----END PGP PUBLIC KEY BLOCK----- diff --git a/print-failed-test-output b/print-failed-test-output new file mode 100644 index 0000000..4e65662 --- /dev/null +++ b/print-failed-test-output @@ -0,0 +1,26 @@ +#!/bin/bash + +shopt -s failglob + +# Print output from failing tests +printf -v sep "%0.s-" {1..80} +for exit_file in t/test-results/*.exit; do + [ "$(< "$exit_file")" -eq 0 ] && continue + out_file="${exit_file%exit}out" + printf '\n%s\n%s\n%s\n' "$sep" "$out_file" "$sep" + cat "$out_file" +done + +# 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 fbf1068..4a04f56 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.13.4.tar.sign) = 0849c3a861d632d7413a788913af7e4537c6329535c734b75072e6c3587800addb6ab7be6ea550f46e4c17b717a1bbcc44493292bd1b53b54ab7195d2bc9e2d2 -SHA512 (git-2.13.4.tar.xz) = dbe6c08a6cb4931f0d1c16dabc23595c8e328a397552817ceb29cb1bf38f546e3a6ec9943db06e3adb39b15772f9e79e94c08fb4cd1f1807663602cb132983f5 +SHA512 (git-2.52.0.tar.xz) = 965e5ebb72d1f080d64e34bdb75f0bb1689c9dd41dcf63b020d986bad49808ac09bfb1115962bc0c5b95bac8622367ac4cd09aa89266f73d2137fe94c90dd3ed +SHA512 (git-2.52.0.tar.sign) = a5a68ce131a5763650c477ec01a4de958dd6a946bdea0f613e26bdab41d2df6b3ca63f9028bbe603bf0c834bd415c86e6c616b1ff08cc48aa7c3c61a37b24b74