From 1ea41cbd46d4ac427d42fa8c129f56a67fe688ce Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 7 Nov 2022 19:02:33 -0500 Subject: [PATCH 01/72] don't ship contrib/persistent-https as documentation This is Go source code which requires compilation to be used. It is licensed differently than git; shipping it changes the License tag. Let's avoid it for now. If it turns out to be widely used, we can restore it later (and ship it in binary form). --- git.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 4ab882b..86ce212 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ Name: git Version: 2.38.1 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -650,6 +650,10 @@ install -Dpm 0755 contrib/diff-highlight/diff-highlight \ %{buildroot}%{_datadir}/git-core/contrib/diff-highlight rm -rf contrib/diff-highlight/{Makefile,diff-highlight,*.perl,t} +# Remove contrib/persistent-https; a) this code requires compilation; and b) it +# is licensed differently than git +rm -rf contrib/persistent-https + # Remove contrib/scalar to avoid cruft in the git-core-doc docdir rm -rf contrib/scalar @@ -1006,6 +1010,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Nov 07 2022 Todd Zullinger - 2.38.1-2 +- don't ship contrib/persistent-https as documentation + * Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 - update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) From ef75bcdbad7337c032a7db4cd9c370c42a6e9442 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 7 Nov 2022 18:22:02 -0500 Subject: [PATCH 02/72] update license data and convert to SPDX format The license data was gathered from the 2.38.1 tarball. The licensecheck tool was run: find -type f -regextype egrep ! -regex '^(Documentation/.*\.txt$|(t/(chainlint|perf/p[0-9]{4}|t[0-9]{4}).*))' \ -exec licensecheck --shortname-scheme spdx {} + | LANG=C sort >licensecheck The contents were reviewed, removing files which are not shipped or were UNKNOWN to licensecheck. Of the UNKNOWN files, most lacked a specific license header and are thus treated as GPL-2.0-only. The code in reftable/ is licensed as BSD 3-Clause per reftable/LICENSE. --- git.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 86ce212..69e852c 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.38.1 Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System -License: GPLv2 +License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ Source0: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{name}-%{version}%{?rcrev}.tar.xz Source1: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{name}-%{version}%{?rcrev}.tar.sign @@ -1012,6 +1012,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Mon Nov 07 2022 Todd Zullinger - 2.38.1-2 - don't ship contrib/persistent-https as documentation +- update license data and convert to SPDX format * Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 - update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) From d0191b8ca59b4bd0394eb39373af871eb3b1ddef Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 12 Nov 2022 13:14:22 -0500 Subject: [PATCH 03/72] use %bash_completions_dir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A %bash_completions_dir macros was added to redhat-rpm-config recently¹. It is available for all supported Fedora releases. Define it if missing, to support EL <= 9. This is likely to become part of the packaging guideline soon². ¹ https://src.fedoraproject.org/rpms/redhat-rpm-config/c/483a3b (Add macros.shell-completions, 2022-06-25) ² https://pagure.io/packaging-committee/issue/1202 --- git.rpmlintrc | 3 +++ git.spec | 21 +++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/git.rpmlintrc b/git.rpmlintrc index b83cb0a..8b09c35 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -5,6 +5,9 @@ addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject # git-core-doc requires git-core, which provides the symlink target addFilter("git(-core-doc)?\..*: W: dangling-relative-symlink /usr/share/doc/git/contrib/hooks ../../../git-core/contrib/hooks") +# gitk requires git, which provides the symlink target +addFilter("gitk\.noarch: W: dangling-relative-symlink /usr/share/bash-completion/completions/gitk git") + # git-gui requires git, which provides the git binary addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications/git-gui.desktop git") diff --git a/git.spec b/git.spec index 69e852c..1e05b82 100644 --- a/git.spec +++ b/git.spec @@ -39,12 +39,6 @@ %global use_perl_interpreter 0 %endif -# Settings for Fedora and EL >= 7 -%if 0%{?fedora} || 0%{?rhel} >= 7 -%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) -%global bashcomproot %(dirname %{bashcompdir} 2>/dev/null) -%endif - # Allow cvs subpackage to be toggled via --with/--without # Disable cvs subpackage by default on EL >= 8 %if 0%{?rhel} >= 8 @@ -69,6 +63,9 @@ %global _hardened_build 1 %endif +# Define %%bash_completions_dir for EL <= 9 +%{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} + # Define for release candidates #global rcrev .rc0 @@ -77,7 +74,7 @@ Name: git Version: 2.38.1 -Release: 2%{?rcrev}%{?dist} +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -700,8 +697,8 @@ perl -p \ %{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 @@ -905,7 +902,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %exclude %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample %exclude %{_datadir}/git-core/templates/hooks/pre-rebase.sample %exclude %{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample -%{bashcomproot} +%{bash_completions_dir}/git %{_datadir}/git-core/ %files core-doc -f man-doc-files-core @@ -951,6 +948,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{_pkgdocdir}/*gitk*.txt %{_bindir}/*gitk* %{_datadir}/gitk +%{bash_completions_dir}/gitk %{?with_docs:%{_mandir}/man1/*gitk*.1*} %{?with_docs:%{_pkgdocdir}/*gitk*.html} @@ -1010,6 +1008,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Nov 12 2022 Todd Zullinger - 2.38.1-3 +- use %%bash_completions_dir + * Mon Nov 07 2022 Todd Zullinger - 2.38.1-2 - don't ship contrib/persistent-https as documentation - update license data and convert to SPDX format From 7d21254b0248a0b04f653b74069624ff4f6702d6 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 23 Nov 2022 12:47:16 -0500 Subject: [PATCH 04/72] update to 2.39.0-rc0 Add mod_http2 BuildRequires for t5559-http-fetch-smart-http2; skip it on EL7, which lacks it. Ignore the expected 'missing HTTP2' output from t5551-http-fetch-smart. Use a strict pattern to avoid unintended matches. Sadly, we must also disable t5559 for now. It fails very often across all architectures. The most common failure is "large fetch-pack requests can be sent using chunked encoding" (t5559.30), but earlier tests have also failed. Until these failures are understood and resolved, the entire test is disabled globally. (It's also disabled for EL-7, which is redundant now but won't be after we re-enable the test globally in the near future.) We can't simply skip the mod_http2 dependency here because we set GIT_TEST_HTTPD=true. Per upstream 73c49a4474 (t: run t5551 tests with both HTTP and HTTP/2, 2022-11-11): If HTTP/2 isn't supported on a given platform, then t5559 should bail during the webserver setup, and gracefully skip all tests (unless GIT_TEST_HTTPD has been changed from "auto" to "yes", where the point is to complain when webserver setup fails). Also ignore the 'missing BUILTIN_TXT_$builtin' output which comes from upstream a0c3244796 (doc SYNOPSIS & -h: use "-" to separate words in labels, not "_", 2022-10-13). We may want to loosen this in the future, but for now ignore it because it doesn't help us identify missing test dependencies. Release notes: https://github.com/git/git/raw/v2.39.0-rc0/Documentation/RelNotes/2.39.0.txt --- git.skip-test-patterns | 2 ++ git.spec | 24 ++++++++++++++++++++---- sources | 4 ++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 1a1139f..12b247d 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -1,8 +1,10 @@ +^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 diff --git a/git.spec b/git.spec index 1e05b82..84b152c 100644 --- a/git.spec +++ b/git.spec @@ -67,14 +67,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.38.1 -Release: 3%{?rcrev}%{?dist} +Version: 2.39.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -184,6 +184,8 @@ BuildRequires: acl %if 0%{?fedora} || 0%{?rhel} >= 8 # Needed by t5540-http-push-webdav.sh BuildRequires: apr-util-bdb +# Needed by t5559-http-fetch-smart-http2.sh +BuildRequires: mod_http2 %endif # endif fedora or rhel >= 8 BuildRequires: bash @@ -793,7 +795,17 @@ find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker # endif with docs && with linkcheck # Tests to skip on all releases and architectures -GIT_SKIP_TESTS="" +# +# t5559-http-fetch-smart-http2 runs t5551-http-fetch-smart with +# HTTP_PROTO=HTTP/2. Unfortunately, it fails quite regularly. +# https://lore.kernel.org/git/Y4fUntdlc1mqwad5@pobox.com/ +GIT_SKIP_TESTS="t5559" + +%if 0%{?rhel} && 0%{?rhel} < 8 +# Skip tests which require mod_http2 on el7 +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5559" +%endif +# endif rhel < 8 %ifarch aarch64 %{arm} %{power64} # Skip tests which fail on aarch64, arm, and ppc @@ -1008,6 +1020,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Nov 23 2022 Todd Zullinger - 2.39.0-0.0.rc0 +- update to 2.39.0-rc0 +- add mod_http2 BuildRequires for tests + * Sat Nov 12 2022 Todd Zullinger - 2.38.1-3 - use %%bash_completions_dir diff --git a/sources b/sources index 3f9c27f..0ca8e36 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.38.1.tar.xz) = e62ca6f54f01d2e4ccffb5f94e8e5cd2f3e098b766d909c694a8daf4d00d5cdeb9cc5ff8e9bc55d888406f292ba99433d334d4da9689c0ce5d7299a3c67c90e0 -SHA512 (git-2.38.1.tar.sign) = a10fa332d5d5ea96bf6a0ed0c2a568212dd033acd539d07efbb73def13dd0144640a5a17477ea5cfe4104f1fa166237d7b251de275307eac7b91c6e60ca3de5d +SHA512 (git-2.39.0.rc0.tar.xz) = da92b6b8ec804712f035cb4017ab5d277ca3149749921455cc362a11f7cb96d4347d1eb9e7d02fc31bc0c06f3bdc5ef7c4f40d02f9b92f42e708a2f474e28ea6 +SHA512 (git-2.39.0.rc0.tar.sign) = 04b3e0a9558cb423073e8c7e869e7c616df1f691dac147bf4c30253cf9c66f9b4f030618a232381b8468b9c575d0751b7744725efc7c3d7ebd92739e868d697c From 13887794b7b7988f6d4f3811461eb4974494e0a8 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 30 Nov 2022 01:27:59 -0500 Subject: [PATCH 05/72] update to 2.39.0-rc1 Release notes: https://github.com/git/git/raw/v2.39.0-rc1/Documentation/RelNotes/2.39.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 84b152c..cc7f53c 100644 --- a/git.spec +++ b/git.spec @@ -67,14 +67,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.39.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1020,6 +1020,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Nov 30 2022 Todd Zullinger - 2.39.0-0.1.rc1 +- update to 2.39.0-rc1 + * Wed Nov 23 2022 Todd Zullinger - 2.39.0-0.0.rc0 - update to 2.39.0-rc0 - add mod_http2 BuildRequires for tests diff --git a/sources b/sources index 0ca8e36..dd6112a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.39.0.rc0.tar.xz) = da92b6b8ec804712f035cb4017ab5d277ca3149749921455cc362a11f7cb96d4347d1eb9e7d02fc31bc0c06f3bdc5ef7c4f40d02f9b92f42e708a2f474e28ea6 -SHA512 (git-2.39.0.rc0.tar.sign) = 04b3e0a9558cb423073e8c7e869e7c616df1f691dac147bf4c30253cf9c66f9b4f030618a232381b8468b9c575d0751b7744725efc7c3d7ebd92739e868d697c +SHA512 (git-2.39.0.rc1.tar.xz) = c90496689cf4ef5bd0efe85ac1f52b53527603596bef064470bd6c30f6b5d067e001d4a2f2cbe10f57235f8a74b733d59bc8cd8051f6fa9475b6dfb4df67577e +SHA512 (git-2.39.0.rc1.tar.sign) = bda17f54aa43b73376ebda0f6213a1ce5c2c882dccc605e564b9ec7b9058e9f24c6d4dd34496750a866baf60098607b1cabbacfff678f00e7e032efb328be76e From 0af3adfcb1998701eaa7c8e695a745ede98056a0 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 2 Dec 2022 23:12:17 -0500 Subject: [PATCH 06/72] include test-results & "trash" directory contents in build output When a build fails, the contents of t/test-results and the trash directories can be quite useful for debugging. This is particularly true when the failures occur only in Koji, where we can't get a shell and poke around. Create a compressed tarball and encode it with base64 to allow it to be output along with the normal build output. Include instruction on how to extract the base64-encoded content from the build log inline. The tar archive is compressed with zstd which provides a good balance of speed and size. The compression level of 17 was chosen after a number of tests against real test failures, as opposed to entirely random selection. ;) --- git.spec | 3 ++- print-failed-test-output | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index cc7f53c..4c7d9bf 100644 --- a/git.spec +++ b/git.spec @@ -257,6 +257,7 @@ BuildRequires: subversion-perl BuildRequires: tar BuildRequires: time BuildRequires: zip +BuildRequires: zstd %endif # endif with tests @@ -864,7 +865,7 @@ export GIT_TEST_SVN_HTTPD=true # Create tmpdir for test output and update GIT_TEST_OPTS # Also update GIT-BUILD-OPTIONS to keep make from any needless rebuilding -testdir=$(mktemp -d -p /tmp git-t.XXXX) +export testdir=$(mktemp -d -p /tmp git-t.XXXX) sed -i "s@^GIT_TEST_OPTS = .*@& --root=$testdir@" config.mak touch -r GIT-BUILD-OPTIONS ts sed -i "s@\(GIT_TEST_OPTS='.*\)'@\1 --root=$testdir'@" GIT-BUILD-OPTIONS diff --git a/print-failed-test-output b/print-failed-test-output index d0d63aa..4e65662 100644 --- a/print-failed-test-output +++ b/print-failed-test-output @@ -10,4 +10,17 @@ for exit_file in t/test-results/*.exit; do printf '\n%s\n%s\n%s\n' "$sep" "$out_file" "$sep" cat "$out_file" done + +# tar up test-results & $testdir, then print base64 encoded output +# +# copy $testdir contents to test-results to avoid absolute paths with tar +cp -a $testdir/* t/test-results/ +begin='-----BEGIN BASE64 MESSAGE-----' +end='-----END BASE64 MESSAGE-----' +printf '\n%s\n' 'test-results and trash directory output follows; decode via:' +printf '%s\n' "sed -n '/^${begin}$/,/^${end}$/{/^${begin}$/!{/^${end}$/!p}}' build.log | base64 -d >output.tar.zst" +printf '%s\n' "$begin" +tar -C t -cf - test-results/ | zstdmt -17 | base64 +printf '%s\n' "$end" + exit 1 From 54729198f5bbec2a25b853008f3e7ef912e6a35a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 5 Dec 2022 23:31:37 -0500 Subject: [PATCH 07/72] update to 2.39.0-rc2 Release notes: https://github.com/git/git/raw/v2.39.0-rc2/Documentation/RelNotes/2.39.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 4c7d9bf..c755f88 100644 --- a/git.spec +++ b/git.spec @@ -67,14 +67,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.39.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1021,6 +1021,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Dec 05 2022 Todd Zullinger - 2.39.0-0.2.rc2 +- update to 2.39.0-rc2 + * Wed Nov 30 2022 Todd Zullinger - 2.39.0-0.1.rc1 - update to 2.39.0-rc1 diff --git a/sources b/sources index dd6112a..253c5b3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.39.0.rc1.tar.xz) = c90496689cf4ef5bd0efe85ac1f52b53527603596bef064470bd6c30f6b5d067e001d4a2f2cbe10f57235f8a74b733d59bc8cd8051f6fa9475b6dfb4df67577e -SHA512 (git-2.39.0.rc1.tar.sign) = bda17f54aa43b73376ebda0f6213a1ce5c2c882dccc605e564b9ec7b9058e9f24c6d4dd34496750a866baf60098607b1cabbacfff678f00e7e032efb328be76e +SHA512 (git-2.39.0.rc2.tar.xz) = 31b6fda1fcbed027f20140066f77283bae1179da015fd01b3bee61ab4b313603b229b13b84680030ca65c4b9435133f209b9cc832caf9cff30824da816c3f687 +SHA512 (git-2.39.0.rc2.tar.sign) = ac6f40422717756d25f7e2d8a24c0b05d12985da4c4d733755c031c20819e157b0d97199443447900f772d235cfc7e4fefe4ea23506ab709db24347420bd3440 From 66efed4a986d32010a21db8b3352ee2f6960c29a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 12 Dec 2022 13:27:10 -0500 Subject: [PATCH 08/72] update to 2.39.0 Release notes: https://github.com/git/git/raw/v2.39.0/Documentation/RelNotes/2.39.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index c755f88..adb440b 100644 --- a/git.spec +++ b/git.spec @@ -67,14 +67,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.39.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1021,6 +1021,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Dec 12 2022 Todd Zullinger - 2.39.0-1 +- update to 2.39.0 + * Mon Dec 05 2022 Todd Zullinger - 2.39.0-0.2.rc2 - update to 2.39.0-rc2 diff --git a/sources b/sources index 253c5b3..01d2443 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.39.0.rc2.tar.xz) = 31b6fda1fcbed027f20140066f77283bae1179da015fd01b3bee61ab4b313603b229b13b84680030ca65c4b9435133f209b9cc832caf9cff30824da816c3f687 -SHA512 (git-2.39.0.rc2.tar.sign) = ac6f40422717756d25f7e2d8a24c0b05d12985da4c4d733755c031c20819e157b0d97199443447900f772d235cfc7e4fefe4ea23506ab709db24347420bd3440 +SHA512 (git-2.39.0.tar.xz) = f072cae7738279b1c0f8202e83a243ff0164b03d3be22895aa875caa265150a5773e1f062724b3eb82bc64b163730b6f451b82fa0c904167a8fa53ced5d3b1df +SHA512 (git-2.39.0.tar.sign) = 61f8b98c86ecada0784aa9d86bb7c88ed3fb836dee8ee91c16bdf6fba56226c6db424debd2b0f1485b67bdbb5261626b8ff9f362e32d7b93449461f0f873559a From ce294eae022e5c0fe88a552ea7eaca86ce0bc05e Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Fri, 13 Jan 2023 09:35:22 +0100 Subject: [PATCH 09/72] Remove perl(MODULE_COMPAT), it will be replaced by generators --- git.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/git.spec b/git.spec index adb440b..ca029e2 100644 --- a/git.spec +++ b/git.spec @@ -464,7 +464,6 @@ Requires: git = %{version}-%{release} Summary: Perl interface to Git BuildArch: noarch Requires: git = %{version}-%{release} -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description -n perl-Git %{summary}. @@ -472,7 +471,6 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $versi Summary: Perl interface to Git::SVN BuildArch: noarch Requires: git = %{version}-%{release} -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description -n perl-Git-SVN %{summary}. From 6fcfc2d4a26144fa85e5077518efc5418c68e96d Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 17 Jan 2023 14:43:57 -0500 Subject: [PATCH 10/72] require perl(MODULE_COMPAT) for Fedora < 38 and RHEL ce294ea (Remove perl(MODULE_COMPAT), it will be replaced by generators, 2023-01-13) removed the `Requires: perl(:MODULE_COMPAT_*)` entirely. This is not suitable for merging to older Fedora or RHEL releases. Make the requirement conditional. --- git.spec | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/git.spec b/git.spec index ca029e2..6988bb2 100644 --- a/git.spec +++ b/git.spec @@ -14,6 +14,13 @@ %bcond_with linkcheck %endif +# Settings for Fedora >= 38 +%if 0%{?fedora} >= 38 +%bcond_with perl_modcompat +%else +%bcond_without perl_modcompat +%endif + # Settings for Fedora and EL >= 9 %if 0%{?fedora} || 0%{?rhel} >= 9 %bcond_without asciidoctor @@ -464,6 +471,9 @@ Requires: git = %{version}-%{release} Summary: Perl interface to Git BuildArch: noarch Requires: git = %{version}-%{release} +%if %{with perl_modcompat} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +%endif %description -n perl-Git %{summary}. @@ -471,6 +481,9 @@ Requires: git = %{version}-%{release} 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}. From 029feecb34445b7f33405f2796c1138713fbfc94 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 17 Jan 2023 14:46:44 -0500 Subject: [PATCH 11/72] update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the release notes for 2.30.7¹: * CVE-2022-41903: git log has the ability to display commits using an arbitrary format with its --format specifiers. This functionality is also exposed to git archive via the export-subst gitattribute. When processing the padding operators (e.g., %<(, %<|(, %>(, %>>(, or %><( ), an integer overflow can occur in pretty.c::format_and_pad_commit() where a size_t is improperly stored as an int, and then added as an offset to a subsequent memcpy() call. This overflow can be triggered directly by a user running a command which invokes the commit formatting machinery (e.g., git log --format=...). It may also be triggered indirectly through git archive via the export-subst mechanism, which expands format specifiers inside of files within the repository during a git archive. This integer overflow can result in arbitrary heap writes, which may result in remote code execution. * CVE-2022-23521: gitattributes are a mechanism to allow defining attributes for paths. These attributes can be defined by adding a `.gitattributes` file to the repository, which contains a set of file patterns and the attributes that should be set for paths matching this pattern. When parsing gitattributes, multiple integer overflows can occur when there is a huge number of path patterns, a huge number of attributes for a single pattern, or when the declared attribute names are huge. These overflows can be triggered via a crafted `.gitattributes` file that may be part of the commit history. Git silently splits lines longer than 2KB when parsing gitattributes from a file, but not when parsing them from the index. Consequentially, the failure mode depends on whether the file exists in the working tree, the index or both. This integer overflow can result in arbitrary heap reads and writes, which may result in remote code execution. Credit for finding CVE-2022-41903 goes to Joern Schneeweisz of GitLab. An initial fix was authored by Markus Vervier of X41 D-Sec. Credit for finding CVE-2022-23521 goes to Markus Vervier and Eric Sesterhenn of X41 D-Sec. This work was sponsored by OSTIF. The proposed fixes have been polished and extended to cover additional findings by Patrick Steinhardt of GitLab, with help from others on the Git security mailing list. ¹ https://github.com/git/git/raw/v2.39.1/Documentation/RelNotes/2.30.7.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 6988bb2..ddd935b 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.39.0 +Version: 2.39.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1032,6 +1032,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Jan 17 2023 Todd Zullinger - 2.39.1-1 +- update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) + * Mon Dec 12 2022 Todd Zullinger - 2.39.0-1 - update to 2.39.0 diff --git a/sources b/sources index 01d2443..7924f69 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.39.0.tar.xz) = f072cae7738279b1c0f8202e83a243ff0164b03d3be22895aa875caa265150a5773e1f062724b3eb82bc64b163730b6f451b82fa0c904167a8fa53ced5d3b1df -SHA512 (git-2.39.0.tar.sign) = 61f8b98c86ecada0784aa9d86bb7c88ed3fb836dee8ee91c16bdf6fba56226c6db424debd2b0f1485b67bdbb5261626b8ff9f362e32d7b93449461f0f873559a +SHA512 (git-2.39.1.tar.xz) = b1821a814947f01adf98206a7e9a01da9daa617b1192e8ef6968b05af8d874f028fb26b5f828a9c48f734ef2c276f4d23bdc898ba46fb7aaa96dbe68081037e9 +SHA512 (git-2.39.1.tar.sign) = b6295e186263654b686fd0f0814a68dfbd04635ff4d613a09fa9d13897b584d06611903bc0205ecee6f01932c4065d20671bd91f8e6239a5f9c6a2fc6c38b87d From 04a6af281b191f6a72c3af164ed24a6e09c30823 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 04:55:02 +0000 Subject: [PATCH 12/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index ddd935b..373235d 100644 --- a/git.spec +++ b/git.spec @@ -81,7 +81,7 @@ Name: git Version: 2.39.1 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1032,6 +1032,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 2.39.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Jan 17 2023 Todd Zullinger - 2.39.1-1 - update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) From 7c34cecc4c6ede0c67c5359bc3a0d26955533d4d Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 3 Feb 2023 15:56:49 -0500 Subject: [PATCH 13/72] drop perl Email::Valid dep on RHEL (#2166718) The git send-email command uses Email::Valid to check addresses. If Email::Valid is not present, it falls back to a more basic regex match (which is not nearly as thorough as the checks Email::Valid performs). While Fedora (and EPEL 7/8 provide perl-Email-Valid, RHEL does not and does not wish to add the dependency. Make it easier for RHEL to fork & sync from us by making the dependency conditional. References: https://bugzilla.redhat.com/2020487 https://bugzilla.redhat.com/2046203 http://public-inbox.org/git/20220620004427.3586240-1-trawets@amazon.com/T/#u 4414f61 (add more git-email perl dependencies, 2021-11-13) --- git.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 373235d..127f94a 100644 --- a/git.spec +++ b/git.spec @@ -81,7 +81,7 @@ Name: git Version: 2.39.1 -Release: 1%{?rcrev}%{?dist}.1 +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -390,7 +390,10 @@ 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) @@ -1032,6 +1035,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Feb 03 2023 Todd Zullinger - 2.39.1-2 +- drop perl Email::Valid dep on RHEL (#2166718) + * Thu Jan 19 2023 Fedora Release Engineering - 2.39.1-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 4583821b534986dc2dcde28855d99ae16bc14fd6 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 14 Feb 2023 13:15:01 -0500 Subject: [PATCH 14/72] update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the release notes for 2.30.8¹: * CVE-2023-22490: Using a specially-crafted repository, Git can be tricked into using its local clone optimization even when using a non-local transport. Though Git will abort local clones whose source $GIT_DIR/objects directory contains symbolic links (c.f., CVE-2022-39253), the objects directory itself may still be a symbolic link. These two may be combined to include arbitrary files based on known paths on the victim's filesystem within the malicious repository's working copy, allowing for data exfiltration in a similar manner as CVE-2022-39253. * CVE-2023-23946: By feeding a crafted input to "git apply", a path outside the working tree can be overwritten as the user who is running "git apply". * A mismatched type in `attr.c::read_attr_from_index()` which could cause Git to errantly reject attributes on Windows and 32-bit Linux has been corrected. Credit for finding CVE-2023-22490 goes to yvvdwf, and the fix was developed by Taylor Blau, with additional help from others on the Git security mailing list. Credit for finding CVE-2023-23946 goes to Joern Schneeweisz, and the fix was developed by Patrick Steinhardt. ¹ https://github.com/git/git/raw/v2.39.2/Documentation/RelNotes/2.30.8.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 127f94a..2496456 100644 --- a/git.spec +++ b/git.spec @@ -80,8 +80,8 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.39.1 -Release: 2%{?rcrev}%{?dist} +Version: 2.39.2 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1035,6 +1035,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Feb 14 2023 Todd Zullinger - 2.39.2-1 +- update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) + * Fri Feb 03 2023 Todd Zullinger - 2.39.1-2 - drop perl Email::Valid dep on RHEL (#2166718) diff --git a/sources b/sources index 7924f69..9fd818d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.39.1.tar.xz) = b1821a814947f01adf98206a7e9a01da9daa617b1192e8ef6968b05af8d874f028fb26b5f828a9c48f734ef2c276f4d23bdc898ba46fb7aaa96dbe68081037e9 -SHA512 (git-2.39.1.tar.sign) = b6295e186263654b686fd0f0814a68dfbd04635ff4d613a09fa9d13897b584d06611903bc0205ecee6f01932c4065d20671bd91f8e6239a5f9c6a2fc6c38b87d +SHA512 (git-2.39.2.tar.xz) = fdca70bee19401c5c7a6d2f3d70bd80b6ba99f6a9f97947de31d4366ee3a78a18d5298abb25727ec8ef67131bca673e48dff2a5a050b6e032884ab04066b20cb +SHA512 (git-2.39.2.tar.sign) = 9d2641d179f809e55bf44fe9fed9d955e88461fc2cb4120ec3b1cd42944a6715ae9e080ea2e8d53e5e68335b7b4577aa363c836d2af56fbca3820d931b985cd9 From f5940a719d37e6d90b5298dcf993fa3ebf5ed56a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 24 Feb 2023 16:37:12 -0500 Subject: [PATCH 15/72] update to 2.40.0-rc0 Release notes: https://github.com/git/git/raw/v2.40.0-rc0/Documentation/RelNotes/2.40.0.txt --- git.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/git.spec b/git.spec index 2496456..c03c12f 100644 --- a/git.spec +++ b/git.spec @@ -74,14 +74,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.39.2 -Release: 1%{?rcrev}%{?dist} +Version: 2.40.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1035,6 +1035,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Feb 24 2023 Todd Zullinger - 2.40.0-0.0.rc0 +- update to 2.40.0-rc0 + * Tue Feb 14 2023 Todd Zullinger - 2.39.2-1 - update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) diff --git a/sources b/sources index 9fd818d..542036e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.39.2.tar.xz) = fdca70bee19401c5c7a6d2f3d70bd80b6ba99f6a9f97947de31d4366ee3a78a18d5298abb25727ec8ef67131bca673e48dff2a5a050b6e032884ab04066b20cb -SHA512 (git-2.39.2.tar.sign) = 9d2641d179f809e55bf44fe9fed9d955e88461fc2cb4120ec3b1cd42944a6715ae9e080ea2e8d53e5e68335b7b4577aa363c836d2af56fbca3820d931b985cd9 +SHA512 (git-2.40.0.rc0.tar.xz) = 123d400cce9a66f7399fe9e74b79e8ec709b7ca45d4cf8296af27ad1b866fccebc6493cc056c08d4678d3720bace60193d55ff6014137965317c16e65536ac20 +SHA512 (git-2.40.0.rc0.tar.sign) = 7a763b0581534b1e019dbf05b3a06def0f9eb73f9eb2fee5022d5fed59147d47ddca586581b754df61cc5c14e022b5b2096e23e0db037cdff1960f412e0b4dec From 01d712d89bb9c8f519f214707413282d8536b2e4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 1 Mar 2023 13:16:22 -0500 Subject: [PATCH 16/72] update to 2.40.0-rc1 Apply upstream patch to resolve issues in range-diff on non-x86 arches. Release notes: https://github.com/git/git/raw/v2.40.0-rc1/Documentation/RelNotes/2.40.0.txt --- ...-compiler-warning-when-char-is-unsig.patch | 40 +++++++++++++++++++ git.spec | 12 +++++- sources | 4 +- 3 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch diff --git a/0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch b/0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch new file mode 100644 index 0000000..f3a9ab9 --- /dev/null +++ b/0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch @@ -0,0 +1,40 @@ +From d9165bef5810df216e0eb4fac62d59cbf19446e4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= +Date: Tue, 28 Feb 2023 17:13:27 +0100 +Subject: [PATCH] range-diff: avoid compiler warning when char is unsigned +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Since 2b15969f61 (range-diff: let '--abbrev' option takes effect, +2023-02-20), GCC 11.3 on Ubuntu 22.04 on aarch64 warns (and errors +out if the make variable DEVELOPER is set): + +range-diff.c: In function ‘output_pair_header’: +range-diff.c:388:20: error: comparison is always false due to limited range of data type [-Werror=type-limits] + 388 | if (abbrev < 0) + | ^ +cc1: all warnings being treated as errors + +That's because char is unsigned on that platform. Use int instead, just +like in struct diff_options, to copy the value faithfully. + +Signed-off-by: René Scharfe +Signed-off-by: Junio C Hamano +--- + range-diff.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/range-diff.c b/range-diff.c +index 086365dffb..4bd65ab749 100644 +--- a/range-diff.c ++++ b/range-diff.c +@@ -383,7 +383,7 @@ static void output_pair_header(struct diff_options *diffopt, + const char *color_new = diff_get_color_opt(diffopt, DIFF_FILE_NEW); + const char *color_commit = diff_get_color_opt(diffopt, DIFF_COMMIT); + const char *color; +- char abbrev = diffopt->abbrev; ++ int abbrev = diffopt->abbrev; + + if (abbrev < 0) + abbrev = DEFAULT_ABBREV; diff --git a/git.spec b/git.spec index c03c12f..e875ca6 100644 --- a/git.spec +++ b/git.spec @@ -74,14 +74,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.40.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -123,6 +123,11 @@ 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 +# Avoid range-diff issues on non-x86 arches +# https://github.com/git/git/commit/d9165bef58 +# https://lore.kernel.org/git/Y%2F+paI8WGSmEbv%2Fw@pobox.com/ +Patch4: 0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1035,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Mar 01 2023 Todd Zullinger - 2.40.0-0.1.rc1 +- update to 2.40.0-rc1 + * Fri Feb 24 2023 Todd Zullinger - 2.40.0-0.0.rc0 - update to 2.40.0-rc0 diff --git a/sources b/sources index 542036e..f222e62 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.40.0.rc0.tar.xz) = 123d400cce9a66f7399fe9e74b79e8ec709b7ca45d4cf8296af27ad1b866fccebc6493cc056c08d4678d3720bace60193d55ff6014137965317c16e65536ac20 -SHA512 (git-2.40.0.rc0.tar.sign) = 7a763b0581534b1e019dbf05b3a06def0f9eb73f9eb2fee5022d5fed59147d47ddca586581b754df61cc5c14e022b5b2096e23e0db037cdff1960f412e0b4dec +SHA512 (git-2.40.0.rc1.tar.xz) = edff125736d498d964ec876a30a2bd4b0a115df58747e8f2c94c7c45fb5b112925336fecc7cbb2f2037e9f890d10753e988499be222fc41a176fec68f2a157fc +SHA512 (git-2.40.0.rc1.tar.sign) = aabee9d1810fd93858ad884ae0aaefb5a6965543715e02f8abf787cfc47794f53d6527399787e8aca20ceb9e8b6df4c9d1be2cbbd517ecb11eae3c05e77ffcb5 From b8be89a815f8345043583f447f7811e7f445b407 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 7 Mar 2023 14:59:23 -0500 Subject: [PATCH 17/72] update to 2.40.0-rc2 Release notes: https://github.com/git/git/raw/v2.40.0-rc2/Documentation/RelNotes/2.40.0.txt --- ...-compiler-warning-when-char-is-unsig.patch | 40 ------------------- git.spec | 12 +++--- sources | 4 +- 3 files changed, 7 insertions(+), 49 deletions(-) delete mode 100644 0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch diff --git a/0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch b/0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch deleted file mode 100644 index f3a9ab9..0000000 --- a/0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch +++ /dev/null @@ -1,40 +0,0 @@ -From d9165bef5810df216e0eb4fac62d59cbf19446e4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ren=C3=A9=20Scharfe?= -Date: Tue, 28 Feb 2023 17:13:27 +0100 -Subject: [PATCH] range-diff: avoid compiler warning when char is unsigned -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Since 2b15969f61 (range-diff: let '--abbrev' option takes effect, -2023-02-20), GCC 11.3 on Ubuntu 22.04 on aarch64 warns (and errors -out if the make variable DEVELOPER is set): - -range-diff.c: In function ‘output_pair_header’: -range-diff.c:388:20: error: comparison is always false due to limited range of data type [-Werror=type-limits] - 388 | if (abbrev < 0) - | ^ -cc1: all warnings being treated as errors - -That's because char is unsigned on that platform. Use int instead, just -like in struct diff_options, to copy the value faithfully. - -Signed-off-by: René Scharfe -Signed-off-by: Junio C Hamano ---- - range-diff.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/range-diff.c b/range-diff.c -index 086365dffb..4bd65ab749 100644 ---- a/range-diff.c -+++ b/range-diff.c -@@ -383,7 +383,7 @@ static void output_pair_header(struct diff_options *diffopt, - const char *color_new = diff_get_color_opt(diffopt, DIFF_FILE_NEW); - const char *color_commit = diff_get_color_opt(diffopt, DIFF_COMMIT); - const char *color; -- char abbrev = diffopt->abbrev; -+ int abbrev = diffopt->abbrev; - - if (abbrev < 0) - abbrev = DEFAULT_ABBREV; diff --git a/git.spec b/git.spec index e875ca6..d5a3c2c 100644 --- a/git.spec +++ b/git.spec @@ -74,14 +74,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.40.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -123,11 +123,6 @@ 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 -# Avoid range-diff issues on non-x86 arches -# https://github.com/git/git/commit/d9165bef58 -# https://lore.kernel.org/git/Y%2F+paI8WGSmEbv%2Fw@pobox.com/ -Patch4: 0001-range-diff-avoid-compiler-warning-when-char-is-unsig.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1040,6 +1035,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Mar 07 2023 Todd Zullinger - 2.40.0-0.2.rc2 +- update to 2.40.0-rc2 + * Wed Mar 01 2023 Todd Zullinger - 2.40.0-0.1.rc1 - update to 2.40.0-rc1 diff --git a/sources b/sources index f222e62..c7bdf9d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.40.0.rc1.tar.xz) = edff125736d498d964ec876a30a2bd4b0a115df58747e8f2c94c7c45fb5b112925336fecc7cbb2f2037e9f890d10753e988499be222fc41a176fec68f2a157fc -SHA512 (git-2.40.0.rc1.tar.sign) = aabee9d1810fd93858ad884ae0aaefb5a6965543715e02f8abf787cfc47794f53d6527399787e8aca20ceb9e8b6df4c9d1be2cbbd517ecb11eae3c05e77ffcb5 +SHA512 (git-2.40.0.rc2.tar.xz) = e038ddc97b95a0e2e50fcc35308041586e4c40891ce9e491b922a9fe0c40fd816387d84266acfd55565f90c4b6d794880952d6ce8ea19e68ef5451ace9a76548 +SHA512 (git-2.40.0.rc2.tar.sign) = 5a0c16b11293ccea1c90612b2076e202c23ce8bd16584ab5416397906b2bddf21b23397ef0bf5517093e85986bfd258233e45f0509b2336dc7e566e99cf1d32b From 459d08b118c60a6999fa523472714965e6e1de3a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 13 Mar 2023 12:57:10 -0400 Subject: [PATCH 18/72] update to 2.40.0 Release notes: https://github.com/git/git/raw/v2.40.0/Documentation/RelNotes/2.40.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index d5a3c2c..f12729c 100644 --- a/git.spec +++ b/git.spec @@ -74,14 +74,14 @@ %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.40.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1035,6 +1035,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Mar 13 2023 Todd Zullinger - 2.40.0-1 +- update to 2.40.0 + * Tue Mar 07 2023 Todd Zullinger - 2.40.0-0.2.rc2 - update to 2.40.0-rc2 diff --git a/sources b/sources index c7bdf9d..fe20049 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.40.0.rc2.tar.xz) = e038ddc97b95a0e2e50fcc35308041586e4c40891ce9e491b922a9fe0c40fd816387d84266acfd55565f90c4b6d794880952d6ce8ea19e68ef5451ace9a76548 -SHA512 (git-2.40.0.rc2.tar.sign) = 5a0c16b11293ccea1c90612b2076e202c23ce8bd16584ab5416397906b2bddf21b23397ef0bf5517093e85986bfd258233e45f0509b2336dc7e566e99cf1d32b +SHA512 (git-2.40.0.tar.xz) = a2720f8f9a0258c0bb5e23badcfd68a147682e45a5d039a42c47128296c508109d5039029db89311a35db97a9008585e84ed11b400846502c9be913d67f0fd90 +SHA512 (git-2.40.0.tar.sign) = 30376e2487abb247d32b080b37c008dca59067f94f93769197fc2c096ac6a433598578af852f6b343a18e57587f7ff9eac30899393abae0658d68317a5b2fe65 From b477fc33188a26bbde2836491875dca2446d8009 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 25 Apr 2023 13:12:02 -0400 Subject: [PATCH 19/72] update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007) Refer to the release notes for 2.30.9 for details of each CVE as well as the following security advisories from the git project: https://github.com/git/git/security/advisories/GHSA-2hvf-7c8p-28fx (CVE-2023-25652) https://github.com/git/git/security/advisories/GHSA-v48j-4xgg-4844 (CVE-2023-29007) (At this time there is no upstream advisory for CVE-2023-25815. This issue does not affect the Fedora packages as we do not use the runtime prefix support.) Release notes: https://github.com/git/git/raw/v2.30.9/Documentation/RelNotes/2.30.9.txt https://github.com/git/git/raw/v2.40.1/Documentation/RelNotes/2.40.1.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index f12729c..2e013b3 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.40.0 +Version: 2.40.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1035,6 +1035,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Apr 25 2023 Todd Zullinger - 2.40.1-1 +- update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007) + * Mon Mar 13 2023 Todd Zullinger - 2.40.0-1 - update to 2.40.0 diff --git a/sources b/sources index fe20049..0ab8e9c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.40.0.tar.xz) = a2720f8f9a0258c0bb5e23badcfd68a147682e45a5d039a42c47128296c508109d5039029db89311a35db97a9008585e84ed11b400846502c9be913d67f0fd90 -SHA512 (git-2.40.0.tar.sign) = 30376e2487abb247d32b080b37c008dca59067f94f93769197fc2c096ac6a433598578af852f6b343a18e57587f7ff9eac30899393abae0658d68317a5b2fe65 +SHA512 (git-2.40.1.tar.xz) = 9ab41c64c6e666c314683bc4925535e037d43f947b8d327ff7d0379ac12899f4effcc2fe4e47b1ce652ad7140aa4f01f3b99f9cc0cf854cfeface1a5d3e1893e +SHA512 (git-2.40.1.tar.sign) = b8becacee3736bf2f5c661da4d3f86042544717556e8924a4f385c4966886ffe7558ef05bf5ce58c38e404c477b299f952fd83ed249802ddaf6bd4bf9f3885f8 From d050347835c141152fe4e78cdb3a9d7c849cff9b Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 12 May 2023 21:07:56 -0400 Subject: [PATCH 20/72] use tilde versioning for release candidates All supported released of Fedora and EPEL support the tilde notation. Reference: https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/ --- git.spec | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/git.spec b/git.spec index 2e013b3..c778286 100644 --- a/git.spec +++ b/git.spec @@ -73,20 +73,23 @@ # Define %%bash_completions_dir for EL <= 9 %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} -# Define for release candidates -#global rcrev .rc0 +# Adjust Source URL path for release candidates +%global rcpath %(test "%{version}" = "%{real_version}" || echo testing/) # Set path to the package-notes linker script -%global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld +%global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git Version: 2.40.1 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ -Source0: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{name}-%{version}%{?rcrev}.tar.xz -Source1: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{name}-%{version}%{?rcrev}.tar.sign + +# Note: real_version must be defined _after_ Version +%global real_version %(echo %{version} | tr '~' '.') +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. @@ -516,7 +519,7 @@ Requires: subversion # Verify GPG signatures xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- -%autosetup -p1 -n %{name}-%{version}%{?rcrev} +%autosetup -p1 -n %{name}-%{real_version} # Install print-failed-test-output script install -p -m 755 %{SOURCE99} print-failed-test-output @@ -1035,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri May 12 2023 Todd Zullinger - 2.40.1-2 +- use tilde versioning for release candidates + * Tue Apr 25 2023 Todd Zullinger - 2.40.1-1 - update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007) From 08d76e08ab2ee8ec274df2cce2248f2d00a53806 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 15 May 2023 22:56:47 -0400 Subject: [PATCH 21/72] update to 2.41.0-rc0 Release notes: https://github.com/git/git/raw/v2.41.0-rc0/Documentation/RelNotes/2.41.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index c778286..4682eb9 100644 --- a/git.spec +++ b/git.spec @@ -80,8 +80,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.40.1 -Release: 2%{?dist} +Version: 2.41.0~rc0 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1038,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon May 15 2023 Todd Zullinger - 2.41.0~rc0-1 +- update to 2.41.0-rc0 + * Fri May 12 2023 Todd Zullinger - 2.40.1-2 - use tilde versioning for release candidates diff --git a/sources b/sources index 0ab8e9c..53dbdb6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.40.1.tar.xz) = 9ab41c64c6e666c314683bc4925535e037d43f947b8d327ff7d0379ac12899f4effcc2fe4e47b1ce652ad7140aa4f01f3b99f9cc0cf854cfeface1a5d3e1893e -SHA512 (git-2.40.1.tar.sign) = b8becacee3736bf2f5c661da4d3f86042544717556e8924a4f385c4966886ffe7558ef05bf5ce58c38e404c477b299f952fd83ed249802ddaf6bd4bf9f3885f8 +SHA512 (git-2.41.0.rc0.tar.xz) = c553c793055c9457e1223659d96e4972167f5d4286b50e6c6d02a876bff0359b5c8da486bcf7e6bac8b94fe791c78d41ff7ce57c4919514170ab01f6753a6d71 +SHA512 (git-2.41.0.rc0.tar.sign) = 11282774744481e37bfbf0c1fed05c72f237f8b2a120f9bfca9fdb4a0672a1f05dfaa53d55d402d786580591c81cf5751bc0611601f594f3e32760e412c06c00 From 3f9ea1c48989a7299dfd4b731371c3ee0dc636ff Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 19 May 2023 14:38:52 -0400 Subject: [PATCH 22/72] update to 2.41.0-rc1 Release notes: https://github.com/git/git/raw/v2.41.0-rc1/Documentation/RelNotes/2.41.0.txt --- 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch | 6 +++--- 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch | 2 +- 0003-t-lib-git-svn-try-harder-to-find-a-port.patch | 2 +- git.spec | 5 ++++- sources | 4 ++-- 5 files changed, 11 insertions(+), 8 deletions(-) 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 index f7c1509..733f9c0 100644 --- 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 @@ -1,4 +1,4 @@ -From aedeaaf788bd8a7fc5a1887196b6f6d8a5c31362 Mon Sep 17 00:00:00 2001 +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 @@ -30,10 +30,10 @@ Signed-off-by: Todd Zullinger 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh -index 1f6b9b08d1..9279dcd659 100644 +index 2fb1b2ae56..4afdf5a6aa 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh -@@ -175,19 +175,26 @@ prepare_httpd() { +@@ -206,19 +206,26 @@ enable_cgipassauth () { } start_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 index 4540b63..37637bc 100644 --- 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 @@ -1,4 +1,4 @@ -From 16750d024ce038b019ab2e9ee5639901e445af37 Mon Sep 17 00:00:00 2001 +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 diff --git a/0003-t-lib-git-svn-try-harder-to-find-a-port.patch b/0003-t-lib-git-svn-try-harder-to-find-a-port.patch index 56624e2..905174e 100644 --- a/0003-t-lib-git-svn-try-harder-to-find-a-port.patch +++ b/0003-t-lib-git-svn-try-harder-to-find-a-port.patch @@ -1,4 +1,4 @@ -From aa5105dc115b43edc6c9c11714b092583f1221aa Mon Sep 17 00:00:00 2001 +From 41423d666fd52eaa6aa2b44a0de1b81d0857ca06 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 26 Aug 2022 18:28:44 -0400 Subject: [PATCH] t/lib-git-svn: try harder to find a port diff --git a/git.spec b/git.spec index 4682eb9..78e7721 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.41.0~rc0 +Version: 2.41.0~rc1 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1038,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri May 19 2023 Todd Zullinger - 2.41.0~rc1-1 +- update to 2.41.0-rc1 + * Mon May 15 2023 Todd Zullinger - 2.41.0~rc0-1 - update to 2.41.0-rc0 diff --git a/sources b/sources index 53dbdb6..bd57bbd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.41.0.rc0.tar.xz) = c553c793055c9457e1223659d96e4972167f5d4286b50e6c6d02a876bff0359b5c8da486bcf7e6bac8b94fe791c78d41ff7ce57c4919514170ab01f6753a6d71 -SHA512 (git-2.41.0.rc0.tar.sign) = 11282774744481e37bfbf0c1fed05c72f237f8b2a120f9bfca9fdb4a0672a1f05dfaa53d55d402d786580591c81cf5751bc0611601f594f3e32760e412c06c00 +SHA512 (git-2.41.0.rc1.tar.xz) = a93e169344d5ff6bb40bbd670e6f3a755a827f6b26089018f27892b4a0831349aa0c0019f8b573950359dfc271dd9317d31667b49d8aa343f2e079051c805ef0 +SHA512 (git-2.41.0.rc1.tar.sign) = 842ab4b4ba6d306c9de220426399ae1d3d32ae19029ad498e6e821ed4d79dfc68bc85beabdb56e39ff8dfd4bd8e6b2049bd919f9d5f0d03794f5a8a7ee36fa24 From a297238a545e63768f983e59f39149cf3c6dd6b5 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 24 May 2023 17:50:22 -0400 Subject: [PATCH 23/72] update to 2.41.0-rc2 Release notes: https://github.com/git/git/raw/v2.41.0-rc2/Documentation/RelNotes/2.41.0.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 78e7721..784a2e4 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.41.0~rc1 +Version: 2.41.0~rc2 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1038,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed May 24 2023 Todd Zullinger - 2.41.0~rc2-1 +- update to 2.41.0-rc2 + * Fri May 19 2023 Todd Zullinger - 2.41.0~rc1-1 - update to 2.41.0-rc1 diff --git a/sources b/sources index bd57bbd..b7764f2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.41.0.rc1.tar.xz) = a93e169344d5ff6bb40bbd670e6f3a755a827f6b26089018f27892b4a0831349aa0c0019f8b573950359dfc271dd9317d31667b49d8aa343f2e079051c805ef0 -SHA512 (git-2.41.0.rc1.tar.sign) = 842ab4b4ba6d306c9de220426399ae1d3d32ae19029ad498e6e821ed4d79dfc68bc85beabdb56e39ff8dfd4bd8e6b2049bd919f9d5f0d03794f5a8a7ee36fa24 +SHA512 (git-2.41.0.rc2.tar.xz) = 0f833dfd06a48e7a85f9b6b5133747624a3494de722160d0187a7e2e97465409849c55cdf25706ce58fa8f3079eafb9a0c3dc9658d91f207308de90560b30d57 +SHA512 (git-2.41.0.rc2.tar.sign) = e6695fe689cc6c3c1abeb9bb8bcf684f90dbd7d073e031bec704a7ecf25f7f22fa6ef9319bbc894baede42db06192cb9a8fdda3ec5eade7d6defb9dbf07a1b4b From 9e3c6109b5e750d2d0877cf2c84167c3dca1914e Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 24 May 2023 21:26:16 -0400 Subject: [PATCH 24/72] git.skip-test-patterns: ignore 'skip all tests in t5559' We added t5559-http-fetch-smart-http2 to GIT_SKIP_TESTS in 7d21254 (update to 2.39.0-rc0, 2022-11-23). Update git.skip-test-patterns to reflect this. --- git.skip-test-patterns | 1 + 1 file changed, 1 insertion(+) diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 12b247d..a310f5a 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -22,6 +22,7 @@ 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 From bae778cbc1db8aa2dad565de1f968c6677aafa06 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 1 Jun 2023 10:20:55 -0400 Subject: [PATCH 25/72] fix Source URL handling Move %rcpath definition added d050347 (use tilde versioning for release candidates, 2023-05-12) after %real_version. Otherwise, it is not parsed correctly. (I'm pretty sure it worked in the past, but it certainly doesn't now.) --- git.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 784a2e4..1488eb3 100644 --- a/git.spec +++ b/git.spec @@ -73,9 +73,6 @@ # Define %%bash_completions_dir for EL <= 9 %{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} -# Adjust Source URL path for release candidates -%global rcpath %(test "%{version}" = "%{real_version}" || echo testing/) - # Set path to the package-notes linker script %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld @@ -88,6 +85,10 @@ URL: https://git-scm.com/ # Note: real_version must be defined _after_ Version %global real_version %(echo %{version} | tr '~' '.') + +# Adjust Source URL path for release candidates +%global rcpath %(test "%{version}" = "%{real_version}" || echo testing/) + Source0: https://www.kernel.org/pub/software/scm/git/%{rcpath}%{name}-%{real_version}.tar.xz Source1: https://www.kernel.org/pub/software/scm/git/%{rcpath}%{name}-%{real_version}.tar.sign From ee7f0d47a7a5bbcc3640435ffa29a07495e0695b Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 1 Jun 2023 10:24:28 -0400 Subject: [PATCH 26/72] update to 2.41.0 Release notes: https://github.com/git/git/raw/v2.41.0/Documentation/RelNotes/2.41.0.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 1488eb3..0fc1d29 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.41.0~rc2 +Version: 2.41.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1039,6 +1039,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jun 01 2023 Todd Zullinger - 2.41.0-1 +- update to 2.41.0 + * Wed May 24 2023 Todd Zullinger - 2.41.0~rc2-1 - update to 2.41.0-rc2 diff --git a/sources b/sources index b7764f2..d13f7c2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.41.0.rc2.tar.xz) = 0f833dfd06a48e7a85f9b6b5133747624a3494de722160d0187a7e2e97465409849c55cdf25706ce58fa8f3079eafb9a0c3dc9658d91f207308de90560b30d57 -SHA512 (git-2.41.0.rc2.tar.sign) = e6695fe689cc6c3c1abeb9bb8bcf684f90dbd7d073e031bec704a7ecf25f7f22fa6ef9319bbc894baede42db06192cb9a8fdda3ec5eade7d6defb9dbf07a1b4b +SHA512 (git-2.41.0.tar.xz) = a215bc6d89afbddd56adac901c24ea2b7f98a37bf6a6a2756893947012ffaa850e76247a3445a5ab13ab5a462f39986fec33eed086148aba5eb554dc1799fee0 +SHA512 (git-2.41.0.tar.sign) = 140f088254997e05bb444ed25f18ae9cadec9c24081acfc66670f153cbeecd2cdb722b07b5678da95c578dd29ad81dcf683264a503b37d63400f0746bbfa8762 From 2600353fc110e5eaa2b714b2cbc28a57251e1fc5 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Thu, 6 Jul 2023 12:01:33 -0400 Subject: [PATCH 27/72] Fix file dependencies Installation path macros must not be used in file dependencies: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_directory_dependencies --- git.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 0fc1d29..75c41fd 100644 --- a/git.spec +++ b/git.spec @@ -129,7 +129,7 @@ Patch3: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch %if %{with docs} # pod2man is needed to build Git.3pm -BuildRequires: %{_bindir}/pod2man +BuildRequires: /usr/bin/pod2man %if %{with asciidoctor} BuildRequires: docbook5-style-xsl BuildRequires: rubygem-asciidoctor From be8516cba36a4b157091e2c8203de434d20da12f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 23:01:21 +0000 Subject: [PATCH 28/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 75c41fd..7d49676 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ Name: git Version: 2.41.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1039,6 +1039,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 2.41.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Thu Jun 01 2023 Todd Zullinger - 2.41.0-1 - update to 2.41.0 From ac4f507599c0a479e2a25e492c21c4d4e5b51379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 3 Oct 2023 15:31:37 +0200 Subject: [PATCH 29/72] update to 2.42.0 --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 7d49676..850c7f7 100644 --- a/git.spec +++ b/git.spec @@ -77,8 +77,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.41.0 -Release: 2%{?dist} +Version: 2.42.0 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1039,6 +1039,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Oct 03 2023 Ondřej Pohořelský - 2.42.0-1 +- update to 2.42.0 + * Wed Jul 19 2023 Fedora Release Engineering - 2.41.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/sources b/sources index d13f7c2..bbad81c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.41.0.tar.xz) = a215bc6d89afbddd56adac901c24ea2b7f98a37bf6a6a2756893947012ffaa850e76247a3445a5ab13ab5a462f39986fec33eed086148aba5eb554dc1799fee0 -SHA512 (git-2.41.0.tar.sign) = 140f088254997e05bb444ed25f18ae9cadec9c24081acfc66670f153cbeecd2cdb722b07b5678da95c578dd29ad81dcf683264a503b37d63400f0746bbfa8762 +SHA512 (git-2.42.0.tar.xz) = afe5bca3c084d4ddd66f20afa820ba10f61007f66846108929e0d4ee7b7eaa896fcf00917dead16881d840f674dec6dd0e353a05e62a31016694af3d7d22a51d +SHA512 (git-2.42.0.tar.sign) = 847914db4f035095643cf38af87e53be82b0d10c0fdcb862f5015df01662c15d6d77410e4f4aaa5ad510d9d82c830a0218465d10905f3ec048929b1c02be6d5d From 7edc80fb3b509faf1180a2694b93c41b263c3b12 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Wed, 1 Nov 2023 21:22:49 +0000 Subject: [PATCH 30/72] remove explicit BR for apr-util-bdb (#2247532) --- git.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 850c7f7..0c0317e 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ Name: git Version: 2.42.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -192,9 +192,11 @@ BuildRequires: zlib-devel >= 1.2 %if %{with tests} # Test suite requirements BuildRequires: acl -%if 0%{?fedora} || 0%{?rhel} >= 8 -# Needed by t5540-http-push-webdav.sh +%if (0%{?fedora} && 0%{?fedora} < 40) || (0%{?rhel} >= 8 && 0%{?rhel} < 10) +# Needed by t5540-http-push-webdav.sh; recent httpd obviates this BuildRequires: apr-util-bdb +%endif +%if 0%{?fedora} || 0%{?rhel} >= 8 # Needed by t5559-http-fetch-smart-http2.sh BuildRequires: mod_http2 %endif @@ -1039,6 +1041,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Nov 1 2023 Joe Orton - 2.42.0-2 +- remove explicit BR for apr-util-bdb (#2247532) + * Tue Oct 03 2023 Ondřej Pohořelský - 2.42.0-1 - update to 2.42.0 From 3b9b7132ccf307840fc3cd24868c8f61ca6c30b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 14 Nov 2023 15:15:16 +0100 Subject: [PATCH 31/72] update to 2.42.1 --- ...oid-duplicate-specification-warnings.patch | 86 +++++++++++++++++++ git.spec | 10 ++- sources | 4 +- 3 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 0001-send-email-avoid-duplicate-specification-warnings.patch diff --git a/0001-send-email-avoid-duplicate-specification-warnings.patch b/0001-send-email-avoid-duplicate-specification-warnings.patch new file mode 100644 index 0000000..3dee265 --- /dev/null +++ b/0001-send-email-avoid-duplicate-specification-warnings.patch @@ -0,0 +1,86 @@ +From 0fdc014acc342dace179ba698e58fcb138fb86de Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Tue, 14 Nov 2023 11:38:19 -0500 +Subject: [PATCH] send-email: avoid duplicate specification warnings + +With perl-Getopt-Long >= 2.55, a warning is issued for options which are +specified more than once. In addition to causing users to see warnings, +this results in test failures which compare the output. An example, +from t9001-send-email.37: + + | +++ diff -u expect actual + | --- expect 2023-11-14 10:38:23.854346488 +0000 + | +++ actual 2023-11-14 10:38:23.848346466 +0000 + | @@ -1,2 +1,7 @@ + | +Duplicate specification "no-chain-reply-to" for option "no-chain-reply-to" + | +Duplicate specification "to-cover|to-cover!" for option "to-cover" + | +Duplicate specification "cc-cover|cc-cover!" for option "cc-cover" + | +Duplicate specification "no-thread" for option "no-thread" + | +Duplicate specification "no-to-cover" for option "no-to-cover" + | fatal: longline.patch:35 is longer than 998 characters + | warning: no patches were sent + | error: last command exited with $?=1 + | not ok 37 - reject long lines + +Remove the duplicate option specs. + +Signed-off-by: Todd Zullinger +--- + git-send-email.perl | 16 +++------------- + 1 file changed, 3 insertions(+), 13 deletions(-) + +diff --git a/git-send-email.perl b/git-send-email.perl +index affbb88509..3c678c8998 100755 +--- a/git-send-email.perl ++++ b/git-send-email.perl +@@ -503,7 +503,6 @@ sub config_regexp { + "bcc=s" => \@getopt_bcc, + "no-bcc" => \$no_bcc, + "chain-reply-to!" => \$chain_reply_to, +- "no-chain-reply-to" => sub {$chain_reply_to = 0}, + "sendmail-cmd=s" => \$sendmail_cmd, + "smtp-server=s" => \$smtp_server, + "smtp-server-option=s" => \@smtp_server_options, +@@ -518,36 +517,27 @@ sub config_regexp { + "smtp-auth=s" => \$smtp_auth, + "no-smtp-auth" => sub {$smtp_auth = 'none'}, + "annotate!" => \$annotate, +- "no-annotate" => sub {$annotate = 0}, + "compose" => \$compose, + "quiet" => \$quiet, + "cc-cmd=s" => \$cc_cmd, + "header-cmd=s" => \$header_cmd, + "no-header-cmd" => \$no_header_cmd, + "suppress-from!" => \$suppress_from, +- "no-suppress-from" => sub {$suppress_from = 0}, + "suppress-cc=s" => \@suppress_cc, +- "signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc, +- "no-signed-off-cc|no-signed-off-by-cc" => sub {$signed_off_by_cc = 0}, +- "cc-cover|cc-cover!" => \$cover_cc, +- "no-cc-cover" => sub {$cover_cc = 0}, +- "to-cover|to-cover!" => \$cover_to, +- "no-to-cover" => sub {$cover_to = 0}, ++ "signed-off-by-cc!" => \$signed_off_by_cc, ++ "cc-cover!" => \$cover_cc, ++ "to-cover!" => \$cover_to, + "confirm=s" => \$confirm, + "dry-run" => \$dry_run, + "envelope-sender=s" => \$envelope_sender, + "thread!" => \$thread, +- "no-thread" => sub {$thread = 0}, + "validate!" => \$validate, +- "no-validate" => sub {$validate = 0}, + "transfer-encoding=s" => \$target_xfer_encoding, + "format-patch!" => \$format_patch, +- "no-format-patch" => sub {$format_patch = 0}, + "8bit-encoding=s" => \$auto_8bit_encoding, + "compose-encoding=s" => \$compose_encoding, + "force" => \$force, + "xmailer!" => \$use_xmailer, +- "no-xmailer" => sub {$use_xmailer = 0}, + "batch-size=i" => \$batch_size, + "relogin-delay=i" => \$relogin_delay, + "git-completion-helper" => \$git_completion_helper, +-- +2.42.0 + diff --git a/git.spec b/git.spec index 0c0317e..11e4de5 100644 --- a/git.spec +++ b/git.spec @@ -77,8 +77,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.42.0 -Release: 2%{?dist} +Version: 2.42.1 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -127,6 +127,9 @@ 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 +# https://bugzilla.redhat.com/show_bug.cgi?id=2247532#c8 +Patch4: 0001-send-email-avoid-duplicate-specification-warnings.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: /usr/bin/pod2man @@ -1041,6 +1044,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Nov 14 2023 Ondřej Pohořelský - 2.42.1-1 +- update to 2.42.1 + * Wed Nov 1 2023 Joe Orton - 2.42.0-2 - remove explicit BR for apr-util-bdb (#2247532) diff --git a/sources b/sources index bbad81c..696da6f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.42.0.tar.xz) = afe5bca3c084d4ddd66f20afa820ba10f61007f66846108929e0d4ee7b7eaa896fcf00917dead16881d840f674dec6dd0e353a05e62a31016694af3d7d22a51d -SHA512 (git-2.42.0.tar.sign) = 847914db4f035095643cf38af87e53be82b0d10c0fdcb862f5015df01662c15d6d77410e4f4aaa5ad510d9d82c830a0218465d10905f3ec048929b1c02be6d5d +SHA512 (git-2.42.1.tar.xz) = 5946699108d4181e14fc3c61e4a4ebadcf8a876248c3f570ca22e6d95d8fea4eeb424d6e0c897d180df5959b8b2e3b0dd4e005d4c38bed2d35a2ed8036e6dc95 +SHA512 (git-2.42.1.tar.sign) = b4997c809d5b2010d1d5a9383a0546dd07ab3e87ac49a896a53dce0f5467a72db6149c07d36e2b2fdaf1e603937c1fdbff43393dac39ce37693e65e88071162c From f2b3ab26cc456c3905b9b19725937f0faa281d6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 21 Nov 2023 14:23:40 +0100 Subject: [PATCH 32/72] update to 2.43.0 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 11e4de5..0f1db2d 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.42.1 +Version: 2.43.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1044,6 +1044,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Nov 21 2023 Ondřej Pohořelský - 2.43.0-1 +- update to 2.43.0 + * Tue Nov 14 2023 Ondřej Pohořelský - 2.42.1-1 - update to 2.42.1 diff --git a/sources b/sources index 696da6f..8c3805e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.42.1.tar.xz) = 5946699108d4181e14fc3c61e4a4ebadcf8a876248c3f570ca22e6d95d8fea4eeb424d6e0c897d180df5959b8b2e3b0dd4e005d4c38bed2d35a2ed8036e6dc95 -SHA512 (git-2.42.1.tar.sign) = b4997c809d5b2010d1d5a9383a0546dd07ab3e87ac49a896a53dce0f5467a72db6149c07d36e2b2fdaf1e603937c1fdbff43393dac39ce37693e65e88071162c +SHA512 (git-2.43.0.tar.xz) = d0c1694ae23ff7d523e617b98d7c9a9753a2ee58f92c21b67a192d1c57398a62ff9c1a34558ae31af8dc8d95122c219f39f654e99a3b4e7cfc3dd07be9e13203 +SHA512 (git-2.43.0.tar.sign) = 4ff055db9b7100c40427a570f8fb6ec4b5ea943d197597ca8061924afbc6eb46d28aaf46c31679addb8adaf4f672e7efb96e088b789d172b5270420a7e5fde67 From a8ab7b524dc420913420c2d4fbe7afbdcd2a7925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Wed, 20 Dec 2023 18:21:47 +0100 Subject: [PATCH 33/72] Disable t6300.35 t6300.107 t6300.108 These tests break with zlib-ng, disable them until upstream merges patch solving this issue. --- git.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 0f1db2d..0c907b8 100644 --- a/git.spec +++ b/git.spec @@ -823,7 +823,13 @@ find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker # 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" +# +# t6300.35 t6300.107 t6300.108 are skipped due to them failing +# with zlib-ng +# https://bugzilla.redhat.com/show_bug.cgi?id=2253368 +# These tests will be enabled again in next git release, where +# fix should be in place. +GIT_SKIP_TESTS="t5559 t6300.35 t6300.107 t6300.108" %if 0%{?rhel} && 0%{?rhel} < 8 # Skip tests which require mod_http2 on el7 From 9323031c03a8a93098509590bbb093e354edc957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 9 Jan 2024 11:47:09 +0100 Subject: [PATCH 34/72] apache.conf set DavLockDBType to sdbm With the recent change that drops apr-util-bdb build require, in favor of httpd, t5540 started failing on tests using git-httpd-push. This patch sets DavLockDBType to sdbm, fixing these failures. --- git-test-apache-davlockdbtype-config.patch | 14 ++++++++++++++ git.spec | 4 ++++ 2 files changed, 18 insertions(+) create mode 100644 git-test-apache-davlockdbtype-config.patch 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.spec b/git.spec index 0c907b8..5a1b814 100644 --- a/git.spec +++ b/git.spec @@ -130,6 +130,10 @@ Patch3: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch # https://bugzilla.redhat.com/show_bug.cgi?id=2247532#c8 Patch4: 0001-send-email-avoid-duplicate-specification-warnings.patch +# Configurates Apache test server to use `DavLockDBType sdbm` +# Prevents t5540 failures on i686, s390x and ppc64le +Patch5: git-test-apache-davlockdbtype-config.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: /usr/bin/pod2man From cab00c80b7fef4f53bcca93c6a537def82eb91f2 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 1 Jan 2024 14:20:39 -0500 Subject: [PATCH 35/72] Fix perl-podlators dependency With /app-prefixed builds of perl now existing for flatpaks, file dependencies must not be used for perl components. --- git.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 5a1b814..05cea0e 100644 --- a/git.spec +++ b/git.spec @@ -136,7 +136,7 @@ Patch5: git-test-apache-davlockdbtype-config.patch %if %{with docs} # pod2man is needed to build Git.3pm -BuildRequires: /usr/bin/pod2man +BuildRequires: perl-podlators %if %{with asciidoctor} BuildRequires: docbook5-style-xsl BuildRequires: rubygem-asciidoctor From 75aab985567c39cbe11df4689a9c93f227e8f7c2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 22:22:27 +0000 Subject: [PATCH 36/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 05cea0e..a74481b 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ Name: git Version: 2.43.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1054,6 +1054,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 2.43.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Tue Nov 21 2023 Ondřej Pohořelský - 2.43.0-1 - update to 2.43.0 From 2a4367e6d7a12d591bc8339a04af88c983d1e06e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 14:51:35 +0000 Subject: [PATCH 37/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index a74481b..a46794f 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ Name: git Version: 2.43.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1054,6 +1054,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 2.43.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 2.43.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 11fa10276785738d6fd793d76d2e190986d17dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 12 Feb 2024 11:17:05 +0100 Subject: [PATCH 38/72] update to 2.43.1 resolves: #2263575 --- ...oid-duplicate-specification-warnings.patch | 86 ------------------- git.spec | 19 ++-- sources | 4 +- 3 files changed, 9 insertions(+), 100 deletions(-) delete mode 100644 0001-send-email-avoid-duplicate-specification-warnings.patch diff --git a/0001-send-email-avoid-duplicate-specification-warnings.patch b/0001-send-email-avoid-duplicate-specification-warnings.patch deleted file mode 100644 index 3dee265..0000000 --- a/0001-send-email-avoid-duplicate-specification-warnings.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 0fdc014acc342dace179ba698e58fcb138fb86de Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Tue, 14 Nov 2023 11:38:19 -0500 -Subject: [PATCH] send-email: avoid duplicate specification warnings - -With perl-Getopt-Long >= 2.55, a warning is issued for options which are -specified more than once. In addition to causing users to see warnings, -this results in test failures which compare the output. An example, -from t9001-send-email.37: - - | +++ diff -u expect actual - | --- expect 2023-11-14 10:38:23.854346488 +0000 - | +++ actual 2023-11-14 10:38:23.848346466 +0000 - | @@ -1,2 +1,7 @@ - | +Duplicate specification "no-chain-reply-to" for option "no-chain-reply-to" - | +Duplicate specification "to-cover|to-cover!" for option "to-cover" - | +Duplicate specification "cc-cover|cc-cover!" for option "cc-cover" - | +Duplicate specification "no-thread" for option "no-thread" - | +Duplicate specification "no-to-cover" for option "no-to-cover" - | fatal: longline.patch:35 is longer than 998 characters - | warning: no patches were sent - | error: last command exited with $?=1 - | not ok 37 - reject long lines - -Remove the duplicate option specs. - -Signed-off-by: Todd Zullinger ---- - git-send-email.perl | 16 +++------------- - 1 file changed, 3 insertions(+), 13 deletions(-) - -diff --git a/git-send-email.perl b/git-send-email.perl -index affbb88509..3c678c8998 100755 ---- a/git-send-email.perl -+++ b/git-send-email.perl -@@ -503,7 +503,6 @@ sub config_regexp { - "bcc=s" => \@getopt_bcc, - "no-bcc" => \$no_bcc, - "chain-reply-to!" => \$chain_reply_to, -- "no-chain-reply-to" => sub {$chain_reply_to = 0}, - "sendmail-cmd=s" => \$sendmail_cmd, - "smtp-server=s" => \$smtp_server, - "smtp-server-option=s" => \@smtp_server_options, -@@ -518,36 +517,27 @@ sub config_regexp { - "smtp-auth=s" => \$smtp_auth, - "no-smtp-auth" => sub {$smtp_auth = 'none'}, - "annotate!" => \$annotate, -- "no-annotate" => sub {$annotate = 0}, - "compose" => \$compose, - "quiet" => \$quiet, - "cc-cmd=s" => \$cc_cmd, - "header-cmd=s" => \$header_cmd, - "no-header-cmd" => \$no_header_cmd, - "suppress-from!" => \$suppress_from, -- "no-suppress-from" => sub {$suppress_from = 0}, - "suppress-cc=s" => \@suppress_cc, -- "signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc, -- "no-signed-off-cc|no-signed-off-by-cc" => sub {$signed_off_by_cc = 0}, -- "cc-cover|cc-cover!" => \$cover_cc, -- "no-cc-cover" => sub {$cover_cc = 0}, -- "to-cover|to-cover!" => \$cover_to, -- "no-to-cover" => sub {$cover_to = 0}, -+ "signed-off-by-cc!" => \$signed_off_by_cc, -+ "cc-cover!" => \$cover_cc, -+ "to-cover!" => \$cover_to, - "confirm=s" => \$confirm, - "dry-run" => \$dry_run, - "envelope-sender=s" => \$envelope_sender, - "thread!" => \$thread, -- "no-thread" => sub {$thread = 0}, - "validate!" => \$validate, -- "no-validate" => sub {$validate = 0}, - "transfer-encoding=s" => \$target_xfer_encoding, - "format-patch!" => \$format_patch, -- "no-format-patch" => sub {$format_patch = 0}, - "8bit-encoding=s" => \$auto_8bit_encoding, - "compose-encoding=s" => \$compose_encoding, - "force" => \$force, - "xmailer!" => \$use_xmailer, -- "no-xmailer" => sub {$use_xmailer = 0}, - "batch-size=i" => \$batch_size, - "relogin-delay=i" => \$relogin_delay, - "git-completion-helper" => \$git_completion_helper, --- -2.42.0 - diff --git a/git.spec b/git.spec index a46794f..dde6f6c 100644 --- a/git.spec +++ b/git.spec @@ -77,8 +77,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.43.0 -Release: 3%{?dist} +Version: 2.43.1 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -127,9 +127,6 @@ 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 -# https://bugzilla.redhat.com/show_bug.cgi?id=2247532#c8 -Patch4: 0001-send-email-avoid-duplicate-specification-warnings.patch - # Configurates Apache test server to use `DavLockDBType sdbm` # Prevents t5540 failures on i686, s390x and ppc64le Patch5: git-test-apache-davlockdbtype-config.patch @@ -827,13 +824,7 @@ find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker # 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/ -# -# t6300.35 t6300.107 t6300.108 are skipped due to them failing -# with zlib-ng -# https://bugzilla.redhat.com/show_bug.cgi?id=2253368 -# These tests will be enabled again in next git release, where -# fix should be in place. -GIT_SKIP_TESTS="t5559 t6300.35 t6300.107 t6300.108" +GIT_SKIP_TESTS="t5559" %if 0%{?rhel} && 0%{?rhel} < 8 # Skip tests which require mod_http2 on el7 @@ -1054,6 +1045,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Feb 12 2024 Ondřej Pohořelský - 2.43.1-1 +- update to 2.43.1 +- resolves: #2263575 + * Wed Jan 24 2024 Fedora Release Engineering - 2.43.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild diff --git a/sources b/sources index 8c3805e..0a91dab 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.43.0.tar.xz) = d0c1694ae23ff7d523e617b98d7c9a9753a2ee58f92c21b67a192d1c57398a62ff9c1a34558ae31af8dc8d95122c219f39f654e99a3b4e7cfc3dd07be9e13203 -SHA512 (git-2.43.0.tar.sign) = 4ff055db9b7100c40427a570f8fb6ec4b5ea943d197597ca8061924afbc6eb46d28aaf46c31679addb8adaf4f672e7efb96e088b789d172b5270420a7e5fde67 +SHA512 (git-2.43.1.tar.xz) = c8cb27645f09b831a6206bafa91c955d735b4257a98b1adaaaa5692a0a3aaa0417878095f88eca59d4fe0ffa058865508b5099db097e7b4b06253a16f57c3b3e +SHA512 (git-2.43.1.tar.sign) = 0f84b136111bc6f6b99ad325fd9def9554ed1ec032b765c32c7299e91702cf44251b31a2e5453ab1379b8c342f640736597459bfaddaf8c0064004ee32535820 From 9c8b3cf927a661dc73e5bb35de63298a081e098c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Thu, 15 Feb 2024 09:02:27 +0100 Subject: [PATCH 39/72] update to 2.43.2 Resolves: #2264318 --- git.spec | 6 +++++- sources | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index dde6f6c..df05f4a 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.43.1 +Version: 2.43.2 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1045,6 +1045,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Feb 15 2024 Ondřej Pohořelský - 2.43.2-1 +- update to 2.43.2 +- Resolves: #2264318 + * Mon Feb 12 2024 Ondřej Pohořelský - 2.43.1-1 - update to 2.43.1 - resolves: #2263575 diff --git a/sources b/sources index 0a91dab..e229798 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.43.1.tar.xz) = c8cb27645f09b831a6206bafa91c955d735b4257a98b1adaaaa5692a0a3aaa0417878095f88eca59d4fe0ffa058865508b5099db097e7b4b06253a16f57c3b3e -SHA512 (git-2.43.1.tar.sign) = 0f84b136111bc6f6b99ad325fd9def9554ed1ec032b765c32c7299e91702cf44251b31a2e5453ab1379b8c342f640736597459bfaddaf8c0064004ee32535820 +SHA512 (git-2.43.2.tar.xz) = 0d95b8ac65bd76acb60c3b4d80242aeda8b2ab3dda7c8586ce46cc1ddedc000494b45fd269295033b82f38662cde08d366c63aa3ff39030500952342c9d3b280 +SHA512 (git-2.43.2.tar.sign) = 3cd649b30f859645bd355a01a06f4bda363b7189be4b2ce492f2b258b618a10fdf40ef3d9cfa852594f594c67fec1f29db91cb29c20f5f97057a835cefba5253 From 59c96e058b9d18cdc293a035d369d5ab3847337b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 26 Feb 2024 09:50:12 +0100 Subject: [PATCH 40/72] update to 2.44.0 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index df05f4a..6543f5c 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.43.2 +Version: 2.44.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1045,6 +1045,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Feb 26 2024 Ondřej Pohořelský - 2.44.0-1 +- update to 2.44.0 + * Thu Feb 15 2024 Ondřej Pohořelský - 2.43.2-1 - update to 2.43.2 - Resolves: #2264318 diff --git a/sources b/sources index e229798..9aeba57 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.43.2.tar.xz) = 0d95b8ac65bd76acb60c3b4d80242aeda8b2ab3dda7c8586ce46cc1ddedc000494b45fd269295033b82f38662cde08d366c63aa3ff39030500952342c9d3b280 -SHA512 (git-2.43.2.tar.sign) = 3cd649b30f859645bd355a01a06f4bda363b7189be4b2ce492f2b258b618a10fdf40ef3d9cfa852594f594c67fec1f29db91cb29c20f5f97057a835cefba5253 +SHA512 (git-2.44.0.tar.sign) = 2b7284d1aaf29ead52e671a1c3574176f8a1682e96753b1cb02e94b7fd6ed69390862143ff59ab6badfc4e22c799c98a92f1ac565d304c1d141c7c56700177d1 +SHA512 (git-2.44.0.tar.xz) = 9e4b9c8a8e28cd50c0db75a93eae8a3423aa7e51c4312af1e1cdaf408e93f306c23aa747f0a97f27c11ab0e2f5e6283e52c8b61c9fe6be5b9b18673a43ce1780 From db55f698a08efca823f8ee8e88fb218c54f2eb52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 30 Apr 2024 17:15:29 +0200 Subject: [PATCH 41/72] update to 2.45.0 --- git.spec | 12 ++++-------- sources | 4 ++-- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/git.spec b/git.spec index 6543f5c..675a15c 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.44.0 +Version: 2.45.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -639,13 +639,6 @@ rm -rf contrib/fast-import/import-zips.py %endif # endif with python2 -# Use python3 to avoid an unnecessary python2 dependency, if possible. -%if %{with python3} -sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ - contrib/hg-to-git/hg-to-git.py -%endif -# endif with python3 - %install %make_install %{?with_docs:install-doc} @@ -1045,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Apr 30 2024 Ondřej Pohořelský - 2.45.0-1 +- update to 2.45.0 + * Mon Feb 26 2024 Ondřej Pohořelský - 2.44.0-1 - update to 2.44.0 diff --git a/sources b/sources index 9aeba57..0967862 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.44.0.tar.sign) = 2b7284d1aaf29ead52e671a1c3574176f8a1682e96753b1cb02e94b7fd6ed69390862143ff59ab6badfc4e22c799c98a92f1ac565d304c1d141c7c56700177d1 -SHA512 (git-2.44.0.tar.xz) = 9e4b9c8a8e28cd50c0db75a93eae8a3423aa7e51c4312af1e1cdaf408e93f306c23aa747f0a97f27c11ab0e2f5e6283e52c8b61c9fe6be5b9b18673a43ce1780 +SHA512 (git-2.45.0.tar.xz) = 36d438bf9a57dee8fe0536c90cb25d53c552e9f80e7575447d1d2af30cadab08522356f4ecd0f69b7877d5a7f84ab3b9766d8386beae57fe8d411d05d70db214 +SHA512 (git-2.45.0.tar.sign) = 8d4fdcb88355bf7511c8822e367e692514298deb99a2734b71b2754a551c76ab3aa788d5f24475c3177dafca6ce05325535c7d354c3aa82d3322bb718ccbaec4 From 18e0835469dba60ab7fc91cb77917f93a1b37e0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Wed, 15 May 2024 09:29:45 +0200 Subject: [PATCH 42/72] update to 2.45.1 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 675a15c..130471c 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.45.0 +Version: 2.45.1 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1038,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed May 15 2024 Ondřej Pohořelský - 2.45.1-1 +- update to 2.45.1 + * Tue Apr 30 2024 Ondřej Pohořelský - 2.45.0-1 - update to 2.45.0 diff --git a/sources b/sources index 0967862..14c4fec 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.45.0.tar.xz) = 36d438bf9a57dee8fe0536c90cb25d53c552e9f80e7575447d1d2af30cadab08522356f4ecd0f69b7877d5a7f84ab3b9766d8386beae57fe8d411d05d70db214 -SHA512 (git-2.45.0.tar.sign) = 8d4fdcb88355bf7511c8822e367e692514298deb99a2734b71b2754a551c76ab3aa788d5f24475c3177dafca6ce05325535c7d354c3aa82d3322bb718ccbaec4 +SHA512 (git-2.45.1.tar.xz) = 28461855e03f3dd5af73a1c6d26cc3e2b7b71f5eb90852f1daf582d24503b4dd5c4e4dac359e9eba1c2ba542aeb0940e0482506f19d02a354654b181c56c5317 +SHA512 (git-2.45.1.tar.sign) = cec39b09cdd3c2a2b6e0c115773492771cfb50b8054479fbc8d6b7dd798b82160d0d0cf5ba58c6c21c23ceb459cae75ec7081a99c6681d76505a21f851ee123d From 05522a0e2aa48c525fc9bdabc3bbd0bf279dc711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 3 Jun 2024 12:50:14 +0200 Subject: [PATCH 43/72] update to 2.45.2 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 130471c..4c68148 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.45.1 +Version: 2.45.2 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1038,6 +1038,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-1 +- update to 2.45.2 + * Wed May 15 2024 Ondřej Pohořelský - 2.45.1-1 - update to 2.45.1 diff --git a/sources b/sources index 14c4fec..59bae85 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.45.1.tar.xz) = 28461855e03f3dd5af73a1c6d26cc3e2b7b71f5eb90852f1daf582d24503b4dd5c4e4dac359e9eba1c2ba542aeb0940e0482506f19d02a354654b181c56c5317 -SHA512 (git-2.45.1.tar.sign) = cec39b09cdd3c2a2b6e0c115773492771cfb50b8054479fbc8d6b7dd798b82160d0d0cf5ba58c6c21c23ceb459cae75ec7081a99c6681d76505a21f851ee123d +SHA512 (git-2.45.2.tar.xz) = dce30d0d563f3f76ef49c8dc88105e0cf0941c8cd70303418d9d737f840ffba36bcc575c380c75080edf64af74487e1a680db146ec5f527a32104e887d4ceb73 +SHA512 (git-2.45.2.tar.sign) = 331ba231f1d042ad41b30d81225fc31c47bc38dfb2995156353a97cd66f0a0c4d86d228e85dfca0926761b19d2e37e5f273b3bbddbca3e1c1ae3c999401fe7bd From 9f89b9e0690f91aedf40fea29b518d1d7f071660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 3 Jun 2024 15:40:55 +0200 Subject: [PATCH 44/72] add glibc-utils BuildRequires --- git.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 4c68148..fe93858 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ Name: git Version: 2.45.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -163,6 +163,7 @@ BuildRequires: findutils BuildRequires: gawk BuildRequires: gcc BuildRequires: gettext +BuildRequires: glibc-utils BuildRequires: gnupg2 BuildRequires: libcurl-devel BuildRequires: make @@ -1038,6 +1039,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-2 +- add glibc-utils BuildRequires + * Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-1 - update to 2.45.2 From 2041c470244ddedba91683bf6129b329d89750de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 1 Jul 2024 16:27:09 +0200 Subject: [PATCH 45/72] build documentation with asciidoc on EL >= 10 --- git.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index fe93858..089b31e 100644 --- a/git.spec +++ b/git.spec @@ -21,8 +21,9 @@ %bcond_without perl_modcompat %endif -# Settings for Fedora and EL >= 9 -%if 0%{?fedora} || 0%{?rhel} >= 9 +# Settings for Fedora and EL == 9 +# In EL >= 10 docbook5-style-xsl, needed by asciidoctor, is unwanted package +%if 0%{?fedora} || 0%{?rhel} == 9 %bcond_without asciidoctor %else %bcond_with asciidoctor From e49fa1c239e06722402884a6360214601b1a1830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 1 Jul 2024 16:30:22 +0200 Subject: [PATCH 46/72] disable p4 subpackage on EL >= 10 --- git.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 089b31e..afd0f45 100644 --- a/git.spec +++ b/git.spec @@ -59,11 +59,11 @@ %bcond_without libsecret # Allow p4 subpackage to be toggled via --with/--without -# Disable by default if we lack python2 or python3 support -%if %{with python2} || %{with python3} -%bcond_without p4 -%else +# 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 From 624305e5bea78b1f46f346740bb79fab453227a7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 18 Jul 2024 02:23:37 +0000 Subject: [PATCH 47/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index afd0f45..143492a 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.45.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jul 18 2024 Fedora Release Engineering - 2.45.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Mon Jun 03 2024 Ondřej Pohořelský - 2.45.2-2 - add glibc-utils BuildRequires From 699e77dbcbef16243c738803a83db2aa0a75f84c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Fri, 19 Jul 2024 09:29:31 +0200 Subject: [PATCH 48/72] build without perl_modcompat in EL >= 10 --- git.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index 143492a..b461992 100644 --- a/git.spec +++ b/git.spec @@ -14,8 +14,8 @@ %bcond_with linkcheck %endif -# Settings for Fedora >= 38 -%if 0%{?fedora} >= 38 +# Settings for Fedora >= 38 and EL >= 10 +%if 0%{?fedora} >= 38 || 0%{?rhel} >= 10 %bcond_with perl_modcompat %else %bcond_without perl_modcompat From 0a0995368db3115d9ac362a226af2cc352e8de07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 5 Aug 2024 12:52:46 +0200 Subject: [PATCH 49/72] update to 2.46.0 --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index b461992..4b74e3d 100644 --- a/git.spec +++ b/git.spec @@ -78,8 +78,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.45.2 -Release: 3%{?dist} +Version: 2.46.0 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Aug 05 2024 Ondřej Pohořelský - 2.46.0-1 +- update to 2.46.0 + * Thu Jul 18 2024 Fedora Release Engineering - 2.45.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index 59bae85..3f497c7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.45.2.tar.xz) = dce30d0d563f3f76ef49c8dc88105e0cf0941c8cd70303418d9d737f840ffba36bcc575c380c75080edf64af74487e1a680db146ec5f527a32104e887d4ceb73 -SHA512 (git-2.45.2.tar.sign) = 331ba231f1d042ad41b30d81225fc31c47bc38dfb2995156353a97cd66f0a0c4d86d228e85dfca0926761b19d2e37e5f273b3bbddbca3e1c1ae3c999401fe7bd +SHA512 (git-2.46.0.tar.xz) = 3afae7a094da070c627f68ceb54c2345e3a49e04e455197527b732eb220e8c3249f5d09655a59bf4280dd0c0a3e305abc1380693e0a7fb0b8138b741c4708184 +SHA512 (git-2.46.0.tar.sign) = 912d88ec3a7e58b1b7755b6d9fd26fca39f47d98e0bcba59140cdb05f873dadbdaeb54b5f748f95f95a2cc6db9a892864b8b6331a4fe009d3b6142bafd23ab22 From fe2066bbb4522200127da9c88505cc9414634f12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Wed, 4 Sep 2024 10:42:06 +0200 Subject: [PATCH 50/72] mark git@.service as config(noreplace) Each update git@.service has been overwritten, removing users custom configurations. Marking it as config(noreplace) should prevent this behaviour. --- git.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 4b74e3d..d683222 100644 --- a/git.spec +++ b/git.spec @@ -964,7 +964,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files daemon %{_pkgdocdir}/git-daemon*.txt %{_unitdir}/git.socket -%{_unitdir}/git@.service +%config(noreplace) %{_unitdir}/git@.service %{gitexecdir}/git-daemon %{_localstatedir}/lib/git %{?with_docs:%{_mandir}/man1/git-daemon*.1*} From 8cb6752747878844176c7fc8663ca534a2bb716e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 16 Sep 2024 11:12:46 +0200 Subject: [PATCH 51/72] update to 2.46.1 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index d683222..4b1bb37 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.46.0 +Version: 2.46.1 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Sep 16 2024 Ondřej Pohořelský - 2.46.1-1 +- update to 2.46.1 + * Mon Aug 05 2024 Ondřej Pohořelský - 2.46.0-1 - update to 2.46.0 diff --git a/sources b/sources index 3f497c7..5ca6946 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.46.0.tar.xz) = 3afae7a094da070c627f68ceb54c2345e3a49e04e455197527b732eb220e8c3249f5d09655a59bf4280dd0c0a3e305abc1380693e0a7fb0b8138b741c4708184 -SHA512 (git-2.46.0.tar.sign) = 912d88ec3a7e58b1b7755b6d9fd26fca39f47d98e0bcba59140cdb05f873dadbdaeb54b5f748f95f95a2cc6db9a892864b8b6331a4fe009d3b6142bafd23ab22 +SHA512 (git-2.46.1.tar.xz) = ce1bb12cb8a320e4ef261d4715dc2144207f31cfe13b2b62cebfc9e61880db79876a634e29cf42992d4f472ce0af709f48f14c7ba800f157876f19982720fc6d +SHA512 (git-2.46.1.tar.sign) = 5d995dec6b9bed8442ebf04c2c84f6cda22105992835349537e8f7d2c683f5cd07f6b49f452ccdcd8adce9879cdb3663540d0b0e41050d3e94405feac04f988c From b7b63fdc8b0b15fef10f2b4100b1175f3e782536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 24 Sep 2024 14:31:26 +0200 Subject: [PATCH 52/72] update to 2.46.2 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 4b1bb37..2fc3dbf 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.46.1 +Version: 2.46.2 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 +- update to 2.46.2 + * Mon Sep 16 2024 Ondřej Pohořelský - 2.46.1-1 - update to 2.46.1 diff --git a/sources b/sources index 5ca6946..8cb35b7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.46.1.tar.xz) = ce1bb12cb8a320e4ef261d4715dc2144207f31cfe13b2b62cebfc9e61880db79876a634e29cf42992d4f472ce0af709f48f14c7ba800f157876f19982720fc6d -SHA512 (git-2.46.1.tar.sign) = 5d995dec6b9bed8442ebf04c2c84f6cda22105992835349537e8f7d2c683f5cd07f6b49f452ccdcd8adce9879cdb3663540d0b0e41050d3e94405feac04f988c +SHA512 (git-2.46.2.tar.xz) = d8d1cec9a4ddc7b1892b7f5b3c808d235bcd4bfb1714ce0ce0e721242acc94f9ae7c2ae3181311feb5b458b04e89cd32acd3e9c90adbc4e86e05e7d5589d8a00 +SHA512 (git-2.46.2.tar.sign) = 2a20c490d1388b68b0c6def89a282ce198aff5991b0942e762f45bd51bca2b81353f648546e789a15ea141f9ea411e6ce025e84e9dc80e5fea8abc3a5af2b168 From 2354ed404127937eb64df75d2e178d59d81f6b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 24 Sep 2024 14:34:39 +0200 Subject: [PATCH 53/72] repair bogus date in the changelog --- git.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 2fc3dbf..54a7178 100644 --- a/git.spec +++ b/git.spec @@ -1040,7 +1040,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog -* Mon Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 +* Tue Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 - update to 2.46.2 * Mon Sep 16 2024 Ondřej Pohořelský - 2.46.1-1 From d4d986abeb8d45c7a783a5c356b87aaaad8775ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 8 Oct 2024 15:19:07 +0200 Subject: [PATCH 54/72] update to 2.47.0 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 54a7178..f5bd722 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.46.2 +Version: 2.47.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Oct 08 2024 Ondřej Pohořelský - 2.47.0-1 +- update to 2.47.0 + * Tue Sep 24 2024 Ondřej Pohořelský - 2.46.2-1 - update to 2.46.2 diff --git a/sources b/sources index 8cb35b7..13958fb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.46.2.tar.xz) = d8d1cec9a4ddc7b1892b7f5b3c808d235bcd4bfb1714ce0ce0e721242acc94f9ae7c2ae3181311feb5b458b04e89cd32acd3e9c90adbc4e86e05e7d5589d8a00 -SHA512 (git-2.46.2.tar.sign) = 2a20c490d1388b68b0c6def89a282ce198aff5991b0942e762f45bd51bca2b81353f648546e789a15ea141f9ea411e6ce025e84e9dc80e5fea8abc3a5af2b168 +SHA512 (git-2.47.0.tar.xz) = 58683aa59dba25ffec9fe2c185267c77b34d573e9738c133a15d25071e37095e99486c231c35b8f71aabe3c1e305238b56d2c10039318bfc08f137919bad66ec +SHA512 (git-2.47.0.tar.sign) = 7ccfe729598d3efd5cf1507c5132782f4e17d030745b4684284e691156cfe150d8911fa05f26d31382f505c6a4fbc1cc261e289e239ec9cc812ddfe20d026511 From d4648b15beafd12dd8b7dbf1628df678dbfd5b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 25 Nov 2024 10:53:34 +0100 Subject: [PATCH 55/72] update to 2.47.1 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index f5bd722..0ab9995 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.47.0 +Version: 2.47.1 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Nov 25 2024 Ondřej Pohořelský - 2.47.1-1 +- update to 2.47.1 + * Tue Oct 08 2024 Ondřej Pohořelský - 2.47.0-1 - update to 2.47.0 diff --git a/sources b/sources index 13958fb..0d04741 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.47.0.tar.xz) = 58683aa59dba25ffec9fe2c185267c77b34d573e9738c133a15d25071e37095e99486c231c35b8f71aabe3c1e305238b56d2c10039318bfc08f137919bad66ec -SHA512 (git-2.47.0.tar.sign) = 7ccfe729598d3efd5cf1507c5132782f4e17d030745b4684284e691156cfe150d8911fa05f26d31382f505c6a4fbc1cc261e289e239ec9cc812ddfe20d026511 +SHA512 (git-2.47.1.tar.xz) = 6abe551c464b307bc3f6f474257e0be3e1a9eba1406af6463216b796c55a35356009c2f7bd9b4fa2d1798da5f885a3843f6ad8750ab69595f748f9ea8ed76fea +SHA512 (git-2.47.1.tar.sign) = 89557b00303ce7ea063e4bbe8a81827c44ffaf997ae5a5bd1db6f671b10fd1050069bf74a10d797ec6f65453b9839e34fdc69f029bc8a6cfb8e9918fad8eda1a From 0b1ce8c0dca90be273be2be92c6a85de046efd4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 13 Jan 2025 13:25:40 +0100 Subject: [PATCH 56/72] update to 2.48.0 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 0ab9995..7fd9b94 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.47.1 +Version: 2.48.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jan 13 2025 Ondřej Pohořelský - 2.48.0-1 +- update to 2.48.0 + * Mon Nov 25 2024 Ondřej Pohořelský - 2.47.1-1 - update to 2.47.1 diff --git a/sources b/sources index 0d04741..ea10ecb 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.47.1.tar.xz) = 6abe551c464b307bc3f6f474257e0be3e1a9eba1406af6463216b796c55a35356009c2f7bd9b4fa2d1798da5f885a3843f6ad8750ab69595f748f9ea8ed76fea -SHA512 (git-2.47.1.tar.sign) = 89557b00303ce7ea063e4bbe8a81827c44ffaf997ae5a5bd1db6f671b10fd1050069bf74a10d797ec6f65453b9839e34fdc69f029bc8a6cfb8e9918fad8eda1a +SHA512 (git-2.48.0.tar.xz) = 0b8b6633d65f20830577a073a78f13cedf4f43c8634d5d62918cddca9ca8b75519e6674307782e0eacb9e8e920a04014aa2a0f5cd2e75be06728e9160f794c9e +SHA512 (git-2.48.0.tar.sign) = 1840a7b7a53997b78b932aecfca031e0a6f7779957b0bceba772738bdbf0ac75bc9a9bc8808beb63b446262a33e404819a9859d68aa45b23b498351b27a8514d From 078a91e01a4b273c7b7b63f93285f18b672fba3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Wed, 15 Jan 2025 09:29:00 +0100 Subject: [PATCH 57/72] update to 2.48.1 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 7fd9b94..5e6c4d6 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.48.0 +Version: 2.48.1 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jan 15 2025 Ondřej Pohořelský - 2.48.1-1 +- update to 2.48.1 + * Mon Jan 13 2025 Ondřej Pohořelský - 2.48.0-1 - update to 2.48.0 diff --git a/sources b/sources index ea10ecb..d6bf8a9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.48.0.tar.xz) = 0b8b6633d65f20830577a073a78f13cedf4f43c8634d5d62918cddca9ca8b75519e6674307782e0eacb9e8e920a04014aa2a0f5cd2e75be06728e9160f794c9e -SHA512 (git-2.48.0.tar.sign) = 1840a7b7a53997b78b932aecfca031e0a6f7779957b0bceba772738bdbf0ac75bc9a9bc8808beb63b446262a33e404819a9859d68aa45b23b498351b27a8514d +SHA512 (git-2.48.1.tar.xz) = 75c89ab4ca83adc46989a4b05a9b482b40a7ba69d15aa1c1f27d0cee37c2908e154a75d59b0a0a540647352b9c55020f1a5ad309f0eff78e9fd8e631ef9e4606 +SHA512 (git-2.48.1.tar.sign) = 6d2308a71970940288137df76122ac402d1e5fdd2250fce5e6d4681d68b630bcfc109e56e4539598c6b5113024c78a25193d3b8d38c39ee547a37c1d8b2f4d15 From ecbadc14c1efef1a71c7bc0f49c8c2089dbcd28f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 22:01:51 +0000 Subject: [PATCH 58/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 5e6c4d6..01250b4 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.48.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1040,6 +1040,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 2.48.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jan 15 2025 Ondřej Pohořelský - 2.48.1-1 - update to 2.48.1 From 716550b90ac02764311b615f80b9af6cbb821f43 Mon Sep 17 00:00:00 2001 From: Yanko Kaneti Date: Wed, 5 Feb 2025 17:10:11 +0200 Subject: [PATCH 59/72] Keep gitk on tcl/tk 8.x until its ready for 9 --- git.spec | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index 01250b4..b3c5c65 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.48.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -429,7 +429,9 @@ Summary: Git repository browser BuildArch: noarch Requires: git = %{version}-%{release} Requires: git-gui = %{version}-%{release} -Requires: tk >= 8.4 +# Keep gitk on tcl/tk 8.x until its ready for 9 (also see below in config.mk) +# https://github.com/j6t/gitk/issues/5 +Requires: tk8 >= 8.4 %description -n gitk %{summary}. @@ -587,6 +589,10 @@ gitwebdir = %{_localstatedir}/www/git DEFAULT_TEST_TARGET = prove GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File GIT_TEST_OPTS = -x --verbose-log + +# Keep gitk on tcl/tk 8.x until its ready for 9 (see more above in gitk requires) +TCLTK_PATH = wish8 +TCL_PATH = tclsh8 EOF # Filter bogus perl requires @@ -1040,6 +1046,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Feb 6 2025 Yanko Kaneti - 2.48.1-3 +- Keep gitk on tcl/tk 8.x until its ready for 9 + * Thu Jan 16 2025 Fedora Release Engineering - 2.48.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 9a2fecfe2e676dc896cb02242d9b29b5643ce460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 17 Mar 2025 15:37:51 +0100 Subject: [PATCH 60/72] update to 2.49.0 --- git.spec | 45 +++++++++++++++++++++++++++++---------------- sources | 4 ++-- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/git.spec b/git.spec index b3c5c65..b19d845 100644 --- a/git.spec +++ b/git.spec @@ -78,8 +78,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.48.1 -Release: 3%{?dist} +Version: 2.49.0 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -538,7 +538,7 @@ 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.txt +rm git-archimport.perl Documentation/git-archimport.adoc %if %{without cvs} # Remove git-cvs* from command list @@ -615,7 +615,7 @@ sed -i 's@"++GITWEB_HOME_LINK_STR++"@$ENV{"SERVER_NAME"} ? "git://" . $ENV{"SERV # Move contrib/{contacts,subtree} docs to Documentation so they build with the # proper asciidoc/docbook/xmlto options -mv contrib/{contacts,subtree}/git-*.txt Documentation/ +mv contrib/{contacts,subtree}/git-*.adoc Documentation/ %build # Improve build reproducibility @@ -782,7 +782,7 @@ grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files # contrib not_core_doc_re="(git-(cvs|gui|citool|daemon|instaweb|subtree))|p4|svn|email|gitk|gitweb" mkdir -p %{buildroot}%{_pkgdocdir}/ -cp -pr CODE_OF_CONDUCT.md README.md Documentation/*.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 @@ -874,6 +874,16 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[5 %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/Z8dIZmscTdi8dZAY@teonanacatl.net/ +# +# t5620.4 'do partial clone 2, backfill min batch size' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5620.4" +%endif +# endif "%{_arch}" == "s390x" export GIT_SKIP_TESTS # Set LANG so various UTF-8 tests are run @@ -959,7 +969,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %if %{with cvs} %files cvs -%{_pkgdocdir}/*git-cvs*.txt +%{_pkgdocdir}/*git-cvs*.adoc %{_bindir}/git-cvsserver %{gitexecdir}/*cvs* %{?with_docs:%{_mandir}/man1/*cvs*.1*} @@ -968,7 +978,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" # endif with cvs %files daemon -%{_pkgdocdir}/git-daemon*.txt +%{_pkgdocdir}/git-daemon*.adoc %{_unitdir}/git.socket %config(noreplace) %{_unitdir}/git@.service %{gitexecdir}/git-daemon @@ -977,13 +987,13 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-daemon*.html} %files email -%{_pkgdocdir}/*email*.txt +%{_pkgdocdir}/*email*.adoc %{gitexecdir}/*email* %{?with_docs:%{_mandir}/man1/*email*.1*} %{?with_docs:%{_pkgdocdir}/*email*.html} %files -n gitk -%{_pkgdocdir}/*gitk*.txt +%{_pkgdocdir}/*gitk*.adoc %{_bindir}/*gitk* %{_datadir}/gitk %{bash_completions_dir}/gitk @@ -992,7 +1002,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files -n gitweb %{_pkgdocdir}/*.gitweb -%{_pkgdocdir}/gitweb*.txt +%{_pkgdocdir}/gitweb*.adoc %{?with_docs:%{_mandir}/man1/gitweb.1*} %{?with_docs:%{_mandir}/man5/gitweb.conf.5*} %{?with_docs:%{_pkgdocdir}/gitweb*.html} @@ -1005,8 +1015,8 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{gitexecdir}/git-citool %{_datadir}/applications/*git-gui.desktop %{_datadir}/git-gui/ -%{_pkgdocdir}/git-gui.txt -%{_pkgdocdir}/git-citool.txt +%{_pkgdocdir}/git-gui.adoc +%{_pkgdocdir}/git-citool.adoc %{?with_docs:%{_mandir}/man1/git-gui.1*} %{?with_docs:%{_pkgdocdir}/git-gui.html} %{?with_docs:%{_mandir}/man1/git-citool.1*} @@ -1014,7 +1024,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files instaweb %{gitexecdir}/git-instaweb -%{_pkgdocdir}/git-instaweb.txt +%{_pkgdocdir}/git-instaweb.adoc %{?with_docs:%{_mandir}/man1/git-instaweb.1*} %{?with_docs:%{_pkgdocdir}/git-instaweb.html} @@ -1022,7 +1032,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files p4 %{gitexecdir}/*p4* %{gitexecdir}/mergetools/p4merge -%{_pkgdocdir}/*p4*.txt +%{_pkgdocdir}/*p4*.adoc %{?with_docs:%{_mandir}/man1/*p4*.1*} %{?with_docs:%{_pkgdocdir}/*p4*.html} %endif @@ -1035,17 +1045,20 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files subtree %{gitexecdir}/git-subtree -%{_pkgdocdir}/git-subtree.txt +%{_pkgdocdir}/git-subtree.adoc %{?with_docs:%{_mandir}/man1/git-subtree.1*} %{?with_docs:%{_pkgdocdir}/git-subtree.html} %files svn %{gitexecdir}/git-svn -%{_pkgdocdir}/git-svn.txt +%{_pkgdocdir}/git-svn.adoc %{?with_docs:%{_mandir}/man1/git-svn.1*} %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Mar 17 2025 Ondřej Pohořelský - 2.49.0-1 +- update to 2.49.0 + * Thu Feb 6 2025 Yanko Kaneti - 2.48.1-3 - Keep gitk on tcl/tk 8.x until its ready for 9 diff --git a/sources b/sources index d6bf8a9..25bd2d3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.48.1.tar.xz) = 75c89ab4ca83adc46989a4b05a9b482b40a7ba69d15aa1c1f27d0cee37c2908e154a75d59b0a0a540647352b9c55020f1a5ad309f0eff78e9fd8e631ef9e4606 -SHA512 (git-2.48.1.tar.sign) = 6d2308a71970940288137df76122ac402d1e5fdd2250fce5e6d4681d68b630bcfc109e56e4539598c6b5113024c78a25193d3b8d38c39ee547a37c1d8b2f4d15 +SHA512 (git-2.49.0.tar.xz) = 81a16415890305fc6cfd14ade8bee76779feba01f51c5446f40c14211654342c68ef0911859fa6e8e9ff0a718847bb44ee4156d03a19c9165df19ba91e09e1f0 +SHA512 (git-2.49.0.tar.sign) = e956f83ee0973295ec608aa6ab1df11992d8fc10f1702a0cdbf849f7659d94666fe714f60a7b4aeeed064bc49e1345791e3d8b0a867c075544eb48f01b84fd27 From a0b3d1a02bfce4c9462e90e3c093b81dbbdd9e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 24 Mar 2025 11:47:14 +0100 Subject: [PATCH 61/72] 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. --- ...9-sanitize-sideband-channel-messages.patch | 471 ++++++++++++++++++ git.spec | 12 +- 2 files changed, 482 insertions(+), 1 deletion(-) create mode 100644 git-2.49-sanitize-sideband-channel-messages.patch diff --git a/git-2.49-sanitize-sideband-channel-messages.patch b/git-2.49-sanitize-sideband-channel-messages.patch new file mode 100644 index 0000000..f3be95a --- /dev/null +++ b/git-2.49-sanitize-sideband-channel-messages.patch @@ -0,0 +1,471 @@ +From 328ff864183cdd0a4b779b5b88a3271b39a1b1a2 Mon Sep 17 00:00:00 2001 +From: Johannes Schindelin +Date: Wed, 6 Nov 2024 20:34:50 +0100 +Subject: [PATCH 1/4] sideband: mask control characters + +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.c | 17 +++++++++++++++-- + t/t5409-colorize-remote-messages.sh | 12 ++++++++++++ + 2 files changed, 27 insertions(+), 2 deletions(-) + +diff --git a/sideband.c b/sideband.c +index 251e9615ed..81b1ff0805 100644 +--- a/sideband.c ++++ b/sideband.c +@@ -66,6 +66,19 @@ void list_config_color_sideband_slots(struct string_list *list, const char *pref + list_config_item(list, prefix, keywords[i].keyword); + } + ++static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) ++{ ++ strbuf_grow(dest, n); ++ for (; n && *src; src++, n--) { ++ if (!iscntrl(*src) || *src == '\t' || *src == '\n') ++ strbuf_addch(dest, *src); ++ 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 +94,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 +127,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..d0745c391b 100755 +--- a/t/t5409-colorize-remote-messages.sh ++++ b/t/t5409-colorize-remote-messages.sh +@@ -98,4 +98,16 @@ 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?\\n" >&2 ++ exec "$@" ++ EOF ++ test_config_global uploadPack.packObjectshook ./color-me-surprised && ++ test_commit need-at-least-one-commit && ++ git clone --no-local . throw-away 2>stderr && ++ test_decode_color decoded && ++ test_grep ! RED decoded ++' ++ + test_done +-- +2.49.0 + + +From ab2eb6c0043c643935ea0fbdaed68e15bc831b11 Mon Sep 17 00:00:00 2001 +From: Johannes Schindelin +Date: Wed, 6 Nov 2024 21:07:51 +0100 +Subject: [PATCH 2/4] 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 +--- + Documentation/config.adoc | 2 ++ + Documentation/config/sideband.adoc | 5 +++++ + sideband.c | 10 ++++++++++ + t/t5409-colorize-remote-messages.sh | 8 +++++++- + 4 files changed, 24 insertions(+), 1 deletion(-) + create mode 100644 Documentation/config/sideband.adoc + +diff --git a/Documentation/config.adoc b/Documentation/config.adoc +index cc769251be..a8b04c4e51 100644 +--- a/Documentation/config.adoc ++++ b/Documentation/config.adoc +@@ -522,6 +522,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..3fb5045cd7 +--- /dev/null ++++ b/Documentation/config/sideband.adoc +@@ -0,0 +1,5 @@ ++sideband.allowControlCharacters:: ++ By default, control characters that are delivered via the sideband ++ are masked, to prevent potentially unwanted ANSI escape sequences ++ from being sent to the terminal. Use this config setting to override ++ this behavior. +diff --git a/sideband.c b/sideband.c +index 81b1ff0805..d1c326fa19 100644 +--- a/sideband.c ++++ b/sideband.c +@@ -26,6 +26,8 @@ static struct keyword_entry keywords[] = { + { "error", GIT_COLOR_BOLD_RED }, + }; + ++static int allow_control_characters; ++ + /* Returns a color setting (GIT_COLOR_NEVER, etc). */ + static int use_sideband_colors(void) + { +@@ -39,6 +41,9 @@ static int use_sideband_colors(void) + if (use_sideband_colors_cached >= 0) + return use_sideband_colors_cached; + ++ git_config_get_bool("sideband.allowcontrolcharacters", ++ &allow_control_characters); ++ + if (!git_config_get_string_tmp(key, &value)) + use_sideband_colors_cached = git_config_colorbool(key, value); + else if (!git_config_get_string_tmp("color.ui", &value)) +@@ -68,6 +73,11 @@ void list_config_color_sideband_slots(struct string_list *list, const char *pref + + static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) + { ++ if (allow_control_characters) { ++ strbuf_add(dest, src, n); ++ return; ++ } ++ + strbuf_grow(dest, n); + for (; n && *src; src++, n--) { + if (!iscntrl(*src) || *src == '\t' || *src == '\n') +diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh +index d0745c391b..fb31e85254 100755 +--- a/t/t5409-colorize-remote-messages.sh ++++ b/t/t5409-colorize-remote-messages.sh +@@ -105,9 +105,15 @@ test_expect_success 'disallow (color) control sequences in sideband' ' + EOF + test_config_global uploadPack.packObjectshook ./color-me-surprised && + test_commit need-at-least-one-commit && ++ + git clone --no-local . throw-away 2>stderr && + test_decode_color decoded && +- test_grep ! RED decoded ++ test_grep ! RED decoded && ++ ++ rm -rf throw-away && ++ git -c sideband.allowControlCharacters clone --no-local . throw-away 2>stderr && ++ test_decode_color decoded && ++ test_grep RED decoded + ' + + test_done +-- +2.49.0 + + +From a369672c2e6974590ad0561854318a4f255e6893 Mon Sep 17 00:00:00 2001 +From: Johannes Schindelin +Date: Mon, 18 Nov 2024 21:42:57 +0100 +Subject: [PATCH 3/4] 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 +--- + Documentation/config/sideband.adoc | 17 ++++++-- + sideband.c | 61 ++++++++++++++++++++++++++--- + t/t5409-colorize-remote-messages.sh | 16 +++++++- + 3 files changed, 84 insertions(+), 10 deletions(-) + +diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc +index 3fb5045cd7..f347fd6b33 100644 +--- a/Documentation/config/sideband.adoc ++++ b/Documentation/config/sideband.adoc +@@ -1,5 +1,16 @@ + sideband.allowControlCharacters:: + By default, control characters that are delivered via the sideband +- are masked, to prevent potentially unwanted ANSI escape sequences +- from being sent to the terminal. Use this config setting to override +- this behavior. ++ are masked, except ANSI color sequences. This prevents potentially ++ unwanted ANSI escape sequences from being sent to the terminal. Use ++ this config setting to override this behavior: +++ ++-- ++ color:: ++ Allow ANSI color sequences, line feeds and horizontal tabs, ++ but mask all other control characters. This is the default. ++ false:: ++ Mask all control characters other than line feeds and ++ horizontal tabs. ++ true:: ++ Allow all control characters to be sent to the terminal. ++-- +diff --git a/sideband.c b/sideband.c +index d1c326fa19..9084ca234d 100644 +--- a/sideband.c ++++ b/sideband.c +@@ -26,7 +26,11 @@ static struct keyword_entry keywords[] = { + { "error", GIT_COLOR_BOLD_RED }, + }; + +-static int allow_control_characters; ++static enum { ++ ALLOW_NO_CONTROL_CHARACTERS = 0, ++ ALLOW_ALL_CONTROL_CHARACTERS = 1, ++ ALLOW_ANSI_COLOR_SEQUENCES = 2 ++} allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES; + + /* Returns a color setting (GIT_COLOR_NEVER, etc). */ + static int use_sideband_colors(void) +@@ -41,8 +45,24 @@ static int use_sideband_colors(void) + if (use_sideband_colors_cached >= 0) + return use_sideband_colors_cached; + +- git_config_get_bool("sideband.allowcontrolcharacters", +- &allow_control_characters); ++ switch (git_config_get_maybe_bool("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 (git_config_get_string_tmp("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 (!git_config_get_string_tmp(key, &value)) + use_sideband_colors_cached = git_config_colorbool(key, value); +@@ -71,9 +91,37 @@ 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) + { +- if (allow_control_characters) { ++ int i; ++ ++ if (allow_control_characters == ALLOW_ALL_CONTROL_CHARACTERS) { + strbuf_add(dest, src, n); + return; + } +@@ -82,7 +130,10 @@ static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) + for (; n && *src; src++, n--) { + if (!iscntrl(*src) || *src == '\t' || *src == '\n') + strbuf_addch(dest, *src); +- else { ++ else if ((i = handle_ansi_color_sequence(dest, src, n))) { ++ src += i; ++ n -= i; ++ } else { + strbuf_addch(dest, '^'); + strbuf_addch(dest, 0x40 + *src); + } +diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh +index fb31e85254..a755c49a74 100755 +--- a/t/t5409-colorize-remote-messages.sh ++++ b/t/t5409-colorize-remote-messages.sh +@@ -100,7 +100,7 @@ test_expect_success 'fallback to color.ui' ' + + 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?\\n" >&2 ++ printf "error: Have you \\033[31mread\\033[m this?\\a\\n" >&2 + exec "$@" + EOF + test_config_global uploadPack.packObjectshook ./color-me-surprised && +@@ -108,12 +108,24 @@ test_expect_success 'disallow (color) control sequences in sideband' ' + + git 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 ++ test_grep RED decoded && ++ tr -dc "\\007" actual && ++ test_file_not_empty actual + ' + + test_done +-- +2.49.0 + + +From b15d2255ed98eb6f75608c2f99f4ea3284ad250e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= +Date: Mon, 24 Mar 2025 10:51:39 +0100 +Subject: [PATCH 4/4] sideband: default to allowControlCharacters=true +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +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/sideband.adoc | 8 ++++---- + sideband.c | 2 +- + t/t5409-colorize-remote-messages.sh | 3 ++- + 3 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc +index f347fd6b33..a809e2de89 100644 +--- a/Documentation/config/sideband.adoc ++++ b/Documentation/config/sideband.adoc +@@ -1,16 +1,16 @@ + sideband.allowControlCharacters:: + By default, control characters that are delivered via the sideband +- are masked, except ANSI color sequences. This prevents potentially +- unwanted ANSI escape sequences from being sent to the terminal. Use +- this config setting to override this behavior: ++ 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. This is the default. ++ 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. + -- +diff --git a/sideband.c b/sideband.c +index 9084ca234d..456cd3d8bc 100644 +--- a/sideband.c ++++ b/sideband.c +@@ -30,7 +30,7 @@ static enum { + ALLOW_NO_CONTROL_CHARACTERS = 0, + ALLOW_ALL_CONTROL_CHARACTERS = 1, + ALLOW_ANSI_COLOR_SEQUENCES = 2 +-} allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES; ++} allow_control_characters = ALLOW_ALL_CONTROL_CHARACTERS; + + /* Returns a color setting (GIT_COLOR_NEVER, etc). */ + static int use_sideband_colors(void) +diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh +index a755c49a74..2d40d8c640 100755 +--- a/t/t5409-colorize-remote-messages.sh ++++ b/t/t5409-colorize-remote-messages.sh +@@ -106,7 +106,8 @@ test_expect_success 'disallow (color) control sequences in sideband' ' + test_config_global uploadPack.packObjectshook ./color-me-surprised && + test_commit need-at-least-one-commit && + +- git clone --no-local . throw-away 2>stderr && ++ git -c sideband.allowControlCharacters=color \ ++ clone --no-local . throw-away 2>stderr && + test_decode_color decoded && + test_grep RED decoded && + test_grep "\\^G" stderr && +-- +2.49.0 + diff --git a/git.spec b/git.spec index b19d845..b3b2184 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.49.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -132,6 +132,13 @@ Patch3: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch # 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.49-sanitize-sideband-channel-messages.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: perl-podlators @@ -1056,6 +1063,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Mar 24 2025 Ondřej Pohořelský - 2.49.0-2 +- add the option to sanitize sideband channel messages + * Mon Mar 17 2025 Ondřej Pohořelský - 2.49.0-1 - update to 2.49.0 From 001bf29ac7e222626c490dc9ffa4c5195e36f4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 23 Jun 2025 14:16:09 +0200 Subject: [PATCH 62/72] update to 2.50.0 --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index b3b2184..203dced 100644 --- a/git.spec +++ b/git.spec @@ -78,8 +78,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.49.0 -Release: 2%{?dist} +Version: 2.50.0 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1063,6 +1063,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jun 23 2025 Ondřej Pohořelský - 2.50.0-1 +- update to 2.50.0 + * Mon Mar 24 2025 Ondřej Pohořelský - 2.49.0-2 - add the option to sanitize sideband channel messages diff --git a/sources b/sources index 25bd2d3..fbc63c3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.49.0.tar.xz) = 81a16415890305fc6cfd14ade8bee76779feba01f51c5446f40c14211654342c68ef0911859fa6e8e9ff0a718847bb44ee4156d03a19c9165df19ba91e09e1f0 -SHA512 (git-2.49.0.tar.sign) = e956f83ee0973295ec608aa6ab1df11992d8fc10f1702a0cdbf849f7659d94666fe714f60a7b4aeeed064bc49e1345791e3d8b0a867c075544eb48f01b84fd27 +SHA512 (git-2.50.0.tar.xz) = a8fdf5b0ab156822324b76aa7200071eb7244f7714807c39f05bc3361bc261272a6fdd1d0bc3a097dbbf27e92c02eda612aac17cb2a45ddfa222d74937cac67f +SHA512 (git-2.50.0.tar.sign) = 1cc17cc904587ff3c3c85a728ced51a04a92b194a7e5e69e0fd2f59bff24c643a3c4e5631b0cd870d4ad4229b1e9edc4c5cf671cde72bb37ef1cc04ebfac421c From 54ed4ea4ba7db573e5cccb672c50aed38b2fe49c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Tue, 8 Jul 2025 22:41:07 +0200 Subject: [PATCH 63/72] update to 2.50.1 --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 203dced..b23d32b 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.50.0 +Version: 2.50.1 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -1063,6 +1063,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Jul 08 2025 Ondřej Pohořelský - 2.50.1-1 +- update to 2.50.1 + * Mon Jun 23 2025 Ondřej Pohořelský - 2.50.0-1 - update to 2.50.0 diff --git a/sources b/sources index fbc63c3..8e5e30a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.50.0.tar.xz) = a8fdf5b0ab156822324b76aa7200071eb7244f7714807c39f05bc3361bc261272a6fdd1d0bc3a097dbbf27e92c02eda612aac17cb2a45ddfa222d74937cac67f -SHA512 (git-2.50.0.tar.sign) = 1cc17cc904587ff3c3c85a728ced51a04a92b194a7e5e69e0fd2f59bff24c643a3c4e5631b0cd870d4ad4229b1e9edc4c5cf671cde72bb37ef1cc04ebfac421c +SHA512 (git-2.50.1.tar.xz) = 09f37290c0d4d074b97363f4a4be1813426e93ac3fa993c4d671bb1462bcc9335713c17d1442196a35205a603eeb052662382935d27498875a251f4fe86f6b36 +SHA512 (git-2.50.1.tar.sign) = f03a588b4108a2f0eae949d8870a3f16da18dfdf23de547aeaa25cdbccf668cfe89d49bbfb3869571b261738482f32002d83b2760415d4c04a0285273b18e828 From fc75418e16da4919c30846f896122b7e08c85c92 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 22:22:42 +0000 Subject: [PATCH 64/72] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index b23d32b..d19d51f 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.50.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1063,6 +1063,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 2.50.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jul 08 2025 Ondřej Pohořelský - 2.50.1-1 - update to 2.50.1 From 90cb7985fdcd5d276f9d7f17efd93932116e578e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Wed, 20 Aug 2025 11:46:09 +0200 Subject: [PATCH 65/72] update to 2.51.0 --- ...9-sanitize-sideband-channel-messages.patch | 471 ------------------ ...1-sanitize-sideband-channel-messages.patch | 274 ++++++++++ git.spec | 27 +- sources | 4 +- 4 files changed, 282 insertions(+), 494 deletions(-) delete mode 100644 git-2.49-sanitize-sideband-channel-messages.patch create mode 100644 git-2.51-sanitize-sideband-channel-messages.patch diff --git a/git-2.49-sanitize-sideband-channel-messages.patch b/git-2.49-sanitize-sideband-channel-messages.patch deleted file mode 100644 index f3be95a..0000000 --- a/git-2.49-sanitize-sideband-channel-messages.patch +++ /dev/null @@ -1,471 +0,0 @@ -From 328ff864183cdd0a4b779b5b88a3271b39a1b1a2 Mon Sep 17 00:00:00 2001 -From: Johannes Schindelin -Date: Wed, 6 Nov 2024 20:34:50 +0100 -Subject: [PATCH 1/4] sideband: mask control characters - -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.c | 17 +++++++++++++++-- - t/t5409-colorize-remote-messages.sh | 12 ++++++++++++ - 2 files changed, 27 insertions(+), 2 deletions(-) - -diff --git a/sideband.c b/sideband.c -index 251e9615ed..81b1ff0805 100644 ---- a/sideband.c -+++ b/sideband.c -@@ -66,6 +66,19 @@ void list_config_color_sideband_slots(struct string_list *list, const char *pref - list_config_item(list, prefix, keywords[i].keyword); - } - -+static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) -+{ -+ strbuf_grow(dest, n); -+ for (; n && *src; src++, n--) { -+ if (!iscntrl(*src) || *src == '\t' || *src == '\n') -+ strbuf_addch(dest, *src); -+ 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 +94,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 +127,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..d0745c391b 100755 ---- a/t/t5409-colorize-remote-messages.sh -+++ b/t/t5409-colorize-remote-messages.sh -@@ -98,4 +98,16 @@ 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?\\n" >&2 -+ exec "$@" -+ EOF -+ test_config_global uploadPack.packObjectshook ./color-me-surprised && -+ test_commit need-at-least-one-commit && -+ git clone --no-local . throw-away 2>stderr && -+ test_decode_color decoded && -+ test_grep ! RED decoded -+' -+ - test_done --- -2.49.0 - - -From ab2eb6c0043c643935ea0fbdaed68e15bc831b11 Mon Sep 17 00:00:00 2001 -From: Johannes Schindelin -Date: Wed, 6 Nov 2024 21:07:51 +0100 -Subject: [PATCH 2/4] 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 ---- - Documentation/config.adoc | 2 ++ - Documentation/config/sideband.adoc | 5 +++++ - sideband.c | 10 ++++++++++ - t/t5409-colorize-remote-messages.sh | 8 +++++++- - 4 files changed, 24 insertions(+), 1 deletion(-) - create mode 100644 Documentation/config/sideband.adoc - -diff --git a/Documentation/config.adoc b/Documentation/config.adoc -index cc769251be..a8b04c4e51 100644 ---- a/Documentation/config.adoc -+++ b/Documentation/config.adoc -@@ -522,6 +522,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..3fb5045cd7 ---- /dev/null -+++ b/Documentation/config/sideband.adoc -@@ -0,0 +1,5 @@ -+sideband.allowControlCharacters:: -+ By default, control characters that are delivered via the sideband -+ are masked, to prevent potentially unwanted ANSI escape sequences -+ from being sent to the terminal. Use this config setting to override -+ this behavior. -diff --git a/sideband.c b/sideband.c -index 81b1ff0805..d1c326fa19 100644 ---- a/sideband.c -+++ b/sideband.c -@@ -26,6 +26,8 @@ static struct keyword_entry keywords[] = { - { "error", GIT_COLOR_BOLD_RED }, - }; - -+static int allow_control_characters; -+ - /* Returns a color setting (GIT_COLOR_NEVER, etc). */ - static int use_sideband_colors(void) - { -@@ -39,6 +41,9 @@ static int use_sideband_colors(void) - if (use_sideband_colors_cached >= 0) - return use_sideband_colors_cached; - -+ git_config_get_bool("sideband.allowcontrolcharacters", -+ &allow_control_characters); -+ - if (!git_config_get_string_tmp(key, &value)) - use_sideband_colors_cached = git_config_colorbool(key, value); - else if (!git_config_get_string_tmp("color.ui", &value)) -@@ -68,6 +73,11 @@ void list_config_color_sideband_slots(struct string_list *list, const char *pref - - static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) - { -+ if (allow_control_characters) { -+ strbuf_add(dest, src, n); -+ return; -+ } -+ - strbuf_grow(dest, n); - for (; n && *src; src++, n--) { - if (!iscntrl(*src) || *src == '\t' || *src == '\n') -diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh -index d0745c391b..fb31e85254 100755 ---- a/t/t5409-colorize-remote-messages.sh -+++ b/t/t5409-colorize-remote-messages.sh -@@ -105,9 +105,15 @@ test_expect_success 'disallow (color) control sequences in sideband' ' - EOF - test_config_global uploadPack.packObjectshook ./color-me-surprised && - test_commit need-at-least-one-commit && -+ - git clone --no-local . throw-away 2>stderr && - test_decode_color decoded && -- test_grep ! RED decoded -+ test_grep ! RED decoded && -+ -+ rm -rf throw-away && -+ git -c sideband.allowControlCharacters clone --no-local . throw-away 2>stderr && -+ test_decode_color decoded && -+ test_grep RED decoded - ' - - test_done --- -2.49.0 - - -From a369672c2e6974590ad0561854318a4f255e6893 Mon Sep 17 00:00:00 2001 -From: Johannes Schindelin -Date: Mon, 18 Nov 2024 21:42:57 +0100 -Subject: [PATCH 3/4] 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 ---- - Documentation/config/sideband.adoc | 17 ++++++-- - sideband.c | 61 ++++++++++++++++++++++++++--- - t/t5409-colorize-remote-messages.sh | 16 +++++++- - 3 files changed, 84 insertions(+), 10 deletions(-) - -diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc -index 3fb5045cd7..f347fd6b33 100644 ---- a/Documentation/config/sideband.adoc -+++ b/Documentation/config/sideband.adoc -@@ -1,5 +1,16 @@ - sideband.allowControlCharacters:: - By default, control characters that are delivered via the sideband -- are masked, to prevent potentially unwanted ANSI escape sequences -- from being sent to the terminal. Use this config setting to override -- this behavior. -+ are masked, except ANSI color sequences. This prevents potentially -+ unwanted ANSI escape sequences from being sent to the terminal. Use -+ this config setting to override this behavior: -++ -+-- -+ color:: -+ Allow ANSI color sequences, line feeds and horizontal tabs, -+ but mask all other control characters. This is the default. -+ false:: -+ Mask all control characters other than line feeds and -+ horizontal tabs. -+ true:: -+ Allow all control characters to be sent to the terminal. -+-- -diff --git a/sideband.c b/sideband.c -index d1c326fa19..9084ca234d 100644 ---- a/sideband.c -+++ b/sideband.c -@@ -26,7 +26,11 @@ static struct keyword_entry keywords[] = { - { "error", GIT_COLOR_BOLD_RED }, - }; - --static int allow_control_characters; -+static enum { -+ ALLOW_NO_CONTROL_CHARACTERS = 0, -+ ALLOW_ALL_CONTROL_CHARACTERS = 1, -+ ALLOW_ANSI_COLOR_SEQUENCES = 2 -+} allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES; - - /* Returns a color setting (GIT_COLOR_NEVER, etc). */ - static int use_sideband_colors(void) -@@ -41,8 +45,24 @@ static int use_sideband_colors(void) - if (use_sideband_colors_cached >= 0) - return use_sideband_colors_cached; - -- git_config_get_bool("sideband.allowcontrolcharacters", -- &allow_control_characters); -+ switch (git_config_get_maybe_bool("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 (git_config_get_string_tmp("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 (!git_config_get_string_tmp(key, &value)) - use_sideband_colors_cached = git_config_colorbool(key, value); -@@ -71,9 +91,37 @@ 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) - { -- if (allow_control_characters) { -+ int i; -+ -+ if (allow_control_characters == ALLOW_ALL_CONTROL_CHARACTERS) { - strbuf_add(dest, src, n); - return; - } -@@ -82,7 +130,10 @@ static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n) - for (; n && *src; src++, n--) { - if (!iscntrl(*src) || *src == '\t' || *src == '\n') - strbuf_addch(dest, *src); -- else { -+ else if ((i = handle_ansi_color_sequence(dest, src, n))) { -+ src += i; -+ n -= i; -+ } else { - strbuf_addch(dest, '^'); - strbuf_addch(dest, 0x40 + *src); - } -diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh -index fb31e85254..a755c49a74 100755 ---- a/t/t5409-colorize-remote-messages.sh -+++ b/t/t5409-colorize-remote-messages.sh -@@ -100,7 +100,7 @@ test_expect_success 'fallback to color.ui' ' - - 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?\\n" >&2 -+ printf "error: Have you \\033[31mread\\033[m this?\\a\\n" >&2 - exec "$@" - EOF - test_config_global uploadPack.packObjectshook ./color-me-surprised && -@@ -108,12 +108,24 @@ test_expect_success 'disallow (color) control sequences in sideband' ' - - git 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 -+ test_grep RED decoded && -+ tr -dc "\\007" actual && -+ test_file_not_empty actual - ' - - test_done --- -2.49.0 - - -From b15d2255ed98eb6f75608c2f99f4ea3284ad250e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= -Date: Mon, 24 Mar 2025 10:51:39 +0100 -Subject: [PATCH 4/4] sideband: default to allowControlCharacters=true -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -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/sideband.adoc | 8 ++++---- - sideband.c | 2 +- - t/t5409-colorize-remote-messages.sh | 3 ++- - 3 files changed, 7 insertions(+), 6 deletions(-) - -diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc -index f347fd6b33..a809e2de89 100644 ---- a/Documentation/config/sideband.adoc -+++ b/Documentation/config/sideband.adoc -@@ -1,16 +1,16 @@ - sideband.allowControlCharacters:: - By default, control characters that are delivered via the sideband -- are masked, except ANSI color sequences. This prevents potentially -- unwanted ANSI escape sequences from being sent to the terminal. Use -- this config setting to override this behavior: -+ 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. This is the default. -+ 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. - -- -diff --git a/sideband.c b/sideband.c -index 9084ca234d..456cd3d8bc 100644 ---- a/sideband.c -+++ b/sideband.c -@@ -30,7 +30,7 @@ static enum { - ALLOW_NO_CONTROL_CHARACTERS = 0, - ALLOW_ALL_CONTROL_CHARACTERS = 1, - ALLOW_ANSI_COLOR_SEQUENCES = 2 --} allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES; -+} allow_control_characters = ALLOW_ALL_CONTROL_CHARACTERS; - - /* Returns a color setting (GIT_COLOR_NEVER, etc). */ - static int use_sideband_colors(void) -diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh -index a755c49a74..2d40d8c640 100755 ---- a/t/t5409-colorize-remote-messages.sh -+++ b/t/t5409-colorize-remote-messages.sh -@@ -106,7 +106,8 @@ test_expect_success 'disallow (color) control sequences in sideband' ' - test_config_global uploadPack.packObjectshook ./color-me-surprised && - test_commit need-at-least-one-commit && - -- git clone --no-local . throw-away 2>stderr && -+ git -c sideband.allowControlCharacters=color \ -+ clone --no-local . throw-away 2>stderr && - test_decode_color decoded && - test_grep RED decoded && - test_grep "\\^G" stderr && --- -2.49.0 - diff --git a/git-2.51-sanitize-sideband-channel-messages.patch b/git-2.51-sanitize-sideband-channel-messages.patch new file mode 100644 index 0000000..6a31b6b --- /dev/null +++ b/git-2.51-sanitize-sideband-channel-messages.patch @@ -0,0 +1,274 @@ +From 247950ec070cef60c45a877d24a4770991d1eefc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= +Date: Wed, 20 Aug 2025 09:35:47 +0200 +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 cc769251be..a8b04c4e51 100644 +--- a/Documentation/config.adoc ++++ b/Documentation/config.adoc +@@ -522,6 +522,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..a809e2de89 +--- /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. ++-- +diff --git a/sideband.c b/sideband.c +index 8f15b98a65..461eea0a51 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 int use_sideband_colors(void) + { +@@ -39,6 +45,25 @@ static int use_sideband_colors(void) + if (use_sideband_colors_cached >= 0) + 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.50.1 + diff --git a/git.spec b/git.spec index d19d51f..ec36e59 100644 --- a/git.spec +++ b/git.spec @@ -78,8 +78,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.50.1 -Release: 2%{?dist} +Version: 2.51.0 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -137,7 +137,7 @@ Patch5: git-test-apache-davlockdbtype-config.patch # The default behaviour of Git remains unchanged. # # https://github.com/gitgitgadget/git/pull/1853 -Patch6: git-2.49-sanitize-sideband-channel-messages.patch +Patch6: git-2.51-sanitize-sideband-channel-messages.patch %if %{with docs} # pod2man is needed to build Git.3pm @@ -740,13 +740,6 @@ mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion install -pm 644 contrib/completion/git-completion.tcsh \ %{buildroot}%{_datadir}/git-core/contrib/completion/ -# Move contrib/hooks out of %%docdir -mkdir -p %{buildroot}%{_datadir}/git-core/contrib -mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib -pushd contrib > /dev/null -ln -s ../../../git-core/contrib/hooks -popd > /dev/null - # Install git-prompt.sh mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion install -pm 644 contrib/completion/git-prompt.sh \ @@ -936,11 +929,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files -f bin-man-doc-git-files %{_datadir}/git-core/contrib/diff-highlight -%{_datadir}/git-core/contrib/hooks/update-paranoid -%{_datadir}/git-core/contrib/hooks/setgitperms.perl -%{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample -%{_datadir}/git-core/templates/hooks/pre-rebase.sample -%{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample %files all # No files for you! @@ -952,11 +940,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %license COPYING # exclude is best way here because of troubles with symlinks inside git-core/ %exclude %{_datadir}/git-core/contrib/diff-highlight -%exclude %{_datadir}/git-core/contrib/hooks/update-paranoid -%exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl -%exclude %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample -%exclude %{_datadir}/git-core/templates/hooks/pre-rebase.sample -%exclude %{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample %{bash_completions_dir}/git %{_datadir}/git-core/ @@ -966,7 +949,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %exclude %{_pkgdocdir}/contrib/*/*.py[co] %endif # endif rhel <= 7 -%{_pkgdocdir}/contrib/hooks %if %{with libsecret} %files credential-libsecret @@ -1063,6 +1045,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Aug 20 2025 Ondřej Pohořelský - 2.51.0-1 +- update to 2.51.0 + * Wed Jul 23 2025 Fedora Release Engineering - 2.50.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 8e5e30a..9d8afae 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.50.1.tar.xz) = 09f37290c0d4d074b97363f4a4be1813426e93ac3fa993c4d671bb1462bcc9335713c17d1442196a35205a603eeb052662382935d27498875a251f4fe86f6b36 -SHA512 (git-2.50.1.tar.sign) = f03a588b4108a2f0eae949d8870a3f16da18dfdf23de547aeaa25cdbccf668cfe89d49bbfb3869571b261738482f32002d83b2760415d4c04a0285273b18e828 +SHA512 (git-2.51.0.tar.xz) = 2b8c59589266c0c9e58a9f4fda4a970a8a492e2e0ecbafc414fcfacac4a04251f0115b3676f4599a415b53906f1dea312b18a42e9bde455286abd62ec327beaf +SHA512 (git-2.51.0.tar.sign) = 1fb0d30fb68227ec8a13364b07c3d4468269a2912a746d75704146690115cd9e13c41be4e6e97f65fc5fce40f433456a5e2529f28fe04d6280557970189ac135 From 4cf7527c991233a0316fdbe4cfd60bbc84e0b859 Mon Sep 17 00:00:00 2001 From: Yanko Kaneti Date: Thu, 21 Aug 2025 16:46:57 +0300 Subject: [PATCH 66/72] Gitk can now work with tcl/tk 9 --- git.spec | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/git.spec b/git.spec index ec36e59..1e420f8 100644 --- a/git.spec +++ b/git.spec @@ -436,9 +436,7 @@ Summary: Git repository browser BuildArch: noarch Requires: git = %{version}-%{release} Requires: git-gui = %{version}-%{release} -# Keep gitk on tcl/tk 8.x until its ready for 9 (also see below in config.mk) -# https://github.com/j6t/gitk/issues/5 -Requires: tk8 >= 8.4 +Requires: tk %description -n gitk %{summary}. @@ -596,10 +594,6 @@ gitwebdir = %{_localstatedir}/www/git DEFAULT_TEST_TARGET = prove GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File GIT_TEST_OPTS = -x --verbose-log - -# Keep gitk on tcl/tk 8.x until its ready for 9 (see more above in gitk requires) -TCLTK_PATH = wish8 -TCL_PATH = tclsh8 EOF # Filter bogus perl requires From 8e9df669b84ad39bdefbb31dabfac3b4fa09ab4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Thu, 21 Aug 2025 18:33:27 +0200 Subject: [PATCH 67/72] exclude sample hook files from automatic dependency detection --- git.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 1e420f8..7111a62 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.51.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -605,6 +605,9 @@ EOF %endif # endif ! defined perl_bootstrap +# 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,/} @@ -1039,6 +1042,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Aug 21 2025 Ondřej Pohořelský - 2.51.0-2 +- exclude sample hook files from automatic dependency detection + * Wed Aug 20 2025 Ondřej Pohořelský - 2.51.0-1 - update to 2.51.0 From ba249bb3a1b6ce3fa8636a5ea71ae0a1d41ac58c Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Sun, 12 Oct 2025 18:21:23 -0400 Subject: [PATCH 68/72] Revbump for tcl/tk 9 Currently, the rawhide and f43 branches both have -2, but the tcl/tk 9 change is only on rawhide. --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 7111a62..e337059 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ Name: git Version: 2.51.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1042,6 +1042,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sun Oct 12 2025 Yaakov Selkowitz - 2.51.0-3 +- Revbump for tcl/tk 9 + * Thu Aug 21 2025 Ondřej Pohořelský - 2.51.0-2 - exclude sample hook files from automatic dependency detection From 8f542b0496a06ad6fed89e53c4d2e2a33ffe97c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Thu, 23 Oct 2025 09:34:39 +0200 Subject: [PATCH 69/72] update to 2.51.1 --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index e337059..37c2a53 100644 --- a/git.spec +++ b/git.spec @@ -78,8 +78,8 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.51.0 -Release: 3%{?dist} +Version: 2.51.1 +Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT URL: https://git-scm.com/ @@ -1042,6 +1042,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Oct 23 2025 Ondřej Pohořelský - 2.51.1-1 +- update to 2.51.1 + * Sun Oct 12 2025 Yaakov Selkowitz - 2.51.0-3 - Revbump for tcl/tk 9 diff --git a/sources b/sources index 9d8afae..2fe883b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.51.0.tar.xz) = 2b8c59589266c0c9e58a9f4fda4a970a8a492e2e0ecbafc414fcfacac4a04251f0115b3676f4599a415b53906f1dea312b18a42e9bde455286abd62ec327beaf -SHA512 (git-2.51.0.tar.sign) = 1fb0d30fb68227ec8a13364b07c3d4468269a2912a746d75704146690115cd9e13c41be4e6e97f65fc5fce40f433456a5e2529f28fe04d6280557970189ac135 +SHA512 (git-2.51.1.tar.xz) = bc22d26bbfad4a549d2fb6bed11eb019c2dee607c86bf8faaa986774e526e5b367d80c9a79ab50358624634d840e8e0d27e0b46411d1aabbf76728b7a7f138dd +SHA512 (git-2.51.1.tar.sign) = b22a9ab0db57e00203181ee0138350b0dd7239b68f5ed5c1f2acfcf5f56993f0937150d3d74c27e2fdf6e6daa8eccc682353c957f9dbdd0d2dcbd870b5022aca From 6c89b0ef9df4c8238b1062f52fb4bbd0e06f5cf0 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 17 Nov 2025 11:55:29 -0500 Subject: [PATCH 70/72] Build with highlight on all arches on EL8+ While highlight was only built/shipped on some arches in RHEL 7 Optional, as of RHEL 8 it is built on all arches (albeit not shipped as of 10). --- git.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 37c2a53..f634419 100644 --- a/git.spec +++ b/git.spec @@ -232,7 +232,7 @@ BuildRequires: glibc-langpack-is BuildRequires: gnupg2-smime %endif # endif fedora or el >= 9 -%if 0%{?fedora} || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) +%if 0%{?fedora} || 0%{?rhel} >= 8 || ( 0%{?rhel} == 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) BuildRequires: highlight %endif # endif fedora or el7+ (ppc64le/x86_64) From c488c27117d176c90e836715aed9947b2e3e6799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Thu, 20 Nov 2025 13:40:48 +0100 Subject: [PATCH 71/72] update to 2.52.0 --- ...2-sanitize-sideband-channel-messages.patch | 21 ++++++++++--------- git.spec | 14 ++++++++----- sources | 4 ++-- 3 files changed, 22 insertions(+), 17 deletions(-) rename git-2.51-sanitize-sideband-channel-messages.patch => git-2.52-sanitize-sideband-channel-messages.patch (94%) diff --git a/git-2.51-sanitize-sideband-channel-messages.patch b/git-2.52-sanitize-sideband-channel-messages.patch similarity index 94% rename from git-2.51-sanitize-sideband-channel-messages.patch rename to git-2.52-sanitize-sideband-channel-messages.patch index 6a31b6b..786cb39 100644 --- a/git-2.51-sanitize-sideband-channel-messages.patch +++ b/git-2.52-sanitize-sideband-channel-messages.patch @@ -1,6 +1,6 @@ -From 247950ec070cef60c45a877d24a4770991d1eefc Mon Sep 17 00:00:00 2001 +From 65e88e659008e2cbf79cf44975406ff0d569a3a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= -Date: Wed, 20 Aug 2025 09:35:47 +0200 +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 @@ -78,10 +78,10 @@ Signed-off-by: Ondřej Pohořelský create mode 100644 Documentation/config/sideband.adoc diff --git a/Documentation/config.adoc b/Documentation/config.adoc -index cc769251be..a8b04c4e51 100644 +index 62eebe7c54..dcea3c0c15 100644 --- a/Documentation/config.adoc +++ b/Documentation/config.adoc -@@ -522,6 +522,8 @@ include::config/sequencer.adoc[] +@@ -523,6 +523,8 @@ include::config/sequencer.adoc[] include::config/showbranch.adoc[] @@ -92,7 +92,7 @@ index cc769251be..a8b04c4e51 100644 include::config/splitindex.adoc[] diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc new file mode 100644 -index 0000000000..a809e2de89 +index 0000000000..c9ba24a02c --- /dev/null +++ b/Documentation/config/sideband.adoc @@ -0,0 +1,16 @@ @@ -112,8 +112,9 @@ index 0000000000..a809e2de89 + 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 8f15b98a65..461eea0a51 100644 +index ea7c25211e..88d1b44a7a 100644 --- a/sideband.c +++ b/sideband.c @@ -26,6 +26,12 @@ static struct keyword_entry keywords[] = { @@ -127,10 +128,10 @@ index 8f15b98a65..461eea0a51 100644 +} allow_control_characters = ALLOW_ALL_CONTROL_CHARACTERS; + /* Returns a color setting (GIT_COLOR_NEVER, etc). */ - static int use_sideband_colors(void) + static enum git_colorbool use_sideband_colors(void) { -@@ -39,6 +45,25 @@ static int use_sideband_colors(void) - if (use_sideband_colors_cached >= 0) +@@ -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)) { @@ -270,5 +271,5 @@ index fa5de4500a..2d40d8c640 100755 + test_done -- -2.50.1 +2.51.1 diff --git a/git.spec b/git.spec index f634419..df511dc 100644 --- a/git.spec +++ b/git.spec @@ -78,7 +78,7 @@ %global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.51.1 +Version: 2.52.0 Release: 1%{?dist} Summary: Fast Version Control System License: BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT @@ -137,7 +137,7 @@ Patch5: git-test-apache-davlockdbtype-config.patch # The default behaviour of Git remains unchanged. # # https://github.com/gitgitgadget/git/pull/1853 -Patch6: git-2.51-sanitize-sideband-channel-messages.patch +Patch6: git-2.52-sanitize-sideband-channel-messages.patch %if %{with docs} # pod2man is needed to build Git.3pm @@ -875,10 +875,11 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[5 # Skip tests which fail on s390x # # The following tests are failing on s390x. -# https://lore.kernel.org/git/Z8dIZmscTdi8dZAY@teonanacatl.net/ +# https://lore.kernel.org/git/4dc4c8cd-c0cc-4784-8fcf-defa3a051087@mit.edu/ # -# t5620.4 'do partial clone 2, backfill min batch size' -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5620.4" +# 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 @@ -1042,6 +1043,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Nov 20 2025 Ondřej Pohořelský - 2.52.0-1 +- update to 2.52.0 + * Thu Oct 23 2025 Ondřej Pohořelský - 2.51.1-1 - update to 2.51.1 diff --git a/sources b/sources index 2fe883b..4a04f56 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.51.1.tar.xz) = bc22d26bbfad4a549d2fb6bed11eb019c2dee607c86bf8faaa986774e526e5b367d80c9a79ab50358624634d840e8e0d27e0b46411d1aabbf76728b7a7f138dd -SHA512 (git-2.51.1.tar.sign) = b22a9ab0db57e00203181ee0138350b0dd7239b68f5ed5c1f2acfcf5f56993f0937150d3d74c27e2fdf6e6daa8eccc682353c957f9dbdd0d2dcbd870b5022aca +SHA512 (git-2.52.0.tar.xz) = 965e5ebb72d1f080d64e34bdb75f0bb1689c9dd41dcf63b020d986bad49808ac09bfb1115962bc0c5b95bac8622367ac4cd09aa89266f73d2137fe94c90dd3ed +SHA512 (git-2.52.0.tar.sign) = a5a68ce131a5763650c477ec01a4de958dd6a946bdea0f613e26bdab41d2df6b3ca63f9028bbe603bf0c834bd415c86e6c616b1ff08cc48aa7c3c61a37b24b74 From da35363f19a689204ff3af77b85869ae857346b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Fri, 12 Dec 2025 13:32:24 +0100 Subject: [PATCH 72/72] remove unused buildrequires --- git.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/git.spec b/git.spec index df511dc..49c55d0 100644 --- a/git.spec +++ b/git.spec @@ -149,7 +149,6 @@ BuildRequires: rubygem-asciidoctor BuildRequires: asciidoc >= 8.4.1 %endif # endif with asciidoctor -BuildRequires: perl(File::Compare) BuildRequires: xmlto %if %{with linkcheck} BuildRequires: linkchecker @@ -179,7 +178,6 @@ BuildRequires: openssl-devel BuildRequires: pcre2-devel BuildRequires: perl(Error) BuildRequires: perl(lib) -BuildRequires: perl(Test) %if %{use_perl_generators} BuildRequires: perl-generators %endif