From 9a7edd4b7a49517c37eb088a9592d90f8568d33f Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 22 Feb 2020 13:02:01 -0500 Subject: [PATCH 001/202] work around issue on s390x with gcc10 (#1799408) When git is built with gcc10 on s390x, the diff builtin fails many tests. Use -mtune=zEC12 as a workaround until the issue is fixed (in gcc and/or git). Many thanks to Jakub Jelinek for doing the hard work to track this down. --- git.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 320265a..f340701 100644 --- a/git.spec +++ b/git.spec @@ -83,7 +83,7 @@ Name: git Version: 2.25.1 -Release: 2%{?rcrev}%{?dist} +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -501,6 +501,11 @@ sed -i '/^git-p4/d' command-list.txt %endif # endif without p4 +# Work around issue on s390x with gcc10 (#1799408) +%if 0%{?fedora} >= 32 && %{_arch} == s390x +%global build_cflags %(echo %build_cflags | sed 's/-mtune=z13/-mtune=zEC12/') +%endif + # Use these same options for every invocation of 'make'. # Otherwise it will rebuild in %%install due to flags changes. # Pipe to tee to aid confirmation/verification of settings. @@ -1028,6 +1033,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Feb 22 2020 Todd Zullinger - 2.25.1-3 +- work around issue on s390x with gcc10 (#1799408) + * Wed Feb 19 2020 Todd Zullinger - 2.25.1-2 - split libsecret credential helper into a subpackage (#1804741) - consolidate macros for Fedora/EPEL From e942c8d036312d9652181e99138f54a730116d4b Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 25 Feb 2020 22:46:21 -0500 Subject: [PATCH 002/202] use Asciidoctor to build documentation when possible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Asciidoctor project is more actively maintained than asciidoc. Use it for building the documentation on Fedora. Asciidoctor is not currently available for EL-6 or EL-8, though it is in EPEL for EL-7. Exclude all EL builds for now, until we can reliably use it on EL-7 and EL-8 (including CentOS-Stream, ideally). This is made possible by the excellent work of both the Git and Asciidoctor communities. Thanks in particular to brian m. carlson, Martin Ågren, Jeff King, and Dan Allen. --- git.spec | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index f340701..02655e1 100644 --- a/git.spec +++ b/git.spec @@ -8,9 +8,11 @@ # Settings for Fedora %if 0%{?fedora} +%bcond_without asciidoctor # linkchecker is not available on EL %bcond_without linkcheck %else +%bcond_with asciidoctor %bcond_with linkcheck %endif @@ -83,7 +85,7 @@ Name: git Version: 2.25.1 -Release: 3%{?rcrev}%{?dist} +Release: 4%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -118,7 +120,13 @@ Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man +%if %{with asciidoctor} +BuildRequires: docbook5-style-xsl +BuildRequires: rubygem-asciidoctor +%else BuildRequires: asciidoc >= 8.4.1 +%endif +# endif with asciidoctor BuildRequires: xmlto %if %{with linkcheck} BuildRequires: linkchecker @@ -526,6 +534,10 @@ PYTHON_PATH = %{__python2} NO_PYTHON = 1 %endif # endif with python2 +%if %{with asciidoctor} +USE_ASCIIDOCTOR = 1 +%endif +# endif with asciidoctor htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} prefix = %{_prefix} perllibdir = %{perl_vendorlib} @@ -1033,6 +1045,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Feb 26 2020 Todd Zullinger - 2.25.1-4 +- use Asciidoctor to build documentation when possible + * Sat Feb 22 2020 Todd Zullinger - 2.25.1-3 - work around issue on s390x with gcc10 (#1799408) From 7428a574028e1559bdf1d79fd362f319ac3936cc Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 5 Mar 2020 21:30:08 -0500 Subject: [PATCH 003/202] update to 2.26.0-rc0 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt --- git.spec | 11 ++++++++--- sources | 4 ++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/git.spec b/git.spec index 02655e1..f1caa9c 100644 --- a/git.spec +++ b/git.spec @@ -81,11 +81,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.25.1 -Release: 4%{?rcrev}%{?dist} +Version: 2.26.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -597,6 +597,8 @@ export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) %endif # endif with libsecret +%make_build -C contrib/credential/netrc/ + %make_build -C contrib/diff-highlight/ %make_build -C contrib/subtree/ all @@ -1045,6 +1047,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Mar 06 2020 Todd Zullinger - 2.26.0-0.0.rc0 +- update to 2.26.0-rc0 + * Wed Feb 26 2020 Todd Zullinger - 2.25.1-4 - use Asciidoctor to build documentation when possible diff --git a/sources b/sources index 3717187..4450f6e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.25.1.tar.xz) = 15241143acfd8542d85d2709ac3c80dbd6e8d5234438f70c4f33cc71a2bdec3e32938df7f6351e2746d570b021d3bd0b70474ea4beec0c51d1fc45f9c287b344 -SHA512 (git-2.25.1.tar.sign) = 29a4fd59227d74b233416fa17ce184c0f57d824fdfc4554e37aa9dd06176fdfa0e7cbade77c661d5d9aa1e62d206f7f4816a690984845baa3ca691069de65a6b +SHA512 (git-2.26.0.rc0.tar.xz) = 05e26e5ab3f8a08e760a41ec0409982eee0b6b3f5164a6c5e608d67e9805a447d0ff2e29f6d768228321fa66a2a7ac83708535d1f2076d1fcf6db844c7c425f9 +SHA512 (git-2.26.0.rc0.tar.sign) = 92a665e1410578496804c06eaab644567e800d251310178ac2c27234258c9cdc064b6373560de708f651da6e76f7dbca9e84564f2fc2077494e44f2e6735f099 From edfc06e98341a1fa77a1400b5a43e005f678aa6f Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 10 Mar 2020 11:37:16 -0400 Subject: [PATCH 004/202] update to 2.26.0-rc1 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index f1caa9c..120772c 100644 --- a/git.spec +++ b/git.spec @@ -81,11 +81,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.26.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1047,6 +1047,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Mar 10 2020 Todd Zullinger - 2.26.0-0.1.rc1 +- update to 2.26.0-rc1 + * Fri Mar 06 2020 Todd Zullinger - 2.26.0-0.0.rc0 - update to 2.26.0-rc0 diff --git a/sources b/sources index 4450f6e..c87bd3e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.26.0.rc0.tar.xz) = 05e26e5ab3f8a08e760a41ec0409982eee0b6b3f5164a6c5e608d67e9805a447d0ff2e29f6d768228321fa66a2a7ac83708535d1f2076d1fcf6db844c7c425f9 -SHA512 (git-2.26.0.rc0.tar.sign) = 92a665e1410578496804c06eaab644567e800d251310178ac2c27234258c9cdc064b6373560de708f651da6e76f7dbca9e84564f2fc2077494e44f2e6735f099 +SHA512 (git-2.26.0.rc1.tar.xz) = 6d98cc4ed7793e44f182bafc3452b7c280cb6dfcfb6826e8f3bfb2297c66af6ff1f134fd208b8448154db2ca38f4b4f1ab1165c19aca66a04cde705ea835f233 +SHA512 (git-2.26.0.rc1.tar.sign) = 76b764b60eb83cab762aacd4efd9e2790fc3f95a874f29272127e9a3063524a044e5b26ba98533318837ec0fb42e83102cb96129c57c687173caf5a3003e4a88 From 90d09bcb8523d1561dadf7b7e416645057d0bb27 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 10 Mar 2020 23:46:37 -0400 Subject: [PATCH 005/202] adjust make test options The make test call was changed to use %make_build in d34bc42 (Use make_build macro when running tests, 2020-01-14) in order to allow the options to be more easily overridden. This enabled the -O option by default, which causes the test output to be printed only after all the tests have run. That makes following the progress in both interactive and copr/koji builds difficult. Replace %make_build with %__make to drop the unwanted -O option but still allow the make command to be overridden. --- git.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 120772c..b183caf 100644 --- a/git.spec +++ b/git.spec @@ -876,7 +876,7 @@ sed -i "s@\(GIT_TEST_OPTS='.*\)'@\1 --root=$testdir'@" GIT-BUILD-OPTIONS touch -r ts GIT-BUILD-OPTIONS # Run the tests -%make_build test || ./print-failed-test-output +%__make test || ./print-failed-test-output # Run contrib/credential/netrc tests mkdir -p contrib/credential @@ -1049,6 +1049,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Tue Mar 10 2020 Todd Zullinger - 2.26.0-0.1.rc1 - update to 2.26.0-rc1 +- adjust make test options * Fri Mar 06 2020 Todd Zullinger - 2.26.0-0.0.rc0 - update to 2.26.0-rc0 From 27b717774c20c436b004f4b1ff6a240e9cfcf99c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 10 Mar 2020 23:52:43 -0400 Subject: [PATCH 006/202] add missing build deps for tests A recent change to the perl packaging split many modules from the base perl-interpreter package. Add the missing test dependencies. A few non-perl packages are also added, as they are no longer pulled into the buildroot automatically, but were not properly required. --- git.spec | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/git.spec b/git.spec index b183caf..ffe1557 100644 --- a/git.spec +++ b/git.spec @@ -135,6 +135,7 @@ BuildRequires: linkchecker %endif # endif with docs BuildRequires: desktop-file-utils +BuildRequires: diffutils BuildRequires: emacs BuildRequires: expat-devel BuildRequires: findutils @@ -147,6 +148,7 @@ BuildRequires: make BuildRequires: openssl-devel BuildRequires: pcre2-devel BuildRequires: perl(Error) +BuildRequires: perl(lib) BuildRequires: perl(Test) %if %{use_perl_generators} BuildRequires: perl-generators @@ -218,12 +220,19 @@ BuildRequires: perl(CGI::Carp) BuildRequires: perl(CGI::Util) BuildRequires: perl(DBD::SQLite) BuildRequires: perl(Digest::MD5) +BuildRequires: perl(Fcntl) +BuildRequires: perl(File::Basename) +BuildRequires: perl(File::Copy) +BuildRequires: perl(File::Find) +BuildRequires: perl(filetest) BuildRequires: perl(HTTP::Date) BuildRequires: perl(IO::Pty) BuildRequires: perl(JSON) BuildRequires: perl(JSON::PP) BuildRequires: perl(Mail::Address) BuildRequires: perl(Memoize) +BuildRequires: perl(POSIX) +BuildRequires: perl(Term::ReadLine) BuildRequires: perl(Test::More) BuildRequires: perl(Time::HiRes) %if %{with python2} @@ -236,7 +245,9 @@ BuildRequires: python3-devel # endif with python3 BuildRequires: subversion BuildRequires: subversion-perl +BuildRequires: tar BuildRequires: time +BuildRequires: zip %endif # endif with tests @@ -1050,6 +1061,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Tue Mar 10 2020 Todd Zullinger - 2.26.0-0.1.rc1 - update to 2.26.0-rc1 - adjust make test options +- add missing build deps for tests * Fri Mar 06 2020 Todd Zullinger - 2.26.0-0.0.rc0 - update to 2.26.0-rc0 From 33714131a9387ebb89a1c3093d8e68c8a0669b63 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 12 Mar 2020 17:44:08 -0400 Subject: [PATCH 007/202] remove s390x gcc10 workaround (#1799408) The workaround added in 9a7edd4 (work around issue on s390x with gcc10 (#1799408), 2020-02-22) is no loner needed. The issue is fixed in gcc-10.0.1-0.9. --- git.spec | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/git.spec b/git.spec index ffe1557..0db6ff0 100644 --- a/git.spec +++ b/git.spec @@ -85,7 +85,7 @@ Name: git Version: 2.26.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -520,11 +520,6 @@ sed -i '/^git-p4/d' command-list.txt %endif # endif without p4 -# Work around issue on s390x with gcc10 (#1799408) -%if 0%{?fedora} >= 32 && %{_arch} == s390x -%global build_cflags %(echo %build_cflags | sed 's/-mtune=z13/-mtune=zEC12/') -%endif - # Use these same options for every invocation of 'make'. # Otherwise it will rebuild in %%install due to flags changes. # Pipe to tee to aid confirmation/verification of settings. @@ -1058,6 +1053,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Mar 12 2020 Todd Zullinger - 2.26.0-0.2.rc1 +- remove s390x gcc10 workaround (#1799408) + * Tue Mar 10 2020 Todd Zullinger - 2.26.0-0.1.rc1 - update to 2.26.0-rc1 - adjust make test options From cedf775a27a70602bcb44ca1c24b3706d1c12f82 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 16 Mar 2020 19:57:24 -0400 Subject: [PATCH 008/202] update to 2.26.0-rc2 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 0db6ff0..b97168f 100644 --- a/git.spec +++ b/git.spec @@ -81,11 +81,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.26.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 0.3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1053,6 +1053,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Mar 16 2020 Todd Zullinger - 2.26.0-0.3.rc2 +- update to 2.26.0-rc2 + * Thu Mar 12 2020 Todd Zullinger - 2.26.0-0.2.rc1 - remove s390x gcc10 workaround (#1799408) diff --git a/sources b/sources index c87bd3e..3e03f7a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.26.0.rc1.tar.xz) = 6d98cc4ed7793e44f182bafc3452b7c280cb6dfcfb6826e8f3bfb2297c66af6ff1f134fd208b8448154db2ca38f4b4f1ab1165c19aca66a04cde705ea835f233 -SHA512 (git-2.26.0.rc1.tar.sign) = 76b764b60eb83cab762aacd4efd9e2790fc3f95a874f29272127e9a3063524a044e5b26ba98533318837ec0fb42e83102cb96129c57c687173caf5a3003e4a88 +SHA512 (git-2.26.0.rc2.tar.xz) = 399356ff6c003282264758b130d9ae430e290d09a44df8e259651455e76f1f51d54ffaea59a7fbb70611e4213c475eb07b13f52e8199d25660af63bf2257dd48 +SHA512 (git-2.26.0.rc2.tar.sign) = b3edd90ea9922b3baa8e57730aed7fcc10acb535422b51cc6cb594d74e4176f1af1f42424c66b0fa9c5bd7908d3bc24553bb08140c7d309187930e1bf45f9a53 From cf5fe150f251fdbde6af39db8879988c750355a4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 18 Mar 2020 03:14:25 -0400 Subject: [PATCH 009/202] update to 2.25.2 https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.25.2.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 320265a..25f2170 100644 --- a/git.spec +++ b/git.spec @@ -82,8 +82,8 @@ #global rcrev .rc0 Name: git -Version: 2.25.1 -Release: 2%{?rcrev}%{?dist} +Version: 2.25.2 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1028,6 +1028,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Mar 18 2020 Todd Zullinger - 2.25.2-1 +- update to 2.25.2 + * Wed Feb 19 2020 Todd Zullinger - 2.25.1-2 - split libsecret credential helper into a subpackage (#1804741) - consolidate macros for Fedora/EPEL diff --git a/sources b/sources index 3717187..f1ca132 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.25.1.tar.xz) = 15241143acfd8542d85d2709ac3c80dbd6e8d5234438f70c4f33cc71a2bdec3e32938df7f6351e2746d570b021d3bd0b70474ea4beec0c51d1fc45f9c287b344 -SHA512 (git-2.25.1.tar.sign) = 29a4fd59227d74b233416fa17ce184c0f57d824fdfc4554e37aa9dd06176fdfa0e7cbade77c661d5d9aa1e62d206f7f4816a690984845baa3ca691069de65a6b +SHA512 (git-2.25.2.tar.xz) = 5f24bb060165a7397286588cfa32a3e77a98059058363699f7873a2efbb77419dc8985a9b8ae05166035e24db586c379b55c7049a5b6a436c554a7f621a51a23 +SHA512 (git-2.25.2.tar.sign) = a643feec045c41e3ed563d007e7f02e0421a09713c4d663e21d8615e21a4973f93d3faf35a9421ebae2fe9f3ef08d66f25167ce0a2331ae50ededbcc2b665bd7 From b0fbda3bc799ade56fa9be40e8f2ac401f27beaa Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 22 Mar 2020 23:32:32 -0400 Subject: [PATCH 010/202] update to 2.26.0 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index b97168f..d78a887 100644 --- a/git.spec +++ b/git.spec @@ -81,11 +81,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.26.0 -Release: 0.3%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1053,6 +1053,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sun Mar 22 2020 Todd Zullinger - 2.26.0-1 +- update to 2.26.0 + * Mon Mar 16 2020 Todd Zullinger - 2.26.0-0.3.rc2 - update to 2.26.0-rc2 diff --git a/sources b/sources index 3e03f7a..9b45185 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.26.0.rc2.tar.xz) = 399356ff6c003282264758b130d9ae430e290d09a44df8e259651455e76f1f51d54ffaea59a7fbb70611e4213c475eb07b13f52e8199d25660af63bf2257dd48 -SHA512 (git-2.26.0.rc2.tar.sign) = b3edd90ea9922b3baa8e57730aed7fcc10acb535422b51cc6cb594d74e4176f1af1f42424c66b0fa9c5bd7908d3bc24553bb08140c7d309187930e1bf45f9a53 +SHA512 (git-2.26.0.tar.xz) = bf8a832211782a9446d041a54da254f2586b894375191fb1a6dc7a6594856ca43230fa1ea804b54daceb68caa8d20c02bdbdbf7b2fa1761ce05a11a26b122a9b +SHA512 (git-2.26.0.tar.sign) = b60b547d0043695a0efe1495941fb374beea975befcdbd01a288641bd3fd460ef43b40a6dc0332a6906591a59764aa019506bcaf67b9a993b042deba7bbe40ae From 64b70dd0af09ddd46ad2137453161198346b1da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Thu, 2 Apr 2020 12:53:40 +0200 Subject: [PATCH 011/202] Fix string quoting for rpm >= 4.16 --- git.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index d78a887..d82cee2 100644 --- a/git.spec +++ b/git.spec @@ -204,12 +204,12 @@ BuildRequires: gnupg BuildRequires: gnupg2-smime %endif # endif fedora or el > 8 -%if 0%{?fedora} || 0%{?rhel} == 6 || ( 0%{?rhel} >= 7 && ( %{_arch} == ppc64le || %{_arch} == x86_64 ) ) +%if 0%{?fedora} || 0%{?rhel} == 6 || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) BuildRequires: highlight %endif # endif fedora, el-6, or el7+ (ppc64le/x86_64) BuildRequires: httpd -%if 0%{?fedora} && ! ( %{_arch} == i386 || %{_arch} == s390x ) +%if 0%{?fedora} && ! ( "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) BuildRequires: jgit %endif # endif fedora (except i386 and s390x) From e8ddd85759af7103f55b8303b22e4b915b715251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Thu, 2 Apr 2020 13:29:11 +0200 Subject: [PATCH 012/202] Bump release --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index d82cee2..e66629f 100644 --- a/git.spec +++ b/git.spec @@ -85,7 +85,7 @@ Name: git Version: 2.26.0 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1053,6 +1053,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Apr 02 2020 Björn Esser - 2.26.0-1.1 +- Fix string quoting for rpm >= 4.16 + * Sun Mar 22 2020 Todd Zullinger - 2.26.0-1 - update to 2.26.0 From c2ee27a40e51cc7bff54799ec546b60748c81e96 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 4 Apr 2020 12:13:48 -0400 Subject: [PATCH 013/202] fix issue with fast-forward rebases when rebase.abbreviateCommands is set Quoting from the upstream patch: Jan Alexander Steffens reported that when `rebase.abbreviateCommands' is set, the merge backend fails to fast forward. This is because the backend generates a todo list with only a `noop', and since this command has no abbreviated form, it is replaced by a comment mark. The sequencer then interprets it as if there is nothing to do, and fails. References: https://github.com/git/git/commit/68e7090f31 https://lore.kernel.org/git/9b4bc756764d87c9f34c11e6ec2fc6482f531805.camel@gmail.com/ --- ...abbreviate-a-command-if-it-doesn-t-h.patch | 58 +++++++++++++++++ ...-with-rebase.abbreviateCommands-true.patch | 64 +++++++++++++++++++ git.spec | 12 +++- 3 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch create mode 100644 0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch diff --git a/0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch b/0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch new file mode 100644 index 0000000..e5a2058 --- /dev/null +++ b/0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch @@ -0,0 +1,58 @@ +From 68e7090f31b4d4f2c7b9a25240af61149fbebb5c Mon Sep 17 00:00:00 2001 +From: Alban Gruin +Date: Mon, 30 Mar 2020 14:42:35 +0200 +Subject: [PATCH 1/2] sequencer: don't abbreviate a command if it doesn't have + a short form + +When the sequencer is requested to abbreviate commands, it will replace +those that do not have a short form (eg. `noop') by a comment mark. +`noop' serves no purpose, except when fast-forwarding (ie. by running +`git rebase'). Removing it will break this command when +`rebase.abbreviateCommands' is set to true. + +Teach todo_list_to_strbuf() to check if a command has an actual +short form, and to ignore it if not. + +Signed-off-by: Alban Gruin +Signed-off-by: Junio C Hamano +--- + sequencer.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/sequencer.c b/sequencer.c +index e528225e78..c2f97f94ba 100644 +--- a/sequencer.c ++++ b/sequencer.c +@@ -1564,7 +1564,7 @@ static const char *command_to_string(const enum todo_command command) + + static char command_to_char(const enum todo_command command) + { +- if (command < TODO_COMMENT && todo_command_info[command].c) ++ if (command < TODO_COMMENT) + return todo_command_info[command].c; + return comment_line_char; + } +@@ -4947,6 +4947,8 @@ static void todo_list_to_strbuf(struct repository *r, struct todo_list *todo_lis + max = num; + + for (item = todo_list->items, i = 0; i < max; i++, item++) { ++ char cmd; ++ + /* if the item is not a command write it and continue */ + if (item->command >= TODO_COMMENT) { + strbuf_addf(buf, "%.*s\n", item->arg_len, +@@ -4955,8 +4957,9 @@ static void todo_list_to_strbuf(struct repository *r, struct todo_list *todo_lis + } + + /* add command to the buffer */ +- if (flags & TODO_LIST_ABBREVIATE_CMDS) +- strbuf_addch(buf, command_to_char(item->command)); ++ cmd = command_to_char(item->command); ++ if ((flags & TODO_LIST_ABBREVIATE_CMDS) && cmd) ++ strbuf_addch(buf, cmd); + else + strbuf_addstr(buf, command_to_string(item->command)); + +-- +2.26.0 + diff --git a/0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch b/0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch new file mode 100644 index 0000000..662fd3b --- /dev/null +++ b/0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch @@ -0,0 +1,64 @@ +From de9f1d3ef45ec885339d04f9e34293eb2de8605d Mon Sep 17 00:00:00 2001 +From: Alban Gruin +Date: Mon, 30 Mar 2020 14:42:36 +0200 +Subject: [PATCH 2/2] t3432: test `--merge' with `rebase.abbreviateCommands = + true', too + +When fast forwarding, `git --merge' should act the same whether +`rebase.abbreviateCommands' is set or not, but so far it was not the +case. This duplicates the tests ensuring that `--merge' works when fast +forwarding to check if it also works with abbreviated commands. + +Signed-off-by: Alban Gruin +Signed-off-by: Junio C Hamano +--- + t/t3432-rebase-fast-forward.sh | 24 +++++++++++++++++++----- + 1 file changed, 19 insertions(+), 5 deletions(-) + +diff --git a/t/t3432-rebase-fast-forward.sh b/t/t3432-rebase-fast-forward.sh +index 6c9d4a1375..6f0452c0ea 100755 +--- a/t/t3432-rebase-fast-forward.sh ++++ b/t/t3432-rebase-fast-forward.sh +@@ -28,10 +28,12 @@ test_rebase_same_head () { + shift && + cmp_f="$1" && + shift && +- test_rebase_same_head_ $status_n $what_n $cmp_n " --apply" "$*" && +- test_rebase_same_head_ $status_f $what_f $cmp_f " --apply --no-ff" "$*" +- test_rebase_same_head_ $status_n $what_n $cmp_n " --merge" "$*" && +- test_rebase_same_head_ $status_f $what_f $cmp_f " --merge --no-ff" "$*" ++ test_rebase_same_head_ $status_n $what_n $cmp_n 0 " --apply" "$*" && ++ test_rebase_same_head_ $status_f $what_f $cmp_f 0 " --apply --no-ff" "$*" ++ test_rebase_same_head_ $status_n $what_n $cmp_n 0 " --merge" "$*" && ++ test_rebase_same_head_ $status_f $what_f $cmp_f 0 " --merge --no-ff" "$*" ++ test_rebase_same_head_ $status_n $what_n $cmp_n 1 " --merge" "$*" && ++ test_rebase_same_head_ $status_f $what_f $cmp_f 1 " --merge --no-ff" "$*" + } + + test_rebase_same_head_ () { +@@ -41,9 +43,21 @@ test_rebase_same_head_ () { + shift && + cmp="$1" && + shift && ++ abbreviate="$1" && ++ shift && + flag="$1" + shift && +- test_expect_$status "git rebase$flag $* with $changes is $what with $cmp HEAD" " ++ if test $abbreviate -eq 1 ++ then ++ msg="git rebase$flag $* (rebase.abbreviateCommands = true) with $changes is $what with $cmp HEAD" ++ else ++ msg="git rebase$flag $* with $changes is $what with $cmp HEAD" ++ fi && ++ test_expect_$status "$msg" " ++ if test $abbreviate -eq 1 ++ then ++ test_config rebase.abbreviateCommands true ++ fi && + oldhead=\$(git rev-parse HEAD) && + test_when_finished 'git reset --hard \$oldhead' && + cp .git/logs/HEAD expect && +-- +2.26.0 + diff --git a/git.spec b/git.spec index e66629f..4869759 100644 --- a/git.spec +++ b/git.spec @@ -85,7 +85,7 @@ Name: git Version: 2.26.0 -Release: 1%{?rcrev}%{?dist}.1 +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -117,6 +117,13 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# Fix issue with fast-forward rebases when rebase.abbreviateCommands is set +# https://lore.kernel.org/git/9b4bc756764d87c9f34c11e6ec2fc6482f531805.camel@gmail.com/ +# https://github.com/git/git/commit/68e7090f31 +Patch1: 0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch +# https://github.com/git/git/commit/de9f1d3ef4 +Patch2: 0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1053,6 +1060,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Apr 04 2020 Todd Zullinger - 2.26.0-2 +- fix issue with fast-forward rebases when rebase.abbreviateCommands is set + * Thu Apr 02 2020 Björn Esser - 2.26.0-1.1 - Fix string quoting for rpm >= 4.16 From 5c331b2580873051c5175c97432036d49be72f68 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 5 Apr 2020 11:15:11 -0400 Subject: [PATCH 014/202] fix/quiet rpmlint issues from libsecret split When the libsecret credential helper was split out in 9d91bab (split libsecret credential helper into a subpackage (#1804741), 2020-02-19), a few rpmlint errors & warnings crept in. Update the rpmlintrc file to ignore the no-documentation warning for the libsecret subpackage (replacing the gnome-keyring entry which is no longer needed). Fix an errant tab added to the spec file. Moving the libsecret credential helper to a subpackage left no binaries in the main git package, so rpmlint complains. Fixing this requires a bit more investigation and care. --- git.rpmlintrc | 2 +- git.spec | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/git.rpmlintrc b/git.rpmlintrc index a7cb9f2..b2d9407 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -14,7 +14,7 @@ addFilter("git\..*: W: dangling-relative-symlink /usr/libexec/git-core/git-difft addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications/git-gui.desktop git") # ignore no doc/manpage warnings where we don't expect any documentation -addFilter("git-(all|core|gnome-keyring)\..*: W: no-documentation") +addFilter("git-(all|core|credential-libsecret)\..*: W: no-documentation") addFilter("perl-Git-SVN.noarch: W: no-documentation") addFilter("git-core\..*: W: no-manual-page-for-binary") diff --git a/git.spec b/git.spec index 4869759..4902707 100644 --- a/git.spec +++ b/git.spec @@ -297,7 +297,7 @@ Summary: Meta-package to pull in all git tools BuildArch: noarch Requires: git = %{version}-%{release} %if %{with libsecret} -Requires: git-credential-libsecret = %{version}-%{release} +Requires: git-credential-libsecret = %{version}-%{release} %endif # endif with libsecret %if %{with cvs} @@ -1062,6 +1062,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Sat Apr 04 2020 Todd Zullinger - 2.26.0-2 - fix issue with fast-forward rebases when rebase.abbreviateCommands is set +- fix/quiet rpmlint issues from libsecret split * Thu Apr 02 2020 Björn Esser - 2.26.0-1.1 - Fix string quoting for rpm >= 4.16 From 580a5d35185005f06bbbbef7e22e46dca19b2678 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 14 Apr 2020 17:43:46 -0400 Subject: [PATCH 015/202] update to 2.26.1 (CVE-2020-5260) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the upstream release notes¹: With a crafted URL that contains a newline in it, the credential helper machinery can be fooled to give credential information for a wrong host. The attack has been made impossible by forbidding a newline character in any value passed via the credential protocol. ¹ https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.4.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 4902707..17e395a 100644 --- a/git.spec +++ b/git.spec @@ -84,8 +84,8 @@ #global rcrev .rc0 Name: git -Version: 2.26.0 -Release: 2%{?rcrev}%{?dist} +Version: 2.26.1 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1060,6 +1060,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Apr 14 2020 Todd Zullinger - 2.26.1-1 +- update to 2.26.1 (CVE-2020-5260) + * Sat Apr 04 2020 Todd Zullinger - 2.26.0-2 - fix issue with fast-forward rebases when rebase.abbreviateCommands is set - fix/quiet rpmlint issues from libsecret split diff --git a/sources b/sources index 9b45185..556c663 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.26.0.tar.xz) = bf8a832211782a9446d041a54da254f2586b894375191fb1a6dc7a6594856ca43230fa1ea804b54daceb68caa8d20c02bdbdbf7b2fa1761ce05a11a26b122a9b -SHA512 (git-2.26.0.tar.sign) = b60b547d0043695a0efe1495941fb374beea975befcdbd01a288641bd3fd460ef43b40a6dc0332a6906591a59764aa019506bcaf67b9a993b042deba7bbe40ae +SHA512 (git-2.26.1.tar.xz) = 1defa0d94e26e474abd47ec8a0c43c05152e10a5aca5f1aee7480ef0db9f5abd03275fefb7c4e0ee816199c87c0b2a13c164c5f7aa5ff36cafdacf27b3573785 +SHA512 (git-2.26.1.tar.sign) = 9bf881b4d5f99ea4aaa9e77e0c753d8cd466cfc15c18f8a2392da6402c349f27c7e6d7c3844d46ec9e329a534029919bbfedb150a24d21bd27f24667726ee6d5 From f558090b91520f4c3e4088c73c2fd30a3045090e Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 14 Apr 2020 17:51:26 -0400 Subject: [PATCH 016/202] update to 2.25.3 (CVE-2020-5260) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the upstream release notes¹: With a crafted URL that contains a newline in it, the credential helper machinery can be fooled to give credential information for a wrong host. The attack has been made impossible by forbidding a newline character in any value passed via the credential protocol. ¹ https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.4.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 25f2170..887e49f 100644 --- a/git.spec +++ b/git.spec @@ -82,7 +82,7 @@ #global rcrev .rc0 Name: git -Version: 2.25.2 +Version: 2.25.3 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1028,6 +1028,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Apr 14 2020 Todd Zullinger - 2.25.3-1 +- update to 2.25.3 (CVE-2020-5260) + * Wed Mar 18 2020 Todd Zullinger - 2.25.2-1 - update to 2.25.2 diff --git a/sources b/sources index f1ca132..aa2bdbe 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.25.2.tar.xz) = 5f24bb060165a7397286588cfa32a3e77a98059058363699f7873a2efbb77419dc8985a9b8ae05166035e24db586c379b55c7049a5b6a436c554a7f621a51a23 -SHA512 (git-2.25.2.tar.sign) = a643feec045c41e3ed563d007e7f02e0421a09713c4d663e21d8615e21a4973f93d3faf35a9421ebae2fe9f3ef08d66f25167ce0a2331ae50ededbcc2b665bd7 +SHA512 (git-2.25.3.tar.xz) = 1ea2f0727baa29200f33469463c3b6db04a2e228e83ff552faa47fefe31063d92966d7502b2f13546c36cfc2756d42d71a26e41141c0fb972af9d6760f3aa471 +SHA512 (git-2.25.3.tar.sign) = 4fd58605192c3528ec2d8dac6fde830ec53e9196eb7c552c1add919ece9f8590a6412e272eca9bc3aa7d9b92d88fb089c33ac1bf758322aa812ff4d564938f12 From e22c1de4910ad0a5d531b2a572143f5be61a9b2e Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 20 Apr 2020 14:59:34 -0400 Subject: [PATCH 017/202] update to 2.26.2 (CVE-2020-11008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the upstream release notes¹: With a crafted URL that contains a newline or empty host, or lacks a scheme, the credential helper machinery can be fooled into providing credential information that is not appropriate for the protocol in use and host being contacted. Unlike the vulnerability CVE-2020-5260 fixed in v2.17.4, the credentials are not for a host of the attacker's choosing; instead, they are for some unspecified host (based on how the configured credential helper handles an absent "host" parameter). The attack has been made impossible by refusing to work with under-specified credential patterns. ¹ https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.5.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 17e395a..bebca5a 100644 --- a/git.spec +++ b/git.spec @@ -84,7 +84,7 @@ #global rcrev .rc0 Name: git -Version: 2.26.1 +Version: 2.26.2 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1060,6 +1060,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Apr 20 2020 Todd Zullinger - 2.26.2-1 +- update to 2.26.2 (CVE-2020-11008) + * Tue Apr 14 2020 Todd Zullinger - 2.26.1-1 - update to 2.26.1 (CVE-2020-5260) diff --git a/sources b/sources index 556c663..551ebf0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.26.1.tar.xz) = 1defa0d94e26e474abd47ec8a0c43c05152e10a5aca5f1aee7480ef0db9f5abd03275fefb7c4e0ee816199c87c0b2a13c164c5f7aa5ff36cafdacf27b3573785 -SHA512 (git-2.26.1.tar.sign) = 9bf881b4d5f99ea4aaa9e77e0c753d8cd466cfc15c18f8a2392da6402c349f27c7e6d7c3844d46ec9e329a534029919bbfedb150a24d21bd27f24667726ee6d5 +SHA512 (git-2.26.2.tar.xz) = 5d92d07b171c5cd6e89a29c1211c73c1c900cd51c74d690aebfb4a3d0e93b541b09b42b6d6a1a82f5c3d953096771f9a8605c63be139f559f58698c1a0eabcfc +SHA512 (git-2.26.2.tar.sign) = c53a607eda0bf83bf3593e8d68b833ef3ee99976434a97def5dcc25f31e79ff3e79f832b61508509d43d3111df106dde80ff6c9f7ada34ae53e7b4da17b06ed7 From 86dce7281ce0dec0a05dbc7aa89f46f29c9d35c8 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 20 Apr 2020 15:04:05 -0400 Subject: [PATCH 018/202] update to 2.25.4 (CVE-2020-11008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the upstream release notes¹: With a crafted URL that contains a newline or empty host, or lacks a scheme, the credential helper machinery can be fooled into providing credential information that is not appropriate for the protocol in use and host being contacted. Unlike the vulnerability CVE-2020-5260 fixed in v2.17.4, the credentials are not for a host of the attacker's choosing; instead, they are for some unspecified host (based on how the configured credential helper handles an absent "host" parameter). The attack has been made impossible by refusing to work with under-specified credential patterns. ¹ https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.5.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 887e49f..7a65ce7 100644 --- a/git.spec +++ b/git.spec @@ -82,7 +82,7 @@ #global rcrev .rc0 Name: git -Version: 2.25.3 +Version: 2.25.4 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1028,6 +1028,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Apr 20 2020 Todd Zullinger - 2.25.4-1 +- update to 2.25.3 (CVE-2020-11008) + * Tue Apr 14 2020 Todd Zullinger - 2.25.3-1 - update to 2.25.3 (CVE-2020-5260) diff --git a/sources b/sources index aa2bdbe..4236e42 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.25.3.tar.xz) = 1ea2f0727baa29200f33469463c3b6db04a2e228e83ff552faa47fefe31063d92966d7502b2f13546c36cfc2756d42d71a26e41141c0fb972af9d6760f3aa471 -SHA512 (git-2.25.3.tar.sign) = 4fd58605192c3528ec2d8dac6fde830ec53e9196eb7c552c1add919ece9f8590a6412e272eca9bc3aa7d9b92d88fb089c33ac1bf758322aa812ff4d564938f12 +SHA512 (git-2.25.4.tar.xz) = ca2ecc561d06dbb393fe47d445f0d69423d114766d9bcc125ef1d6d37e350ad903c456540cea420c1a51635b750cde3901e4196f29ce95b315fda11270173450 +SHA512 (git-2.25.4.tar.sign) = 069a20b8711a4b46aebc49a5237982bc205581c81256edc9b142ca067354faaa7eb12f873e8ca0001cc647db12724ddc968167e66cdbf9fca6093ea596484410 From 24de439725ffdf8450225b399bffc115c46e6d4d Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Thu, 21 May 2020 13:37:09 -0500 Subject: [PATCH 019/202] Minor conditional fixes for ELN Signed-off-by: Merlin Mathesius --- git.spec | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index bebca5a..a5b1529 100644 --- a/git.spec +++ b/git.spec @@ -8,14 +8,19 @@ # Settings for Fedora %if 0%{?fedora} -%bcond_without asciidoctor # linkchecker is not available on EL %bcond_without linkcheck %else -%bcond_with asciidoctor %bcond_with linkcheck %endif +# Settings for Fedora and EL >= 9 +%if 0%{?fedora} || 0%{?rhel} >= 9 +%bcond_without asciidoctor +%else +%bcond_with asciidoctor +%endif + # Settings for Fedora and EL > 7 %if 0%{?fedora} || 0%{?rhel} > 7 %bcond_with python2 @@ -85,7 +90,7 @@ Name: git Version: 2.26.2 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1060,6 +1065,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu May 21 2020 Merlin Mathesius - 2.26.2-2 +- Minor conditional fixes for ELN + * Mon Apr 20 2020 Todd Zullinger - 2.26.2-1 - update to 2.26.2 (CVE-2020-11008) From 1a2db2d667d8d719eb893ad64f1b35f066bbe597 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 20 May 2020 23:11:17 -0400 Subject: [PATCH 020/202] update to 2.27.0-rc1 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.27.0.txt --- ...validation-error-with-older-asciidoc.patch | 48 ++++++++++++++ ...abbreviate-a-command-if-it-doesn-t-h.patch | 58 ----------------- ...-with-rebase.abbreviateCommands-true.patch | 64 ------------------- git.spec | 19 +++--- sources | 4 +- 5 files changed, 60 insertions(+), 133 deletions(-) create mode 100644 0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch delete mode 100644 0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch delete mode 100644 0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch diff --git a/0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch b/0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch new file mode 100644 index 0000000..0572687 --- /dev/null +++ b/0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch @@ -0,0 +1,48 @@ +From a2df654cfa807d96932d43b6695791a3af90596a Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Mon, 18 May 2020 20:06:23 -0400 +Subject: [PATCH] gitfaq: avoid validation error with older asciidoc + +When building with asciidoc-8.4.5 (as found on CentOS/Red Hat 6), the +period in the "[[files-in-.gitignore-are-tracked]]" anchor is not +properly parsed as a section: + + WARNING: gitfaq.txt: line 245: missing [[files-in-.gitignore-are-tracked]] section + +The resulting XML file fails to validate with xmlto: + + xmlto: /git/Documentation/gitfaq.xml does not validate (status 3) + xmlto: Fix document syntax or use --skip-validation option + /git/Documentation/gitfaq.xml:3: element refentry: validity error : + Element refentry content does not follow the DTD, expecting + (beginpage? , indexterm* , refentryinfo? , refmeta? , (remark | link + | olink | ulink)* , refnamediv+ , refsynopsisdiv? , (refsect1+ | + refsection+)), got (refmeta refnamediv refsynopsisdiv refsect1 + refsect1 refsect1 refsect1 variablelist refsect1 refsect1 ) + Document /git/Documentation/gitfaq.xml does not validate + +Let's avoid breaking users of platforms which ship an old version of +asciidoc, since the cost to do so is quite low. + +Reported-by: Son Luong Ngoc +Signed-off-by: Todd Zullinger +--- + Documentation/gitfaq.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Documentation/gitfaq.txt b/Documentation/gitfaq.txt +index 370d62dae4..9cd7a592ac 100644 +--- a/Documentation/gitfaq.txt ++++ b/Documentation/gitfaq.txt +@@ -223,7 +223,7 @@ a file checked into the repository which is a template or set of defaults which + can then be copied alongside and modified as appropriate. This second, modified + file is usually ignored to prevent accidentally committing it. + +-[[files-in-.gitignore-are-tracked]] ++[[files-in-gitignore-are-tracked]] + I asked Git to ignore various files, yet they are still tracked:: + A `gitignore` file ensures that certain file(s) which are not + tracked by Git remain untracked. However, sometimes particular +-- +2.26.1 + diff --git a/0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch b/0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch deleted file mode 100644 index e5a2058..0000000 --- a/0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 68e7090f31b4d4f2c7b9a25240af61149fbebb5c Mon Sep 17 00:00:00 2001 -From: Alban Gruin -Date: Mon, 30 Mar 2020 14:42:35 +0200 -Subject: [PATCH 1/2] sequencer: don't abbreviate a command if it doesn't have - a short form - -When the sequencer is requested to abbreviate commands, it will replace -those that do not have a short form (eg. `noop') by a comment mark. -`noop' serves no purpose, except when fast-forwarding (ie. by running -`git rebase'). Removing it will break this command when -`rebase.abbreviateCommands' is set to true. - -Teach todo_list_to_strbuf() to check if a command has an actual -short form, and to ignore it if not. - -Signed-off-by: Alban Gruin -Signed-off-by: Junio C Hamano ---- - sequencer.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/sequencer.c b/sequencer.c -index e528225e78..c2f97f94ba 100644 ---- a/sequencer.c -+++ b/sequencer.c -@@ -1564,7 +1564,7 @@ static const char *command_to_string(const enum todo_command command) - - static char command_to_char(const enum todo_command command) - { -- if (command < TODO_COMMENT && todo_command_info[command].c) -+ if (command < TODO_COMMENT) - return todo_command_info[command].c; - return comment_line_char; - } -@@ -4947,6 +4947,8 @@ static void todo_list_to_strbuf(struct repository *r, struct todo_list *todo_lis - max = num; - - for (item = todo_list->items, i = 0; i < max; i++, item++) { -+ char cmd; -+ - /* if the item is not a command write it and continue */ - if (item->command >= TODO_COMMENT) { - strbuf_addf(buf, "%.*s\n", item->arg_len, -@@ -4955,8 +4957,9 @@ static void todo_list_to_strbuf(struct repository *r, struct todo_list *todo_lis - } - - /* add command to the buffer */ -- if (flags & TODO_LIST_ABBREVIATE_CMDS) -- strbuf_addch(buf, command_to_char(item->command)); -+ cmd = command_to_char(item->command); -+ if ((flags & TODO_LIST_ABBREVIATE_CMDS) && cmd) -+ strbuf_addch(buf, cmd); - else - strbuf_addstr(buf, command_to_string(item->command)); - --- -2.26.0 - diff --git a/0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch b/0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch deleted file mode 100644 index 662fd3b..0000000 --- a/0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch +++ /dev/null @@ -1,64 +0,0 @@ -From de9f1d3ef45ec885339d04f9e34293eb2de8605d Mon Sep 17 00:00:00 2001 -From: Alban Gruin -Date: Mon, 30 Mar 2020 14:42:36 +0200 -Subject: [PATCH 2/2] t3432: test `--merge' with `rebase.abbreviateCommands = - true', too - -When fast forwarding, `git --merge' should act the same whether -`rebase.abbreviateCommands' is set or not, but so far it was not the -case. This duplicates the tests ensuring that `--merge' works when fast -forwarding to check if it also works with abbreviated commands. - -Signed-off-by: Alban Gruin -Signed-off-by: Junio C Hamano ---- - t/t3432-rebase-fast-forward.sh | 24 +++++++++++++++++++----- - 1 file changed, 19 insertions(+), 5 deletions(-) - -diff --git a/t/t3432-rebase-fast-forward.sh b/t/t3432-rebase-fast-forward.sh -index 6c9d4a1375..6f0452c0ea 100755 ---- a/t/t3432-rebase-fast-forward.sh -+++ b/t/t3432-rebase-fast-forward.sh -@@ -28,10 +28,12 @@ test_rebase_same_head () { - shift && - cmp_f="$1" && - shift && -- test_rebase_same_head_ $status_n $what_n $cmp_n " --apply" "$*" && -- test_rebase_same_head_ $status_f $what_f $cmp_f " --apply --no-ff" "$*" -- test_rebase_same_head_ $status_n $what_n $cmp_n " --merge" "$*" && -- test_rebase_same_head_ $status_f $what_f $cmp_f " --merge --no-ff" "$*" -+ test_rebase_same_head_ $status_n $what_n $cmp_n 0 " --apply" "$*" && -+ test_rebase_same_head_ $status_f $what_f $cmp_f 0 " --apply --no-ff" "$*" -+ test_rebase_same_head_ $status_n $what_n $cmp_n 0 " --merge" "$*" && -+ test_rebase_same_head_ $status_f $what_f $cmp_f 0 " --merge --no-ff" "$*" -+ test_rebase_same_head_ $status_n $what_n $cmp_n 1 " --merge" "$*" && -+ test_rebase_same_head_ $status_f $what_f $cmp_f 1 " --merge --no-ff" "$*" - } - - test_rebase_same_head_ () { -@@ -41,9 +43,21 @@ test_rebase_same_head_ () { - shift && - cmp="$1" && - shift && -+ abbreviate="$1" && -+ shift && - flag="$1" - shift && -- test_expect_$status "git rebase$flag $* with $changes is $what with $cmp HEAD" " -+ if test $abbreviate -eq 1 -+ then -+ msg="git rebase$flag $* (rebase.abbreviateCommands = true) with $changes is $what with $cmp HEAD" -+ else -+ msg="git rebase$flag $* with $changes is $what with $cmp HEAD" -+ fi && -+ test_expect_$status "$msg" " -+ if test $abbreviate -eq 1 -+ then -+ test_config rebase.abbreviateCommands true -+ fi && - oldhead=\$(git rev-parse HEAD) && - test_when_finished 'git reset --hard \$oldhead' && - cp .git/logs/HEAD expect && --- -2.26.0 - diff --git a/git.spec b/git.spec index a5b1529..848a23a 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc1 Name: git -Version: 2.26.2 -Release: 2%{?rcrev}%{?dist} +Version: 2.27.0 +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -122,12 +122,10 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# Fix issue with fast-forward rebases when rebase.abbreviateCommands is set -# https://lore.kernel.org/git/9b4bc756764d87c9f34c11e6ec2fc6482f531805.camel@gmail.com/ -# https://github.com/git/git/commit/68e7090f31 -Patch1: 0001-sequencer-don-t-abbreviate-a-command-if-it-doesn-t-h.patch -# https://github.com/git/git/commit/de9f1d3ef4 -Patch2: 0002-t3432-test-merge-with-rebase.abbreviateCommands-true.patch +# Fix doc build on EL-6 with old asciidoc +# https://lore.kernel.org/git/CAL3xRKdwOASiGys%2B7Uu_OA5kBPrTdAURfEw3UQ%2BrguTXT%2BC6JQ@mail.gmail.com/ +# https://lore.kernel.org/git/20200519045301.GY24220@pobox.com/ +Patch1: 0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch %if %{with docs} # pod2man is needed to build Git.3pm @@ -1065,6 +1063,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu May 21 2020 Todd Zullinger - 2.27.0-0.1.rc1 +- update to 2.27.0-rc1 + * Thu May 21 2020 Merlin Mathesius - 2.26.2-2 - Minor conditional fixes for ELN diff --git a/sources b/sources index 551ebf0..4632aa9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.26.2.tar.xz) = 5d92d07b171c5cd6e89a29c1211c73c1c900cd51c74d690aebfb4a3d0e93b541b09b42b6d6a1a82f5c3d953096771f9a8605c63be139f559f58698c1a0eabcfc -SHA512 (git-2.26.2.tar.sign) = c53a607eda0bf83bf3593e8d68b833ef3ee99976434a97def5dcc25f31e79ff3e79f832b61508509d43d3111df106dde80ff6c9f7ada34ae53e7b4da17b06ed7 +SHA512 (git-2.27.0.rc1.tar.xz) = 88a0f0895cea0b689c91962cab85d87914aebd43a83eff29aaeca160f45203767b54ab6f5c1c27982005aa7dfb14789efa6d6069833e09a874fac9a322ab9080 +SHA512 (git-2.27.0.rc1.tar.sign) = 66f19f27e5dd7e1f915af89034986f8ee339fdbf96f62c9858ff00fad5e9e6956078a2205e7cd27efefc071db001597007c8ec9af3d3a4cc5cca0183a47c6b70 From e79e6b9e089c8ffb76a52090e9842d38cc505283 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 26 May 2020 14:52:46 -0400 Subject: [PATCH 021/202] update to 2.27.0-rc2 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.27.0.txt --- ...validation-error-with-older-asciidoc.patch | 48 ------------------- git.spec | 12 ++--- sources | 4 +- 3 files changed, 7 insertions(+), 57 deletions(-) delete mode 100644 0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch diff --git a/0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch b/0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch deleted file mode 100644 index 0572687..0000000 --- a/0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a2df654cfa807d96932d43b6695791a3af90596a Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Mon, 18 May 2020 20:06:23 -0400 -Subject: [PATCH] gitfaq: avoid validation error with older asciidoc - -When building with asciidoc-8.4.5 (as found on CentOS/Red Hat 6), the -period in the "[[files-in-.gitignore-are-tracked]]" anchor is not -properly parsed as a section: - - WARNING: gitfaq.txt: line 245: missing [[files-in-.gitignore-are-tracked]] section - -The resulting XML file fails to validate with xmlto: - - xmlto: /git/Documentation/gitfaq.xml does not validate (status 3) - xmlto: Fix document syntax or use --skip-validation option - /git/Documentation/gitfaq.xml:3: element refentry: validity error : - Element refentry content does not follow the DTD, expecting - (beginpage? , indexterm* , refentryinfo? , refmeta? , (remark | link - | olink | ulink)* , refnamediv+ , refsynopsisdiv? , (refsect1+ | - refsection+)), got (refmeta refnamediv refsynopsisdiv refsect1 - refsect1 refsect1 refsect1 variablelist refsect1 refsect1 ) - Document /git/Documentation/gitfaq.xml does not validate - -Let's avoid breaking users of platforms which ship an old version of -asciidoc, since the cost to do so is quite low. - -Reported-by: Son Luong Ngoc -Signed-off-by: Todd Zullinger ---- - Documentation/gitfaq.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Documentation/gitfaq.txt b/Documentation/gitfaq.txt -index 370d62dae4..9cd7a592ac 100644 ---- a/Documentation/gitfaq.txt -+++ b/Documentation/gitfaq.txt -@@ -223,7 +223,7 @@ a file checked into the repository which is a template or set of defaults which - can then be copied alongside and modified as appropriate. This second, modified - file is usually ignored to prevent accidentally committing it. - --[[files-in-.gitignore-are-tracked]] -+[[files-in-gitignore-are-tracked]] - I asked Git to ignore various files, yet they are still tracked:: - A `gitignore` file ensures that certain file(s) which are not - tracked by Git remain untracked. However, sometimes particular --- -2.26.1 - diff --git a/git.spec b/git.spec index 848a23a..1b2db5f 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.27.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -122,11 +122,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# Fix doc build on EL-6 with old asciidoc -# https://lore.kernel.org/git/CAL3xRKdwOASiGys%2B7Uu_OA5kBPrTdAURfEw3UQ%2BrguTXT%2BC6JQ@mail.gmail.com/ -# https://lore.kernel.org/git/20200519045301.GY24220@pobox.com/ -Patch1: 0001-gitfaq-avoid-validation-error-with-older-asciidoc.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1063,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue May 26 2020 Todd Zullinger - 2.27.0-0.2.rc2 +- update to 2.27.0-rc2 + * Thu May 21 2020 Todd Zullinger - 2.27.0-0.1.rc1 - update to 2.27.0-rc1 diff --git a/sources b/sources index 4632aa9..071d841 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.27.0.rc1.tar.xz) = 88a0f0895cea0b689c91962cab85d87914aebd43a83eff29aaeca160f45203767b54ab6f5c1c27982005aa7dfb14789efa6d6069833e09a874fac9a322ab9080 -SHA512 (git-2.27.0.rc1.tar.sign) = 66f19f27e5dd7e1f915af89034986f8ee339fdbf96f62c9858ff00fad5e9e6956078a2205e7cd27efefc071db001597007c8ec9af3d3a4cc5cca0183a47c6b70 +SHA512 (git-2.27.0.rc2.tar.xz) = 02cb439255c6861ec0fe17705539c97e80c4eab6671797039d65357cce4802fb11575036b96e0054ad6b75c4d730779cb59a2e1fb66261a9f02e75d091d38f4f +SHA512 (git-2.27.0.rc2.tar.sign) = 2658ea642ac2962c81881dd68771cf0f65c87cce1a1cc48d337852d5522121532069e01951c72f0a02c908c8b93474be3a1996be56cce68f7b3ba70c90ebd82c From 29f9b2024d0ae436d9a3593c3a59b787ff2bd0f8 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 1 Jun 2020 19:37:50 -0400 Subject: [PATCH 022/202] update to 2.27.0 Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.27.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 1b2db5f..543b90b 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.27.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jun 01 2020 Todd Zullinger - 2.27.0-1 +- update to 2.27.0 + * Tue May 26 2020 Todd Zullinger - 2.27.0-0.2.rc2 - update to 2.27.0-rc2 diff --git a/sources b/sources index 071d841..e93cebc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.27.0.rc2.tar.xz) = 02cb439255c6861ec0fe17705539c97e80c4eab6671797039d65357cce4802fb11575036b96e0054ad6b75c4d730779cb59a2e1fb66261a9f02e75d091d38f4f -SHA512 (git-2.27.0.rc2.tar.sign) = 2658ea642ac2962c81881dd68771cf0f65c87cce1a1cc48d337852d5522121532069e01951c72f0a02c908c8b93474be3a1996be56cce68f7b3ba70c90ebd82c +SHA512 (git-2.27.0.tar.xz) = 8ddea44503db7caf1f6080e64555541aa64a7b8761fd6541965ee244d9c4a47befccda1a239f11d86c2ad0ff24923d084f65712f5f2d6cfa178573e3471c6c33 +SHA512 (git-2.27.0.tar.sign) = ef158f08dc42660483739ccdf0fb0985537cd354031d17484546a68062a8ba38c22cb1451ea17d397f7cde162d091c9b5d7344dda338f6dd1900228ad49d2ada From 8169cdf554eab8c78df451be65edec070a08d1d0 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 23 Jun 2020 10:13:40 +0200 Subject: [PATCH 023/202] Perl 5.32 rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 543b90b..d26e677 100644 --- a/git.spec +++ b/git.spec @@ -90,7 +90,7 @@ Name: git Version: 2.27.0 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Jun 23 2020 Jitka Plesnikova - 2.27.0-1.1 +- Perl 5.32 rebuild + * Mon Jun 01 2020 Todd Zullinger - 2.27.0-1 - update to 2.27.0 From 9c1c244fd714d33d5932f85cfaddb65dde3ea118 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Fri, 26 Jun 2020 16:20:55 +0200 Subject: [PATCH 024/202] Perl 5.32 re-rebuild of bootstrapped packages --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index d26e677..e8430c0 100644 --- a/git.spec +++ b/git.spec @@ -90,7 +90,7 @@ Name: git Version: 2.27.0 -Release: 1%{?rcrev}%{?dist}.1 +Release: 1%{?rcrev}%{?dist}.2 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Jun 26 2020 Jitka Plesnikova - 2.27.0-1.2 +- Perl 5.32 re-rebuild of bootstrapped packages + * Tue Jun 23 2020 Jitka Plesnikova - 2.27.0-1.1 - Perl 5.32 rebuild From a773853481f04d561d18e816364cda0fcbf85c73 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 9 Jul 2020 18:59:02 -0400 Subject: [PATCH 025/202] update to 2.28.0-rc0 Release notes: https://github.com/git/git/raw/v2.28.0-rc0/Documentation/RelNotes/2.28.0.txt Update git.skip-test-patterns to catch the 2GB clone test. The output of the skipped test was changed (for the better) in upstream commit d63ae31962 (t5608: avoid say() and use "skip_all" instead for consistency, 2020-05-22). --- git.skip-test-patterns | 2 +- git.spec | 9 ++++++--- sources | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 5aaebef..f80cadf 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -1,8 +1,8 @@ +expensive 2GB clone test; enable with GIT_TEST_CLONE_2GB=true filesystem does not corrupt utf-8 GIT_SKIP_TESTS missing AUTOIDENT missing CASE_INSENSITIVE_FS -missing CLONE_2GB missing DONTHAVEIT missing EXPENSIVE missing JGIT diff --git a/git.spec b/git.spec index e8430c0..aab6bc9 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.27.0 -Release: 1%{?rcrev}%{?dist}.2 +Version: 2.28.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jul 09 2020 Todd Zullinger - 2.28.0-0.0.rc0 +- update to 2.28.0-rc0 + * Fri Jun 26 2020 Jitka Plesnikova - 2.27.0-1.2 - Perl 5.32 re-rebuild of bootstrapped packages diff --git a/sources b/sources index e93cebc..d4fc5f7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.27.0.tar.xz) = 8ddea44503db7caf1f6080e64555541aa64a7b8761fd6541965ee244d9c4a47befccda1a239f11d86c2ad0ff24923d084f65712f5f2d6cfa178573e3471c6c33 -SHA512 (git-2.27.0.tar.sign) = ef158f08dc42660483739ccdf0fb0985537cd354031d17484546a68062a8ba38c22cb1451ea17d397f7cde162d091c9b5d7344dda338f6dd1900228ad49d2ada +SHA512 (git-2.28.0.rc0.tar.xz) = bdfcbb7c99c28868700ad0d3d2fdb783c93478adfc6cfdfa0c04f6eaef0080950b2856f6ea65567ac3b78493126a327ca31323f832668bc45b3ff6cbfd05b417 +SHA512 (git-2.28.0.rc0.tar.sign) = e2bc33bc2918386b3357ddc65d0c7a009f5a6d0c53621186f99d0c3de35a2f96649cc1d183d0f7731859f1a6d99855790dc2ce8b1db1c83cad14163a4e89cb9d From b1fa2c8b0469848a022e341dec7652c58887ae84 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 17 Jul 2020 20:14:43 -0400 Subject: [PATCH 026/202] update to 2.28.0-rc1 Release notes: https://github.com/git/git/raw/1e1a30b64a/Documentation/RelNotes/2.28.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index aab6bc9..40288f8 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.28.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Jul 18 2020 Todd Zullinger - 2.28.0-0.1.rc1 +- update to 2.28.0-rc1 + * Thu Jul 09 2020 Todd Zullinger - 2.28.0-0.0.rc0 - update to 2.28.0-rc0 diff --git a/sources b/sources index d4fc5f7..b184e89 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.28.0.rc0.tar.xz) = bdfcbb7c99c28868700ad0d3d2fdb783c93478adfc6cfdfa0c04f6eaef0080950b2856f6ea65567ac3b78493126a327ca31323f832668bc45b3ff6cbfd05b417 -SHA512 (git-2.28.0.rc0.tar.sign) = e2bc33bc2918386b3357ddc65d0c7a009f5a6d0c53621186f99d0c3de35a2f96649cc1d183d0f7731859f1a6d99855790dc2ce8b1db1c83cad14163a4e89cb9d +SHA512 (git-2.28.0.rc1.tar.xz) = 90108e7fb3d40ee61898f9a08837d97405f9131897319f56d97be7b20d56b2c42aebe2fc59b558baa205f670285fbee0c9a93951a6c2a496c1324122086032e7 +SHA512 (git-2.28.0.rc1.tar.sign) = 42b6a54eae12df79dde16f1a1313c1170daa9446a1f540f03270c3131336b3cfeb4c4c655079bc6fda4c8ec5e02aed2fc0ccc95b41243de069000b1a37212762 From 495c6f3ba73cf288f4e87d0b1d2e523f5904d89c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 22 Jul 2020 13:41:37 -0400 Subject: [PATCH 027/202] update to 2.28.0-rc2 Release notes: https://github.com/git/git/raw/v2.28.0-rc2/Documentation/RelNotes/2.28.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 40288f8..9619ef4 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.28.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jul 22 2020 Todd Zullinger - 2.28.0-0.2.rc2 +- update to 2.28.0-rc2 + * Sat Jul 18 2020 Todd Zullinger - 2.28.0-0.1.rc1 - update to 2.28.0-rc1 diff --git a/sources b/sources index b184e89..94566a6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.28.0.rc1.tar.xz) = 90108e7fb3d40ee61898f9a08837d97405f9131897319f56d97be7b20d56b2c42aebe2fc59b558baa205f670285fbee0c9a93951a6c2a496c1324122086032e7 -SHA512 (git-2.28.0.rc1.tar.sign) = 42b6a54eae12df79dde16f1a1313c1170daa9446a1f540f03270c3131336b3cfeb4c4c655079bc6fda4c8ec5e02aed2fc0ccc95b41243de069000b1a37212762 +SHA512 (git-2.28.0.rc2.tar.xz) = 8d2f2c143611b7cb02729f530444a7aa69fe02b468d73682645d696b8ed12db8c4bb6854b0fd54b8b536d95cc7f50375b5d3bf5b22ba8b6058cf384f093469ca +SHA512 (git-2.28.0.rc2.tar.sign) = 1e1d3c9f7d206b2bd3fc6693f6222f041dfc6d034e5ff4b4aa52d0ce0062c6c33a2c5a1e5a5e612dac77c307c39469d48f515b3805935b10caa33024091c5560 From b5802f9607b5f2829140a701db9b8dca0c755a47 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 20:03:13 +0000 Subject: [PATCH 028/202] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_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 9619ef4..f674b65 100644 --- a/git.spec +++ b/git.spec @@ -90,7 +90,7 @@ Name: git Version: 2.28.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 0.3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 2.28.0-0.3.rc2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Wed Jul 22 2020 Todd Zullinger - 2.28.0-0.2.rc2 - update to 2.28.0-rc2 From 4ba9ba21884addc3dbb0ee1b67f67e70cafeb2d7 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 27 Jul 2020 14:40:27 -0400 Subject: [PATCH 029/202] update to 2.28.0 Release notes: https://github.com/git/git/raw/v2.28.0/Documentation/RelNotes/2.28.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index f674b65..381fe31 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.28.0 -Release: 0.3%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1058,6 +1058,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jul 27 2020 Todd Zullinger - 2.28.0-1 +- update to 2.28.0 + * Mon Jul 27 2020 Fedora Release Engineering - 2.28.0-0.3.rc2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index 94566a6..1d08be9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.28.0.rc2.tar.xz) = 8d2f2c143611b7cb02729f530444a7aa69fe02b468d73682645d696b8ed12db8c4bb6854b0fd54b8b536d95cc7f50375b5d3bf5b22ba8b6058cf384f093469ca -SHA512 (git-2.28.0.rc2.tar.sign) = 1e1d3c9f7d206b2bd3fc6693f6222f041dfc6d034e5ff4b4aa52d0ce0062c6c33a2c5a1e5a5e612dac77c307c39469d48f515b3805935b10caa33024091c5560 +SHA512 (git-2.28.0.tar.xz) = a6159c0a15e3c5f9603157d4010664a6d74e7d65b9fe97a03b36fac12607248ed57980d96565841e88eae343001c167222232737d3af812608c8db011941df1a +SHA512 (git-2.28.0.tar.sign) = 1af9fde8650307712c99fcb58f031aba3e5efa56977989023db3f0977e6a9d0a8c1f6f32a8eb698932f9b9cc2bd6f6b04f16619294e8cbfb2e9c11fb994214f2 From 425f3a39fa0e3c11476d9c5d260d6af0878490fc Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 5 Oct 2020 19:59:56 -0400 Subject: [PATCH 030/202] update to 2.29.0-rc0 Delete references to contrib/svn-fe, it was deleted in upstream commit fc47391e24 (drop vcs-svn experiment, 2020-08-13). Release notes: https://github.com/git/git/raw/v2.29.0-rc0/Documentation/RelNotes/2.29.0.txt --- git.spec | 20 +++++++++++--------- sources | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/git.spec b/git.spec index 381fe31..89cc229 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.28.0 -Release: 1%{?rcrev}%{?dist} +Version: 2.29.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -621,12 +621,11 @@ sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \ contrib/hg-to-git/hg-to-git.py \ contrib/hooks/multimail/git_multimail.py \ contrib/hooks/multimail/migrate-mailhook-config \ - contrib/hooks/multimail/post-receive.example \ - contrib/svn-fe/svnrdump_sim.py + contrib/hooks/multimail/post-receive.example %else -# Remove contrib/fast-import/import-zips.py, contrib/hg-to-git, and -# contrib/svn-fe which all require python2. -rm -rf contrib/fast-import/import-zips.py contrib/hg-to-git contrib/svn-fe +# Remove contrib/fast-import/import-zips.py and contrib/hg-to-git which all +# require python2. +rm -rf contrib/fast-import/import-zips.py contrib/hg-to-git %endif # endif with python2 @@ -795,7 +794,7 @@ not_core_doc_re="(git-(cvs|gui|citool|daemon|instaweb|subtree))|p4|svn|email|git mkdir -p %{buildroot}%{_pkgdocdir}/ cp -pr CODE_OF_CONDUCT.md README.md Documentation/*.txt Documentation/RelNotes contrib %{buildroot}%{_pkgdocdir}/ # Remove contrib/ files/dirs which have nothing useful for documentation -rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential,svn-fe}/ +rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential}/ cp -p gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb cp -p gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb @@ -1058,6 +1057,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Oct 05 2020 Todd Zullinger - 2.29.0-0.0.rc0 +- update to 2.29.0-rc0 + * Mon Jul 27 2020 Todd Zullinger - 2.28.0-1 - update to 2.28.0 diff --git a/sources b/sources index 1d08be9..90b5f11 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.28.0.tar.xz) = a6159c0a15e3c5f9603157d4010664a6d74e7d65b9fe97a03b36fac12607248ed57980d96565841e88eae343001c167222232737d3af812608c8db011941df1a -SHA512 (git-2.28.0.tar.sign) = 1af9fde8650307712c99fcb58f031aba3e5efa56977989023db3f0977e6a9d0a8c1f6f32a8eb698932f9b9cc2bd6f6b04f16619294e8cbfb2e9c11fb994214f2 +SHA512 (git-2.29.0.rc0.tar.xz) = 81f28ef88fe4fd11c31bfde70062f8c5cbf4a661d85d21480c74660d296c3989a8e9490503048caf27b2f29dabb6dae28a4097f9f03d13ab932b964b3f4d6f46 +SHA512 (git-2.29.0.rc0.tar.sign) = 9b5a801f6dbab1367b3f22871efd750a4e845a97829559441432cd19a858acdf1c1d292a0f7ecf7a52d8a00d5fa553a692af700ba42b34ac1b123e8f89bb4669 From 29f5c9d8032847443d361baca907912acd9e627d Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 9 Oct 2020 16:16:03 -0400 Subject: [PATCH 031/202] update to 2.29.0-rc1 Release notes: https://github.com/git/git/raw/v2.29.0-rc1/Documentation/RelNotes/2.29.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 89cc229..66d3168 100644 --- a/git.spec +++ b/git.spec @@ -86,11 +86,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.29.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1057,6 +1057,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Oct 09 2020 Todd Zullinger - 2.29.0-0.1.rc1 +- update to 2.29.0-rc1 + * Mon Oct 05 2020 Todd Zullinger - 2.29.0-0.0.rc0 - update to 2.29.0-rc0 diff --git a/sources b/sources index 90b5f11..054e87e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.29.0.rc0.tar.xz) = 81f28ef88fe4fd11c31bfde70062f8c5cbf4a661d85d21480c74660d296c3989a8e9490503048caf27b2f29dabb6dae28a4097f9f03d13ab932b964b3f4d6f46 -SHA512 (git-2.29.0.rc0.tar.sign) = 9b5a801f6dbab1367b3f22871efd750a4e845a97829559441432cd19a858acdf1c1d292a0f7ecf7a52d8a00d5fa553a692af700ba42b34ac1b123e8f89bb4669 +SHA512 (git-2.29.0.rc1.tar.xz) = e976c5c652f32cc5bb83cc128460c200dd30f722371d180dffabff389310fceafb11ce51075b90ca77469c882d57ca617005ceae1f79a1489c00024032e6f4f8 +SHA512 (git-2.29.0.rc1.tar.sign) = e0c83c9e1bd4940145a6be8e36ec3f106d10190aa86bf61b35af736a869be8e8e3652ec94e7420ebf6f592788d3a2298f332bd2b600f14380f885fb29e48d0e0 From cdea01ae5527a817cf665f1e870cbfaa09883bb1 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 10 Oct 2020 10:13:31 -0400 Subject: [PATCH 032/202] drop emacs-git stub for fedora >= 34 (#1882360) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since git-2.18.0, the emacs files shipped in git have been stub files which merely point users to better options. Stop shipping these stubs with Fedora 34 and later. Drop the emacs BuildRequires on Fedora >= 34. Elsewhere, replace it with emacs-common. We need macros.emacs for %{_emacs_sitelispdir} anywhere we ship the stub .el files¹. The full emacs BR _was_ necessary prior to git-2.18.0, as /usr/bin/emacs was used to byte compile the .el files. It traces all the way back to e46bac5 (Add emacs-git package from Ville (#235431), 2007-06-22). ¹ It might be nice if there were an emacs-rpm-macros for this. But emacs-common is a lot lighter than emacs, so it's still a nice improvement. Per `dnf install` in a current f33 container image: $ dnf install emacs ... Install 193 Packages Total download size: 164 M Installed size: 544 M $ dnf install emacs-common ... Install 7 Packages Total download size: 36 M Installed size: 89 M --- git.spec | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/git.spec b/git.spec index 66d3168..c90480c 100644 --- a/git.spec +++ b/git.spec @@ -6,6 +6,13 @@ %global gitexecdir %{_libexecdir}/git-core +# Settings for Fedora >= 34 +%if 0%{?fedora} >= 34 +%bcond_with emacs +%else +%bcond_without emacs +%endif + # Settings for Fedora %if 0%{?fedora} # linkchecker is not available on EL @@ -141,7 +148,10 @@ BuildRequires: linkchecker # endif with docs BuildRequires: desktop-file-utils BuildRequires: diffutils -BuildRequires: emacs +%if %{with emacs} +BuildRequires: emacs-common +%endif +# endif emacs-common BuildRequires: expat-devel BuildRequires: findutils BuildRequires: gawk @@ -264,10 +274,16 @@ Requires: perl(Term::ReadKey) # endif ! defined perl_bootstrap Requires: perl-Git = %{version}-%{release} -%if %{emacs_filesystem} && %{defined _emacs_version} +%if %{with emacs} && %{emacs_filesystem} && %{defined _emacs_version} Requires: emacs-filesystem >= %{_emacs_version} %endif -# endif emacs_filesystem +# endif with emacs && emacs_filesystem + +# Obsolete emacs-git if it's disabled +%if %{without emacs} +Obsoletes: emacs-git < %{?epoch:%{epoch}:}%{version}-%{release} +%endif +# endif without emacs # Obsolete git-cvs if it's disabled %if %{without cvs} @@ -317,10 +333,10 @@ Requires: perl-Git = %{version}-%{release} Requires: perl(Term::ReadKey) %endif # endif ! defined perl_bootstrap -%if ! %{emacs_filesystem} +%if %{with emacs} && ! %{emacs_filesystem} Requires: emacs-git = %{version}-%{release} %endif -# endif ! emacs_filesystem +# endif with emacs && ! emacs_filesystem %description all Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations @@ -397,7 +413,7 @@ Requires: perl(Net::SMTP::SSL) %description email %{summary}. -%if ! %{emacs_filesystem} +%if %{with emacs} && ! %{emacs_filesystem} %package -n emacs-git Summary: Git version control system support for Emacs Requires: git = %{version}-%{release} @@ -408,7 +424,7 @@ Provides: emacs-git-el = %{version}-%{release} %description -n emacs-git %{summary}. %endif -# endif ! emacs_filesystem +# endif with emacs && ! emacs_filesystem %package -n gitk Summary: Git repository browser @@ -644,6 +660,7 @@ sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ %make_install -C contrib/contacts +%if %{with emacs} %global elispdir %{_emacs_sitelispdir}/git pushd contrib/emacs >/dev/null for el in *.el ; do @@ -653,6 +670,8 @@ for el in *.el ; do rm -f $el # clean up to avoid cruft in git-core-doc done popd >/dev/null +%endif +# endif with emacs %if %{with libsecret} install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ @@ -910,10 +929,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" # endif use_systemd %files -f bin-man-doc-git-files -%if %{emacs_filesystem} +%if %{with emacs} && %{emacs_filesystem} %{elispdir} %endif -# endif emacs_filesystem +# endif with emacs && emacs_filesystem %{_datadir}/git-core/contrib/diff-highlight %{_datadir}/git-core/contrib/hooks/multimail %{_datadir}/git-core/contrib/hooks/update-paranoid @@ -980,12 +999,12 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_mandir}/man1/git-daemon*.1*} %{?with_docs:%{_pkgdocdir}/git-daemon*.html} -%if ! %{emacs_filesystem} +%if %{with emacs} && ! %{emacs_filesystem} %files -n emacs-git %{_pkgdocdir}/contrib/emacs/README %{elispdir} %endif -# endif ! emacs_filesystem +# endif with emacs && ! emacs_filesystem %files email %{_pkgdocdir}/*email*.txt @@ -1059,6 +1078,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Fri Oct 09 2020 Todd Zullinger - 2.29.0-0.1.rc1 - update to 2.29.0-rc1 +- drop emacs-git stub for fedora >= 34 (#1882360) * Mon Oct 05 2020 Todd Zullinger - 2.29.0-0.0.rc0 - update to 2.29.0-rc0 From 58dc6bb36a79726ca510aab470bf32d8e9876689 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 10 Oct 2020 11:23:56 -0400 Subject: [PATCH 033/202] adjust python hashbang in contrib/hg-to-git, it supports python3 The hg-to-git.py script in contrib grew python3 support in upstream commit d17ae00c97 (hg-to-git: make it compatible with both python3 and python2, 2019-09-18), which was released in git-2.24.0. Move it from the python2-only conditionals. (This leaves contrib/fast-import/import-zips.py as the sole python script which is _not_ python3-compatible. It seems to need only minimal fixes for python2/python3 compatibility -- per some light testing.) --- git.spec | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/git.spec b/git.spec index c90480c..dd071c6 100644 --- a/git.spec +++ b/git.spec @@ -634,21 +634,21 @@ export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) %if %{with python2} sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \ contrib/fast-import/import-zips.py \ - contrib/hg-to-git/hg-to-git.py \ contrib/hooks/multimail/git_multimail.py \ contrib/hooks/multimail/migrate-mailhook-config \ contrib/hooks/multimail/post-receive.example %else -# Remove contrib/fast-import/import-zips.py and contrib/hg-to-git which all -# require python2. -rm -rf contrib/fast-import/import-zips.py contrib/hg-to-git +# Remove contrib/fast-import/import-zips.py which requires python2. +rm -rf contrib/fast-import/import-zips.py %endif # endif with python2 # The multimail hook is installed with git. Use python3 to avoid an -# unnecessary python2 dependency, if possible. +# unnecessary python2 dependency, if possible. Also fix contrib/hg-to-git +# while here. %if %{with python3} sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ + contrib/hg-to-git/hg-to-git.py \ contrib/hooks/multimail/git_multimail.py \ contrib/hooks/multimail/migrate-mailhook-config \ contrib/hooks/multimail/post-receive.example @@ -1079,6 +1079,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Fri Oct 09 2020 Todd Zullinger - 2.29.0-0.1.rc1 - update to 2.29.0-rc1 - drop emacs-git stub for fedora >= 34 (#1882360) +- adjust python hashbang in contrib/hg-to-git, it supports python3 * Mon Oct 05 2020 Todd Zullinger - 2.29.0-0.0.rc0 - update to 2.29.0-rc0 From 126d6526c9f8921f8c79e35e6912159c3e14b65e Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 15 Oct 2020 16:56:50 -0400 Subject: [PATCH 034/202] update to 2.29.0-rc2 Release notes: https://github.com/git/git/raw/v2.29.0-rc2/Documentation/RelNotes/2.29.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index dd071c6..0a6e414 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.29.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1076,6 +1076,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Oct 15 2020 Todd Zullinger - 2.29.0-0.2.rc2 +- update to 2.29.0-rc2 + * Fri Oct 09 2020 Todd Zullinger - 2.29.0-0.1.rc1 - update to 2.29.0-rc1 - drop emacs-git stub for fedora >= 34 (#1882360) diff --git a/sources b/sources index 054e87e..c0972a7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.29.0.rc1.tar.xz) = e976c5c652f32cc5bb83cc128460c200dd30f722371d180dffabff389310fceafb11ce51075b90ca77469c882d57ca617005ceae1f79a1489c00024032e6f4f8 -SHA512 (git-2.29.0.rc1.tar.sign) = e0c83c9e1bd4940145a6be8e36ec3f106d10190aa86bf61b35af736a869be8e8e3652ec94e7420ebf6f592788d3a2298f332bd2b600f14380f885fb29e48d0e0 +SHA512 (git-2.29.0.rc2.tar.xz) = 8fdbf2ced17e38aba0075ee84d527578bccd45c5bc21a4f17f19fb9da753550b865520fcd32b763e4d76f1b529bdc271658ac37097af11aca66eae64db166301 +SHA512 (git-2.29.0.rc2.tar.sign) = 388c74b85e3a0764ff948236d70a18ad4465312b1c434e95b78fac796e763527c5e62ff47ebcaa71492f531284dc3fd7246b8ffd723bbea6200ce81e22c1d0ee From 08f0612fd8cc2fd00945559d847de9932eff606a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 19 Oct 2020 21:34:21 -0400 Subject: [PATCH 035/202] update to 2.29.0 Release notes: https://github.com/git/git/raw/v2.29.0/Documentation/RelNotes/2.29.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 0a6e414..5a189ba 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.29.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1076,6 +1076,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Oct 19 2020 Todd Zullinger - 2.29.0-1 +- update to 2.29.0 + * Thu Oct 15 2020 Todd Zullinger - 2.29.0-0.2.rc2 - update to 2.29.0-rc2 diff --git a/sources b/sources index c0972a7..0abb923 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.29.0.rc2.tar.xz) = 8fdbf2ced17e38aba0075ee84d527578bccd45c5bc21a4f17f19fb9da753550b865520fcd32b763e4d76f1b529bdc271658ac37097af11aca66eae64db166301 -SHA512 (git-2.29.0.rc2.tar.sign) = 388c74b85e3a0764ff948236d70a18ad4465312b1c434e95b78fac796e763527c5e62ff47ebcaa71492f531284dc3fd7246b8ffd723bbea6200ce81e22c1d0ee +SHA512 (git-2.29.0.tar.xz) = 7efca642d78403d15435bc1d44379b328432a36cfeeaa229b6f83e6e6ce52ca0e8fb7de05a8b04d0d2d257d0935e6424e419b892b97777cfcd91d90e0fc7c335 +SHA512 (git-2.29.0.tar.sign) = 8fff0138e7c5256edf1def35997a9982aa7a47ddc2a367a9735a62f4cbfb451845e8306b70b416609f2f6fb4dbf33ff795b2e011fd9b2c9d94b8bbd666d1fa88 From f3a190b8dad5e95cb1da48014557e675a149611b Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 24 Oct 2020 22:02:35 -0400 Subject: [PATCH 036/202] update to 2.29.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The update to 2.29.1 is pointless on its own¹, but a subsequent commit will add some additional post-release fixes for 2.29. Once we're pushing an update, we might as well pick up the latest point release to avoid anyone wondering why we've skipped an update. Release notes: https://github.com/git/git/raw/v2.29.1/Documentation/RelNotes/2.29.1.txt ¹ The only change in 2.29.1 is a Makefile fix for users of the non-default SKIP_DASHED_BUILT_INS installation option. --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 5a189ba..0951479 100644 --- a/git.spec +++ b/git.spec @@ -96,7 +96,7 @@ #global rcrev .rc0 Name: git -Version: 2.29.0 +Version: 2.29.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1076,6 +1076,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Oct 24 2020 Todd Zullinger - 2.29.1-1 +- update to 2.29.1 + * Mon Oct 19 2020 Todd Zullinger - 2.29.0-1 - update to 2.29.0 diff --git a/sources b/sources index 0abb923..0aed137 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.29.0.tar.xz) = 7efca642d78403d15435bc1d44379b328432a36cfeeaa229b6f83e6e6ce52ca0e8fb7de05a8b04d0d2d257d0935e6424e419b892b97777cfcd91d90e0fc7c335 -SHA512 (git-2.29.0.tar.sign) = 8fff0138e7c5256edf1def35997a9982aa7a47ddc2a367a9735a62f4cbfb451845e8306b70b416609f2f6fb4dbf33ff795b2e011fd9b2c9d94b8bbd666d1fa88 +SHA512 (git-2.29.1.tar.xz) = 4c72afd33a83b93769bdd16350925f4776a2c92bdbffd951bf8b0bb0fc6a474b3f54b08fc4252cc5b1a029d9d21e1f8993d49e991af89ee9b676c6d18d696822 +SHA512 (git-2.29.1.tar.sign) = 34274d5b0cd7f44c3e3c23341d67c3b8f7cfe7c8cc54a5d47d58ad10f9e1346df9e1c2a5e231d4b3a1270780de9004998d49e26d077f734847b9f95814b3ab0f From 79a4aef788ef0571af4b111879977f9508727c20 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 23 Oct 2020 23:10:29 -0400 Subject: [PATCH 037/202] fix bugs in am/rebase handling of committer ident/date Quoting from Jeff King's commit message: Commit e8cbe2118a (am: stop exporting GIT_COMMITTER_DATE, 2020-08-17) rewrote the code for setting the committer date to use fmt_ident(), rather than setting an environment variable and letting commit_tree() handle it. But it introduced two bugs: - we use the author email string instead of the committer email - when parsing the committer ident, we used the wrong variable to compute the length of the email, resulting in it always being a zero-length string The regression affected both am and rebase. Apply the upstream fixes. References: https://lore.kernel.org/git/20201023070747.GA2198273@coredump.intra.peff.net/ --- ....0-committer-date-is-author-date-fix.patch | 206 ++++++++++++++++++ git.spec | 10 + 2 files changed, 216 insertions(+) create mode 100644 git-2.29.0-committer-date-is-author-date-fix.patch diff --git a/git-2.29.0-committer-date-is-author-date-fix.patch b/git-2.29.0-committer-date-is-author-date-fix.patch new file mode 100644 index 0000000..a562f07 --- /dev/null +++ b/git-2.29.0-committer-date-is-author-date-fix.patch @@ -0,0 +1,206 @@ +From 56706dba33f5d4457395c651cf1cd033c6c03c7a Mon Sep 17 00:00:00 2001 +From: Jeff King +Date: Fri, 23 Oct 2020 03:08:43 -0400 +Subject: [PATCH 1/3] t3436: check --committer-date-is-author-date result more + carefully + +After running "rebase --committer-date-is-author-date", we confirm that +the committer date is the same as the author date. However, we don't +look at any other parts of the committer ident line to make sure we +didn't screw them up. And indeed, there are a few bugs here. Depending +on the rebase backend in use, we may accidentally use the author email +instead of the committer's, or even an empty string. + +Let's teach our test_ctime_is_atime helper to check the committer name +and email, which reveals several failing tests. + +Signed-off-by: Jeff King +Signed-off-by: Junio C Hamano +--- + t/t3436-rebase-more-options.sh | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh +index 996e82787e..6f2f49717b 100755 +--- a/t/t3436-rebase-more-options.sh ++++ b/t/t3436-rebase-more-options.sh +@@ -65,31 +65,31 @@ test_expect_success '--ignore-whitespace is remembered when continuing' ' + ' + + test_ctime_is_atime () { +- git log $1 --format=%ai >authortime && +- git log $1 --format=%ci >committertime && ++ git log $1 --format="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> %ai" >authortime && ++ git log $1 --format="%cn <%ce> %ci" >committertime && + test_cmp authortime committertime + } + +-test_expect_success '--committer-date-is-author-date works with apply backend' ' ++test_expect_failure '--committer-date-is-author-date works with apply backend' ' + GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && + git rebase --apply --committer-date-is-author-date HEAD^ && + test_ctime_is_atime -1 + ' + +-test_expect_success '--committer-date-is-author-date works with merge backend' ' ++test_expect_failure '--committer-date-is-author-date works with merge backend' ' + GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && + git rebase -m --committer-date-is-author-date HEAD^ && + test_ctime_is_atime -1 + ' + +-test_expect_success '--committer-date-is-author-date works with rebase -r' ' ++test_expect_failure '--committer-date-is-author-date works with rebase -r' ' + git checkout side && + GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && + git rebase -r --root --committer-date-is-author-date && + test_ctime_is_atime + ' + +-test_expect_success '--committer-date-is-author-date works when forking merge' ' ++test_expect_failure '--committer-date-is-author-date works when forking merge' ' + git checkout side && + GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && + PATH="./test-bin:$PATH" git rebase -r --root --strategy=test \ +@@ -145,7 +145,7 @@ test_expect_success '--reset-author-date works with rebase -r' ' + test_atime_is_ignored + ' + +-test_expect_success '--reset-author-date with --committer-date-is-author-date works' ' ++test_expect_failure '--reset-author-date with --committer-date-is-author-date works' ' + test_must_fail git rebase -m --committer-date-is-author-date \ + --reset-author-date --onto commit2^^ commit2^ commit3 && + git checkout --theirs foo && + +From 16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef Mon Sep 17 00:00:00 2001 +From: Jeff King +Date: Fri, 23 Oct 2020 03:09:39 -0400 +Subject: [PATCH 2/3] am: fix broken email with --committer-date-is-author-date + +Commit e8cbe2118a (am: stop exporting GIT_COMMITTER_DATE, 2020-08-17) +rewrote the code for setting the committer date to use fmt_ident(), +rather than setting an environment variable and letting commit_tree() +handle it. But it introduced two bugs: + + - we use the author email string instead of the committer email + + - when parsing the committer ident, we used the wrong variable to + compute the length of the email, resulting in it always being a + zero-length string + +This commit fixes both, which causes our test of this option via the +rebase "apply" backend to now succeed. + +Signed-off-by: Jeff King +Signed-off-by: Junio C Hamano +--- + builtin/am.c | 4 ++-- + t/t3436-rebase-more-options.sh | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/builtin/am.c b/builtin/am.c +index 896cd0f827..af931e588c 100644 +--- a/builtin/am.c ++++ b/builtin/am.c +@@ -161,7 +161,7 @@ static void am_state_init(struct am_state *state) + state->committer_name = + xmemdupz(id.name_begin, id.name_end - id.name_begin); + state->committer_email = +- xmemdupz(id.mail_begin, id.mail_end - id.mail_end); ++ xmemdupz(id.mail_begin, id.mail_end - id.mail_begin); + } + + /** +@@ -1595,7 +1595,7 @@ static void do_commit(const struct am_state *state) + + if (state->committer_date_is_author_date) + committer = fmt_ident(state->committer_name, +- state->author_email, WANT_COMMITTER_IDENT, ++ state->committer_email, WANT_COMMITTER_IDENT, + state->ignore_date ? NULL + : state->author_date, + IDENT_STRICT); +diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh +index 6f2f49717b..3fda2235bd 100755 +--- a/t/t3436-rebase-more-options.sh ++++ b/t/t3436-rebase-more-options.sh +@@ -70,7 +70,7 @@ test_ctime_is_atime () { + test_cmp authortime committertime + } + +-test_expect_failure '--committer-date-is-author-date works with apply backend' ' ++test_expect_success '--committer-date-is-author-date works with apply backend' ' + GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && + git rebase --apply --committer-date-is-author-date HEAD^ && + test_ctime_is_atime -1 + +From 5f35edd9d7ebca17f205b338d340cc6ce214644a Mon Sep 17 00:00:00 2001 +From: Jeff King +Date: Fri, 23 Oct 2020 03:10:15 -0400 +Subject: [PATCH 3/3] rebase: fix broken email with + --committer-date-is-author-date + +Commit 7573cec52c (rebase -i: support --committer-date-is-author-date, +2020-08-17) copied the committer ident-parsing code from builtin/am.c. +And in doing so, it copied a bug in which we always set the email to an +empty string. We fixed the version in git-am in the previous commit; +this commit fixes the copied code. + +Reported-by: VenomVendor +Signed-off-by: Jeff King +Signed-off-by: Junio C Hamano +--- + sequencer.c | 2 +- + t/t3436-rebase-more-options.sh | 8 ++++---- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/sequencer.c b/sequencer.c +index 4ccb5451a9..9dcd3db3ef 100644 +--- a/sequencer.c ++++ b/sequencer.c +@@ -4369,7 +4369,7 @@ static int init_committer(struct replay_opts *opts) + opts->committer_name = + xmemdupz(id.name_begin, id.name_end - id.name_begin); + opts->committer_email = +- xmemdupz(id.mail_begin, id.mail_end - id.mail_end); ++ xmemdupz(id.mail_begin, id.mail_end - id.mail_begin); + + return 0; + } +diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh +index 3fda2235bd..eaaf4c8d1d 100755 +--- a/t/t3436-rebase-more-options.sh ++++ b/t/t3436-rebase-more-options.sh +@@ -76,20 +76,20 @@ test_expect_success '--committer-date-is-author-date works with apply backend' ' + test_ctime_is_atime -1 + ' + +-test_expect_failure '--committer-date-is-author-date works with merge backend' ' ++test_expect_success '--committer-date-is-author-date works with merge backend' ' + GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && + git rebase -m --committer-date-is-author-date HEAD^ && + test_ctime_is_atime -1 + ' + +-test_expect_failure '--committer-date-is-author-date works with rebase -r' ' ++test_expect_success '--committer-date-is-author-date works with rebase -r' ' + git checkout side && + GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && + git rebase -r --root --committer-date-is-author-date && + test_ctime_is_atime + ' + +-test_expect_failure '--committer-date-is-author-date works when forking merge' ' ++test_expect_success '--committer-date-is-author-date works when forking merge' ' + git checkout side && + GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && + PATH="./test-bin:$PATH" git rebase -r --root --strategy=test \ +@@ -145,7 +145,7 @@ test_expect_success '--reset-author-date works with rebase -r' ' + test_atime_is_ignored + ' + +-test_expect_failure '--reset-author-date with --committer-date-is-author-date works' ' ++test_expect_success '--reset-author-date with --committer-date-is-author-date works' ' + test_must_fail git rebase -m --committer-date-is-author-date \ + --reset-author-date --onto commit2^^ commit2^ commit3 && + git checkout --theirs foo && diff --git a/git.spec b/git.spec index 0951479..e69fef3 100644 --- a/git.spec +++ b/git.spec @@ -129,6 +129,15 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# Fix bugs in am/rebase handling of committer ident/date discussed at +# https://lore.kernel.org/git/20201023070747.GA2198273@coredump.intra.peff.net/ +# +# The following three commits make up the patch +# https://github.com/git/git/commit/56706dba33f5d4457395c651cf1cd033c6c03c7a +# https://github.com/git/git/commit/16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef +# https://github.com/git/git/commit/5f35edd9d7ebca17f205b338d340cc6ce214644a +Patch1: git-2.29.0-committer-date-is-author-date-fix.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1078,6 +1087,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Sat Oct 24 2020 Todd Zullinger - 2.29.1-1 - update to 2.29.1 +- fix bugs in am/rebase handling of committer ident/date * Mon Oct 19 2020 Todd Zullinger - 2.29.0-1 - update to 2.29.0 From 8fc9bc0302a99d8af6bc3bae0d84b3bbf310cd8a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 29 Oct 2020 18:45:12 -0400 Subject: [PATCH 038/202] update to 2.29.2 Quoting the release notes: In 2.29, "--committer-date-is-author-date" option of "rebase" and "am" subcommands lost the e-mail address by mistake, which has been corrected. Release notes: https://github.com/git/git/raw/v2.29.2/Documentation/RelNotes/2.29.2.txt --- ....0-committer-date-is-author-date-fix.patch | 206 ------------------ git.spec | 14 +- sources | 4 +- 3 files changed, 6 insertions(+), 218 deletions(-) delete mode 100644 git-2.29.0-committer-date-is-author-date-fix.patch diff --git a/git-2.29.0-committer-date-is-author-date-fix.patch b/git-2.29.0-committer-date-is-author-date-fix.patch deleted file mode 100644 index a562f07..0000000 --- a/git-2.29.0-committer-date-is-author-date-fix.patch +++ /dev/null @@ -1,206 +0,0 @@ -From 56706dba33f5d4457395c651cf1cd033c6c03c7a Mon Sep 17 00:00:00 2001 -From: Jeff King -Date: Fri, 23 Oct 2020 03:08:43 -0400 -Subject: [PATCH 1/3] t3436: check --committer-date-is-author-date result more - carefully - -After running "rebase --committer-date-is-author-date", we confirm that -the committer date is the same as the author date. However, we don't -look at any other parts of the committer ident line to make sure we -didn't screw them up. And indeed, there are a few bugs here. Depending -on the rebase backend in use, we may accidentally use the author email -instead of the committer's, or even an empty string. - -Let's teach our test_ctime_is_atime helper to check the committer name -and email, which reveals several failing tests. - -Signed-off-by: Jeff King -Signed-off-by: Junio C Hamano ---- - t/t3436-rebase-more-options.sh | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh -index 996e82787e..6f2f49717b 100755 ---- a/t/t3436-rebase-more-options.sh -+++ b/t/t3436-rebase-more-options.sh -@@ -65,31 +65,31 @@ test_expect_success '--ignore-whitespace is remembered when continuing' ' - ' - - test_ctime_is_atime () { -- git log $1 --format=%ai >authortime && -- git log $1 --format=%ci >committertime && -+ git log $1 --format="$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> %ai" >authortime && -+ git log $1 --format="%cn <%ce> %ci" >committertime && - test_cmp authortime committertime - } - --test_expect_success '--committer-date-is-author-date works with apply backend' ' -+test_expect_failure '--committer-date-is-author-date works with apply backend' ' - GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && - git rebase --apply --committer-date-is-author-date HEAD^ && - test_ctime_is_atime -1 - ' - --test_expect_success '--committer-date-is-author-date works with merge backend' ' -+test_expect_failure '--committer-date-is-author-date works with merge backend' ' - GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && - git rebase -m --committer-date-is-author-date HEAD^ && - test_ctime_is_atime -1 - ' - --test_expect_success '--committer-date-is-author-date works with rebase -r' ' -+test_expect_failure '--committer-date-is-author-date works with rebase -r' ' - git checkout side && - GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && - git rebase -r --root --committer-date-is-author-date && - test_ctime_is_atime - ' - --test_expect_success '--committer-date-is-author-date works when forking merge' ' -+test_expect_failure '--committer-date-is-author-date works when forking merge' ' - git checkout side && - GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && - PATH="./test-bin:$PATH" git rebase -r --root --strategy=test \ -@@ -145,7 +145,7 @@ test_expect_success '--reset-author-date works with rebase -r' ' - test_atime_is_ignored - ' - --test_expect_success '--reset-author-date with --committer-date-is-author-date works' ' -+test_expect_failure '--reset-author-date with --committer-date-is-author-date works' ' - test_must_fail git rebase -m --committer-date-is-author-date \ - --reset-author-date --onto commit2^^ commit2^ commit3 && - git checkout --theirs foo && - -From 16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef Mon Sep 17 00:00:00 2001 -From: Jeff King -Date: Fri, 23 Oct 2020 03:09:39 -0400 -Subject: [PATCH 2/3] am: fix broken email with --committer-date-is-author-date - -Commit e8cbe2118a (am: stop exporting GIT_COMMITTER_DATE, 2020-08-17) -rewrote the code for setting the committer date to use fmt_ident(), -rather than setting an environment variable and letting commit_tree() -handle it. But it introduced two bugs: - - - we use the author email string instead of the committer email - - - when parsing the committer ident, we used the wrong variable to - compute the length of the email, resulting in it always being a - zero-length string - -This commit fixes both, which causes our test of this option via the -rebase "apply" backend to now succeed. - -Signed-off-by: Jeff King -Signed-off-by: Junio C Hamano ---- - builtin/am.c | 4 ++-- - t/t3436-rebase-more-options.sh | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/builtin/am.c b/builtin/am.c -index 896cd0f827..af931e588c 100644 ---- a/builtin/am.c -+++ b/builtin/am.c -@@ -161,7 +161,7 @@ static void am_state_init(struct am_state *state) - state->committer_name = - xmemdupz(id.name_begin, id.name_end - id.name_begin); - state->committer_email = -- xmemdupz(id.mail_begin, id.mail_end - id.mail_end); -+ xmemdupz(id.mail_begin, id.mail_end - id.mail_begin); - } - - /** -@@ -1595,7 +1595,7 @@ static void do_commit(const struct am_state *state) - - if (state->committer_date_is_author_date) - committer = fmt_ident(state->committer_name, -- state->author_email, WANT_COMMITTER_IDENT, -+ state->committer_email, WANT_COMMITTER_IDENT, - state->ignore_date ? NULL - : state->author_date, - IDENT_STRICT); -diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh -index 6f2f49717b..3fda2235bd 100755 ---- a/t/t3436-rebase-more-options.sh -+++ b/t/t3436-rebase-more-options.sh -@@ -70,7 +70,7 @@ test_ctime_is_atime () { - test_cmp authortime committertime - } - --test_expect_failure '--committer-date-is-author-date works with apply backend' ' -+test_expect_success '--committer-date-is-author-date works with apply backend' ' - GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && - git rebase --apply --committer-date-is-author-date HEAD^ && - test_ctime_is_atime -1 - -From 5f35edd9d7ebca17f205b338d340cc6ce214644a Mon Sep 17 00:00:00 2001 -From: Jeff King -Date: Fri, 23 Oct 2020 03:10:15 -0400 -Subject: [PATCH 3/3] rebase: fix broken email with - --committer-date-is-author-date - -Commit 7573cec52c (rebase -i: support --committer-date-is-author-date, -2020-08-17) copied the committer ident-parsing code from builtin/am.c. -And in doing so, it copied a bug in which we always set the email to an -empty string. We fixed the version in git-am in the previous commit; -this commit fixes the copied code. - -Reported-by: VenomVendor -Signed-off-by: Jeff King -Signed-off-by: Junio C Hamano ---- - sequencer.c | 2 +- - t/t3436-rebase-more-options.sh | 8 ++++---- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/sequencer.c b/sequencer.c -index 4ccb5451a9..9dcd3db3ef 100644 ---- a/sequencer.c -+++ b/sequencer.c -@@ -4369,7 +4369,7 @@ static int init_committer(struct replay_opts *opts) - opts->committer_name = - xmemdupz(id.name_begin, id.name_end - id.name_begin); - opts->committer_email = -- xmemdupz(id.mail_begin, id.mail_end - id.mail_end); -+ xmemdupz(id.mail_begin, id.mail_end - id.mail_begin); - - return 0; - } -diff --git a/t/t3436-rebase-more-options.sh b/t/t3436-rebase-more-options.sh -index 3fda2235bd..eaaf4c8d1d 100755 ---- a/t/t3436-rebase-more-options.sh -+++ b/t/t3436-rebase-more-options.sh -@@ -76,20 +76,20 @@ test_expect_success '--committer-date-is-author-date works with apply backend' ' - test_ctime_is_atime -1 - ' - --test_expect_failure '--committer-date-is-author-date works with merge backend' ' -+test_expect_success '--committer-date-is-author-date works with merge backend' ' - GIT_AUTHOR_DATE="@1234 +0300" git commit --amend --reset-author && - git rebase -m --committer-date-is-author-date HEAD^ && - test_ctime_is_atime -1 - ' - --test_expect_failure '--committer-date-is-author-date works with rebase -r' ' -+test_expect_success '--committer-date-is-author-date works with rebase -r' ' - git checkout side && - GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && - git rebase -r --root --committer-date-is-author-date && - test_ctime_is_atime - ' - --test_expect_failure '--committer-date-is-author-date works when forking merge' ' -+test_expect_success '--committer-date-is-author-date works when forking merge' ' - git checkout side && - GIT_AUTHOR_DATE="@1234 +0300" git merge --no-ff commit3 && - PATH="./test-bin:$PATH" git rebase -r --root --strategy=test \ -@@ -145,7 +145,7 @@ test_expect_success '--reset-author-date works with rebase -r' ' - test_atime_is_ignored - ' - --test_expect_failure '--reset-author-date with --committer-date-is-author-date works' ' -+test_expect_success '--reset-author-date with --committer-date-is-author-date works' ' - test_must_fail git rebase -m --committer-date-is-author-date \ - --reset-author-date --onto commit2^^ commit2^ commit3 && - git checkout --theirs foo && diff --git a/git.spec b/git.spec index e69fef3..6081678 100644 --- a/git.spec +++ b/git.spec @@ -96,7 +96,7 @@ #global rcrev .rc0 Name: git -Version: 2.29.1 +Version: 2.29.2 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -129,15 +129,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# Fix bugs in am/rebase handling of committer ident/date discussed at -# https://lore.kernel.org/git/20201023070747.GA2198273@coredump.intra.peff.net/ -# -# The following three commits make up the patch -# https://github.com/git/git/commit/56706dba33f5d4457395c651cf1cd033c6c03c7a -# https://github.com/git/git/commit/16b0bb99eac5ebd02a5dcabdff2cfc390e9d92ef -# https://github.com/git/git/commit/5f35edd9d7ebca17f205b338d340cc6ce214644a -Patch1: git-2.29.0-committer-date-is-author-date-fix.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1085,6 +1076,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Oct 29 2020 Todd Zullinger - 2.29.2-1 +- update to 2.29.2 + * Sat Oct 24 2020 Todd Zullinger - 2.29.1-1 - update to 2.29.1 - fix bugs in am/rebase handling of committer ident/date diff --git a/sources b/sources index 0aed137..61331f5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.29.1.tar.xz) = 4c72afd33a83b93769bdd16350925f4776a2c92bdbffd951bf8b0bb0fc6a474b3f54b08fc4252cc5b1a029d9d21e1f8993d49e991af89ee9b676c6d18d696822 -SHA512 (git-2.29.1.tar.sign) = 34274d5b0cd7f44c3e3c23341d67c3b8f7cfe7c8cc54a5d47d58ad10f9e1346df9e1c2a5e231d4b3a1270780de9004998d49e26d077f734847b9f95814b3ab0f +SHA512 (git-2.29.2.tar.xz) = 34117628c6d43ac0940c43bffaa1bda7f12af863728f391492725a3e57d1bbda523cf7734e90f463fe9a9ae4e70fc1cc2523643dbb3c27377d98dc4736b0ea62 +SHA512 (git-2.29.2.tar.sign) = 781f0f12d061ca5d3576a23f90df7646fb03cc4a735a41c0118022a1124a053cdea439905efd69cd6cb0161dfe40b93b4c8c99ddac4bc484ecee14881e7ed0af From 6b303b47954304f26e695f1d2560e913083b8848 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 7 Nov 2020 02:02:08 -0500 Subject: [PATCH 039/202] apply upstream patch to resolve git log segfault (#1791810) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A change in git-2.24.0¹ resulted in a segfault when combining the incompatible (and nonsensical) --follow and -L git log options. (These options were used by the GitLens plugin for VS Code until recently².) The upstream fix returns an error when these options are combined rather than a segfault. ¹ a2bb801f6a (line-log: avoid unnecessary full tree diffs, 2019-08-21) https://github.com/git/git/commit/a2bb801f6a ² Fixed in GitLens >= 10.2.3 https://github.com/eamodio/vscode-gitlens/issues/1139 --- ...ose-L-used-with-pathspec-as-an-error.patch | 78 +++++++++++++++++++ git.spec | 9 ++- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 0001-log-diagnose-L-used-with-pathspec-as-an-error.patch diff --git a/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch b/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch new file mode 100644 index 0000000..0f99aba --- /dev/null +++ b/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch @@ -0,0 +1,78 @@ +From 39664cb0aca42f240468ddf84fe75df4172ab63f Mon Sep 17 00:00:00 2001 +From: Junio C Hamano +Date: Wed, 4 Nov 2020 09:54:01 -0800 +Subject: [PATCH] log: diagnose -L used with pathspec as an error + +The -L option is documented to accept no pathspec, but the +command line option parser has allowed the combination without +checking so far. Ensure that there is no pathspec when the -L +option is in effect to fix this. + +Incidentally, this change fixes another bug in the command line +option parser, which has allowed the -L option used together +with the --follow option. Because the latter requires exactly +one path given, but the former takes no pathspec, they become +mutually incompatible automatically. Because the -L option +follows renames on its own, there is no reason to give --follow +at the same time. + +The new tests say they may fail with "-L and --follow being +incompatible" instead of "-L and pathspec being incompatible". +Currently the expected failure can come only from the latter, but +this is to futureproof them, in case we decide to add code to +explicititly die on -L and --follow used together. + +Heled-by: Jeff King +Signed-off-by: Junio C Hamano +--- + builtin/log.c | 3 +++ + t/t4211-line-log.sh | 22 ++++++++++++++++++++++ + 2 files changed, 25 insertions(+) + +diff --git a/builtin/log.c b/builtin/log.c +index 0a7ed4bef92b9..9d70f3e60b9c0 100644 +--- a/builtin/log.c ++++ b/builtin/log.c +@@ -206,6 +206,9 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, + if (argc > 1) + die(_("unrecognized argument: %s"), argv[1]); + ++ if (rev->line_level_traverse && rev->prune_data.nr) ++ die(_("-L: cannot be used with pathspec")); ++ + memset(&w, 0, sizeof(w)); + userformat_find_requirements(NULL, &w); + +diff --git a/t/t4211-line-log.sh b/t/t4211-line-log.sh +index 2d1d7b5d1938a..85d151423dedc 100755 +--- a/t/t4211-line-log.sh ++++ b/t/t4211-line-log.sh +@@ -8,6 +8,28 @@ test_expect_success 'setup (import history)' ' + git reset --hard + ' + ++test_expect_success 'basic command line parsing' ' ++ # This may fail due to "no such path a.c in commit", or ++ # "-L is incompatible with pathspec", depending on the ++ # order the error is checked. Either is acceptable. ++ test_must_fail git log -L1,1:a.c -- a.c && ++ ++ # -L requires there is no pathspec ++ test_must_fail git log -L1,1:b.c -- b.c 2>error && ++ test_i18ngrep "cannot be used with pathspec" error && ++ ++ # This would fail because --follow wants a single path, but ++ # we may fail due to incompatibility between -L/--follow in ++ # the future. Either is acceptable. ++ test_must_fail git log -L1,1:b.c --follow && ++ test_must_fail git log --follow -L1,1:b.c && ++ ++ # This would fail because -L wants no pathspec, but ++ # we may fail due to incompatibility between -L/--follow in ++ # the future. Either is acceptable. ++ test_must_fail git log --follow -L1,1:b.c -- b.c ++' ++ + canned_test_1 () { + test_expect_$1 "$2" " + git log $2 >actual && diff --git a/git.spec b/git.spec index 6081678..5188290 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.29.2 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -129,6 +129,10 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# https://bugzilla.redhat.com/1791810 +# https://lore.kernel.org/git/xmqqy2jglv29.fsf_-_@gitster.c.googlers.com/ +Patch1: https://github.com/git/git/commit/39664cb0ac.patch#/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1076,6 +1080,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Nov 07 2020 Todd Zullinger - 2.29.2-2 +- apply upstream patch to resolve git log segfault (#1791810) + * Thu Oct 29 2020 Todd Zullinger - 2.29.2-1 - update to 2.29.2 From 1faa4b11312e356a850e522a128056cb5735dcd4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 25 Nov 2020 20:55:44 -0500 Subject: [PATCH 040/202] apply upstream patch to resolve git fast-import memory leak (#1900335) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A change in git-2.27.0¹ caused fast-import to leak memory and crash in some cases. Apply the upstream fix², which didn't quite make it into git-2.29.0. ¹ ddddf8d7e2 (fast-import: permit reading multiple marks files, 2020-02-22) https://github.com/git/git/commit/ddddf8d7e2 ² 3f018ec716 (fast-import: fix over-allocation of marks storage, 2020-10-15) https://github.com/git/git/commit/3f018ec716 --- ...fix-over-allocation-of-marks-storage.patch | 221 ++++++++++++++++++ git.spec | 9 +- 2 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 0001-fast-import-fix-over-allocation-of-marks-storage.patch diff --git a/0001-fast-import-fix-over-allocation-of-marks-storage.patch b/0001-fast-import-fix-over-allocation-of-marks-storage.patch new file mode 100644 index 0000000..eff5fb2 --- /dev/null +++ b/0001-fast-import-fix-over-allocation-of-marks-storage.patch @@ -0,0 +1,221 @@ +From 3f018ec716292b4d757385686f42f57af3bca685 Mon Sep 17 00:00:00 2001 +From: Jeff King +Date: Thu, 15 Oct 2020 11:38:49 -0400 +Subject: [PATCH] fast-import: fix over-allocation of marks storage + +Fast-import stores its marks in a trie-like structure made of mark_set +structs. Each struct has a fixed size (1024). If our id number is too +large to fit in the struct, then we allocate a new struct which shifts +the id number by 10 bits. Our original struct becomes a child node +of this new layer, and the new struct becomes the top level of the trie. + +This scheme was broken by ddddf8d7e2 (fast-import: permit reading +multiple marks files, 2020-02-22). Before then, we had a top-level +"marks" pointer, and the push-down worked by assigning the new top-level +struct to "marks". But after that commit, insert_mark() takes a pointer +to the mark_set, rather than using the global "marks". It continued to +assign to the global "marks" variable during the push down, which was +wrong for two reasons: + + - we added a call in option_rewrite_submodules() which uses a separate + mark set; pushing down on "marks" is outright wrong here. We'd + corrupt the "marks" set, and we'd fail to correctly store any + submodule mappings with an id over 1024. + + - the other callers passed "marks", but the push-down was still wrong. + In read_mark_file(), we take the pointer to the mark_set as a + parameter. So even though insert_mark() was updating the global + "marks", the local pointer we had in read_mark_file() was not + updated. As a result, we'd add a new level when needed, but then the + next call to insert_mark() wouldn't see it! It would then allocate a + new layer, which would also not be seen, and so on. Lookups for the + lost layers obviously wouldn't work, but before we even hit any + lookup stage, we'd generally run out of memory and die. + +Our tests didn't notice either of these cases because they didn't have +enough marks to trigger the push-down behavior. The new tests in t9304 +cover both cases (and fail without this patch). + +We can solve the problem by having insert_mark() take a pointer-to-pointer +of the top-level of the set. Then our push down can assign to it in a +way that the caller actually sees. Note the subtle reordering in +option_rewrite_submodules(). Our call to read_mark_file() may modify our +top-level set pointer, so we have to wait until after it returns to +assign its value into the string_list. + +Reported-by: Sergey Brester +Signed-off-by: Jeff King +Signed-off-by: Junio C Hamano +--- + builtin/fast-import.c | 31 ++++++++++++---------- + t/t9304-fast-import-marks.sh | 51 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 68 insertions(+), 14 deletions(-) + create mode 100755 t/t9304-fast-import-marks.sh + +diff --git a/builtin/fast-import.c b/builtin/fast-import.c +index 1bf50a73dc359..70d7d25eed2e0 100644 +--- a/builtin/fast-import.c ++++ b/builtin/fast-import.c +@@ -150,7 +150,7 @@ struct recent_command { + char *buf; + }; + +-typedef void (*mark_set_inserter_t)(struct mark_set *s, struct object_id *oid, uintmax_t mark); ++typedef void (*mark_set_inserter_t)(struct mark_set **s, struct object_id *oid, uintmax_t mark); + typedef void (*each_mark_fn_t)(uintmax_t mark, void *obj, void *cbp); + + /* Configured limits on output */ +@@ -526,13 +526,15 @@ static unsigned int hc_str(const char *s, size_t len) + return r; + } + +-static void insert_mark(struct mark_set *s, uintmax_t idnum, struct object_entry *oe) ++static void insert_mark(struct mark_set **top, uintmax_t idnum, struct object_entry *oe) + { ++ struct mark_set *s = *top; ++ + while ((idnum >> s->shift) >= 1024) { + s = mem_pool_calloc(&fi_mem_pool, 1, sizeof(struct mark_set)); +- s->shift = marks->shift + 10; +- s->data.sets[0] = marks; +- marks = s; ++ s->shift = (*top)->shift + 10; ++ s->data.sets[0] = *top; ++ *top = s; + } + while (s->shift) { + uintmax_t i = idnum >> s->shift; +@@ -944,7 +946,7 @@ static int store_object( + + e = insert_object(&oid); + if (mark) +- insert_mark(marks, mark, e); ++ insert_mark(&marks, mark, e); + if (e->idx.offset) { + duplicate_count_by_type[type]++; + return 1; +@@ -1142,7 +1144,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark) + e = insert_object(&oid); + + if (mark) +- insert_mark(marks, mark, e); ++ insert_mark(&marks, mark, e); + + if (e->idx.offset) { + duplicate_count_by_type[OBJ_BLOB]++; +@@ -1717,7 +1719,7 @@ static void dump_marks(void) + } + } + +-static void insert_object_entry(struct mark_set *s, struct object_id *oid, uintmax_t mark) ++static void insert_object_entry(struct mark_set **s, struct object_id *oid, uintmax_t mark) + { + struct object_entry *e; + e = find_object(oid); +@@ -1734,12 +1736,12 @@ static void insert_object_entry(struct mark_set *s, struct object_id *oid, uintm + insert_mark(s, mark, e); + } + +-static void insert_oid_entry(struct mark_set *s, struct object_id *oid, uintmax_t mark) ++static void insert_oid_entry(struct mark_set **s, struct object_id *oid, uintmax_t mark) + { + insert_mark(s, mark, xmemdupz(oid, sizeof(*oid))); + } + +-static void read_mark_file(struct mark_set *s, FILE *f, mark_set_inserter_t inserter) ++static void read_mark_file(struct mark_set **s, FILE *f, mark_set_inserter_t inserter) + { + char line[512]; + while (fgets(line, sizeof(line), f)) { +@@ -1772,7 +1774,7 @@ static void read_marks(void) + goto done; /* Marks file does not exist */ + else + die_errno("cannot read '%s'", import_marks_file); +- read_mark_file(marks, f, insert_object_entry); ++ read_mark_file(&marks, f, insert_object_entry); + fclose(f); + done: + import_marks_file_done = 1; +@@ -3228,7 +3230,7 @@ static void parse_alias(void) + die(_("Expected 'to' command, got %s"), command_buf.buf); + e = find_object(&b.oid); + assert(e); +- insert_mark(marks, next_mark, e); ++ insert_mark(&marks, next_mark, e); + } + + static char* make_fast_import_path(const char *path) +@@ -3321,13 +3323,14 @@ static void option_rewrite_submodules(const char *arg, struct string_list *list) + *f = '\0'; + f++; + ms = xcalloc(1, sizeof(*ms)); +- string_list_insert(list, s)->util = ms; + + fp = fopen(f, "r"); + if (!fp) + die_errno("cannot read '%s'", f); +- read_mark_file(ms, fp, insert_oid_entry); ++ read_mark_file(&ms, fp, insert_oid_entry); + fclose(fp); ++ ++ string_list_insert(list, s)->util = ms; + } + + static int parse_one_option(const char *option) +diff --git a/t/t9304-fast-import-marks.sh b/t/t9304-fast-import-marks.sh +new file mode 100755 +index 0000000000000..d4359dba21c9c +--- /dev/null ++++ b/t/t9304-fast-import-marks.sh +@@ -0,0 +1,51 @@ ++#!/bin/sh ++ ++test_description='test exotic situations with marks' ++. ./test-lib.sh ++ ++test_expect_success 'setup dump of basic history' ' ++ test_commit one && ++ git fast-export --export-marks=marks HEAD >dump ++' ++ ++test_expect_success 'setup large marks file' ' ++ # normally a marks file would have a lot of useful, unique ++ # marks. But for our purposes, just having a lot of nonsense ++ # ones is fine. Start at 1024 to avoid clashing with marks ++ # legitimately used in our tiny dump. ++ blob=$(git rev-parse HEAD:one.t) && ++ for i in $(test_seq 1024 16384) ++ do ++ echo ":$i $blob" ++ done >>marks ++' ++ ++test_expect_success 'import with large marks file' ' ++ git fast-import --import-marks=marks dump ++' ++ ++test_expect_success 'setup submodule mapping with large id' ' ++ old=$(git rev-parse HEAD:sub) && ++ new=$(echo $old | sed s/./a/g) && ++ echo ":12345 $old" >from && ++ echo ":12345 $new" >to ++' ++ ++test_expect_success 'import with submodule mapping' ' ++ git init dst && ++ git -C dst fast-import \ ++ --rewrite-submodules-from=sub:../from \ ++ --rewrite-submodules-to=sub:../to \ ++ actual && ++ echo "$new" >expect && ++ test_cmp expect actual ++' ++ ++test_done diff --git a/git.spec b/git.spec index 5188290..ad1623e 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.29.2 -Release: 2%{?rcrev}%{?dist} +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -133,6 +133,10 @@ Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch # https://lore.kernel.org/git/xmqqy2jglv29.fsf_-_@gitster.c.googlers.com/ Patch1: https://github.com/git/git/commit/39664cb0ac.patch#/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch +# https://bugzilla.redhat.com/1900335 +# https://lore.kernel.org/git/20201015153849.GA551964@coredump.intra.peff.net/ +Patch2: https://github.com/git/git/commit/3f018ec716.patch#/0001-fast-import-fix-over-allocation-of-marks-storage.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1080,6 +1084,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Nov 25 2020 Todd Zullinger - 2.29.2-3 +- apply upstream patch to resolve git fast-import memory leak (#1900335) + * Sat Nov 07 2020 Todd Zullinger - 2.29.2-2 - apply upstream patch to resolve git log segfault (#1791810) From c22491b4e8c68ba24ce2db899b6ac2e2995fb500 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 26 Nov 2020 00:07:19 -0500 Subject: [PATCH 041/202] add epel-rpm-macros BuildRequires on EL-7 (#1872865) We intend to support building on all supported Fedora and EPEL releases from the Rawhide branch. On EL-7, the %build_cflags and %build_ldflags macros are not present without installing epel-rpm-macros. Add a build requirement to ensure these macros are available when building on EL-7. --- git.spec | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/git.spec b/git.spec index ad1623e..2ef6a9a 100644 --- a/git.spec +++ b/git.spec @@ -160,6 +160,11 @@ BuildRequires: diffutils BuildRequires: emacs-common %endif # endif emacs-common +%if 0%{?rhel} == 7 +# Require epel-rpm-macros for the %%build_cflags and %%build_ldflags macros +BuildRequires: epel-rpm-macros +%endif +# endif rhel == 7 BuildRequires: expat-devel BuildRequires: findutils BuildRequires: gawk @@ -1086,6 +1091,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Wed Nov 25 2020 Todd Zullinger - 2.29.2-3 - apply upstream patch to resolve git fast-import memory leak (#1900335) +- add epel-rpm-macros BuildRequires on EL-7 (#1872865) * Sat Nov 07 2020 Todd Zullinger - 2.29.2-2 - apply upstream patch to resolve git log segfault (#1791810) From 858ea85cce6a24418da268407ed675751dc68f4c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 6 Dec 2020 13:56:02 -0500 Subject: [PATCH 042/202] move git-difftool to git-core, it does not require perl The `git difftool` command was converted to a builtin in git-2.12.0 (from 2017). We don't need to split it out of git-core. This was missed in cb7fab7 (Move commands which no longer require perl into git-core, 2017-11-10) and d56cfc6 (Use symlinks instead of hardlinks for installed binaries, 2018-03-15). Better late than never. --- git.rpmlintrc | 3 --- git.spec | 7 +++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/git.rpmlintrc b/git.rpmlintrc index b2d9407..a3dd0ad 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -7,9 +7,6 @@ addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject # git-core-doc requires git-core, which provides the symlink target addFilter("git(-core-doc)?\..*: W: dangling-relative-symlink /usr/share/doc/git/contrib/hooks ../../../git-core/contrib/hooks") -# git requires git-core, which provides the symlink target -addFilter("git\..*: W: dangling-relative-symlink /usr/libexec/git-core/git-difftool ../../bin/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 2ef6a9a..8e9e616 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.29.2 -Release: 3%{?rcrev}%{?dist} +Release: 4%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -810,7 +810,7 @@ chmod a-x Documentation/technical/api-index.sh find contrib -type f -print0 | xargs -r0 chmod -x # Split core files -not_core_re="git-(add--interactive|contacts|credential-netrc|difftool|filter-branch|instaweb|request-pull|send-mail)|gitweb" +not_core_re="git-(add--interactive|contacts|credential-netrc|filter-branch|instaweb|request-pull|send-mail)|gitweb" grep -vE "$not_core_re|%{_mandir}" bin-man-doc-files > bin-files-core touch man-doc-files-core %if %{with docs} @@ -1089,6 +1089,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sun Dec 06 2020 Todd Zullinger - 2.29.2-4 +- move git-difftool to git-core, it does not require perl + * Wed Nov 25 2020 Todd Zullinger - 2.29.2-3 - apply upstream patch to resolve git fast-import memory leak (#1900335) - add epel-rpm-macros BuildRequires on EL-7 (#1872865) From ce1d42aa54d30f4410570a93a90ef8894e459cef Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 6 Dec 2020 14:39:05 -0500 Subject: [PATCH 043/202] lint: ignore "no-binary" warning for main git package Making the main package noarch is not trivial since we have arch-specific subpackages. (I'm not sure it's even possible.) As noted in 5c331b2 (fix/quiet rpmlint issues from libsecret split, 2020-04-05), when libsecret was split into a subpackage in 9d91bab (split libsecret credential helper into a subpackage (#1804741), 2020-02-19), it removed the only remaining binary from the main package. --- git.rpmlintrc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/git.rpmlintrc b/git.rpmlintrc index a3dd0ad..9fd93ce 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -10,6 +10,10 @@ addFilter("git(-core-doc)?\..*: W: dangling-relative-symlink /usr/share/doc/git/ # git-gui requires git, which provides the git binary addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications/git-gui.desktop git") +# ignore no binary warning for main git package; making it noarch isn't trivial +# since we have arch-specific subpackages +addFilter("git\..*: E: no-binary$") + # ignore no doc/manpage warnings where we don't expect any documentation addFilter("git-(all|core|credential-libsecret)\..*: W: no-documentation") addFilter("perl-Git-SVN.noarch: W: no-documentation") From 528c7a0575f5049888fadde7c9b28a6b6bce5c60 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 14 Dec 2020 15:09:47 -0500 Subject: [PATCH 044/202] update to 2.30.0-rc0 Release notes: https://github.com/git/git/raw/v2.30.0-rc0/Documentation/RelNotes/2.30.0.txt --- ...fix-over-allocation-of-marks-storage.patch | 221 ------------------ ...ose-L-used-with-pathspec-as-an-error.patch | 78 ------- git.spec | 17 +- sources | 4 +- 4 files changed, 8 insertions(+), 312 deletions(-) delete mode 100644 0001-fast-import-fix-over-allocation-of-marks-storage.patch delete mode 100644 0001-log-diagnose-L-used-with-pathspec-as-an-error.patch diff --git a/0001-fast-import-fix-over-allocation-of-marks-storage.patch b/0001-fast-import-fix-over-allocation-of-marks-storage.patch deleted file mode 100644 index eff5fb2..0000000 --- a/0001-fast-import-fix-over-allocation-of-marks-storage.patch +++ /dev/null @@ -1,221 +0,0 @@ -From 3f018ec716292b4d757385686f42f57af3bca685 Mon Sep 17 00:00:00 2001 -From: Jeff King -Date: Thu, 15 Oct 2020 11:38:49 -0400 -Subject: [PATCH] fast-import: fix over-allocation of marks storage - -Fast-import stores its marks in a trie-like structure made of mark_set -structs. Each struct has a fixed size (1024). If our id number is too -large to fit in the struct, then we allocate a new struct which shifts -the id number by 10 bits. Our original struct becomes a child node -of this new layer, and the new struct becomes the top level of the trie. - -This scheme was broken by ddddf8d7e2 (fast-import: permit reading -multiple marks files, 2020-02-22). Before then, we had a top-level -"marks" pointer, and the push-down worked by assigning the new top-level -struct to "marks". But after that commit, insert_mark() takes a pointer -to the mark_set, rather than using the global "marks". It continued to -assign to the global "marks" variable during the push down, which was -wrong for two reasons: - - - we added a call in option_rewrite_submodules() which uses a separate - mark set; pushing down on "marks" is outright wrong here. We'd - corrupt the "marks" set, and we'd fail to correctly store any - submodule mappings with an id over 1024. - - - the other callers passed "marks", but the push-down was still wrong. - In read_mark_file(), we take the pointer to the mark_set as a - parameter. So even though insert_mark() was updating the global - "marks", the local pointer we had in read_mark_file() was not - updated. As a result, we'd add a new level when needed, but then the - next call to insert_mark() wouldn't see it! It would then allocate a - new layer, which would also not be seen, and so on. Lookups for the - lost layers obviously wouldn't work, but before we even hit any - lookup stage, we'd generally run out of memory and die. - -Our tests didn't notice either of these cases because they didn't have -enough marks to trigger the push-down behavior. The new tests in t9304 -cover both cases (and fail without this patch). - -We can solve the problem by having insert_mark() take a pointer-to-pointer -of the top-level of the set. Then our push down can assign to it in a -way that the caller actually sees. Note the subtle reordering in -option_rewrite_submodules(). Our call to read_mark_file() may modify our -top-level set pointer, so we have to wait until after it returns to -assign its value into the string_list. - -Reported-by: Sergey Brester -Signed-off-by: Jeff King -Signed-off-by: Junio C Hamano ---- - builtin/fast-import.c | 31 ++++++++++++---------- - t/t9304-fast-import-marks.sh | 51 ++++++++++++++++++++++++++++++++++++ - 2 files changed, 68 insertions(+), 14 deletions(-) - create mode 100755 t/t9304-fast-import-marks.sh - -diff --git a/builtin/fast-import.c b/builtin/fast-import.c -index 1bf50a73dc359..70d7d25eed2e0 100644 ---- a/builtin/fast-import.c -+++ b/builtin/fast-import.c -@@ -150,7 +150,7 @@ struct recent_command { - char *buf; - }; - --typedef void (*mark_set_inserter_t)(struct mark_set *s, struct object_id *oid, uintmax_t mark); -+typedef void (*mark_set_inserter_t)(struct mark_set **s, struct object_id *oid, uintmax_t mark); - typedef void (*each_mark_fn_t)(uintmax_t mark, void *obj, void *cbp); - - /* Configured limits on output */ -@@ -526,13 +526,15 @@ static unsigned int hc_str(const char *s, size_t len) - return r; - } - --static void insert_mark(struct mark_set *s, uintmax_t idnum, struct object_entry *oe) -+static void insert_mark(struct mark_set **top, uintmax_t idnum, struct object_entry *oe) - { -+ struct mark_set *s = *top; -+ - while ((idnum >> s->shift) >= 1024) { - s = mem_pool_calloc(&fi_mem_pool, 1, sizeof(struct mark_set)); -- s->shift = marks->shift + 10; -- s->data.sets[0] = marks; -- marks = s; -+ s->shift = (*top)->shift + 10; -+ s->data.sets[0] = *top; -+ *top = s; - } - while (s->shift) { - uintmax_t i = idnum >> s->shift; -@@ -944,7 +946,7 @@ static int store_object( - - e = insert_object(&oid); - if (mark) -- insert_mark(marks, mark, e); -+ insert_mark(&marks, mark, e); - if (e->idx.offset) { - duplicate_count_by_type[type]++; - return 1; -@@ -1142,7 +1144,7 @@ static void stream_blob(uintmax_t len, struct object_id *oidout, uintmax_t mark) - e = insert_object(&oid); - - if (mark) -- insert_mark(marks, mark, e); -+ insert_mark(&marks, mark, e); - - if (e->idx.offset) { - duplicate_count_by_type[OBJ_BLOB]++; -@@ -1717,7 +1719,7 @@ static void dump_marks(void) - } - } - --static void insert_object_entry(struct mark_set *s, struct object_id *oid, uintmax_t mark) -+static void insert_object_entry(struct mark_set **s, struct object_id *oid, uintmax_t mark) - { - struct object_entry *e; - e = find_object(oid); -@@ -1734,12 +1736,12 @@ static void insert_object_entry(struct mark_set *s, struct object_id *oid, uintm - insert_mark(s, mark, e); - } - --static void insert_oid_entry(struct mark_set *s, struct object_id *oid, uintmax_t mark) -+static void insert_oid_entry(struct mark_set **s, struct object_id *oid, uintmax_t mark) - { - insert_mark(s, mark, xmemdupz(oid, sizeof(*oid))); - } - --static void read_mark_file(struct mark_set *s, FILE *f, mark_set_inserter_t inserter) -+static void read_mark_file(struct mark_set **s, FILE *f, mark_set_inserter_t inserter) - { - char line[512]; - while (fgets(line, sizeof(line), f)) { -@@ -1772,7 +1774,7 @@ static void read_marks(void) - goto done; /* Marks file does not exist */ - else - die_errno("cannot read '%s'", import_marks_file); -- read_mark_file(marks, f, insert_object_entry); -+ read_mark_file(&marks, f, insert_object_entry); - fclose(f); - done: - import_marks_file_done = 1; -@@ -3228,7 +3230,7 @@ static void parse_alias(void) - die(_("Expected 'to' command, got %s"), command_buf.buf); - e = find_object(&b.oid); - assert(e); -- insert_mark(marks, next_mark, e); -+ insert_mark(&marks, next_mark, e); - } - - static char* make_fast_import_path(const char *path) -@@ -3321,13 +3323,14 @@ static void option_rewrite_submodules(const char *arg, struct string_list *list) - *f = '\0'; - f++; - ms = xcalloc(1, sizeof(*ms)); -- string_list_insert(list, s)->util = ms; - - fp = fopen(f, "r"); - if (!fp) - die_errno("cannot read '%s'", f); -- read_mark_file(ms, fp, insert_oid_entry); -+ read_mark_file(&ms, fp, insert_oid_entry); - fclose(fp); -+ -+ string_list_insert(list, s)->util = ms; - } - - static int parse_one_option(const char *option) -diff --git a/t/t9304-fast-import-marks.sh b/t/t9304-fast-import-marks.sh -new file mode 100755 -index 0000000000000..d4359dba21c9c ---- /dev/null -+++ b/t/t9304-fast-import-marks.sh -@@ -0,0 +1,51 @@ -+#!/bin/sh -+ -+test_description='test exotic situations with marks' -+. ./test-lib.sh -+ -+test_expect_success 'setup dump of basic history' ' -+ test_commit one && -+ git fast-export --export-marks=marks HEAD >dump -+' -+ -+test_expect_success 'setup large marks file' ' -+ # normally a marks file would have a lot of useful, unique -+ # marks. But for our purposes, just having a lot of nonsense -+ # ones is fine. Start at 1024 to avoid clashing with marks -+ # legitimately used in our tiny dump. -+ blob=$(git rev-parse HEAD:one.t) && -+ for i in $(test_seq 1024 16384) -+ do -+ echo ":$i $blob" -+ done >>marks -+' -+ -+test_expect_success 'import with large marks file' ' -+ git fast-import --import-marks=marks dump -+' -+ -+test_expect_success 'setup submodule mapping with large id' ' -+ old=$(git rev-parse HEAD:sub) && -+ new=$(echo $old | sed s/./a/g) && -+ echo ":12345 $old" >from && -+ echo ":12345 $new" >to -+' -+ -+test_expect_success 'import with submodule mapping' ' -+ git init dst && -+ git -C dst fast-import \ -+ --rewrite-submodules-from=sub:../from \ -+ --rewrite-submodules-to=sub:../to \ -+ actual && -+ echo "$new" >expect && -+ test_cmp expect actual -+' -+ -+test_done diff --git a/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch b/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch deleted file mode 100644 index 0f99aba..0000000 --- a/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 39664cb0aca42f240468ddf84fe75df4172ab63f Mon Sep 17 00:00:00 2001 -From: Junio C Hamano -Date: Wed, 4 Nov 2020 09:54:01 -0800 -Subject: [PATCH] log: diagnose -L used with pathspec as an error - -The -L option is documented to accept no pathspec, but the -command line option parser has allowed the combination without -checking so far. Ensure that there is no pathspec when the -L -option is in effect to fix this. - -Incidentally, this change fixes another bug in the command line -option parser, which has allowed the -L option used together -with the --follow option. Because the latter requires exactly -one path given, but the former takes no pathspec, they become -mutually incompatible automatically. Because the -L option -follows renames on its own, there is no reason to give --follow -at the same time. - -The new tests say they may fail with "-L and --follow being -incompatible" instead of "-L and pathspec being incompatible". -Currently the expected failure can come only from the latter, but -this is to futureproof them, in case we decide to add code to -explicititly die on -L and --follow used together. - -Heled-by: Jeff King -Signed-off-by: Junio C Hamano ---- - builtin/log.c | 3 +++ - t/t4211-line-log.sh | 22 ++++++++++++++++++++++ - 2 files changed, 25 insertions(+) - -diff --git a/builtin/log.c b/builtin/log.c -index 0a7ed4bef92b9..9d70f3e60b9c0 100644 ---- a/builtin/log.c -+++ b/builtin/log.c -@@ -206,6 +206,9 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, - if (argc > 1) - die(_("unrecognized argument: %s"), argv[1]); - -+ if (rev->line_level_traverse && rev->prune_data.nr) -+ die(_("-L: cannot be used with pathspec")); -+ - memset(&w, 0, sizeof(w)); - userformat_find_requirements(NULL, &w); - -diff --git a/t/t4211-line-log.sh b/t/t4211-line-log.sh -index 2d1d7b5d1938a..85d151423dedc 100755 ---- a/t/t4211-line-log.sh -+++ b/t/t4211-line-log.sh -@@ -8,6 +8,28 @@ test_expect_success 'setup (import history)' ' - git reset --hard - ' - -+test_expect_success 'basic command line parsing' ' -+ # This may fail due to "no such path a.c in commit", or -+ # "-L is incompatible with pathspec", depending on the -+ # order the error is checked. Either is acceptable. -+ test_must_fail git log -L1,1:a.c -- a.c && -+ -+ # -L requires there is no pathspec -+ test_must_fail git log -L1,1:b.c -- b.c 2>error && -+ test_i18ngrep "cannot be used with pathspec" error && -+ -+ # This would fail because --follow wants a single path, but -+ # we may fail due to incompatibility between -L/--follow in -+ # the future. Either is acceptable. -+ test_must_fail git log -L1,1:b.c --follow && -+ test_must_fail git log --follow -L1,1:b.c && -+ -+ # This would fail because -L wants no pathspec, but -+ # we may fail due to incompatibility between -L/--follow in -+ # the future. Either is acceptable. -+ test_must_fail git log --follow -L1,1:b.c -- b.c -+' -+ - canned_test_1 () { - test_expect_$1 "$2" " - git log $2 >actual && diff --git a/git.spec b/git.spec index 8e9e616..22a0eba 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.29.2 -Release: 4%{?rcrev}%{?dist} +Version: 2.30.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -129,14 +129,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# https://bugzilla.redhat.com/1791810 -# https://lore.kernel.org/git/xmqqy2jglv29.fsf_-_@gitster.c.googlers.com/ -Patch1: https://github.com/git/git/commit/39664cb0ac.patch#/0001-log-diagnose-L-used-with-pathspec-as-an-error.patch - -# https://bugzilla.redhat.com/1900335 -# https://lore.kernel.org/git/20201015153849.GA551964@coredump.intra.peff.net/ -Patch2: https://github.com/git/git/commit/3f018ec716.patch#/0001-fast-import-fix-over-allocation-of-marks-storage.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1089,6 +1081,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Dec 14 2020 Todd Zullinger - 2.30.0-0.0.rc0 +- update to 2.30.0-rc0 + * Sun Dec 06 2020 Todd Zullinger - 2.29.2-4 - move git-difftool to git-core, it does not require perl diff --git a/sources b/sources index 61331f5..4f2ec89 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.29.2.tar.xz) = 34117628c6d43ac0940c43bffaa1bda7f12af863728f391492725a3e57d1bbda523cf7734e90f463fe9a9ae4e70fc1cc2523643dbb3c27377d98dc4736b0ea62 -SHA512 (git-2.29.2.tar.sign) = 781f0f12d061ca5d3576a23f90df7646fb03cc4a735a41c0118022a1124a053cdea439905efd69cd6cb0161dfe40b93b4c8c99ddac4bc484ecee14881e7ed0af +SHA512 (git-2.30.0.rc0.tar.xz) = aecfa17571ec718e9f8892f6d5ba059451e44ac00f4e39f0d8fef51b9c27e885eff2711e3fc2ebfbb0bc0815370fa0a13b8e9243b60d6cf7cb1278e406cb743f +SHA512 (git-2.30.0.rc0.tar.sign) = f9b997ba3f9f3f7e7f42e79258f2309ceeced85331a6e1e0dc9f83d93cf4fa8fd08154ea868dc64067d5830c7fb208449643742897991cfdbd22f5d5ceec3b3f From 9e220daf74ebee477e1cb04a6af4758e4f6dbf41 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 18 Dec 2020 23:40:05 -0500 Subject: [PATCH 045/202] update to 2.30.0-rc1 Release notes: https://github.com/git/git/raw/v2.30.0-rc1/Documentation/RelNotes/2.30.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 22a0eba..5de02f6 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.30.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1081,6 +1081,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Dec 19 2020 Todd Zullinger - 2.30.0-0.1.rc1 +- update to 2.30.0-rc1 + * Mon Dec 14 2020 Todd Zullinger - 2.30.0-0.0.rc0 - update to 2.30.0-rc0 diff --git a/sources b/sources index 4f2ec89..6c6c71c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.30.0.rc0.tar.xz) = aecfa17571ec718e9f8892f6d5ba059451e44ac00f4e39f0d8fef51b9c27e885eff2711e3fc2ebfbb0bc0815370fa0a13b8e9243b60d6cf7cb1278e406cb743f -SHA512 (git-2.30.0.rc0.tar.sign) = f9b997ba3f9f3f7e7f42e79258f2309ceeced85331a6e1e0dc9f83d93cf4fa8fd08154ea868dc64067d5830c7fb208449643742897991cfdbd22f5d5ceec3b3f +SHA512 (git-2.30.0.rc1.tar.xz) = dfd51fce13b93fefde0364601efade9e438556469f5d6977e00a2e0727e5f50c506452d214848804831855bf22ba2593aa1d7bb01ad81a111e7ddfd9b17a9760 +SHA512 (git-2.30.0.rc1.tar.sign) = e709a8ef1f38fe8872d412aeb5fdff2cce38c27b8415a91994bd3b4b6b93a3d675cc4efa26adaaa13ac232e528e8765d5cce5dd857bd1c14977fe8f2df579866 From 8fef3782c3057d868f57f847dec67e1c38b02a21 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 23 Dec 2020 19:01:29 -0500 Subject: [PATCH 046/202] update to 2.30.0-rc2 Release notes: https://github.com/git/git/raw/v2.30.0-rc2/Documentation/RelNotes/2.30.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 5de02f6..c3795bc 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.30.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1081,6 +1081,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Dec 23 2020 Todd Zullinger - 2.30.0-0.2.rc2 +- update to 2.30.0-rc2 + * Sat Dec 19 2020 Todd Zullinger - 2.30.0-0.1.rc1 - update to 2.30.0-rc1 diff --git a/sources b/sources index 6c6c71c..d222949 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.30.0.rc1.tar.xz) = dfd51fce13b93fefde0364601efade9e438556469f5d6977e00a2e0727e5f50c506452d214848804831855bf22ba2593aa1d7bb01ad81a111e7ddfd9b17a9760 -SHA512 (git-2.30.0.rc1.tar.sign) = e709a8ef1f38fe8872d412aeb5fdff2cce38c27b8415a91994bd3b4b6b93a3d675cc4efa26adaaa13ac232e528e8765d5cce5dd857bd1c14977fe8f2df579866 +SHA512 (git-2.30.0.rc2.tar.xz) = bae9e0eae3f54ae7598d8ec661a99327c1040c413430f9f9c40defd81dfd0acd5884a3a1465ebc2a0c78ed2b1fda650e4998d14018e80b6ed1e5aaa20a1a8a9c +SHA512 (git-2.30.0.rc2.tar.sign) = f2efc4869a3f68e16e442c71d10945bc7f9fca78a924d21709c03309644e24776614260f859ad3aff65f88f306c41a4ce24567e0baa4ad6d055e8f531e83e611 From c93103f5ad8d0e0ce9c5ae05b28d7488d2e4a1d2 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 28 Dec 2020 15:02:16 -0500 Subject: [PATCH 047/202] update to 2.30.0 Release notes: https://github.com/git/git/raw/v2.30.0/Documentation/RelNotes/2.30.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index c3795bc..6479825 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.30.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1081,6 +1081,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Dec 28 2020 Todd Zullinger - 2.30.0-1 +- update to 2.30.0 + * Wed Dec 23 2020 Todd Zullinger - 2.30.0-0.2.rc2 - update to 2.30.0-rc2 diff --git a/sources b/sources index d222949..f500963 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.30.0.rc2.tar.xz) = bae9e0eae3f54ae7598d8ec661a99327c1040c413430f9f9c40defd81dfd0acd5884a3a1465ebc2a0c78ed2b1fda650e4998d14018e80b6ed1e5aaa20a1a8a9c -SHA512 (git-2.30.0.rc2.tar.sign) = f2efc4869a3f68e16e442c71d10945bc7f9fca78a924d21709c03309644e24776614260f859ad3aff65f88f306c41a4ce24567e0baa4ad6d055e8f531e83e611 +SHA512 (git-2.30.0.tar.xz) = 2ce154d6e224e78d7da2ea9b954d8cf56bdfe43636b93dd5045a950a7362d3943866b4949eb5ed03528d6e5f0466c33c233b502d84430ed9d90326bcc696101d +SHA512 (git-2.30.0.tar.sign) = 194980220d1e6260c1eb9ef6c284ebcd810636bffb51753d7a5b08bb398ab05ae839bf5622c72c031b45b3aab371331724a6ba3a46d37e2fab34a954d418a128 From cb12da19d4f919c8bef348ebdedee1e9a44bd3e4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 08:07:04 +0000 Subject: [PATCH 048/202] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_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 6479825..f0023f4 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.30.0 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1081,6 +1081,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 2.30.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Dec 28 2020 Todd Zullinger - 2.30.0-1 - update to 2.30.0 From 50e6f6ece0fe90b3f97f60e92f8015b2d283f3a9 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 27 Jan 2021 11:53:45 -0500 Subject: [PATCH 049/202] update Junio's GPG key (with extended expiration) The key used to sign git releases expired in July 2020. While this doesn't strictly affect us because use gpgv to verify the releases against a known key file, it is worth updating to make it clear that we're using the correct signing key. Refer to 7c95c76 (Update Junio's GPG key, 2017-09-16) for a previous update of the key, including the process used. Here is a diff of the key file before and after the update: $ diff -u <(gpg gpgkey-junio.asc.old 2>/dev/null) <(gpg gpgkey-junio.asc 2>/dev/null) --- /dev/fd/63 2021-01-25 11:57:17.367151191 -0500 +++ /dev/fd/62 2021-01-25 11:57:17.368151229 -0500 @@ -3,6 +3,6 @@ uid Junio C Hamano uid Junio C Hamano uid Junio C Hamano -sub rsa4096/B0B5E88696AFE6CB 2011-10-03 [S] [expired: 2020-07-26] +sub rsa4096/B0B5E88696AFE6CB 2011-10-03 [S] [expires: 2028-01-11] sub rsa4096/86B76D5D833262C4 2011-10-01 [E] -sub rsa4096/7594EEC7B3F7CAC9 2014-09-20 [S] [expired: 2020-07-26] +sub rsa4096/7594EEC7B3F7CAC9 2014-09-20 [S] [expires: 2028-01-11] This thread on the git list is where the question was raised and Junio confirmed he'd extended the expiration of his signing key: https://lore.kernel.org/git/B6DFB74D-A722-4DBD-A4B2-562604B21CCB@alchemists.io/T/#u --- gpgkey-junio.asc | 186 +++++++++++++++++++++-------------------------- 1 file changed, 82 insertions(+), 104 deletions(-) diff --git a/gpgkey-junio.asc b/gpgkey-junio.asc index 032428d..5edb58f 100644 --- a/gpgkey-junio.asc +++ b/gpgkey-junio.asc @@ -59,108 +59,86 @@ d2ZdUxMgwgcNiQOCW70YWtxf0LF2seSJdLItHDBOu/f3cqKwNGUvcC3d/9qVb0wP SI1mq18S02MGcvDySsjGtX7o4kujUqE2ZNCW6ORLJUC6zEYu3TRNWrXeS3uAP21x UrEPkuTiJL7SCS12FYJt5agx5NIUKI7bkIUbLbiuhC4z47MFajW9Y5jUQk86dk7b jGqVrXYIu92Dhxc2CND2fWaMpYRhwvHR6KQU1yYHYkGVlMHiozM5D+4dCRRVI8x3 -p/+ypFBZmZr7yTpv/qD0N8HHl2NAYvGRQdzjyFQOXERwaXuzjCkAEQEAAYkERAQY -AQIADwIbAgUCVB9jPgUJB3dMaAIpwV0gBBkBAgAGBQJOiUo5AAoJELC16IaWr+bL -pKUQAMsAmipqNBx++8jZKqK5pyrUQa8/I7cevHv/6avwMgq4ISlIfdYixmI4t/xN -akHu6ezXu1gJ97hWbNts6zSiAxsbTDAkEwtDXuAQLzIdTc8M8wQgsoq7NXHC4+YC -pKBZCn06OVOTVjc52DzPLom9bmOb3UaiCdryeyScpDXXFuaHeNk7VrDsR9s06eEk -TZl/ED2kW3zsT3ZSrG6dHiDupJPi8eoBL1gLRHWucUndT8Miu0nxmnU5vvEcOVHj -9ZEbbikD5u7EQQdHKFw1R6RYv5zFh81cb/zSoSwJMyGxjleqy/IoVYVxqhIIg+UP -kHW2jbIi7R6OZ4gc6W5870qKQWHDn7a4XDzQ2NEWF2G/+SWVInfyQVisFfs0RBJ2 -4LbGA28BRA5wlSBslwKMcmrP0t29eIs2raoCDcYmLsaQ2PsNTuUcsIzk3Sz1FpS+ -WIR9Vv4MG3choi+LIdL/38zctLykecz7dYSAhAPWLwiO5N2++DunogweXzCET5Da -+rm2VntE+seHi9hI0hUVyBJm5pwIfd6XaVha1x/kn9SyoQWc6I4FLEFP68wdkfeE -u1cdGfrc4A2fHyXuO2VBH8yXHMshr3v0ALCy4E1kcET9zEmtawuMLlrQwzJP3a8P -QqZnhXkRZ9KAyAaP5tpgb/lDQMUnYo0RM7z0YsETpmv0WsFXCRAg0E5acTZgp74s -D/4rBEPyAk7cmWtyR0XDZpQETY0Sw7Nr4aErdTdQ7AlntHMcn+MWRJpa57S/ea2F -l6SWZ4X09VV/H11lWnYzw0IkSRDsDATxMin+qpy6c7IwxZ9RQ1UT9PhmVBz7rbrs -l3Hnjv+WG9PcMCdlFOMZL4VC2TQEr0hBSXWhV6mDI0rdwuUu+oq84s1cke5g/e5T -joGupTxkaNO/yfDJMf+3dqwGmJDKl23dfKg+XbFh3Y/G321/C5GgvqtjaCoqzCuT -DByEbVXBde7mFB5xQg8ejDgFfuocw57whdNcS3MlGPO/P06nB940QELjwp5O34mM -cVn0qnyhgaioueVW5qzucEa+UfzbkYhinlYdbyljwquJlqIScLPNL0xtzOWo1oWH -Ll7jVklRuRHXFp6Asqan/MovLlYTcBO4OwOJ/rIJBOHkMeLu/vlEIeqC6J5vuD+b -P4XUpHamxOU8U6RVVDIH4cckhEU3zWDTwaD/RTG8TatJzGmjNOOR04imbqFApU7N -OUQ488WNqH11aeZoDOoXWKEvWfE7Cg/fTP0JZH3HaW9LWljWrt68FCyuLtvGVeNy -jHw4NZq89bbqnhKBAX1LS3pl/+nfD8Wx4sldo8RhlOQgUQu+ZJ5sAueLrnd1AmWE -EXvZDFyZqXsrun4cjvZXDmyFFhuaGVis1QzTIumYpUumvIkERAQYAQIADwIbAgUC -WXolxwUJEJR2CwIpwV0gBBkBAgAGBQJOiUo5AAoJELC16IaWr+bLpKUQAMsAmipq -NBx++8jZKqK5pyrUQa8/I7cevHv/6avwMgq4ISlIfdYixmI4t/xNakHu6ezXu1gJ -97hWbNts6zSiAxsbTDAkEwtDXuAQLzIdTc8M8wQgsoq7NXHC4+YCpKBZCn06OVOT -Vjc52DzPLom9bmOb3UaiCdryeyScpDXXFuaHeNk7VrDsR9s06eEkTZl/ED2kW3zs -T3ZSrG6dHiDupJPi8eoBL1gLRHWucUndT8Miu0nxmnU5vvEcOVHj9ZEbbikD5u7E -QQdHKFw1R6RYv5zFh81cb/zSoSwJMyGxjleqy/IoVYVxqhIIg+UPkHW2jbIi7R6O -Z4gc6W5870qKQWHDn7a4XDzQ2NEWF2G/+SWVInfyQVisFfs0RBJ24LbGA28BRA5w -lSBslwKMcmrP0t29eIs2raoCDcYmLsaQ2PsNTuUcsIzk3Sz1FpS+WIR9Vv4MG3ch -oi+LIdL/38zctLykecz7dYSAhAPWLwiO5N2++DunogweXzCET5Da+rm2VntE+seH -i9hI0hUVyBJm5pwIfd6XaVha1x/kn9SyoQWc6I4FLEFP68wdkfeEu1cdGfrc4A2f -HyXuO2VBH8yXHMshr3v0ALCy4E1kcET9zEmtawuMLlrQwzJP3a8PQqZnhXkRZ9KA -yAaP5tpgb/lDQMUnYo0RM7z0YsETpmv0WsFXCRAg0E5acTZgp2XoD/wJiq+drfb+ -IljjLScNgQbH2vq5lXub4rD5j83waVfkh60eFCo8hu1dBkaWyHs81gFPKIPRHYJJ -19B6g/nFOW7bZPbzhZzdICTejz2ITi8ipSgTsRGQMeQ+vGzlxH7dItmo0MeU2Pbf -pfTn1tB6wafHtMLaZafDIskh1RkAMFsWoEK305PtyuTSkGDGTKnA9yBX4CpKHZDR -1iYqZU+HQ0aDjiZaEl/m8S2siF6zz1PG1BFDtKDjg7+nKT1wriKfndEIksxrxxY0 -Kqfif2rUu1Kzc2FrtRQY6hguz2HASpcPLr3c6ru5e9SXqaWtfBuXkYzQ0temrFnY -3Oj/rlt5PxcB29XVuB4/CxfPgBVCHVaLOMkJtE/C9GQ5Vzb0k8OxAXClF1EXA9bT -Wri0unw/kt64cL04ZqKUlXmPDzzMdASFIq0pvEzfvIFBdrY3xNPFULEuAbxGhFoR -6iOYJzDRXbl6114IsGnVR3MdFbBQVi6isrFn16JC4yXqUXEHB+oTUTrBv5J/bWu3 -gq3O4MwAprHyTAviUvC9Iq71orXe3iAGbnaeCkPmdmxL9y5UjwXo3OaYN2Axppwd -B6j3QAIyJOkjjOCJRumQx3mKR0F464Xif3S7gcrelIYthz0JVkXg4bucUj7L/8Rl -cCAAru4p1TL+VpEBciclDjJSBVRX8nX9dLkCDQROhnXsARAA8ZueozuaZ1UR9dwb -Bt/KNag/ZiaaV4X9Jm+nQTkT9W92CTWpJ0LcVT10pVzQGDUrWLPW1sJ/ka2JjhH8 -tDFnpKjgaoBwxH+dJLWWs4RXfPXbefCAPliBaOwRZNVyK+FEnUhEHi+z2+KEoOQG -J/AtzpU+0958VgYfWhG2rRH4lDBSopC1VS3WxC+xQcxJMqR30ArJQ5avoIAAFQc6 -qzCAZ/4nbaPO1Kxdsf6ndj9jyZfaVH++OKS/cs1/nDW0JXdGH+oEFvf69FFFvwgl -OKqTw78nMhiMd2Oz1fzIwJa3uKib+JIaEhWrAAIw188lCGIcO8jJmgBP5RDlTezO -q3mA74WgwnFnxJ/LIx9N/1mvdr1ce26DMeUQBIfGBNimRxGZADg5VuKZwysmh9/J -Y/KWtHYe+0VwA+l9VzxsIs6Zo36wQTxr1DRrHSKSWmOChGmdPr924b31NA1geHZi -Qd2j8QughbVQNEARnG8Neo1HgPti1CYFjLPOp6R2j8w/fSeEPkpsPZmT38k+Tucs -pmFzsCKedGlI5BgkHB7be44rDZFOdmxQ9iXECa/KOuySHKhTXYTwJ8QvgTdEA7Qs -l0/sMQtVL4fRP/69yTxEA0RHxFG95ft0mq89Sgpty1IcdVxPNmenPerR6KVH4jos -G7cb/vFMqV09p7Sn6a89VHTG+Y8AEQEAAYkCHwQYAQIACQUCToZ17AIbDAAKCRAg -0E5acTZgpxSmD/4+nZhEFmZYlhPJXvUM4dVqk2x3eXpWhibltChkPoPaJFgZIfrC -5T8cU5Nn9G+/T3Oytzj8u/PTnCLK2xw94w6e00vSFaV+5FWZ757bOaFd13CuavOF -wxEKmulCJX4mZGSQsyF/DZEgG79FJpiiiykvgDSBCGQSga1saWMLxtsAaFj5KTb+ -ZnRLkfYd6WdWgkmUV8rDJVl6OXDGLmVIWm6zqkzT+XnxJvIgURB8zUqLbIjoR7ru -ziD5r2SU1IzK0dcGTAsPmLjTtpE97fmRU8Qsdmnkc6pyOeS2BUFQaYErGqf7HqkW -X4+4+0gW9m0mwroTXnWwMG95A1knyRsvyDerz3bHNzXbGBSvl/HJ8qQruKWQytiF -PgpFa6v7pEfEzXa6QGHxGF2y6tFxTk9LOIyHI393QLZRlt+oQNACj8NQS93MhBn7 -9rKu+YJMNf4yGDFxnPFEScuQH4BCyKztXSIzLJurxRS3h6QKGxD/O1BKaiMibcBC -H1nXFeWB2JpRZBndtS58aX9nQQIeXXODCaWJhWRknEg7U3GAgxFyAk4HnVTreFgm -leZsKT3khM69kzlZundZ1JRgSQlekDzBHcsdN4UZMGkzLYdA/0mAr1K45RkNVQuF -rk73kgYUx+4g64xkqFzSbj9jqvo2/4gH2cbnrY6ShQ+kwjEdAXLP3BGbl7kCDQRU -HbogARAAmJzYPpBprZD5rZEP++T/JS7JYzJPSCMFxppxSCy6RwTP7Tfu8Bg8Tgy2 -P6T2dkH5qez2S6+TpOUJ7b/4PmArVWk7uQmo7dkzrMh/gGA6ra44xyLfHdpFZaKu -/TjbAlKIxbWxQ9Z3+VvUpFkIJ7R2EWGNTGgpDXd6FKe+E0LoM5PEOlAQ2pgJ9a+J -35ukDV7LSLaslrAoEIYsVkIuFs0HOIgP/N7fqlCft9rJo5OifqxlG2xB/M0wEl5n -A1mAbj4I6N2BI1ft/6jWq853GJ3iX0F8BUoL3EfaFLgUN8nViXe7H4iJrgJ0HUXx -AvyRW9IkfbCd/eT8OVkHzBLK6dLi/1IoOdpkqxciH2p8YayT+I/gsgnCadU2hSDW -oOf2MB19xs6IpMF1LpG/oSsV8SvVbvBLtoAJShWh7dseUnNw9Xfp69kMjJCE4Quv -3d/l1I4DiDFpAiuXYJLs+q7OtHEUK/GARn+CYJP165JP0owYwZXE8/ZawtOsAUQr -GvtF8QgB5TO4FadB7zJ/oSsfZ8u3T6mqoYPFl7gS9J/MgF1w0oAwIp+eZkW4iqtm -zbjGhCb8CjRVOhDRxkp4E8Pz7egdHW3gdUgVcSTxmxppO+AS/JuVeuym+zAz9OTi -0mbFMjS0AqX0oGLFANeLlRhxP7xOoWj/fw8DC3cifwsUo0CTJPsAEQEAAYkERAQY -AQIADwIbAgUCWXol2AUJCwAGNgIpwV0gBBkBAgAGBQJUHbogAAoJEHWU7sez98rJ -qH8P/Ane/hZ2oajsqBbSSZZ8VVZksrC1v7XqBzLqcibsXtVRw4O/6pEsD/hRSDvb -JptUJecwGL94Qe2RVlaUH/63ODrjcOJG9dMJmLChLlzp9PN7nl79nzupjuiR/jRp -NH6pa4yCWKAj8t5e6evU+7aOUksxxRWHlAvEtnxsOqkOBAz3Nx0WYpD+h9ScrvLq -BjJSXYpgkNiLRqXONOb7vf9LQxzvPTxin+z520o9tT2KYoKc1GQ9NClzCVgdYm/R -g9DRN06SJ3ockLsKZkQ8fzjkP6qiMCNgE+iA0iP9FoHJpPeQ3fbO7z6NpklIKcEz -SXaVKH+o7uxAFmGo9fmkkOOOPt38BNjtfEkKcr/ZxlVK5WExc8gUgBAbhlgVRpCy -yNAos3sFclSjv55zUAyROLANShw/NryH5+K1yk6xZYlZa9m+RI5tu48oafsGChPM -R6E7ZHPRCw2OA5rlJfGZzTNfuxsHVeIzFJ7uAFkE6diOE9VyJ07e1a4z+NcZ9kAv -0hKrpl/jt5tcDtj7oHHeiq4yC1I3XSBt2gm+OoQEk03rnBp28E/z5Ksv6dZEaGx+ -a7yO6ld0l7yHzKxcJuhWSlce5K76UON4v1YuqnBz9eRo7LsHo9/AhFphgeewqzyi -C8O5NEk9XiSGLPK34DpqJDU9CrFIpYZj6XPFuYGQ+Gnm/U3nCRAg0E5acTZgpz8Y -D/9Hh8JWHRWhQf2a53WIlCqERNV+J6wWItmACncTyaLjJJkj7f1Ka3iZ8vo1WWWY -463m8y1hf1aNgr2trYZ6kOSwGP+BWKrRakn6/jKaL42QbUvHyR4PnGNuFYyv5thW -7988XsoKRo5GBPQzk/F+6IkKzNDgv1/i1GnVgWJmH1wg1ssMGN1fYlu43z+lKemf -0ss9pQqPtV8W+wrViO4MvWVQ/CcicsDvgA5pM9sLeIBXX3nsdo/TWdEJu4JEvsA8 -MN/q09qkGU14Ptzfze2k63nHheA2OnTOo9agQEL7N05a9zzSoXj39CubObjnTjr4 -QmqWVkkHPKWV3R1ULQle65U4zELdYfU1wXoH2AZVW+02SNZTGlRjCyoV9O01QSt3 -Rlyzajy+3gwDLnczqV0CUF7WgL0V0LYYCavjXhdc+oFsYN6kU3D31ZgOMrxauoIB -LWSzqJ83Fm6tmL0OLJuFpi8FvV9NYkqux3ECL3iTpttyEpWPKo9ZlxEgusrK2uTE -2S6rhy7zkf/3/raGgtEjIQ7E1zuR52ENlIN/djnSfkLf6OmkhgBgSs/HixC4zFtz -Dk2VltUXhUURXRl9Op+8Atrv44JfLpFehdVDjbKrFmOiW948c0LoB0g73ujnjBFO -+qTu3PzPD4ihBUJ3cNLoadoOQ9gzW/I9rkykw5jpk0sCMg== -=z4yI +p/+ypFBZmZr7yTpv/qD0N8HHl2NAYvGRQdzjyFQOXERwaXuzjCkAEQEAAYkEWwQY +AQoAJgIbAhYhBJbgevJXcZVZgNrRACDQTlpxNmCnBQJeHMcfBQkenRjmAinBXSAE +GQECAAYFAk6JSjkACgkQsLXohpav5sukpRAAywCaKmo0HH77yNkqormnKtRBrz8j +tx68e//pq/AyCrghKUh91iLGYji3/E1qQe7p7Ne7WAn3uFZs22zrNKIDGxtMMCQT +C0Ne4BAvMh1NzwzzBCCyirs1ccLj5gKkoFkKfTo5U5NWNznYPM8uib1uY5vdRqIJ +2vJ7JJykNdcW5od42TtWsOxH2zTp4SRNmX8QPaRbfOxPdlKsbp0eIO6kk+Lx6gEv +WAtEda5xSd1PwyK7SfGadTm+8Rw5UeP1kRtuKQPm7sRBB0coXDVHpFi/nMWHzVxv +/NKhLAkzIbGOV6rL8ihVhXGqEgiD5Q+QdbaNsiLtHo5niBzpbnzvSopBYcOftrhc +PNDY0RYXYb/5JZUid/JBWKwV+zREEnbgtsYDbwFEDnCVIGyXAoxyas/S3b14izat +qgINxiYuxpDY+w1O5RywjOTdLPUWlL5YhH1W/gwbdyGiL4sh0v/fzNy0vKR5zPt1 +hICEA9YvCI7k3b74O6eiDB5fMIRPkNr6ubZWe0T6x4eL2EjSFRXIEmbmnAh93pdp +WFrXH+Sf1LKhBZzojgUsQU/rzB2R94S7Vx0Z+tzgDZ8fJe47ZUEfzJccyyGve/QA +sLLgTWRwRP3MSa1rC4wuWtDDMk/drw9CpmeFeRFn0oDIBo/m2mBv+UNAxSdijREz +vPRiwROma/RawVcJECDQTlpxNmCnTLQP/A1WNmgPCCyFqp812Zvgh0pAqceaM+dg +FlvNi5j5Jyw7/hicx2e0BXgKt64TEodphknCFzZIFDq3jJSdLt1l9NHpiLVM0Hf0 +cLFGF3eRHOID7PeGJGztLJ0CGhhSXaPh7nNLK0G9zXCAasedpowX4ZUntv+p/+Fr +jQ8eSgyyljvrlywK+tH07F1W6t6eMNOw7/AHx7fkOux4CDem1FsNbhZWX8YPUATo +vP1YLBXcrQgpJPpypG6up56D70ewTs4l+qNOISr3phG2egeEhYNwv6GUv8aelh69 +iaUHscT+DOXrFKq+RSHBMzGFFTrDJFDSu3d3A5Rg8KxJMcOxc00L3GMPchrFiJH7 +QShAQdU/ocF0MAA6n56g/QynxafFI/MRMXVTmF+lMBW/kK63pD3AJkIgvdLdht5o +s7aKlddPrmIulaELIDdF2MSicMmgWJcqFkqZH2HIC+gx26Fafn2vfiUqsEc4NTpZ +qhf66F9UjPKfYFfLhbGrmq/giAk1qjiGnBzCUQ9hXVqpmFfnVDjmQrk8KB9skDms +PJgZ4hzmj5AarCpFtDmE4W7Tvi/xqgrFZkPX/SDhTWInJGcWaOTvlc5dkjAxKT6X +LUGLScJHxhaovTGVzq1GWhhNCFhCs4AkWqPKhYfeZuWiuiMLZaEyJPfTufT7Svab +pOhlaD1YY8fvuQINBE6GdewBEADxm56jO5pnVRH13BsG38o1qD9mJppXhf0mb6dB +ORP1b3YJNaknQtxVPXSlXNAYNStYs9bWwn+RrYmOEfy0MWekqOBqgHDEf50ktZaz +hFd89dt58IA+WIFo7BFk1XIr4USdSEQeL7Pb4oSg5AYn8C3OlT7T3nxWBh9aEbat +EfiUMFKikLVVLdbEL7FBzEkypHfQCslDlq+ggAAVBzqrMIBn/idto87UrF2x/qd2 +P2PJl9pUf744pL9yzX+cNbQld0Yf6gQW9/r0UUW/CCU4qpPDvycyGIx3Y7PV/MjA +lre4qJv4khoSFasAAjDXzyUIYhw7yMmaAE/lEOVN7M6reYDvhaDCcWfEn8sjH03/ +Wa92vVx7boMx5RAEh8YE2KZHEZkAODlW4pnDKyaH38lj8pa0dh77RXAD6X1XPGwi +zpmjfrBBPGvUNGsdIpJaY4KEaZ0+v3bhvfU0DWB4dmJB3aPxC6CFtVA0QBGcbw16 +jUeA+2LUJgWMs86npHaPzD99J4Q+Smw9mZPfyT5O5yymYXOwIp50aUjkGCQcHtt7 +jisNkU52bFD2JcQJr8o67JIcqFNdhPAnxC+BN0QDtCyXT+wxC1Uvh9E//r3JPEQD +REfEUb3l+3Sarz1KCm3LUhx1XE82Z6c96tHopUfiOiwbtxv+8UypXT2ntKfprz1U +dMb5jwARAQABiQIfBBgBAgAJBQJOhnXsAhsMAAoJECDQTlpxNmCnFKYP/j6dmEQW +ZliWE8le9Qzh1WqTbHd5elaGJuW0KGQ+g9okWBkh+sLlPxxTk2f0b79Pc7K3OPy7 +89OcIsrbHD3jDp7TS9IVpX7kVZnvnts5oV3XcK5q84XDEQqa6UIlfiZkZJCzIX8N +kSAbv0UmmKKLKS+ANIEIZBKBrWxpYwvG2wBoWPkpNv5mdEuR9h3pZ1aCSZRXysMl +WXo5cMYuZUhabrOqTNP5efEm8iBREHzNSotsiOhHuu7OIPmvZJTUjMrR1wZMCw+Y +uNO2kT3t+ZFTxCx2aeRzqnI55LYFQVBpgSsap/seqRZfj7j7SBb2bSbCuhNedbAw +b3kDWSfJGy/IN6vPdsc3NdsYFK+X8cnypCu4pZDK2IU+CkVrq/ukR8TNdrpAYfEY +XbLq0XFOT0s4jIcjf3dAtlGW36hA0AKPw1BL3cyEGfv2sq75gkw1/jIYMXGc8URJ +y5AfgELIrO1dIjMsm6vFFLeHpAobEP87UEpqIyJtwEIfWdcV5YHYmlFkGd21Lnxp +f2dBAh5dc4MJpYmFZGScSDtTcYCDEXICTgedVOt4WCaV5mwpPeSEzr2TOVm6d1nU +lGBJCV6QPMEdyx03hRkwaTMth0D/SYCvUrjlGQ1VC4WuTveSBhTH7iDrjGSoXNJu +P2Oq+jb/iAfZxuetjpKFD6TCMR0Bcs/cEZuXuQINBFQduiABEACYnNg+kGmtkPmt +kQ/75P8lLsljMk9IIwXGmnFILLpHBM/tN+7wGDxODLY/pPZ2Qfmp7PZLr5Ok5Qnt +v/g+YCtVaTu5Cajt2TOsyH+AYDqtrjjHIt8d2kVloq79ONsCUojFtbFD1nf5W9Sk +WQgntHYRYY1MaCkNd3oUp74TQugzk8Q6UBDamAn1r4nfm6QNXstItqyWsCgQhixW +Qi4WzQc4iA/83t+qUJ+32smjk6J+rGUbbEH8zTASXmcDWYBuPgjo3YEjV+3/qNar +zncYneJfQXwFSgvcR9oUuBQ3ydWJd7sfiImuAnQdRfEC/JFb0iR9sJ395Pw5WQfM +Esrp0uL/Uig52mSrFyIfanxhrJP4j+CyCcJp1TaFINag5/YwHX3GzoikwXUukb+h +KxXxK9Vu8Eu2gAlKFaHt2x5Sc3D1d+nr2QyMkIThC6/d3+XUjgOIMWkCK5dgkuz6 +rs60cRQr8YBGf4Jgk/Xrkk/SjBjBlcTz9lrC06wBRCsa+0XxCAHlM7gVp0HvMn+h +Kx9ny7dPqaqhg8WXuBL0n8yAXXDSgDAin55mRbiKq2bNuMaEJvwKNFU6ENHGSngT +w/Pt6B0dbeB1SBVxJPGbGmk74BL8m5V67Kb7MDP05OLSZsUyNLQCpfSgYsUA14uV +GHE/vE6haP9/DwMLdyJ/CxSjQJMk+wARAQABiQRbBBgBCgAmAhsCFiEEluB68ldx +lVmA2tEAINBOWnE2YKcFAl4cxyAFCRkIqP8CKcFdIAQZAQIABgUCVB26IAAKCRB1 +lO7Hs/fKyah/D/wJ3v4WdqGo7KgW0kmWfFVWZLKwtb+16gcy6nIm7F7VUcODv+qR +LA/4UUg72yabVCXnMBi/eEHtkVZWlB/+tzg643DiRvXTCZiwoS5c6fTze55e/Z87 +qY7okf40aTR+qWuMgligI/LeXunr1Pu2jlJLMcUVh5QLxLZ8bDqpDgQM9zcdFmKQ +/ofUnK7y6gYyUl2KYJDYi0alzjTm+73/S0Mc7z08Yp/s+dtKPbU9imKCnNRkPTQp +cwlYHWJv0YPQ0TdOkid6HJC7CmZEPH845D+qojAjYBPogNIj/RaByaT3kN32zu8+ +jaZJSCnBM0l2lSh/qO7sQBZhqPX5pJDjjj7d/ATY7XxJCnK/2cZVSuVhMXPIFIAQ +G4ZYFUaQssjQKLN7BXJUo7+ec1AMkTiwDUocPza8h+fitcpOsWWJWWvZvkSObbuP +KGn7BgoTzEehO2Rz0QsNjgOa5SXxmc0zX7sbB1XiMxSe7gBZBOnYjhPVcidO3tWu +M/jXGfZAL9ISq6Zf47ebXA7Y+6Bx3oquMgtSN10gbdoJvjqEBJNN65wadvBP8+Sr +L+nWRGhsfmu8jupXdJe8h8ysXCboVkpXHuSu+lDjeL9WLqpwc/XkaOy7B6PfwIRa +YYHnsKs8ogvDuTRJPV4khizyt+A6aiQ1PQqxSKWGY+lzxbmBkPhp5v1N5wkQINBO +WnE2YKdkRQ//ZKvUegOZTtfivAZI888o4Ocpig3CFxJGlXa52JUnDhYFFpRtXRTP +gIdQ0zBvhNjmBnELNv5/D1ubnjqWBTaJpZgUXIljJufuWL7VdD57nAAMw2VLvNUe +38iytUYTAPevaJtLQ4jfj3E9MYH4tcMBmlZ75ZKqiHHH+7+V5J8TD/S01xROK7H1 +kGkXo49deB7K9oT4uno8kE5+AgmEMI80XiKjfQkh6tiG5I0W58DLeAOIxCRkm3kH +Bi22PpuAKhRelRQnAF9dLdlhZECy5eYl7JKQzOS/dQ0Z3zg+HuDBRyhrmV/go/9C +npFGUZBa+FOC1GMO07GKH8tZY99D5tDCAH6r6S+RrYS690mWpjXhqouBtJezld+X +dsgKwgKHk3IEM4m916O0E75kiNk/AD7vZowwEBvPsgN+CDXCPgH4J5x0p9uyxnKH +omLBd7cuJpio6gf4O1KTl1tlVGcb8f+AUR/MIe70NXyEtpYWMiPW3/0dKwt9APgW +KSX0c8Mp2XKH/vAEDx86XTfBNrnXyUanOQhbLQciYzolJjiPrB0C2NgFFFXSHPwC +ikyT5n2RehAJVmg3eufB1ZOKQgo7ue3ynkW4JidgyCUtsoYSmipl9Nhw1hA3ZNK1 +FVCx7tcmy0ZHFO+PV+p17oAC8ZCxSRE0oTeHKcgpF5+DRhQM/+UnmKg= +=7hTI -----END PGP PUBLIC KEY BLOCK----- From 3913289de2c79ff2ba1ec89f12499fd0b7ea16fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 8 Feb 2021 15:55:29 +0100 Subject: [PATCH 050/202] add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb --- git.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index f0023f4..5e1be22 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.30.0 -Release: 1%{?rcrev}%{?dist}.1 +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -460,7 +460,11 @@ Summary: Repository browser in gitweb BuildArch: noarch Requires: git = %{version}-%{release} Requires: gitweb = %{version}-%{release} +%if 0%{?rhel} >= 9 +Requires: httpd +%else Requires: lighttpd +%endif %description instaweb A simple script to set up gitweb and a web server for browsing the local @@ -1081,6 +1085,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Feb 08 2021 Ondřej Pohořelský - 2.30.0-2 +- add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb + * Tue Jan 26 2021 Fedora Release Engineering - 2.30.0-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 0cb8e1a37845c98ca9691942ee2296246db732d6 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 8 Feb 2021 22:05:08 -0500 Subject: [PATCH 051/202] update to 2.30.1 Release notes: https://github.com/git/git/raw/v2.30.1/Documentation/RelNotes/2.30.1.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 5e1be22..1098420 100644 --- a/git.spec +++ b/git.spec @@ -96,8 +96,8 @@ #global rcrev .rc0 Name: git -Version: 2.30.0 -Release: 2%{?rcrev}%{?dist} +Version: 2.30.1 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1085,6 +1085,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Feb 09 2021 Todd Zullinger - 2.30.1-1 +- update to 2.30.1 + * Mon Feb 08 2021 Ondřej Pohořelský - 2.30.0-2 - add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb diff --git a/sources b/sources index f500963..8265a5c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.30.0.tar.xz) = 2ce154d6e224e78d7da2ea9b954d8cf56bdfe43636b93dd5045a950a7362d3943866b4949eb5ed03528d6e5f0466c33c233b502d84430ed9d90326bcc696101d -SHA512 (git-2.30.0.tar.sign) = 194980220d1e6260c1eb9ef6c284ebcd810636bffb51753d7a5b08bb398ab05ae839bf5622c72c031b45b3aab371331724a6ba3a46d37e2fab34a954d418a128 +SHA512 (git-2.30.1.tar.xz) = b3567d251c73807857f05f46cae3acb4e0d876590d122229c05509d5eb17fc3eee0ba97a1b2068070b399085f7a92aa2493c4833b98f65b8ef15fc279798caa3 +SHA512 (git-2.30.1.tar.sign) = 74f03e9b38fb33cfc8bf8d17ac108c769663acfd4b72c5fade4410b06b6c7c29479a82f58409ba780468f56e0ce24bc86f118e7f31060941067c34f02778f6e2 From 9163954e0f609af7a8b38c7d569b3a781066cec6 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 18 Feb 2021 01:52:02 -0500 Subject: [PATCH 052/202] re-enable t7812-grep-icase-non-ascii on s390x We disabled t7812's 'PCRE v2: grep non-ASCII from invalid UTF-8 data' test in 33ecb78 (skip failing test in t7812-grep-icase-non-ascii on s390x, 2019-10-24). It was subsequently fixed upstream in e714b898c6 (t7812: expect failure for grep -i with invalid UTF-8 data, 2019-11-29) and more recently improved with a4fea08b6e (grep/pcre2 tests: don't rely on invalid UTF-8 data test, 2021-01-24). Don't skip the test any longer. --- git.spec | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/git.spec b/git.spec index 1098420..ae7ba4d 100644 --- a/git.spec +++ b/git.spec @@ -883,16 +883,6 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" %endif # endif %%{power64} -%ifarch s390x -# Skip tests which fail on s390x -# -# t7812-grep-icase-non-ascii's "PCRE v2: grep non-ASCII from invalid UTF-8 -# data" test fails on big-endian arches. This is known upstream and will -# hopefully be resolved soon (2019/10/24, tmz) -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t7812.11" -%endif -# endif s390x - export GIT_SKIP_TESTS # Set LANG so various UTF-8 tests are run @@ -1085,6 +1075,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Feb 18 2021 Todd Zullinger +- re-enable t7812-grep-icase-non-ascii on s390x + * Tue Feb 09 2021 Todd Zullinger - 2.30.1-1 - update to 2.30.1 From 8d486728064e3a61c040d24aff44a21a74f0d64d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 1 Feb 2021 16:33:48 +0100 Subject: [PATCH 053/202] include git-daemon in git-all meta-package Installing the git-all meta-package is intended to bring in all git subpackages. Add the missing git-daemon. --- git.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index ae7ba4d..b8e6172 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.30.1 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -323,6 +323,7 @@ Requires: git-credential-libsecret = %{version}-%{release} Requires: git-cvs = %{version}-%{release} %endif # endif with cvs +Requires: git-daemon = %{version}-%{release} Requires: git-email = %{version}-%{release} Requires: git-gui = %{version}-%{release} %if %{with p4} @@ -1075,6 +1076,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Feb 18 2021 Ondřej Pohořelský - re-enable t7812-grep-icase-non-ascii on s390x From 5662337240a54677ee453b27645f5e3ef7dc9842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 2 Mar 2021 16:13:48 +0100 Subject: [PATCH 054/202] Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. --- git.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index b8e6172..7b2ece5 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.30.1 -Release: 2%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1076,6 +1076,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.30.1-2.1 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + * Thu Feb 18 2021 Ondřej Pohořelský Date: Tue, 2 Mar 2021 13:17:44 -0500 Subject: [PATCH 055/202] improve gpg verification of upstream source Use %{gpgverify} macro to verify tarball signature. The macro is now available for all supported Fedora and EPEL releases. (It is presumed that EL-9 will include %{gpgverify} as it will be branched from F-34. If that turns out to be false, we will adjust later.) The Packaging Guidelines require the use of the %{gpgverify} macro: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_verifying_signatures Add a BuildRequires for xz as well, since we use it explicitly in %prep. Renumber Junio's GPG key from Source9 to Source2 so the %{gpgverify} calls follow the typical pattern. It (mildly) lessens cognitive load for anyone reviewing the spec file. While here, remove a stale comment about leaving a blank line after %autosetup to work around a bug on EL6. --- git.spec | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/git.spec b/git.spec index 7b2ece5..6fa4261 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.30.1 -Release: 2%{?rcrev}%{?dist}.1 +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -113,7 +113,7 @@ Source1: https://www.kernel.org/pub/software/scm/git/%{?rcrev:testing/}%{ # # https://git.kernel.org/cgit/git/git.git/tag/?h=junio-gpg-pub # https://git.kernel.org/cgit/git/git.git/blob/?h=junio-gpg-pub&id=7214aea37915ee2c4f6369eb9dea520aec7d855b -Source9: gpgkey-junio.asc +Source2: gpgkey-junio.asc # Local sources begin at 10 to allow for additional future upstream sources Source11: git.xinetd.in @@ -152,11 +152,12 @@ BuildRequires: diffutils BuildRequires: emacs-common %endif # endif emacs-common -%if 0%{?rhel} == 7 -# Require epel-rpm-macros for the %%build_cflags and %%build_ldflags macros +%if 0%{?rhel} && 0%{?rhel} < 9 +# Require epel-rpm-macros for the %%gpgverify macro on EL-7/EL-8, and +# %%build_cflags & %%build_ldflags on EL-7. BuildRequires: epel-rpm-macros %endif -# endif rhel == 7 +# endif rhel < 9 BuildRequires: expat-devel BuildRequires: findutils BuildRequires: gawk @@ -192,6 +193,7 @@ BuildRequires: systemd # endif use_systemd BuildRequires: tcl BuildRequires: tk +BuildRequires: xz BuildRequires: zlib-devel >= 1.2 %if %{with tests} @@ -521,16 +523,8 @@ Requires: subversion %prep # Verify GPG signatures -gpghome="$(mktemp -qd)" # Ensure we don't use any existing gpg keyrings -# Convert the ascii-armored key to binary -# (use --yes to ensure an existing dearmored key is overwritten) -gpg2 --homedir "$gpghome" --dearmor --quiet --yes %{SOURCE9} -xz -dc %{SOURCE0} | # Upstream signs the uncompressed tarballs - gpgv2 --homedir "$gpghome" --quiet --keyring %{SOURCE9}.gpg %{SOURCE1} - -rm -rf "$gpghome" # Cleanup tmp gpg home dir +xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- -# Ensure a blank line follows autosetup, el6 chokes otherwise -# https://bugzilla.redhat.com/1310704 %autosetup -p1 -n %{name}-%{version}%{?rcrev} # Install print-failed-test-output script @@ -1076,6 +1070,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Mar 02 2021 Todd Zullinger - 2.30.1-3 +- use %%{gpgverify} macro to verify tarball signature + * Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.30.1-2.1 - Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583. From adc702ecfc48f7650c2f49d643528f745a6425be Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 25 Feb 2021 22:40:20 -0500 Subject: [PATCH 056/202] update to 2.31.0-rc0 Release notes: https://github.com/git/git/raw/v2.31.0-rc0/Documentation/RelNotes/2.31.0.txt --- git.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/git.spec b/git.spec index 6fa4261..195109d 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.30.1 -Release: 3%{?rcrev}%{?dist} +Version: 2.31.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1070,6 +1070,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Mar 02 2021 Todd Zullinger - 2.31.0-0.0.rc0 +- update to 2.31.0-rc0 + * Tue Mar 02 2021 Todd Zullinger - 2.30.1-3 - use %%{gpgverify} macro to verify tarball signature diff --git a/sources b/sources index 8265a5c..e5fae2c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.30.1.tar.xz) = b3567d251c73807857f05f46cae3acb4e0d876590d122229c05509d5eb17fc3eee0ba97a1b2068070b399085f7a92aa2493c4833b98f65b8ef15fc279798caa3 -SHA512 (git-2.30.1.tar.sign) = 74f03e9b38fb33cfc8bf8d17ac108c769663acfd4b72c5fade4410b06b6c7c29479a82f58409ba780468f56e0ce24bc86f118e7f31060941067c34f02778f6e2 +SHA512 (git-2.31.0.rc0.tar.xz) = 3c8d495cc1adb18f5918d99b02b6d3a969d4a44ab44ad908831eae0b2cf2d139fe8e7f1c61788a3254f4acc178cd2b5973ce13733bf639c73f156b4987a6e8f2 +SHA512 (git-2.31.0.rc0.tar.sign) = 1ddce0cbe6d2077a585804f03cdf3aca25dc802a373914f11b8da19c827e9d1c7e95d27a48f46450fe11b997cc044aef6bf15a37fcf95fc3429fab32220735cb From 91eeb429368a28c6796bd4f400900e12979f2c3c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 3 Mar 2021 10:22:27 -0500 Subject: [PATCH 057/202] update to 2.31.0-rc1 Release notes: https://github.com/git/git/raw/v2.31.0-rc1/Documentation/RelNotes/2.31.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 195109d..88fe928 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.31.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1070,6 +1070,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Mar 03 2021 Todd Zullinger - 2.31.0-0.1.rc1 +- update to 2.31.0-rc1 + * Tue Mar 02 2021 Todd Zullinger - 2.31.0-0.0.rc0 - update to 2.31.0-rc0 diff --git a/sources b/sources index e5fae2c..e769ca1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.31.0.rc0.tar.xz) = 3c8d495cc1adb18f5918d99b02b6d3a969d4a44ab44ad908831eae0b2cf2d139fe8e7f1c61788a3254f4acc178cd2b5973ce13733bf639c73f156b4987a6e8f2 -SHA512 (git-2.31.0.rc0.tar.sign) = 1ddce0cbe6d2077a585804f03cdf3aca25dc802a373914f11b8da19c827e9d1c7e95d27a48f46450fe11b997cc044aef6bf15a37fcf95fc3429fab32220735cb +SHA512 (git-2.31.0.rc1.tar.xz) = 80c662b8e4b1af901bf8506f252d88851675ded77e86688d8a28db1e31b389ff3ec2cafa8b0ce9c816973ec9b2fb2ab29b0ac56d80584d2bc49f3430a6af5eaf +SHA512 (git-2.31.0.rc1.tar.sign) = 063355f016f4349716206fb070fd8615b5b3f216c88f44c000e57e6941d25acfa5c0db8381587e7c175b1b1901ccb49cccbc5c3d95ec8623195b25d84f9e8949 From cb2e458a1913e3a42ddb8548e8bf5293d64df776 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 9 Mar 2021 13:42:18 -0500 Subject: [PATCH 058/202] update to 2.31.0-rc2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This release includes a fix for CVE-2021-21300¹ in addition to the other changes along the path to the final 2.31.0 release. Release notes: https://github.com/git/git/raw/v2.31.0-rc2/Documentation/RelNotes/2.31.0.txt ¹ Per the 2.17.6 release notes on CVE-2021-21300: On case-insensitive file systems with support for symbolic links, if Git is configured globally to apply delay-capable clean/smudge filters (such as Git LFS), Git could be fooled into running remote code during a clone. --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 88fe928..00285af 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.31.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1070,6 +1070,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Mar 09 2021 Todd Zullinger - 2.31.0-0.2.rc2 +- update to 2.31.0-rc2 + * Wed Mar 03 2021 Todd Zullinger - 2.31.0-0.1.rc1 - update to 2.31.0-rc1 diff --git a/sources b/sources index e769ca1..0c6d1b2 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.31.0.rc1.tar.xz) = 80c662b8e4b1af901bf8506f252d88851675ded77e86688d8a28db1e31b389ff3ec2cafa8b0ce9c816973ec9b2fb2ab29b0ac56d80584d2bc49f3430a6af5eaf -SHA512 (git-2.31.0.rc1.tar.sign) = 063355f016f4349716206fb070fd8615b5b3f216c88f44c000e57e6941d25acfa5c0db8381587e7c175b1b1901ccb49cccbc5c3d95ec8623195b25d84f9e8949 +SHA512 (git-2.31.0.rc2.tar.xz) = 0e717c27320d6747e5f7c928765c91859a22f5a5de02a99bab2f0923283b5da2fd755a50ba527160ca23ffa8daf087dc4014441a58100cffbabe58fb7d9b64c3 +SHA512 (git-2.31.0.rc2.tar.sign) = 4630ddd6186f72363b1bb2c5ed6dfebf428a5f4079286c91cfa75c0ec1cc1ddaee40a739fad6dccf3ad6a001764ae031a7d538e7ab4349a473e3bc7d95047ad6 From a085ac4d92464d1afcb3f9e679668ba8812c8479 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 9 Mar 2021 15:59:32 -0500 Subject: [PATCH 059/202] add 'missing UTF8_NFD_TO_NFC' to git.skip-test-patterns The UTF8_NFD_TO_NFC prereq was added to t0021-conversion and t2006-checkout-index-basic in upstream commit 684dd4c2b4 (checkout: fix bug that makes checkout follow symlinks in leading path, 2020-12-10), to test the fixes for CVE-2021-21300. Fedora's supported systems do not appear to "convert decomposed utf-8 (nfd) to precomposed utf-8 (nfc)" which is what the prereq covers. Ignore the skipped tests which use the UTF8_NFD_TO_NFC prereq when looking for missing test dependencies and/or incorrectly skipped tests. --- git.skip-test-patterns | 1 + 1 file changed, 1 insertion(+) diff --git a/git.skip-test-patterns b/git.skip-test-patterns index f80cadf..28a66b8 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -13,6 +13,7 @@ missing !PCRE missing !PTHREADS missing RFC1991 missing TAR_NEEDS_PAX_FALLBACK +missing UTF8_NFD_TO_NFC skipping case insensitive tests skipping git p4 tests skipping remote-svn tests, python not available From ce53345a7da5c219b6e3376169215a0eb5f5c3f2 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 15 Mar 2021 16:04:01 -0400 Subject: [PATCH 060/202] update to 2.31.0 Release notes: https://github.com/git/git/raw/v2.31.0/Documentation/RelNotes/2.31.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 00285af..6d6d55e 100644 --- a/git.spec +++ b/git.spec @@ -93,11 +93,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.31.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1070,6 +1070,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Mar 15 2021 Todd Zullinger - 2.31.0-1 +- update to 2.31.0 + * Tue Mar 09 2021 Todd Zullinger - 2.31.0-0.2.rc2 - update to 2.31.0-rc2 diff --git a/sources b/sources index 0c6d1b2..043f8c9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.31.0.rc2.tar.xz) = 0e717c27320d6747e5f7c928765c91859a22f5a5de02a99bab2f0923283b5da2fd755a50ba527160ca23ffa8daf087dc4014441a58100cffbabe58fb7d9b64c3 -SHA512 (git-2.31.0.rc2.tar.sign) = 4630ddd6186f72363b1bb2c5ed6dfebf428a5f4079286c91cfa75c0ec1cc1ddaee40a739fad6dccf3ad6a001764ae031a7d538e7ab4349a473e3bc7d95047ad6 +SHA512 (git-2.31.0.tar.xz) = b8f7608d4349c983c426494227b0ec9d032e67c775382a32675418f629f365817ac99a61c24e3a380bc5eb65351058dbf55d526890055acf58ad4f028022f513 +SHA512 (git-2.31.0.tar.sign) = 228cce4cc4d43d83fae68ff93d5d77b0601779756812c8eaa374c39ac2a5757bdeea4b5ce9950c4bb9661d09fee88f5d73c309f74a1728e66d1eeeec341295e0 From 4971df866e6ed71f42567f15a6443c2dce09b07c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 19 Mar 2021 16:41:05 -0400 Subject: [PATCH 061/202] fix git bisect with annotaged tags As git bisect was migrated from shell to C, the bisect_state conversion lost the ability to handle annotated tags. This was not intentional. It is fixed in upstream commit 7730f85594 (bisect: peel annotated tags to commits, 2021-03-16). References: https://lore.kernel.org/git/878s6nz1sg.fsf@igel.home/ https://github.com/git/git/commit/7730f85594.patch --- ...isect-peel-annotated-tags-to-commits.patch | 83 +++++++++++++++++++ git.spec | 8 +- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 0001-bisect-peel-annotated-tags-to-commits.patch diff --git a/0001-bisect-peel-annotated-tags-to-commits.patch b/0001-bisect-peel-annotated-tags-to-commits.patch new file mode 100644 index 0000000..447c6fe --- /dev/null +++ b/0001-bisect-peel-annotated-tags-to-commits.patch @@ -0,0 +1,83 @@ +From 7730f85594d4595605934e39d1d816ab663d8fa8 Mon Sep 17 00:00:00 2001 +From: Jeff King +Date: Tue, 16 Mar 2021 11:15:55 -0400 +Subject: [PATCH] bisect: peel annotated tags to commits + +This patch fixes a bug where git-bisect doesn't handle receiving +annotated tags as "git bisect good ", etc. It's a regression in +27257bc466 (bisect--helper: reimplement `bisect_state` & `bisect_head` +shell functions in C, 2020-10-15). + +The original shell code called: + + sha=$(git rev-parse --verify "$rev^{commit}") || + die "$(eval_gettext "Bad rev input: \$rev")" + +which will peel the input to a commit (or complain if that's not +possible). But the C code just calls get_oid(), which will yield the oid +of the tag. + +The fix is to peel to a commit. The error message here is a little +non-idiomatic for Git (since it starts with a capital). I've mostly left +it, as it matches the other converted messages (like the "Bad rev input" +we print when get_oid() fails), though I did add an indication that it +was the peeling that was the problem. It might be worth taking a pass +through this converted code to modernize some of the error messages. + +Note also that the test does a bare "grep" (not i18ngrep) on the +expected "X is the first bad commit" output message. This matches the +rest of the test script. + +Signed-off-by: Jeff King +Signed-off-by: Junio C Hamano +--- + builtin/bisect--helper.c | 9 ++++++++- + t/t6030-bisect-porcelain.sh | 12 ++++++++++++ + 2 files changed, 20 insertions(+), 1 deletion(-) + +diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c +index 709eb713a3ba4..81569530e4f08 100644 +--- a/builtin/bisect--helper.c ++++ b/builtin/bisect--helper.c +@@ -875,12 +875,19 @@ static enum bisect_error bisect_state(struct bisect_terms *terms, const char **a + */ + + for (; argc; argc--, argv++) { ++ struct commit *commit; ++ + if (get_oid(*argv, &oid)){ + error(_("Bad rev input: %s"), *argv); + oid_array_clear(&revs); + return BISECT_FAILED; + } +- oid_array_append(&revs, &oid); ++ ++ commit = lookup_commit_reference(the_repository, &oid); ++ if (!commit) ++ die(_("Bad rev input (not a commit): %s"), *argv); ++ ++ oid_array_append(&revs, &commit->object.oid); + } + + if (strbuf_read_file(&buf, git_path_bisect_expected_rev(), 0) < the_hash_algo->hexsz || +diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh +index 52614eefc7e76..9abcee05548d3 100755 +--- a/t/t6030-bisect-porcelain.sh ++++ b/t/t6030-bisect-porcelain.sh +@@ -936,4 +936,16 @@ test_expect_success 'git bisect reset cleans bisection state properly' ' + test_path_is_missing ".git/BISECT_START" + ' + ++test_expect_success 'bisect handles annotated tags' ' ++ test_commit commit-one && ++ git tag -m foo tag-one && ++ test_commit commit-two && ++ git tag -m foo tag-two && ++ git bisect start && ++ git bisect good tag-one && ++ git bisect bad tag-two >output && ++ bad=$(git rev-parse --verify tag-two^{commit}) && ++ grep "$bad is the first bad commit" output ++' ++ + test_done diff --git a/git.spec b/git.spec index 6d6d55e..c6414a9 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.31.0 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -129,6 +129,9 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# https://lore.kernel.org/git/878s6nz1sg.fsf@igel.home/ +Patch1: https://github.com/git/git/commit/7730f85594.patch#/0001-bisect-peel-annotated-tags-to-commits.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1070,6 +1073,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Mar 19 2021 Todd Zullinger - 2.31.0-2 +- fix git bisect with annotaged tags + * Mon Mar 15 2021 Todd Zullinger - 2.31.0-1 - update to 2.31.0 From e4b60c52ef4c51499a5b90b6c856a30344a89e43 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 27 Mar 2021 00:20:43 -0400 Subject: [PATCH 062/202] update to 2.31.1 Release notes: https://github.com/git/git/raw/v2.31.1/Documentation/RelNotes/2.31.1.txt --- ...isect-peel-annotated-tags-to-commits.patch | 83 ------------------- git.spec | 10 +-- sources | 4 +- 3 files changed, 7 insertions(+), 90 deletions(-) delete mode 100644 0001-bisect-peel-annotated-tags-to-commits.patch diff --git a/0001-bisect-peel-annotated-tags-to-commits.patch b/0001-bisect-peel-annotated-tags-to-commits.patch deleted file mode 100644 index 447c6fe..0000000 --- a/0001-bisect-peel-annotated-tags-to-commits.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 7730f85594d4595605934e39d1d816ab663d8fa8 Mon Sep 17 00:00:00 2001 -From: Jeff King -Date: Tue, 16 Mar 2021 11:15:55 -0400 -Subject: [PATCH] bisect: peel annotated tags to commits - -This patch fixes a bug where git-bisect doesn't handle receiving -annotated tags as "git bisect good ", etc. It's a regression in -27257bc466 (bisect--helper: reimplement `bisect_state` & `bisect_head` -shell functions in C, 2020-10-15). - -The original shell code called: - - sha=$(git rev-parse --verify "$rev^{commit}") || - die "$(eval_gettext "Bad rev input: \$rev")" - -which will peel the input to a commit (or complain if that's not -possible). But the C code just calls get_oid(), which will yield the oid -of the tag. - -The fix is to peel to a commit. The error message here is a little -non-idiomatic for Git (since it starts with a capital). I've mostly left -it, as it matches the other converted messages (like the "Bad rev input" -we print when get_oid() fails), though I did add an indication that it -was the peeling that was the problem. It might be worth taking a pass -through this converted code to modernize some of the error messages. - -Note also that the test does a bare "grep" (not i18ngrep) on the -expected "X is the first bad commit" output message. This matches the -rest of the test script. - -Signed-off-by: Jeff King -Signed-off-by: Junio C Hamano ---- - builtin/bisect--helper.c | 9 ++++++++- - t/t6030-bisect-porcelain.sh | 12 ++++++++++++ - 2 files changed, 20 insertions(+), 1 deletion(-) - -diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c -index 709eb713a3ba4..81569530e4f08 100644 ---- a/builtin/bisect--helper.c -+++ b/builtin/bisect--helper.c -@@ -875,12 +875,19 @@ static enum bisect_error bisect_state(struct bisect_terms *terms, const char **a - */ - - for (; argc; argc--, argv++) { -+ struct commit *commit; -+ - if (get_oid(*argv, &oid)){ - error(_("Bad rev input: %s"), *argv); - oid_array_clear(&revs); - return BISECT_FAILED; - } -- oid_array_append(&revs, &oid); -+ -+ commit = lookup_commit_reference(the_repository, &oid); -+ if (!commit) -+ die(_("Bad rev input (not a commit): %s"), *argv); -+ -+ oid_array_append(&revs, &commit->object.oid); - } - - if (strbuf_read_file(&buf, git_path_bisect_expected_rev(), 0) < the_hash_algo->hexsz || -diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh -index 52614eefc7e76..9abcee05548d3 100755 ---- a/t/t6030-bisect-porcelain.sh -+++ b/t/t6030-bisect-porcelain.sh -@@ -936,4 +936,16 @@ test_expect_success 'git bisect reset cleans bisection state properly' ' - test_path_is_missing ".git/BISECT_START" - ' - -+test_expect_success 'bisect handles annotated tags' ' -+ test_commit commit-one && -+ git tag -m foo tag-one && -+ test_commit commit-two && -+ git tag -m foo tag-two && -+ git bisect start && -+ git bisect good tag-one && -+ git bisect bad tag-two >output && -+ bad=$(git rev-parse --verify tag-two^{commit}) && -+ grep "$bad is the first bad commit" output -+' -+ - test_done diff --git a/git.spec b/git.spec index c6414a9..6aba386 100644 --- a/git.spec +++ b/git.spec @@ -96,8 +96,8 @@ #global rcrev .rc0 Name: git -Version: 2.31.0 -Release: 2%{?rcrev}%{?dist} +Version: 2.31.1 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -129,9 +129,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# https://lore.kernel.org/git/878s6nz1sg.fsf@igel.home/ -Patch1: https://github.com/git/git/commit/7730f85594.patch#/0001-bisect-peel-annotated-tags-to-commits.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1073,6 +1070,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Mar 27 2021 Todd Zullinger - 2.31.1-1 +- update to 2.31.1 + * Fri Mar 19 2021 Todd Zullinger - 2.31.0-2 - fix git bisect with annotaged tags diff --git a/sources b/sources index 043f8c9..c9311bd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.31.0.tar.xz) = b8f7608d4349c983c426494227b0ec9d032e67c775382a32675418f629f365817ac99a61c24e3a380bc5eb65351058dbf55d526890055acf58ad4f028022f513 -SHA512 (git-2.31.0.tar.sign) = 228cce4cc4d43d83fae68ff93d5d77b0601779756812c8eaa374c39ac2a5757bdeea4b5ce9950c4bb9661d09fee88f5d73c309f74a1728e66d1eeeec341295e0 +SHA512 (git-2.31.1.tar.xz) = 9aa334a3e8519700ff5d112153ec42677722980094caa9d22aa91afdb65166bd9a98fa445c0d327c428ebfa73bf4832e9b3836109a1d9319feafe3191cfd170e +SHA512 (git-2.31.1.tar.sign) = 0a721876f9869d1dc9a43e7f83f8e63a3d8fa932ff2d2e69bb98f3e314e2e9a896c2171cb6a020d6c6e929fdf1af736dbeb3f25f93fb4d359a9aaa5b859069c3 From 7e7f589af7d6a287e9eadb53dd5d5316a1aa73a0 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 6 Apr 2021 09:58:48 -0400 Subject: [PATCH 063/202] remove two stray %defattr macros from %%files sections All %defattr macros were removed in ff200ca (Remove obsolete %defattr, 2018-02-07). Two were subsequently added in f8a83b9 (Move instaweb to a subpackage, 2018-09-06) and 9d91bab (split libsecret credential helper into a subpackage (#1804741), 2020-02-19). Remove both entries and (hopefully) avoid adding new entries in the future. --- git.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 6aba386..ebf8e24 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.31.1 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -964,7 +964,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %if %{with libsecret} %files credential-libsecret -%defattr(-,root,root) %{gitexecdir}/git-credential-libsecret %endif # endif with libsecret @@ -1036,7 +1035,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-citool.html} %files instaweb -%defattr(-,root,root) %{gitexecdir}/git-instaweb %{_pkgdocdir}/git-instaweb.txt %{?with_docs:%{_mandir}/man1/git-instaweb.1*} @@ -1070,6 +1068,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Apr 06 2021 Todd Zullinger - 2.31.1-2 +- remove two stray %%defattr macros from %%files sections + * Sat Mar 27 2021 Todd Zullinger - 2.31.1-1 - update to 2.31.1 From bf80478210ced9425aafb16d3a2ead35338341d7 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 21 Apr 2021 09:23:44 -0400 Subject: [PATCH 064/202] apply upstream patch to fix clone --bare segfault If core.bare=false is set in the global git config, git clone --bare results in a segfault. Fix it. Resolves: rhbz#1952030 Upstream-patch: https://github.com/git/git/commit/75555676ad Upstream-report: https://lore.kernel.org/git/D99DD9AD-54E5-4357-BA50-8B9CAE23084E@amazon.com/ --- ...handle-bare-clones-when-core.bare-se.patch | 81 +++++++++++++++++++ git.spec | 11 ++- 2 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch diff --git a/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch b/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch new file mode 100644 index 0000000..b8bc81b --- /dev/null +++ b/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch @@ -0,0 +1,81 @@ +From 7fc363e4e64f095553e1a1ceed27caef3a33effd Mon Sep 17 00:00:00 2001 +From: "brian m. carlson" +Date: Wed, 10 Mar 2021 01:11:20 +0000 +Subject: [PATCH] builtin/init-db: handle bare clones when core.bare set to + false + +In 552955ed7f ("clone: use more conventional config/option layering", +2020-10-01), clone learned to read configuration options earlier in its +execution, before creating the new repository. However, that led to a +problem: if the core.bare setting is set to false in the global config, +cloning a bare repository segfaults. This happens because the +repository is falsely thought to be non-bare, but clone has set the work +tree to NULL, which is then dereferenced. + +The code to initialize the repository already considers the fact that a +user might want to override the --bare option for git init, but it +doesn't take into account clone, which uses a different option. Let's +just check that the work tree is not NULL, since that's how clone +indicates that the repository is bare. This is also the case for git +init, so we won't be regressing that case. + +Reported-by: Joseph Vusich +Signed-off-by: brian m. carlson +Signed-off-by: Junio C Hamano +(cherry picked from commit 75555676ad3908b0f847a9ae154c35e12114c82f) +--- + builtin/init-db.c | 4 ++-- + t/t5606-clone-options.sh | 8 ++++++++ + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/builtin/init-db.c b/builtin/init-db.c +index dcc45bef51..f82efe4aff 100644 +--- a/builtin/init-db.c ++++ b/builtin/init-db.c +@@ -212,6 +212,7 @@ static int create_default_files(const char *template_path, + int reinit; + int filemode; + struct strbuf err = STRBUF_INIT; ++ const char *work_tree = get_git_work_tree(); + + /* Just look for `init.templatedir` */ + init_db_template_dir = NULL; /* re-set in case it was set before */ +@@ -235,7 +236,7 @@ static int create_default_files(const char *template_path, + * We must make sure command-line options continue to override any + * values we might have just re-read from the config. + */ +- is_bare_repository_cfg = init_is_bare_repository; ++ is_bare_repository_cfg = init_is_bare_repository || !work_tree; + if (init_shared_repository != -1) + set_shared_repository(init_shared_repository); + +@@ -299,7 +300,6 @@ static int create_default_files(const char *template_path, + if (is_bare_repository()) + git_config_set("core.bare", "true"); + else { +- const char *work_tree = get_git_work_tree(); + git_config_set("core.bare", "false"); + /* allow template config file to override the default */ + if (log_all_ref_updates == LOG_REFS_UNSET) +diff --git a/t/t5606-clone-options.sh b/t/t5606-clone-options.sh +index 1da6ddb2c5..428b0aac93 100755 +--- a/t/t5606-clone-options.sh ++++ b/t/t5606-clone-options.sh +@@ -104,6 +104,14 @@ test_expect_success 'redirected clone -v does show progress' ' + + ' + ++test_expect_success 'clone does not segfault with --bare and core.bare=false' ' ++ test_config_global core.bare false && ++ git clone --bare parent clone-bare && ++ echo true >expect && ++ git -C clone-bare rev-parse --is-bare-repository >actual && ++ test_cmp expect actual ++' ++ + test_expect_success 'chooses correct default initial branch name' ' + GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= \ + git -c init.defaultBranch=foo init --bare empty && +-- +2.31.1 + diff --git a/git.spec b/git.spec index ebf8e24..76c25c7 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.31.1 -Release: 2%{?rcrev}%{?dist} +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -129,6 +129,11 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# https://bugzilla.redhat.com/1952030 +# https://lore.kernel.org/git/D99DD9AD-54E5-4357-BA50-8B9CAE23084E@amazon.com/ +# https://github.com/git/git/commit/75555676ad +Patch1: 0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1068,6 +1073,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Apr 21 2021 Todd Zullinger - 2.31.1-3 +- apply upstream patch to fix clone --bare segfault + Resolves: rhbz#1952030 + * Tue Apr 06 2021 Todd Zullinger - 2.31.1-2 - remove two stray %%defattr macros from %%files sections From d6f2c616bc6d910caf9925ae6fa416d10e381434 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Fri, 21 May 2021 23:58:49 +0200 Subject: [PATCH 065/202] Perl 5.34 rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 76c25c7..14b6e17 100644 --- a/git.spec +++ b/git.spec @@ -97,7 +97,7 @@ Name: git Version: 2.31.1 -Release: 3%{?rcrev}%{?dist} +Release: 3%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1073,6 +1073,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 +- Perl 5.34 rebuild + * Wed Apr 21 2021 Todd Zullinger - 2.31.1-3 - apply upstream patch to fix clone --bare segfault Resolves: rhbz#1952030 From b1bd88b45bacb150f7df5e0977b935f2e7a85a9d Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 16 May 2021 16:44:47 -0400 Subject: [PATCH 066/202] clean up various dist conditionals Remove all conditionals for EL-6; it is EOL as of November 2020. Replace a number of `EL > 7` with `EL >= 8` to make the intention clearer. The next version of RHEL is no longer shrouded in mystery. Drop conditionals which apply only to long-obsolete Fedora releases. --- git.spec | 120 +++++++++---------------------------------------------- 1 file changed, 19 insertions(+), 101 deletions(-) diff --git a/git.spec b/git.spec index 14b6e17..0addff1 100644 --- a/git.spec +++ b/git.spec @@ -28,8 +28,8 @@ %bcond_with asciidoctor %endif -# Settings for Fedora and EL > 7 -%if 0%{?fedora} || 0%{?rhel} > 7 +# Settings for Fedora and EL >= 8 +%if 0%{?fedora} || 0%{?rhel} >= 8 %bcond_with python2 %bcond_without python3 %global gitweb_httpd_conf gitweb.conf @@ -47,32 +47,21 @@ # Settings for Fedora and EL >= 7 %if 0%{?fedora} || 0%{?rhel} >= 7 -%bcond_without libsecret -%global bashcomp_pkgconfig 1 %global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) %global bashcomproot %(dirname %{bashcompdir} 2>/dev/null) -%global emacs_filesystem 1 -%global use_new_rpm_filters 1 -%global use_systemd 1 -%else -%bcond_with libsecret -%global bashcomp_pkgconfig 0 -%global bashcompdir %{_sysconfdir}/bash_completion.d -%global bashcomproot %{bashcompdir} -%global emacs_filesystem 0 -%global use_new_rpm_filters 0 -%global use_systemd 0 -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} %endif # Allow cvs subpackage to be toggled via --with/--without -# Disable cvs subpackage by default on EL > 7 -%if 0%{?rhel} > 7 +# Disable cvs subpackage by default on EL >= 8 +%if 0%{?rhel} >= 8 %bcond_with cvs %else %bcond_without cvs %endif +# Allow credential-libsecret subpackage to be toggled via --with/--without +%bcond_without libsecret + # Allow p4 subpackage to be toggled via --with/--without # Disable by default if we lack python2 support %if %{without python2} @@ -86,12 +75,6 @@ %global _hardened_build 1 %endif -# Hardening flags for EL-6 -%if 0%{?rhel} == 6 -%global build_cflags %{build_cflags} -fPIC -pie -%global build_ldflags -Wl,-z,relro -Wl,-z,now -%endif - # Define for release candidates #global rcrev .rc0 @@ -186,16 +169,10 @@ BuildRequires: perl-interpreter BuildRequires: perl %endif # endif use_perl_interpreter -%if %{bashcomp_pkgconfig} BuildRequires: pkgconfig(bash-completion) -%endif -# endif bashcomp_pkgconfig BuildRequires: sed -%if %{use_systemd} # For macros BuildRequires: systemd -%endif -# endif use_systemd BuildRequires: tcl BuildRequires: tk BuildRequires: xz @@ -204,7 +181,7 @@ BuildRequires: zlib-devel >= 1.2 %if %{with tests} # Test suite requirements BuildRequires: acl -%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 +%if 0%{?fedora} || 0%{?rhel} >= 8 # Needed by t5540-http-push-webdav.sh BuildRequires: apr-util-bdb %endif @@ -223,18 +200,14 @@ BuildRequires: glibc-langpack-en BuildRequires: glibc-langpack-is %endif # endif use_glibc_langpacks -%if 0%{?fedora} && 0%{?fedora} < 30 -BuildRequires: gnupg -%endif -# endif fedora < 30 -%if 0%{?fedora} || 0%{?rhel} > 8 +%if 0%{?fedora} || 0%{?rhel} >= 9 BuildRequires: gnupg2-smime %endif -# endif fedora or el > 8 -%if 0%{?fedora} || 0%{?rhel} == 6 || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) +# endif fedora or el >= 9 +%if 0%{?fedora} || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) BuildRequires: highlight %endif -# endif fedora, el-6, or el7+ (ppc64le/x86_64) +# endif fedora or el7+ (ppc64le/x86_64) BuildRequires: httpd %if 0%{?fedora} && ! ( "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) BuildRequires: jgit @@ -286,10 +259,10 @@ Requires: perl(Term::ReadKey) # endif ! defined perl_bootstrap Requires: perl-Git = %{version}-%{release} -%if %{with emacs} && %{emacs_filesystem} && %{defined _emacs_version} +%if %{with emacs} && %{defined _emacs_version} Requires: emacs-filesystem >= %{_emacs_version} %endif -# endif with emacs && emacs_filesystem +# endif with emacs && defined _emacs_version # Obsolete emacs-git if it's disabled %if %{without emacs} @@ -346,10 +319,6 @@ Requires: perl-Git = %{version}-%{release} Requires: perl(Term::ReadKey) %endif # endif ! defined perl_bootstrap -%if %{with emacs} && ! %{emacs_filesystem} -Requires: emacs-git = %{version}-%{release} -%endif -# endif with emacs && ! emacs_filesystem %description all Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations @@ -405,15 +374,10 @@ Requires: perl(DBD::SQLite) %package daemon Summary: Git protocol daemon Requires: git-core = %{version}-%{release} -%if %{use_systemd} Requires: systemd Requires(post): systemd Requires(preun): systemd Requires(postun): systemd -%else -Requires: xinetd -%endif -# endif use_systemd %description daemon The git daemon for supporting git:// access to git repositories @@ -426,19 +390,6 @@ Requires: perl(Net::SMTP::SSL) %description email %{summary}. -%if %{with emacs} && ! %{emacs_filesystem} -%package -n emacs-git -Summary: Git version control system support for Emacs -Requires: git = %{version}-%{release} -BuildArch: noarch -Requires: emacs(bin) >= %{_emacs_version} -Obsoletes: emacs-git-el < 2.18.0-0.0 -Provides: emacs-git-el = %{version}-%{release} -%description -n emacs-git -%{summary}. -%endif -# endif with emacs && ! emacs_filesystem - %package -n gitk Summary: Git repository browser BuildArch: noarch @@ -587,24 +538,12 @@ EOF # Filter bogus perl requires # packed-refs comes from a comment in contrib/hooks/update-paranoid -%if %{use_new_rpm_filters} %{?perl_default_filter} %global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(packed-refs\\) %if ! %{defined perl_bootstrap} %global __requires_exclude %{?__requires_exclude:%__requires_exclude|}perl\\(Term::ReadKey\\) %endif # endif ! defined perl_bootstrap -%else -cat << \EOF > %{name}-req -#!/bin/sh -%{__perl_requires} $* |\ -sed -e '/perl(packed-refs)/d' -EOF - -%global __perl_requires %{_builddir}/%{name}-%{version}%{?rcrev}/%{name}-req -chmod +x %{__perl_requires} -%endif -# endif use_new_rpm_filters # Remove Git::LoadCPAN to ensure we use only system perl modules. This also # allows the dependencies to be automatically processed by rpm. @@ -744,20 +683,11 @@ rm -rf %{buildroot}%{_mandir} # endif with docs mkdir -p %{buildroot}%{_localstatedir}/lib/git -%if %{use_systemd} install -Dp -m 0644 %{SOURCE16} %{buildroot}%{_unitdir}/git.socket perl -p \ -e "s|\@GITEXECDIR\@|%{gitexecdir}|g;" \ -e "s|\@BASE_PATH\@|%{_localstatedir}/lib/git|g;" \ %{SOURCE15} > %{buildroot}%{_unitdir}/git@.service -%else -mkdir -p %{buildroot}%{_sysconfdir}/xinetd.d -perl -p \ - -e "s|\@GITEXECDIR\@|%{gitexecdir}|g;" \ - -e "s|\@BASE_PATH\@|%{_localstatedir}/lib/git|g;" \ - %{SOURCE11} > %{buildroot}%{_sysconfdir}/xinetd.d/git -%endif -# endif use_systemd # Setup bash completion install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{bashcompdir}/git @@ -915,7 +845,6 @@ mv netrc contrib/credential/ # Clean up test dir rmdir --ignore-fail-on-non-empty "$testdir" -%if %{use_systemd} %post daemon %systemd_post git.socket @@ -924,14 +853,12 @@ rmdir --ignore-fail-on-non-empty "$testdir" %postun daemon %systemd_postun_with_restart git.socket -%endif -# endif use_systemd %files -f bin-man-doc-git-files -%if %{with emacs} && %{emacs_filesystem} +%if %{with emacs} %{elispdir} %endif -# endif with emacs && emacs_filesystem +# endif with emacs %{_datadir}/git-core/contrib/diff-highlight %{_datadir}/git-core/contrib/hooks/multimail %{_datadir}/git-core/contrib/hooks/update-paranoid @@ -985,25 +912,13 @@ rmdir --ignore-fail-on-non-empty "$testdir" %files daemon %{_pkgdocdir}/git-daemon*.txt -%if %{use_systemd} %{_unitdir}/git.socket %{_unitdir}/git@.service -%else -%config(noreplace)%{_sysconfdir}/xinetd.d/git -%endif -# endif use_systemd %{gitexecdir}/git-daemon %{_localstatedir}/lib/git %{?with_docs:%{_mandir}/man1/git-daemon*.1*} %{?with_docs:%{_pkgdocdir}/git-daemon*.html} -%if %{with emacs} && ! %{emacs_filesystem} -%files -n emacs-git -%{_pkgdocdir}/contrib/emacs/README -%{elispdir} -%endif -# endif with emacs && ! emacs_filesystem - %files email %{_pkgdocdir}/*email*.txt %{gitexecdir}/*email* @@ -1076,6 +991,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 - Perl 5.34 rebuild +* Sun May 16 2021 Todd Zullinger +- clean up various dist conditionals + * Wed Apr 21 2021 Todd Zullinger - 2.31.1-3 - apply upstream patch to fix clone --bare segfault Resolves: rhbz#1952030 From e67c091cc64fa368eb9a853273e3d2f7cd6381c4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 17 May 2021 09:30:01 -0400 Subject: [PATCH 067/202] update to 2.32.0-rc0 Release notes: https://github.com/git/git/raw/v2.32.0-rc0/Documentation/RelNotes/2.32.0.txt --- ...handle-bare-clones-when-core.bare-se.patch | 81 ------------------- git.spec | 14 ++-- sources | 4 +- 3 files changed, 8 insertions(+), 91 deletions(-) delete mode 100644 0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch diff --git a/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch b/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch deleted file mode 100644 index b8bc81b..0000000 --- a/0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 7fc363e4e64f095553e1a1ceed27caef3a33effd Mon Sep 17 00:00:00 2001 -From: "brian m. carlson" -Date: Wed, 10 Mar 2021 01:11:20 +0000 -Subject: [PATCH] builtin/init-db: handle bare clones when core.bare set to - false - -In 552955ed7f ("clone: use more conventional config/option layering", -2020-10-01), clone learned to read configuration options earlier in its -execution, before creating the new repository. However, that led to a -problem: if the core.bare setting is set to false in the global config, -cloning a bare repository segfaults. This happens because the -repository is falsely thought to be non-bare, but clone has set the work -tree to NULL, which is then dereferenced. - -The code to initialize the repository already considers the fact that a -user might want to override the --bare option for git init, but it -doesn't take into account clone, which uses a different option. Let's -just check that the work tree is not NULL, since that's how clone -indicates that the repository is bare. This is also the case for git -init, so we won't be regressing that case. - -Reported-by: Joseph Vusich -Signed-off-by: brian m. carlson -Signed-off-by: Junio C Hamano -(cherry picked from commit 75555676ad3908b0f847a9ae154c35e12114c82f) ---- - builtin/init-db.c | 4 ++-- - t/t5606-clone-options.sh | 8 ++++++++ - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/builtin/init-db.c b/builtin/init-db.c -index dcc45bef51..f82efe4aff 100644 ---- a/builtin/init-db.c -+++ b/builtin/init-db.c -@@ -212,6 +212,7 @@ static int create_default_files(const char *template_path, - int reinit; - int filemode; - struct strbuf err = STRBUF_INIT; -+ const char *work_tree = get_git_work_tree(); - - /* Just look for `init.templatedir` */ - init_db_template_dir = NULL; /* re-set in case it was set before */ -@@ -235,7 +236,7 @@ static int create_default_files(const char *template_path, - * We must make sure command-line options continue to override any - * values we might have just re-read from the config. - */ -- is_bare_repository_cfg = init_is_bare_repository; -+ is_bare_repository_cfg = init_is_bare_repository || !work_tree; - if (init_shared_repository != -1) - set_shared_repository(init_shared_repository); - -@@ -299,7 +300,6 @@ static int create_default_files(const char *template_path, - if (is_bare_repository()) - git_config_set("core.bare", "true"); - else { -- const char *work_tree = get_git_work_tree(); - git_config_set("core.bare", "false"); - /* allow template config file to override the default */ - if (log_all_ref_updates == LOG_REFS_UNSET) -diff --git a/t/t5606-clone-options.sh b/t/t5606-clone-options.sh -index 1da6ddb2c5..428b0aac93 100755 ---- a/t/t5606-clone-options.sh -+++ b/t/t5606-clone-options.sh -@@ -104,6 +104,14 @@ test_expect_success 'redirected clone -v does show progress' ' - - ' - -+test_expect_success 'clone does not segfault with --bare and core.bare=false' ' -+ test_config_global core.bare false && -+ git clone --bare parent clone-bare && -+ echo true >expect && -+ git -C clone-bare rev-parse --is-bare-repository >actual && -+ test_cmp expect actual -+' -+ - test_expect_success 'chooses correct default initial branch name' ' - GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME= \ - git -c init.defaultBranch=foo init --bare empty && --- -2.31.1 - diff --git a/git.spec b/git.spec index 0addff1..40026a5 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.31.1 -Release: 3%{?rcrev}%{?dist}.1 +Version: 2.32.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -112,11 +112,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# https://bugzilla.redhat.com/1952030 -# https://lore.kernel.org/git/D99DD9AD-54E5-4357-BA50-8B9CAE23084E@amazon.com/ -# https://github.com/git/git/commit/75555676ad -Patch1: 0001-builtin-init-db-handle-bare-clones-when-core.bare-se.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -991,6 +986,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 - Perl 5.34 rebuild +* Mon May 17 2021 Todd Zullinger - 2.32.0-0.0.rc0 +- update to 2.32.0-rc0 + * Sun May 16 2021 Todd Zullinger - clean up various dist conditionals diff --git a/sources b/sources index c9311bd..7269c5b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.31.1.tar.xz) = 9aa334a3e8519700ff5d112153ec42677722980094caa9d22aa91afdb65166bd9a98fa445c0d327c428ebfa73bf4832e9b3836109a1d9319feafe3191cfd170e -SHA512 (git-2.31.1.tar.sign) = 0a721876f9869d1dc9a43e7f83f8e63a3d8fa932ff2d2e69bb98f3e314e2e9a896c2171cb6a020d6c6e929fdf1af736dbeb3f25f93fb4d359a9aaa5b859069c3 +SHA512 (git-2.32.0.rc0.tar.xz) = f75fda443e3640eff21c7be57726e08360141191ac9ffc2f456574e19e4c2cc20403fb32bf45034c03b519f1a385e152e603cf08c6da622f05593b2c4444206f +SHA512 (git-2.32.0.rc0.tar.sign) = 3ab67290db6ac93f51156f811003c7940ac36bd27b5a296909746752e195569ebecaf45eaa848e47653328ab7726e150bbdf54d300175e9c66f2245570b04f2a From 3c9cdffa290d9e27afc83714ce60b834f7ad7be2 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 17 May 2021 10:38:14 -0400 Subject: [PATCH 068/202] add 'missing WINDOWS' to git.skip-test-patterns We're unlikely to provide the 'WINDOWS' prerequisite in our builds. Nor are we likely to care about the tests which are skipped as a result. (Also, 'missing WINDOWS' is not a phrase I thought I'd ever write.) --- git.skip-test-patterns | 1 + 1 file changed, 1 insertion(+) diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 28a66b8..e9db37f 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -14,6 +14,7 @@ missing !PTHREADS missing RFC1991 missing TAR_NEEDS_PAX_FALLBACK missing UTF8_NFD_TO_NFC +missing WINDOWS skipping case insensitive tests skipping git p4 tests skipping remote-svn tests, python not available From 0f6131b58c206ca89a2ee9ba0edf87b674ac4b3c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 22 May 2021 10:16:34 -0400 Subject: [PATCH 069/202] update to 2.32.0-rc1 Release notes: https://github.com/git/git/raw/v2.32.0-rc1/Documentation/RelNotes/2.32.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 40026a5..6bcf2bf 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.32.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -983,6 +983,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat May 22 2021 Todd Zullinger - 2.32.0-0.1.rc1 +- update to 2.32.0-rc1 + * Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 - Perl 5.34 rebuild diff --git a/sources b/sources index 7269c5b..d479188 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.32.0.rc0.tar.xz) = f75fda443e3640eff21c7be57726e08360141191ac9ffc2f456574e19e4c2cc20403fb32bf45034c03b519f1a385e152e603cf08c6da622f05593b2c4444206f -SHA512 (git-2.32.0.rc0.tar.sign) = 3ab67290db6ac93f51156f811003c7940ac36bd27b5a296909746752e195569ebecaf45eaa848e47653328ab7726e150bbdf54d300175e9c66f2245570b04f2a +SHA512 (git-2.32.0.rc1.tar.xz) = 15120245b6279fc1ab8a8c4dde3856641b31b65accac0ace37e57f2e74c8a060973197b59cfbe06f50f9827cdab627a20e07700ac6a9cad5cb8a19877cd27afa +SHA512 (git-2.32.0.rc1.tar.sign) = dd5fa1d06b4bb796edc72f2b04ca2a919ec8f099259a6067f92c3d56f7cad82482b8b5d225c1dc72b0d6087c3c3e48f34eece348e584cb81a87ca64ea934b573 From cfa294748184492919dc615ef364df411b490fb7 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 22 May 2021 11:11:23 -0400 Subject: [PATCH 070/202] re-enable git-p4 with python3 The git-p4 subpackage has been disabled in Fedora 30 via a4b4f7c (Add support for disabling python2, 2018-03-28). Git 2.17.0 was the current release at that time. The git-p4 script subsequently gained python3 support which was released in Git 2.27.0 (2020-05-31). Adjust the python2/python3 conditionals and re-enable git-p4 when either of them are available. Put python3 first in the various conditionals, as that is our primary supported python. We only include python2 to aid in building for EL7. While here, remove the "# endif" comments within the config.mak output. --- git.spec | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/git.spec b/git.spec index 6bcf2bf..a81fcf8 100644 --- a/git.spec +++ b/git.spec @@ -63,11 +63,11 @@ %bcond_without libsecret # Allow p4 subpackage to be toggled via --with/--without -# Disable by default if we lack python2 support -%if %{without python2} -%bcond_with p4 -%else +# Disable by default if we lack python2 or python3 support +%if %{with python2} || %{with python3} %bcond_without p4 +%else +%bcond_with p4 %endif # Hardening flags for EL-7 @@ -230,12 +230,13 @@ BuildRequires: perl(POSIX) BuildRequires: perl(Term::ReadLine) BuildRequires: perl(Test::More) BuildRequires: perl(Time::HiRes) +%if %{with python3} +BuildRequires: python3-devel +%else %if %{with python2} BuildRequires: python2-devel %endif # endif with python2 -%if %{with python3} -BuildRequires: python3-devel %endif # endif with python3 BuildRequires: subversion @@ -428,7 +429,15 @@ repository. %package p4 Summary: Git tools for working with Perforce depots BuildArch: noarch +%if %{with python3} +BuildRequires: python3-devel +%else +%if %{with python2} BuildRequires: python2-devel +%endif +# endif with python2 +%endif +# endif with python3 Requires: git = %{version}-%{release} %description p4 %{summary}. @@ -510,16 +519,18 @@ INSTALL_SYMLINKS = 1 GITWEB_PROJECTROOT = %{_localstatedir}/lib/git GNU_ROFF = 1 NO_PERL_CPAN_FALLBACKS = 1 +%if %{with python3} +PYTHON_PATH = %{__python3} +%else %if %{with python2} PYTHON_PATH = %{__python2} %else NO_PYTHON = 1 %endif -# endif with python2 +%endif %if %{with asciidoctor} USE_ASCIIDOCTOR = 1 %endif -# endif with asciidoctor htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} prefix = %{_prefix} perllibdir = %{perl_vendorlib} @@ -985,6 +996,8 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Sat May 22 2021 Todd Zullinger - 2.32.0-0.1.rc1 - update to 2.32.0-rc1 +- rearrange python2/python3 conditionals +- re-enable git-p4 with python3 * Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 - Perl 5.34 rebuild From 851ee286f88766a0c23cd9100d8e1c371cb196e0 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 22 May 2021 11:29:44 -0400 Subject: [PATCH 071/202] add coreutils BuildRequires We use a number of tools from coreutils, be explicit about the dependency. --- git.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git.spec b/git.spec index a81fcf8..d36ba7c 100644 --- a/git.spec +++ b/git.spec @@ -129,6 +129,7 @@ BuildRequires: linkchecker # endif with linkcheck %endif # endif with docs +BuildRequires: coreutils BuildRequires: desktop-file-utils BuildRequires: diffutils %if %{with emacs} @@ -998,6 +999,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" - update to 2.32.0-rc1 - rearrange python2/python3 conditionals - re-enable git-p4 with python3 +- add coreutils BuildRequires * Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 - Perl 5.34 rebuild From da79638e4ae2d8af2245bc9db0b3435d8f39763e Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 22 May 2021 14:34:38 -0400 Subject: [PATCH 072/202] remove unneeded NEEDS_CRYPTO_WITH_SSL The NEEDS_CRYPTO_WITH_SSL Makefile knob was added in 7878348 (Update to git-1.7.0 - Link imap-send with libcrypto (#565147) - Disable building of unused python remote helper libs, 2010-02-15). It is no longer needed. I'm not sure when it stopped being necessary, though I am sure I tried removing once before in the 11 years since it was added. Builds on Fedora and EL7/EL8 all properly pick up the -lssl -lcrypto flags when compiling git-imap-send. Incidentally, git-imap-send has used libcurl for handling IMAP rather than low-level OpenSSL-based functions on Fedora since upstream commit dbba42bb32 (imap-send: use curl by default when possible, 2017-09-14). This applies to EL8 as well. On EL7, libcurl is too old (>= 7.34.0 is required). --- git.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git.spec b/git.spec index d36ba7c..775f89c 100644 --- a/git.spec +++ b/git.spec @@ -513,7 +513,6 @@ cat << \EOF | tee config.mak V = 1 CFLAGS = %{build_cflags} LDFLAGS = %{build_ldflags} -NEEDS_CRYPTO_WITH_SSL = 1 USE_LIBPCRE = 1 ETC_GITCONFIG = %{_sysconfdir}/gitconfig INSTALL_SYMLINKS = 1 @@ -1000,6 +999,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" - rearrange python2/python3 conditionals - re-enable git-p4 with python3 - add coreutils BuildRequires +- remove unneeded NEEDS_CRYPTO_WITH_SSL * Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 - Perl 5.34 rebuild From 1d9a879da8ab0b8d167b453eb581a385a4555fcb Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Mon, 24 May 2021 09:58:31 +0200 Subject: [PATCH 073/202] Perl 5.34 re-rebuild of bootstrapped packages --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 775f89c..ffcd628 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.32.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -994,6 +994,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon May 24 2021 Jitka Plesnikova - 2.32.0-0.2.rc1 +- Perl 5.34 re-rebuild of bootstrapped packages + * Sat May 22 2021 Todd Zullinger - 2.32.0-0.1.rc1 - update to 2.32.0-rc1 - rearrange python2/python3 conditionals From 02138d4e5cb5d26b65610ff59b3d9bc45d7594bd Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 28 May 2021 10:27:29 -0400 Subject: [PATCH 074/202] update to 2.32.0-rc2 Release notes: https://github.com/git/git/raw/v2.32.0-rc2/Documentation/RelNotes/2.32.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index ffcd628..d877548 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.32.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 0.3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -994,6 +994,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri May 28 2021 Todd Zullinger - 2.32.0-0.3.rc2 +- update to 2.32.0-rc2 + * Mon May 24 2021 Jitka Plesnikova - 2.32.0-0.2.rc1 - Perl 5.34 re-rebuild of bootstrapped packages diff --git a/sources b/sources index d479188..b850c53 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.32.0.rc1.tar.xz) = 15120245b6279fc1ab8a8c4dde3856641b31b65accac0ace37e57f2e74c8a060973197b59cfbe06f50f9827cdab627a20e07700ac6a9cad5cb8a19877cd27afa -SHA512 (git-2.32.0.rc1.tar.sign) = dd5fa1d06b4bb796edc72f2b04ca2a919ec8f099259a6067f92c3d56f7cad82482b8b5d225c1dc72b0d6087c3c3e48f34eece348e584cb81a87ca64ea934b573 +SHA512 (git-2.32.0.rc2.tar.xz) = 1e9d96d4c54882f571dd5fd075ebe842ecd4da24cf97d06fd65f9fa81baa55b1d74237164b9cae64249c242b90e375f71dc52d6b1d700cf2d6abb7e18c1c1206 +SHA512 (git-2.32.0.rc2.tar.sign) = 428b2bda35e77a6d67a774dc5f0b78f1886553259ad9311bd6db545e6f7d4cfa85246c590573d939af39c9fa39edc0e7b675be02e4a0b8bc079425309628154c From c052174f853846753c32d1b2d4d53c8d596a9e65 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 2 Jun 2021 11:06:13 -0400 Subject: [PATCH 075/202] update to 2.32.0-rc3 Release notes: https://github.com/git/git/raw/v2.32.0-rc3/Documentation/RelNotes/2.32.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index d877548..f252b5b 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +%global rcrev .rc3 Name: git Version: 2.32.0 -Release: 0.3%{?rcrev}%{?dist} +Release: 0.4%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -994,6 +994,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jun 02 2021 Todd Zullinger - 2.32.0-0.4.rc3 +- update to 2.32.0-rc3 + * Fri May 28 2021 Todd Zullinger - 2.32.0-0.3.rc2 - update to 2.32.0-rc2 diff --git a/sources b/sources index b850c53..29a77e3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.32.0.rc2.tar.xz) = 1e9d96d4c54882f571dd5fd075ebe842ecd4da24cf97d06fd65f9fa81baa55b1d74237164b9cae64249c242b90e375f71dc52d6b1d700cf2d6abb7e18c1c1206 -SHA512 (git-2.32.0.rc2.tar.sign) = 428b2bda35e77a6d67a774dc5f0b78f1886553259ad9311bd6db545e6f7d4cfa85246c590573d939af39c9fa39edc0e7b675be02e4a0b8bc079425309628154c +SHA512 (git-2.32.0.rc3.tar.xz) = 567873b78120476ea1072ce89c1370a3678796e9afe1871cbf7983c290b75d54d2c0192e44de8c265c1f24bf393adc92edfa159a7c82b000e1caa39ebd5eec5d +SHA512 (git-2.32.0.rc3.tar.sign) = 08715484598a103c45be2c893faf2e4aff94e4a133e3f57c48a11b7383a557cce3631a6cef9b1b90e6955c9e49e3bf2c344d7f24c68f5115173c57a74e96a08c From 407b015e7a5dda9b1dccb7e377770f549de56275 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 3 Jun 2021 19:25:52 -0400 Subject: [PATCH 076/202] drop jgit BR on Fedora >= 35 With the impending removal of a large chunk of the Java package set, jgit will become unavailable as a BuildRequires in Fedora soon. Remove the build dependency on Fedora >= 35. As noted in 8faf622 (drop jgit BR on Fedora > 30, 2019-07-29), this affects 3 tests, 2 for packfile format (t5310-pack-bitmaps) and 1 of ls-remote (t5512-ls-remote). --- git.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index f252b5b..a226e5d 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.32.0 -Release: 0.4%{?rcrev}%{?dist} +Release: 0.5%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -205,7 +205,7 @@ BuildRequires: highlight %endif # endif fedora or el7+ (ppc64le/x86_64) BuildRequires: httpd -%if 0%{?fedora} && ! ( "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) +%if 0%{?fedora} && ! ( 0%{?fedora} >= 35 || "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) BuildRequires: jgit %endif # endif fedora (except i386 and s390x) @@ -994,6 +994,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 +- drop jgit on Fedora >= 35 + Resolves: rhbz#1965808 + * Wed Jun 02 2021 Todd Zullinger - 2.32.0-0.4.rc3 - update to 2.32.0-rc3 From c2eba54e84dc2436d4305ad8ca81098451d05d5e Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 6 Jun 2021 11:34:56 -0400 Subject: [PATCH 077/202] update to 2.32.0 Release notes: https://github.com/git/git/raw/v2.32.0/Documentation/RelNotes/2.32.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index a226e5d..54fec61 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -%global rcrev .rc3 +#global rcrev .rc0 Name: git Version: 2.32.0 -Release: 0.5%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -994,6 +994,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sun Jun 06 2021 Todd Zullinger - 2.32.0-1 +- update to 2.32.0 + * Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 - drop jgit on Fedora >= 35 Resolves: rhbz#1965808 diff --git a/sources b/sources index 29a77e3..56ef012 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.32.0.rc3.tar.xz) = 567873b78120476ea1072ce89c1370a3678796e9afe1871cbf7983c290b75d54d2c0192e44de8c265c1f24bf393adc92edfa159a7c82b000e1caa39ebd5eec5d -SHA512 (git-2.32.0.rc3.tar.sign) = 08715484598a103c45be2c893faf2e4aff94e4a133e3f57c48a11b7383a557cce3631a6cef9b1b90e6955c9e49e3bf2c344d7f24c68f5115173c57a74e96a08c +SHA512 (git-2.32.0.tar.xz) = 1ab3e7022ccee411d14a7da5c37d6259ef5c0f85ebed8f49698e25c65cbc7a46f8096919fcb6568360bfe284dd7475b596eee1a167db966096255a405853837c +SHA512 (git-2.32.0.tar.sign) = 0f21129c6993a2b1742152829a33064205fb148bd3e26fd3a5f996c31ff920c9f0f22e259d2159eef24b75ac3a592c3152277e5046506e1aabc765bc25f583b9 From 7099f641de7fb23a20a97a62ff6577ae3e9a8dd8 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 6 Jun 2021 11:36:55 -0400 Subject: [PATCH 078/202] add perl(File::Compare) BuildRequires MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Documentation/cmd-list.perl script requires File::Compare to generate various cmds-$area.txt file which are included in the main git help. This has been broken since File::Compare was split from the main perl package in 3b63b8c (Subpackage File::Compare, 2020-01-06)¹. The result is a broken git man/html page. In git(1), the output is: HIGH-LEVEL COMMANDS (PORCELAIN) We separate the porcelain commands into the main commands and some ancillary user utilities. Main porcelain commands Unresolved directive in git.txt - include::cmds-mainporcelain.txt[] Ancillary Commands Manipulators: Unresolved directive in git.txt - include::cmds-ancillarymanipulators.txt[] Interrogators: Unresolved directive in git.txt - include::cmds-ancillaryinterrogators.txt[] ... This is logged during the build: make[1]: Entering directory '/builddir/build/BUILD/git-2.32.0.rc3/Documentation' rm -f cmd-list.made && \ /usr/bin/perl ./cmd-list.perl ../command-list.txt cmds-ancillaryinterrogators.txt cmds-ancillarymanipulators.txt cmds-mainporcelain.txt cmds-plumbinginterrogators.txt cmds-plumbingmanipulators.txt cmds-synchingrepositories.txt cmds-synchelpers.txt cmds-guide.txt cmds-purehelpers.txt cmds-foreignscminterface.txt && \ date >cmd-list.made Can't locate File/Compare.pm in @INC (you may need to install the File::Compare module) (@INC contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./cmd-list.perl line 3. BEGIN failed--compilation aborted at ./cmd-list.perl line 3. make[1]: Leaving directory '/builddir/build/BUILD/git-2.32.0.rc3/Documentation' This should probably cause a make error rather than generating incomplete documentation. I'll try to report this upstream (ideally with a patch to resolve it). It's also worth remembering to search the build logs for such failures. "Can't locate .* in @INC" and "BEGIN failed" are good strings to search. ¹ https://src.fedoraproject.org/rpms/perl/c/3b63b8c --- git.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git.spec b/git.spec index 54fec61..e3d4f03 100644 --- a/git.spec +++ b/git.spec @@ -122,6 +122,7 @@ BuildRequires: rubygem-asciidoctor BuildRequires: asciidoc >= 8.4.1 %endif # endif with asciidoctor +BuildRequires: perl(File::Compare) BuildRequires: xmlto %if %{with linkcheck} BuildRequires: linkchecker @@ -996,6 +997,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Sun Jun 06 2021 Todd Zullinger - 2.32.0-1 - update to 2.32.0 +- add perl(File::Compare) BuildRequires * Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 - drop jgit on Fedora >= 35 From a1de5bd2d60ccd07e58c89fa4d16c5c4cc11ebd7 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 6 Jun 2021 12:09:37 -0400 Subject: [PATCH 079/202] fix var to enable git-svn tests with httpd Upstream commit 3b072c577b (tests: replace test_tristate with "git env--helper", 2019-06-21) semi-broke the git-svn tests which require httpd. This was subsequently fixed in upstream commit 6a20b62d7e (t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests, 2019-09-06). The upstream fix also adjusted the variable name to follow the preferred naming scheme, i.e. GIT_SVN_TEST_ -> GIT_TEST_SVN_. Fix the variable in %check to indicate that we want those tests to run. We were still running the tests because we had all the necessary dependencies. But we want to ensure that we don't skip them opportunistically if those dependencies ever change. Update comment which suggest a method for (manually) checking such variables in the test suite. --- git.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index e3d4f03..d01b350 100644 --- a/git.spec +++ b/git.spec @@ -826,11 +826,13 @@ export GIT_SKIP_TESTS export LANG=en_US.UTF-8 # Explicitly enable tests which may be skipped opportunistically -# (Check for variables set via test_tristate in the test suite) -export GIT_SVN_TEST_HTTPD=true +# Check for variables set via test_bool_env in the test suite: +# git grep 'test_bool_env GIT_' -- t/{lib-,t[0-9]}*.sh | +# sed -r 's/.* (GIT_[^ ]+) .*/\1/g' | sort -u export GIT_TEST_GIT_DAEMON=true export GIT_TEST_HTTPD=true export GIT_TEST_SVNSERVE=true +export GIT_TEST_SVN_HTTPD=true # Create tmpdir for test output and update GIT_TEST_OPTS # Also update GIT-BUILD-OPTIONS to keep make from any needless rebuilding @@ -998,6 +1000,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Sun Jun 06 2021 Todd Zullinger - 2.32.0-1 - update to 2.32.0 - add perl(File::Compare) BuildRequires +- fix var to enable git-svn tests with httpd * Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 - drop jgit on Fedora >= 35 From 6deecbd62e7a6d2c09507413855729e53ab81a7f Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 6 Jun 2021 12:15:16 -0400 Subject: [PATCH 080/202] remove %changelog entries prior to 2019 The git history serves as the repository for the old entries. The changelog was roughly 20% of the total lines in the spec file. --- git.spec | 351 +------------------------------------------------------ 1 file changed, 1 insertion(+), 350 deletions(-) diff --git a/git.spec b/git.spec index d01b350..d06043b 100644 --- a/git.spec +++ b/git.spec @@ -1001,6 +1001,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" - update to 2.32.0 - add perl(File::Compare) BuildRequires - fix var to enable git-svn tests with httpd +- remove %%changelog entries prior to 2019 * Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 - drop jgit on Fedora >= 35 @@ -1326,353 +1327,3 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Thu Jan 31 2019 Fedora Release Engineering - 2.20.1-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Dec 15 2018 Todd Zullinger - 2.20.1-1 -- Update to 2.20.1 - -* Sun Dec 09 2018 Todd Zullinger - 2.20.0-1 -- Update to 2.20.0 - -* Sat Dec 01 2018 Todd Zullinger - 2.20.0-0.2.rc2 -- Update to 2.20.0.rc2 - -* Wed Nov 21 2018 Todd Zullinger - 2.20.0-0.1.rc1 -- Update to 2.20.0.rc1 - -* Wed Nov 21 2018 Todd Zullinger - 2.19.2-1 -- Update to 2.19.2 - -* Tue Oct 23 2018 Todd Zullinger -- Skip test BuildRequires when --without tests is used -- Simplify gpg verification of Source0 -- Use %%{without ...} macro consistently -- Add comments to %%endif statements -- Add glibc-langpack-en BuildRequires for en_US.UTF-8 locale - -* Mon Oct 22 2018 Pavel Cahyna - 2.19.1-2 -- Update condition for the t5540-http-push-webdav test for future RHEL - -* Fri Oct 05 2018 Todd Zullinger - 2.19.1-1 -- Update to 2.19.1 (CVE-2018-17456) - -* Mon Sep 10 2018 Todd Zullinger - 2.19.0-1 -- Update to 2.19.0 - -* Fri Sep 07 2018 Todd Zullinger - 2.19.0-0.5.rc2 -- Fix smart-http test due to changes in cookie sort order in curl-7.61.1 -- Add --without tests option to skip tests - -* Thu Sep 06 2018 Sebastian Kisela - 2.19.0-0.4.rc2 -- Move instaweb to a separate subpackage -- Fix builds without docs and without cvs and/or p4 - -* Tue Sep 04 2018 Todd Zullinger - 2.19.0-0.3.rc2 -- Update to 2.19.0.rc2 -- Drop unnecessary Conflicts: when git-p4 is disabled -- Obsolete git-cvs if it's disabled -- Remove contrib/fast-import/import-zips.py, contrib/hg-to-git, and - contrib/svn-fe which all require python2 -- Drop git-gnome-keyring obsolete for fedora > 30 - -* Tue Sep 04 2018 Nils Philippsen - 2.19.0-0.2.rc1 -- obsolete git-p4 if it's disabled - -* Tue Aug 28 2018 Todd Zullinger - 2.19.0-0.1.rc1 -- Update to 2.19.0.rc1 - -* Mon Aug 20 2018 Todd Zullinger - 2.19.0-0.0.rc0 -- Update to 2.19.0.rc0 - -* Mon Aug 20 2018 Todd Zullinger - 2.18.0-2.5 -- Remove git-remote-testsvn, make git-svn noarch -- Restore fixed contrib/credential/netrc tests - -* Fri Jul 13 2018 Fedora Release Engineering - 2.18.0-2.4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Jul 03 2018 Petr Pisar - 2.18.0-2.3 -- Perl 5.28 rebuild - -* Sun Jul 01 2018 Jitka Plesnikova - 2.18.0-2.2 -- Perl 5.28 re-rebuild of bootstrapped packages - -* Fri Jun 29 2018 Jitka Plesnikova - 2.18.0-2.1 -- Perl 5.28 rebuild - -* Mon Jun 25 2018 Pavel Cahyna - 2.18.0-2 -- Fix build --without cvs - -* Wed Jun 20 2018 Todd Zullinger - 2.18.0-1 -- Update to 2.18.0 - -* Tue Jun 19 2018 Miro Hrončok - 2.18.0-0.3.rc2 -- Rebuilt for Python 3.7 - -* Wed Jun 13 2018 Todd Zullinger - 2.18.0-0.2.rc2 -- Update to 2.18.0-rc2 -- Apply upstream zlib buffer handling patch (#1582555) - -* Wed Jun 06 2018 Todd Zullinger -- Include git-contacts, SubmittingPatches suggests it to users -- Build git-subtree docs in %%build - -* Mon Jun 04 2018 Todd Zullinger - 2.18.0-0.1.rc1 -- Update to 2.18.0-rc1 -- Drop flaky & out-of-place netrc credential helper tests - -* Fri Jun 01 2018 Todd Zullinger - 2.18.0-0.0.rc0.1 -- add -p: fix counting empty context lines in edited patches - -* Wed May 30 2018 Todd Zullinger - 2.18.0-0.0.rc0 -- Update to 2.18.0-rc0 -- Use new INSTALL_SYMLINKS setting - -* Wed May 30 2018 Todd Zullinger - 2.17.1-3 -- Use %%apply_patch for aarch64 zlib patch, return to %%autosetup -- Disable jgit tests on s390x, they're unreliable -- Use %%make_build and %%make_install - -* Tue May 29 2018 Todd Zullinger - 2.17.1-2 -- packfile: Correct zlib buffer handling (#1582555) - -* Tue May 29 2018 Todd Zullinger - 2.17.1-1 -- Update to 2.17.1 (CVE-2018-11233, CVE-2018-11235) - -* Thu May 24 2018 Todd Zullinger - 2.17.0-4 -- Fix segfault in rev-parse with invalid input (#1581678) -- Move TEST_SHELL_PATH setting to config.mak - -* Mon Apr 16 2018 Todd Zullinger - 2.17.0-3 -- Move linkcheck macro to existing fedora/rhel > 7 block -- Re-enable t5000-tar-tree.sh test on f28 - -* Fri Apr 13 2018 Pavel Cahyna -- Use BuildRequires: perl-interpreter per the packaging guidelines -- Update conditions for future RHEL - -* Tue Apr 10 2018 Todd Zullinger - 2.17.0-2 -- Require perl-generators on EL > 7 - -* Mon Apr 09 2018 Todd Zullinger -- daemon: use --log-destination=stderr with systemd -- daemon: fix condition for redirecting stderr -- git-svn: avoid uninitialized value warning - -* Sun Apr 08 2018 Todd Zullinger -- Clean up redundant and unneeded Requires - -* Sat Apr 07 2018 Todd Zullinger -- Remove Git::LoadCPAN to ensure we use only system perl modules - -* Mon Apr 02 2018 Todd Zullinger -- Allow git-p4 subpackage to be toggled via --with/--without -- Use %%bcond_(with|without) to enable/disable python3 -- Add support for disabling python2 - -* Mon Apr 02 2018 Todd Zullinger - 2.17.0-1 -- Update to 2.17.0 - -* Wed Mar 28 2018 Todd Zullinger - 2.17.0-0.2.rc2 -- Update to 2.17.0-rc2 - -* Tue Mar 27 2018 Todd Zullinger -- Allow cvs subpackage to be toggled via --with/--without - -* Tue Mar 27 2018 Joe Orton -- Disable CVS support on EL > 7 - -* Tue Mar 27 2018 Todd Zullinger - 2.17.0-0.1.rc1.2 -- Add missing perl(Mail::Address) requirement (#1561086) - -* Thu Mar 22 2018 Todd Zullinger - 2.17.0-0.1.rc1.1 -- Drop .py extension from contrib/hooks/multimail/git_multimail.py -- Remove unnecessary "chmod +x contrib/hooks/*" - -* Wed Mar 21 2018 Todd Zullinger - 2.17.0-0.1.rc1 -- Update to 2.17.0-rc1 - -* Fri Mar 16 2018 Todd Zullinger -- Add findutils BuildRequires, improve 'find | xargs' calls - -* Thu Mar 15 2018 Todd Zullinger - 2.17.0-0.0.rc0 -- Update to 2.17.0-rc0 -- Adjust for simplified perl install -- Require git-core rather than git for git-daemon -- Rename gitweb httpd config file -- Install contrib/diff-highlight (#1550251) - -* Thu Mar 15 2018 Todd Zullinger -- Use symlinks instead of hardlinks for installed binaries - -* Fri Feb 23 2018 Todd Zullinger -- Improve hardening flags for EL-6 & EL-7 - -* Fri Feb 16 2018 Todd Zullinger - 2.16.2-1 -- Update to 2.16.2 -- Add gawk, gcc, make, and sed BuildRequires - -* Wed Feb 07 2018 Todd Zullinger - 2.16.1-3 -- Order %%files and %%packages sections by name -- Remove obsolete %%defattr -- Don't package contrib/svn-fe in %%doc -- Split git-subtree into a separate package - -* Wed Feb 07 2018 Fedora Release Engineering - 2.16.1-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Mon Jan 29 2018 Todd Zullinger - 2.16.1-2 -- git-svn: avoid segfaults in 'git svn branch', re-enable t9128, t9141, and - t9167 -- Drop obsolete BuildRoot, Group, %%clean, and buildroot cleanup - -* Mon Jan 22 2018 Todd Zullinger - 2.16.1-1 -- Update to 2.16.1 -- Avoid python dependency in git-core (#1536471) - -* Thu Jan 18 2018 Todd Zullinger - 2.16.0-1 -- Update to 2.16.0 -- Use 'prove' as test harness, enable shell tracing -- Disable t5000-tar-tree.sh on x86 in f28 - -* Fri Jan 12 2018 Todd Zullinger -- Add %%{emacs_filesystem} to simplify emacs support -- Use .in template for git@.service to ensure paths are substituted - -* Thu Jan 11 2018 Todd Zullinger -- Update BuildRequires for tests - -* Mon Jan 08 2018 Todd Zullinger -- Avoid excluding non-existent .py[co] files in %%doc -- Remove obsolete gnome-keyring credential helper - -* Sun Jan 07 2018 Todd Zullinger -- Explicitly enable tests which may be skipped opportunistically - -* Sat Dec 30 2017 Todd Zullinger -- Fix perl requires filtering on EL-6 - -* Thu Nov 30 2017 Todd Zullinger - 2.15.1-3 -- Include verbose logs in build output for 'make test' failures -- Use %%autosetup macro to unpack and patch source -- Remove second make invocation for doc build/install -- Fix builds using '--without docs' -- Mark git-core-docs sub-package noarch -- Avoid failures in svnserve tests when run in parallel -- Run tests in parallel by default on Fedora -- Skip 'git svn branch' tests which fail intermittently -- Re-enable grep tests on s390x - -* Wed Nov 29 2017 Todd Zullinger - 2.15.1-2 -- Fix debuginfo for gnome-keyring and libsecret credential helpers - -* Tue Nov 28 2017 Todd Zullinger - 2.15.1-1 -- Update to 2.15.1 - -* Tue Nov 21 2017 Todd Zullinger -- Add tcl/tk BuildRequires -- Enable support for release candidate builds - -* Tue Nov 07 2017 Todd Zullinger - 2.15.0-2 -- Fix git-clone memory exhaustion (CVE-2017-15298) - Resolves: #1510455, #1510457 -- Disable cross-directory hardlinks -- Drop ancient obsoletes for git and git-arch -- Update summary/description of numerous subpackages -- Fix shebang in a few places to silence rpmlint complaints -- Fix t9020-remote-svn failure when setting PYTHON_PATH -- Rename %%gitcoredir to %%gitexecdir; upstream uses the latter -- Move commands which no longer require perl into git-core -- Move filter-branch out of core, it needs perl now -- Improve test suite coverage - -* Mon Oct 30 2017 Todd Zullinger - 2.15.0-1 -- Update to 2.15.0 - -* Mon Oct 23 2017 Todd Zullinger - 2.14.3-1 -- Update to 2.14.3 - -* Tue Sep 26 2017 Todd Zullinger - 2.14.2-2 -- Update to 2.14.2 - -* Thu Aug 10 2017 Todd Zullinger - 2.14.1-2 -- Rebuild for rpm-4.14 bug (#1480407) - -* Thu Aug 10 2017 Todd Zullinger - 2.14.1-1 -- Update to 2.14.1 (resolves CVE-2017-1000117) - -* Tue Aug 08 2017 Iryna Shcherbina - 2.14.0-2 -- Add a build-time dependency on python2-devel for p4 - Resolves: #1479713 -- Skip all grep tests on s390x for now because it failes intermittently - -* Fri Aug 04 2017 Todd Zullinger - 2.14.0-1 -- Update to 2.14.0 -- Use pcre2 library -- git-p4: explicitly require python2 - -* Tue Aug 01 2017 Todd Zullinger - 2.13.4-1 -- Update to 2.13.4 -- Remove EL-5 and old Fedora conditionals - -* Sun Jul 30 2017 Florian Weimer - 2.13.3-3 -- Rebuild with binutils fix for ppc64le (#1475636) - -* Thu Jul 20 2017 Petr Stodulka - 2.13.3-2 -- Move documentation files from all subpackages into the %%{_pkgdocdir} - directory, so links inside doc and man files are correct - Resolves: #1357438 -- Quiet a few rpmlint complaints regarding hidden files in contrib dir -- Remove explicit libcurl requirement from git-core - -* Thu Jul 13 2017 Gwyn Ciesla - 2.13.3-1 -- Update to 2.13.3 - -* Sun Jun 25 2017 Todd Zullinger - 2.13.2-1 -- Update to 2.13.2 -- Skip grep tests which fail intermittently on s390x - -* Wed Jun 07 2017 Jitka Plesnikova - 2.13.1-2 -- Perl 5.26 re-rebuild of bootstrapped packages - -* Mon Jun 05 2017 Todd Zullinger - 2.13.1-1 -- Update to 2.13.1 - -* Sun Jun 04 2017 Jitka Plesnikova - 2.13.0-3 -- Perl 5.26 rebuild - -* Wed May 17 2017 Todd Zullinger - 2.13.0-2 -- Use default, collision-detecting SHA1 implementation - -* Tue May 09 2017 Todd Zullinger - 2.13.0-1 -- Update to 2.13.0 (resolves CVE-2017-8386) - -* Wed Mar 29 2017 Gwyn Ciesla - 2.12.2-1 -- Update to 2.12.2 - -* Tue Mar 21 2017 Gwyn Ciesla - 2.12.1-1 -- Update to 2.12.1 - -* Mon Feb 27 2017 Jon Ciesla - 2.12.0-1 -- Update to 2.12.0 - -* Fri Feb 17 2017 Petr Stodulka - 2.11.1-3 -- remove non-ASCII characters from description and title of packages -- fix requiremets -- fix spec to be compatible for other systems -- remove deprecated credential-gnome-keyring - -* Fri Feb 17 2017 Todd Zullinger - 2.11.1-3 -- Remove unnecessary rsync requirement from git-core -- Move gnome-keyring credential helper from git-core to git -- Enable libsecret credential helper -- Run git test suite -- Use %%{_mandir} in git/git-core file list filters -- Fix version of emacs-git and emacs-git-el provides -- Clean up contrib/{credential,subtree} to avoid cruft in git-core-doc -- Fix a number of macro-in-comment warnings from rpmlint - -* Fri Feb 10 2017 Fedora Release Engineering - 2.11.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Feb 03 2017 Jon Ciesla - 2.11.1-1 -- Update to 2.11.1 From a35d388291eeffb6a7d75dc41926078449cfdaae Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 22 Jul 2021 01:39:37 +0000 Subject: [PATCH 081/202] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_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 d06043b..3be65ef 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.32.0 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -997,6 +997,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jul 22 2021 Fedora Release Engineering - 2.32.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Sun Jun 06 2021 Todd Zullinger - 2.32.0-1 - update to 2.32.0 - add perl(File::Compare) BuildRequires From 0d6049db8bc783edd13111eedf9d8745c8074b91 Mon Sep 17 00:00:00 2001 From: Sahana Prasad Date: Tue, 14 Sep 2021 19:02:41 +0200 Subject: [PATCH 082/202] Rebuilt with OpenSSL 3.0.0 --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 3be65ef..145ea40 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.32.0 -Release: 1%{?rcrev}%{?dist}.1 +Release: 1%{?rcrev}%{?dist}.2 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -997,6 +997,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Sep 14 2021 Sahana Prasad - 2.32.0-1.2 +- Rebuilt with OpenSSL 3.0.0 + * Thu Jul 22 2021 Fedora Release Engineering - 2.32.0-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From f291bcfd279d847cba918323b98eb64686d66062 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Mon, 27 Sep 2021 18:48:27 +0200 Subject: [PATCH 083/202] update to 2.33.0 contrib/hooks/multimail is no longer distributed with git The multimail hook was removed from the git contrib tree. From the upstream commit f74d11471f (multimail: stop shipping a copy, 2021-06-10): The multimail project is developed independently and has its own project page. Traditionally, we shipped a copy in contrib/. However, such a copy is prone to become stale, and users are much better served to be directed to the actual project instead. --- git.spec | 27 +++++++++------------------ sources | 4 ++-- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/git.spec b/git.spec index 145ea40..2044845 100644 --- a/git.spec +++ b/git.spec @@ -79,8 +79,8 @@ #global rcrev .rc0 Name: git -Version: 2.32.0 -Release: 1%{?rcrev}%{?dist}.2 +Version: 2.33.0 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -588,25 +588,17 @@ export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) # Fix shebang in a few places to silence rpmlint complaints %if %{with python2} sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \ - contrib/fast-import/import-zips.py \ - contrib/hooks/multimail/git_multimail.py \ - contrib/hooks/multimail/migrate-mailhook-config \ - contrib/hooks/multimail/post-receive.example + contrib/fast-import/import-zips.py %else # Remove contrib/fast-import/import-zips.py which requires python2. rm -rf contrib/fast-import/import-zips.py %endif # endif with python2 -# The multimail hook is installed with git. Use python3 to avoid an -# unnecessary python2 dependency, if possible. Also fix contrib/hg-to-git -# while here. +# 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 \ - contrib/hooks/multimail/git_multimail.py \ - contrib/hooks/multimail/migrate-mailhook-config \ - contrib/hooks/multimail/post-receive.example + contrib/hg-to-git/hg-to-git.py %endif # endif with python3 @@ -705,9 +697,6 @@ mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion install -pm 644 contrib/completion/git-completion.tcsh \ %{buildroot}%{_datadir}/git-core/contrib/completion/ -# Drop .py extension from git_multimail to avoid byte-compiling -mv contrib/hooks/multimail/git_multimail{.py,} - # Move contrib/hooks out of %%docdir mkdir -p %{buildroot}%{_datadir}/git-core/contrib mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib @@ -869,7 +858,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %endif # endif with emacs %{_datadir}/git-core/contrib/diff-highlight -%{_datadir}/git-core/contrib/hooks/multimail %{_datadir}/git-core/contrib/hooks/update-paranoid %{_datadir}/git-core/contrib/hooks/setgitperms.perl %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample @@ -886,7 +874,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/multimail %exclude %{_datadir}/git-core/contrib/hooks/update-paranoid %exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl %exclude %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample @@ -997,6 +984,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Sep 27 2021 Ondřej Pohořelský - 2.33.0-1 +- update to 2.33.0 +- contrib/hooks/multimail is no longer distributed with git + * Tue Sep 14 2021 Sahana Prasad - 2.32.0-1.2 - Rebuilt with OpenSSL 3.0.0 diff --git a/sources b/sources index 56ef012..9d2e906 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.32.0.tar.xz) = 1ab3e7022ccee411d14a7da5c37d6259ef5c0f85ebed8f49698e25c65cbc7a46f8096919fcb6568360bfe284dd7475b596eee1a167db966096255a405853837c -SHA512 (git-2.32.0.tar.sign) = 0f21129c6993a2b1742152829a33064205fb148bd3e26fd3a5f996c31ff920c9f0f22e259d2159eef24b75ac3a592c3152277e5046506e1aabc765bc25f583b9 +SHA512 (git-2.33.0.tar.xz) = 1abbcdf9ff640c95934b6a78341baa76ac3a5838c4751f513f334fdf5a3760c730e309f05ad16ffec115896e3e0c750c116683f6a787d92757ee9d916a346bfd +SHA512 (git-2.33.0.tar.sign) = 5d6788588a1cb87874ac09d4b0a30b0280d00872617aff2dbae3d1f25eda35095d00b0451c03f262da6c991c46c228f4dcdf02456805b497ffd8ba5bddd942fe From 5507b1a1874912d544dd6f8d45f23565b5d83001 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 12 Oct 2021 20:42:06 -0400 Subject: [PATCH 084/202] update to 2.33.1 Release notes: https://github.com/git/git/raw/v2.33.1/Documentation/RelNotes/2.33.1.txt --- 0001-doc-add-bundle-format-to-TECH_DOCS.patch | 28 +++++++++++++++++++ git.spec | 9 +++++- sources | 4 +-- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 0001-doc-add-bundle-format-to-TECH_DOCS.patch diff --git a/0001-doc-add-bundle-format-to-TECH_DOCS.patch b/0001-doc-add-bundle-format-to-TECH_DOCS.patch new file mode 100644 index 0000000..6f03eb1 --- /dev/null +++ b/0001-doc-add-bundle-format-to-TECH_DOCS.patch @@ -0,0 +1,28 @@ +From c221f23ebe2defeb31cfcab6387f8985b5c863bb Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Tue, 12 Oct 2021 21:00:55 -0400 +Subject: [PATCH] doc: add bundle-format to TECH_DOCS + +A link to the bundle-format was added in 5c8273d57c (bundle doc: rewrite +the "DESCRIPTION" section, 2021-07-31). + +Ensure `technical/bundle-format.html` is created to avoid a broken link +in `git-bundle.html`. + +Signed-off-by: Todd Zullinger +--- + Documentation/Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/Makefile b/Documentation/Makefile +index f5605b7767..2021568cd5 100644 +--- a/Documentation/Makefile ++++ b/Documentation/Makefile +@@ -90,6 +90,7 @@ SP_ARTICLES += $(API_DOCS) + TECH_DOCS += MyFirstContribution + TECH_DOCS += MyFirstObjectWalk + TECH_DOCS += SubmittingPatches ++TECH_DOCS += technical/bundle-format + TECH_DOCS += technical/hash-function-transition + TECH_DOCS += technical/http-protocol + TECH_DOCS += technical/index-format diff --git a/git.spec b/git.spec index 2044845..85cea81 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ #global rcrev .rc0 Name: git -Version: 2.33.0 +Version: 2.33.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -112,6 +112,10 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# fix the broken link in git-bundle.html +# https://lore.kernel.org/git/20211013032852.959985-1-tmz@pobox.com/ +Patch1: 0001-doc-add-bundle-format-to-TECH_DOCS.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -984,6 +988,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Oct 13 2021 Todd Zullinger - 2.33.1-1 +- update to 2.33.1 + * Mon Sep 27 2021 Ondřej Pohořelský - 2.33.0-1 - update to 2.33.0 - contrib/hooks/multimail is no longer distributed with git diff --git a/sources b/sources index 9d2e906..3340d14 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.33.0.tar.xz) = 1abbcdf9ff640c95934b6a78341baa76ac3a5838c4751f513f334fdf5a3760c730e309f05ad16ffec115896e3e0c750c116683f6a787d92757ee9d916a346bfd -SHA512 (git-2.33.0.tar.sign) = 5d6788588a1cb87874ac09d4b0a30b0280d00872617aff2dbae3d1f25eda35095d00b0451c03f262da6c991c46c228f4dcdf02456805b497ffd8ba5bddd942fe +SHA512 (git-2.33.1.tar.xz) = 16d417183232e1057bea754d59cdf4bbacc5f1527d1de6ee04cdd293a2512bfa7208e20f6130816605528b59cb1bc3188c5bddf1a42c1413095ee74e44dd2f91 +SHA512 (git-2.33.1.tar.sign) = b1a8d3b4ebbf5db43eb1234446b903d62637999390e59f94b9793bf8c8c302ff6d7b74f48cdfe3b4a304f767641ccba96479ddf5a19c6e6d4861da1e568e9760 From fe0920e1287f6981f05d91121d1e6a8d24b1fb54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= Date: Thu, 11 Nov 2021 16:19:59 +0100 Subject: [PATCH 085/202] add Perl requires to git-email Resolves: rhbz#2020487 In git version 2.33.0, git-send-email.perl has optimized modules loading[1]. This resulted in perl.req not detecting requires properly, because it doesn't detect requires that are not at the start of new line. This commit adds explicit Requires into the spec file. [1]https://github.com/git/git/commit/f4dc9432fd287bde9100488943baf3c6a04d90d1 --- git.spec | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 85cea81..04f5b52 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.33.1 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -389,6 +389,16 @@ BuildArch: noarch Requires: git = %{version}-%{release} Requires: perl(Authen::SASL) Requires: perl(Net::SMTP::SSL) +Requires: perl(Cwd) +Requires: perl(File::Spec::Functions) +Requires: perl(File::Temp) +Requires: perl(Mail::Address) +Requires: perl(Net::Domain) +Requires: perl(Net::SMTP) +Requires: perl(POSIX) +Requires: perl(Term::ANSIColor) +Requires: perl(Term::ReadLine) +Requires: perl(Text::ParseWords) %description email %{summary}. @@ -988,6 +998,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Nov 11 2021 Ondřej Pohořelský - 2.33.1-2 +- add Perl requires to git-email +- Resolves: rhbz#2020487 + * Wed Oct 13 2021 Todd Zullinger - 2.33.1-1 - update to 2.33.1 From 4414f619e31357a8fa1dcbb8cafa710bd3728954 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 13 Nov 2021 21:04:39 -0500 Subject: [PATCH 086/202] add more git-email perl dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There were a few dependencies missing prior to the change in git-2.33 which Ondřej fixed in the previous commit. Of the few dependencies being added, only Email::Address and Sys::Hostname weren't already pulled in by other dependencies when installing git-email. They each have fallback options, so they aren't critical to the function of the application. (We could use Recommends here, if we wanted -- though neither pull in any additional packages at this time.) --- git.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/git.spec b/git.spec index 04f5b52..56340e0 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.33.1 -Release: 2%{?rcrev}%{?dist} +Release: 3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -388,14 +388,20 @@ Summary: Git tools for sending patches via email BuildArch: noarch Requires: git = %{version}-%{release} Requires: perl(Authen::SASL) -Requires: perl(Net::SMTP::SSL) Requires: perl(Cwd) +Requires: perl(Email::Valid) +Requires: perl(File::Spec) Requires: perl(File::Spec::Functions) Requires: perl(File::Temp) +Requires: perl(IO::Socket::SSL) Requires: perl(Mail::Address) +Requires: perl(MIME::Base64) +Requires: perl(MIME::QuotedPrint) Requires: perl(Net::Domain) Requires: perl(Net::SMTP) +Requires: perl(Net::SMTP::SSL) Requires: perl(POSIX) +Requires: perl(Sys::Hostname) Requires: perl(Term::ANSIColor) Requires: perl(Term::ReadLine) Requires: perl(Text::ParseWords) @@ -998,6 +1004,10 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sun Nov 14 2021 Todd Zullinger - 2.33.1-3 +- add more git-email perl dependencies +- Resolves: rhbz#2020487 + * Thu Nov 11 2021 Ondřej Pohořelský - 2.33.1-2 - add Perl requires to git-email - Resolves: rhbz#2020487 From e8896ce365d7e63e4458daa3907192af86e57a9f Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 15 Nov 2021 17:58:58 -0500 Subject: [PATCH 087/202] update to 2.34.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Release notes: https://github.com/git/git/raw/v2.34.0/Documentation/RelNotes/2.34.0.txt Add `BuildRequires: openssh` for the `ssh-keygen` command; it is needed to test the newly-added ssh signing support¹. Refer to the `gpg.format` and `gpg.ssh.*` variables in git-config(1) for details. [Unfortunately, openssh-8.7 has a bug in the requisite `ssh-keygen -Y find-principals` command, which will limit the usefulness of this feature on Fedora 35/36 until openssh is either rebased to 8.8 or the patch² is backported. The git testsuite has been taught to skip the tests when this bug is present, in upstream ca7a5bf4bd (t/lib-gpg: avoid broken versions of ssh-keygen, 2021-11-10), but that won't help users who try out this new feature. Hopefully we can get openssh-8.7 in Fedora 35 & 36 patched or updated before too long.] We have `Requires: openssh-clients` in git-core already. The openssh-clients package requires openssh so we don't _need_ to add an install-time requirement to ensure the `ssh-keygen` command is available. Ignore RUNTIME_PREFIX and SYMLINKS_WINDOWS test prerequisites when looking for missing test suite BuildRequires³. The RUNTIME_PREFIX prerequisite was added in b7d11a0f5d (tests: exercise the RUNTIME_PREFIX feature, 2021-07-24)⁴. It is used to build binaries which can be easily relocated, which we don't need in our builds. The SYMLINKS_WINDOWS prerequisite was added in 3e7d4888e5 (mingw: align symlinks-related rmdir() behavior with Linux, 2021-08-02)⁵. It is, as the name implies, Windows-specific. ¹ https://github.com/git/git/commit/b5726a5d9c (ssh signing: preliminary refactoring and clean-up, 2021-09-10) and the commits which follow. ² https://github.com/openssh/openssh-portable/commit/ca0e455b93, https://github.com/openssh/openssh-portable/commit/4afe431da9, and https://www.mail-archive.com/source-changes@openbsd.org/msg127496.html (plus the replies, which point out the typo in the first patch) ³ fa92661 (Add grep patterns for checking skipped tests, 2019-02-02) ⁴ https://github.com/git/git/commit/b7d11a0f5d ⁵ https://github.com/git/git/commit/3e7d4888e5 --- 0001-doc-add-bundle-format-to-TECH_DOCS.patch | 28 ------------------- git.skip-test-patterns | 2 ++ git.spec | 12 ++++---- sources | 4 +-- 4 files changed, 10 insertions(+), 36 deletions(-) delete mode 100644 0001-doc-add-bundle-format-to-TECH_DOCS.patch diff --git a/0001-doc-add-bundle-format-to-TECH_DOCS.patch b/0001-doc-add-bundle-format-to-TECH_DOCS.patch deleted file mode 100644 index 6f03eb1..0000000 --- a/0001-doc-add-bundle-format-to-TECH_DOCS.patch +++ /dev/null @@ -1,28 +0,0 @@ -From c221f23ebe2defeb31cfcab6387f8985b5c863bb Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Tue, 12 Oct 2021 21:00:55 -0400 -Subject: [PATCH] doc: add bundle-format to TECH_DOCS - -A link to the bundle-format was added in 5c8273d57c (bundle doc: rewrite -the "DESCRIPTION" section, 2021-07-31). - -Ensure `technical/bundle-format.html` is created to avoid a broken link -in `git-bundle.html`. - -Signed-off-by: Todd Zullinger ---- - Documentation/Makefile | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/Makefile b/Documentation/Makefile -index f5605b7767..2021568cd5 100644 ---- a/Documentation/Makefile -+++ b/Documentation/Makefile -@@ -90,6 +90,7 @@ SP_ARTICLES += $(API_DOCS) - TECH_DOCS += MyFirstContribution - TECH_DOCS += MyFirstObjectWalk - TECH_DOCS += SubmittingPatches -+TECH_DOCS += technical/bundle-format - TECH_DOCS += technical/hash-function-transition - TECH_DOCS += technical/http-protocol - TECH_DOCS += technical/index-format diff --git a/git.skip-test-patterns b/git.skip-test-patterns index e9db37f..1f1f8b1 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -12,6 +12,8 @@ missing NATIVE_CRLF missing !PCRE missing !PTHREADS missing RFC1991 +missing RUNTIME_PREFIX +missing SYMLINKS_WINDOWS missing TAR_NEEDS_PAX_FALLBACK missing UTF8_NFD_TO_NFC missing WINDOWS diff --git a/git.spec b/git.spec index 56340e0..5889387 100644 --- a/git.spec +++ b/git.spec @@ -79,8 +79,8 @@ #global rcrev .rc0 Name: git -Version: 2.33.1 -Release: 3%{?rcrev}%{?dist} +Version: 2.34.0 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -112,10 +112,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# fix the broken link in git-bundle.html -# https://lore.kernel.org/git/20211013032852.959985-1-tmz@pobox.com/ -Patch1: 0001-doc-add-bundle-format-to-TECH_DOCS.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -215,6 +211,7 @@ BuildRequires: jgit %endif # endif fedora (except i386 and s390x) BuildRequires: mod_dav_svn +BuildRequires: openssh BuildRequires: perl(App::Prove) BuildRequires: perl(CGI) BuildRequires: perl(CGI::Carp) @@ -1004,6 +1001,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Nov 15 2021 Todd Zullinger - 2.34.0-1 +- update to 2.34.0 + * Sun Nov 14 2021 Todd Zullinger - 2.33.1-3 - add more git-email perl dependencies - Resolves: rhbz#2020487 diff --git a/sources b/sources index 3340d14..87b8ed3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.33.1.tar.xz) = 16d417183232e1057bea754d59cdf4bbacc5f1527d1de6ee04cdd293a2512bfa7208e20f6130816605528b59cb1bc3188c5bddf1a42c1413095ee74e44dd2f91 -SHA512 (git-2.33.1.tar.sign) = b1a8d3b4ebbf5db43eb1234446b903d62637999390e59f94b9793bf8c8c302ff6d7b74f48cdfe3b4a304f767641ccba96479ddf5a19c6e6d4861da1e568e9760 +SHA512 (git-2.34.0.tar.xz) = 3102c1ebe408eb549ebd0f9b1420663ed04a2720e4dc676c1854a9e7b8306bb49dc931b734aa7eb612eb7adc2ad92730c0d2dd704dbd859ba61e5ceba909fcc3 +SHA512 (git-2.34.0.tar.sign) = 28713fe9b0c8bfac4937b31cdf54ff427c784547932c2002032fa1ae40757d6fdfd291ce9ea24eeecf480816643359530cf93b4e9d4fac40b1deb987577a3de3 From 7453454dadcb1eb88f0202c7b6418a3757804b21 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 24 Nov 2021 21:42:11 -0500 Subject: [PATCH 088/202] update to 2.34.1 Release notes: https://github.com/git/git/raw/v2.34.1/Documentation/RelNotes/2.34.1.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 5889387..45d25c1 100644 --- a/git.spec +++ b/git.spec @@ -79,7 +79,7 @@ #global rcrev .rc0 Name: git -Version: 2.34.0 +Version: 2.34.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1001,6 +1001,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Nov 25 2021 Todd Zullinger - 2.34.1-1 +- update to 2.34.1 + * Mon Nov 15 2021 Todd Zullinger - 2.34.0-1 - update to 2.34.0 diff --git a/sources b/sources index 87b8ed3..9c138f8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.34.0.tar.xz) = 3102c1ebe408eb549ebd0f9b1420663ed04a2720e4dc676c1854a9e7b8306bb49dc931b734aa7eb612eb7adc2ad92730c0d2dd704dbd859ba61e5ceba909fcc3 -SHA512 (git-2.34.0.tar.sign) = 28713fe9b0c8bfac4937b31cdf54ff427c784547932c2002032fa1ae40757d6fdfd291ce9ea24eeecf480816643359530cf93b4e9d4fac40b1deb987577a3de3 +SHA512 (git-2.34.1.tar.xz) = a1a8e9e6f64b1da25508fbd2f783564dcdbe181fb5ff1ebab3bdac6db6094e18acc334479a1abf22ac17ce4f733cc3e10a664db9ab234cd523735a3f027b42db +SHA512 (git-2.34.1.tar.sign) = a1111276e18da1a7b360e3ed3b8460034ea413b116482b0b66342f8873a9dd02a90f3f5bc7ad1e4b3c7f39ed55926a8155064b849e6e6bdf9478cb85b93f10b5 From a7d2f7e53e982258913020f1bf245f8dd58e2a1f Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 25 Nov 2021 05:52:09 -0500 Subject: [PATCH 089/202] fix gpgsm issues with gnupg-2.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The output of gpgsm changed slightly in gnupg-2.3, causing the git tests for x509 signatures to be skipped. Update the tests to use the machine-parseable --with-colons output. It also appears that we need to reload the gpg-agent in order to pick up the changes the test library makes to the trustlist.txt file. It might be better to store that file with the other gpg files in the test suite rather than generating it. While we're at it, reload all the gpg components rather than just gpg-agent. Adjust the earlier gpgconf kill to use the 'all' keyword as well. Next up, gpgsm removed a debug line from it's output which exposes a problem in git's gpg-interface code. The git code presumes that the '[GNUPG:] SIG_CREATED' line will follow a newline. That is no longer true. The debug line was removed from GnuPG in a6d2f3133 (sm: Replace some debug message by log_error or log_info, 2020-04-21). Finally, a minor bug in gpgsm causes the error message returned when a certificate is not found to differ from previous versions¹. Extend the grep pattern in the test suite to catch both error messages. ¹ https://lists.gnupg.org/pipermail/gnupg-devel/2021-November/034991.html --- ...ith-colons-when-parsing-gpgsm-output.patch | 47 ++++++++++++++++++ ...-gpg-components-after-updating-trust.patch | 31 ++++++++++++ ...ll-gpg-components-not-just-gpg-agent.patch | 40 ++++++++++++++++ ...02-match-gpgsm-output-from-GnuPG-2.3.patch | 33 +++++++++++++ ...tch-SIG_CREATED-if-it-s-the-first-li.patch | 48 +++++++++++++++++++ git.spec | 8 ++++ 6 files changed, 207 insertions(+) create mode 100644 0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch create mode 100644 0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch create mode 100644 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch create mode 100644 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch create mode 100644 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch diff --git a/0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch b/0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch new file mode 100644 index 0000000..5c003a5 --- /dev/null +++ b/0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch @@ -0,0 +1,47 @@ +From e155951262e6dea419db8b9010342b08b487f96a Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Thu, 25 Nov 2021 05:05:08 -0500 +Subject: [PATCH] t/lib-gpg: use --with-colons when parsing gpgsm output +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The output of `gpgsm -K` changed in gnupg-2.3¹, breaking the parsing +used by the GPGSM prereq. + +Use the `--with-colons` options for stable, machine-parseable output. +This allows the grep/cut/tr pipeline (and the subsequent echo which +appends ' S relax') to be replaced with a single call to awk to create +the ${GNUPGHOME}/trustlist.txt file. + +¹ https://dev.gnupg.org/rGe7d70923901e is the change in 2.3, while + https://dev.gnupg.org/rG9c57de75cf36 is the similar change in 2.2. + + The latter says: Here in 2.2 we keep the string "fingerprint:" and no + not change it to "sha1 fpr" as we did in master (2.3). (sic) + +Signed-off-by: Todd Zullinger +--- + t/lib-gpg.sh | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh +index a3f285f515..cbbf74e725 100644 +--- a/t/lib-gpg.sh ++++ b/t/lib-gpg.sh +@@ -72,12 +72,10 @@ test_lazy_prereq GPGSM ' + --passphrase-fd 0 --pinentry-mode loopback \ + --import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 && + +- gpgsm --homedir "${GNUPGHOME}" -K | +- grep fingerprint: | +- cut -d" " -f4 | +- tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" && ++ gpgsm --homedir "${GNUPGHOME}" -K --with-colons | ++ awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \ ++ >"${GNUPGHOME}/trustlist.txt" && + +- echo " S relax" >>"${GNUPGHOME}/trustlist.txt" && + echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \ + -u committer@example.com -o /dev/null --sign - + ' diff --git a/0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch b/0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch new file mode 100644 index 0000000..2c27b74 --- /dev/null +++ b/0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch @@ -0,0 +1,31 @@ +From 93299b9b221da01d4055528f7c760d04ee83b82b Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Thu, 25 Nov 2021 08:07:32 -0500 +Subject: [PATCH] t/lib-gpg: reload gpg components after updating trustlist + +With gpgsm from gnupg-2.3, the changes to the trustlist.txt do not +appear to be picked up without refreshing the gpg-agent. Use the 'all' +keyword to reload all of the gpg components. The scdaemon is started as +a child of gpg-agent, for example. + +We used to have a --kill at this spot, but I removed it in 2e285e7803 +(t/lib-gpg: drop redundant killing of gpg-agent, 2019-02-07). It seems +like it might be necessary (again) for 2.3. + +Signed-off-by: Todd Zullinger +--- + t/lib-gpg.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh +index cbbf74e725..d675698a2d 100644 +--- a/t/lib-gpg.sh ++++ b/t/lib-gpg.sh +@@ -75,6 +75,7 @@ test_lazy_prereq GPGSM ' + gpgsm --homedir "${GNUPGHOME}" -K --with-colons | + awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \ + >"${GNUPGHOME}/trustlist.txt" && ++ (gpgconf --reload all || : ) && + + echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \ + -u committer@example.com -o /dev/null --sign - diff --git a/0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch b/0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch new file mode 100644 index 0000000..2905564 --- /dev/null +++ b/0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch @@ -0,0 +1,40 @@ +From da340dd76714474126f73f6b53087da0ffd4e8d8 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Fri, 26 Nov 2021 21:11:54 -0500 +Subject: [PATCH] t/lib-gpg: kill all gpg components, not just gpg-agent + +The gpg-agent is one of several processes that newer releases of GnuPG +start automatically. Issue a kill to each of them to ensure they do not +affect separate tests. (Yes, the separate GNUPGHOME should do that +already. If we find that is case, we could drop the --kill entirely.) + +In terms of compatibility, the 'all' keyword was added to the --kill & +--reload options in GnuPG 2.1.18. Debian and RHEL are often used as +indicators of how a change might affect older systems we often try to +support. + + - Debian Strech (old old stable), which has limited security support + until June 2022, has GnuPG 2.1.18 (or 2.2.x in backports). + + - CentOS/RHEL 7, which is supported until June 2024, has GnuPG + 2.0.22, which lacks the --kill option, so the change won't have + any impact. + +Signed-off-by: Todd Zullinger +--- + t/lib-gpg.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh +index d675698a2d..2bb309a8c1 100644 +--- a/t/lib-gpg.sh ++++ b/t/lib-gpg.sh +@@ -40,7 +40,7 @@ test_lazy_prereq GPG ' + # > lib-gpg/ownertrust + mkdir "$GNUPGHOME" && + chmod 0700 "$GNUPGHOME" && +- (gpgconf --kill gpg-agent || : ) && ++ (gpgconf --kill all || : ) && + gpg --homedir "${GNUPGHOME}" --import \ + "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && + gpg --homedir "${GNUPGHOME}" --import-ownertrust \ diff --git a/0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch b/0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch new file mode 100644 index 0000000..005ace7 --- /dev/null +++ b/0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch @@ -0,0 +1,33 @@ +From d1efcac68414b80cc0fd7b7e3b4781f313d98697 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Sat, 27 Nov 2021 05:31:13 -0500 +Subject: [PATCH] t4202: match gpgsm output from GnuPG 2.3 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In GnuPG 2.3, the output from gpgsm when a certificate is not found +differs from that of earlier versions. This appears to be a bug¹, but +there are several releases in use now which have this output. Extend +the grep pattern to catch it rather than failing the test. + +¹ https://lists.gnupg.org/pipermail/gnupg-devel/2021-November/034991.html + +Signed-off-by: Todd Zullinger +--- + t/t4202-log.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/t/t4202-log.sh b/t/t4202-log.sh +index 7884e3d46b..c69f9ac469 100755 +--- a/t/t4202-log.sh ++++ b/t/t4202-log.sh +@@ -1851,7 +1851,7 @@ test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 miss + git merge --no-ff -m msg signed_tag_x509_nokey && + GNUPGHOME=. git log --graph --show-signature -n1 plain-x509-nokey >actual && + grep "^|\\\ merged tag" actual && +- grep "^| | gpgsm: certificate not found" actual ++ grep -Ei "^| | gpgsm:( failed to find the)? certificate:? not found" actual + ' + + test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 bad signature' ' diff --git a/0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch b/0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch new file mode 100644 index 0000000..458af9d --- /dev/null +++ b/0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch @@ -0,0 +1,48 @@ +From edb5eafc9945b2d400c2d777a9750cee06ab500f Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Sat, 27 Nov 2021 02:55:47 -0500 +Subject: [PATCH] gpg-interface: match SIG_CREATED if it's the first line + +In `sign_buffer_gpg`, "\n[GNUPG:] SIG_CREATED " in the gpg status output +is used to signal a successful signature. This fails if "SIG_CREATED" +is the first line in the gpg output, as is the case with `gpgsm` in +GnuPG 2.3. + +In earlier versions of GnuPG, there was a debug line in the `gpgsm` +output which allowed the check in `sign_buffer_gpg` to work. This debug +line was removed from GnuPG in a6d2f3133 (sm: Replace some debug message +by log_error or log_info, 2020-04-21). + +The result is the `gpgsm --status-fd` output for a signing operation +starts with "[GNUPG:] SIG_CREATED" and we mistakenly report "gpg failed +to sign the data" to the user. The `gpg` command has other `[GNUPG:]` +output for signing operations, so it is not affected by this issue. +It's best not to rely on something as subtle and out of our control as +the order if the gnupg status messages. + +This likely went unnoticed because the GPGSM test prereq was failing for +a different reason with GnuPG 2.3. No tests failed, they were simply +skipped due to the missing GPGSM prereq. + +Signed-off-by: Todd Zullinger +--- + gpg-interface.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/gpg-interface.c b/gpg-interface.c +index 3e7255a2a9..d179dfb3ab 100644 +--- a/gpg-interface.c ++++ b/gpg-interface.c +@@ -859,6 +859,12 @@ static int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature, + + bottom = signature->len; + ++ /* ++ * Ensure gpg_status begins with a newline or we'll fail to match if ++ * the SIG_CREATED line is at the start of the gpg output. ++ */ ++ strbuf_addch(&gpg_status, '\n'); ++ + /* + * When the username signingkey is bad, program could be terminated + * because gpg exits without reading and then write gets SIGPIPE. diff --git a/git.spec b/git.spec index 45d25c1..6b12273 100644 --- a/git.spec +++ b/git.spec @@ -112,6 +112,13 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# Fix a few tests and issues with gnupg-2.3 +Patch1: 0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch +Patch2: 0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch +Patch3: 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch +Patch4: 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch +Patch5: 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1003,6 +1010,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Thu Nov 25 2021 Todd Zullinger - 2.34.1-1 - update to 2.34.1 +- fix gpgsm issues with gnupg-2.3 * Mon Nov 15 2021 Todd Zullinger - 2.34.0-1 - update to 2.34.0 From ef2bab7f59005c9e1215490d66faca6ea0fe0055 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 10 Jan 2022 17:49:49 -0500 Subject: [PATCH 090/202] update to 2.35.0-rc0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add openssh-clients BuildRequires, for ssh-add. Upstream 350a2518c8 (ssh signing: support non ssh-* keytypes, 2021-11-19), added `ssh-add` as a requirement of t7528-signed-commit-ssh's "sign commits using literal public keys with ssh-agent" test. Replace the openssh BR added in e8896ce (update to 2.34.0, 2021-11-15) with openssh-clients. The latter requires the former. Apply Taylor Blau's patch to fix a use-after-free bug in fmt-merge-msg¹. Add `missing !LONG_IS_64BIT,EXPENSIVE` to git.skip-test-patterns. It is used in t1051-large-conversion after upstream 596b5e77c9 (clean/smudge: allow clean filters to process extremely large files, 2021-11-02). Release notes: https://github.com/git/git/raw/v2.35.0-rc0/Documentation/RelNotes/2.35.0.txt ¹ https://lore.kernel.org/git/CAHk-=whXPxWL7z3GiPkaDt+yygrRmagrYUnib7Lx=Vvrqx2ufg@mail.gmail.com/ --- ...event-use-after-free-with-signed-tag.patch | 199 ++++++++++++++++++ git.skip-test-patterns | 2 +- git.spec | 15 +- sources | 4 +- 4 files changed, 213 insertions(+), 7 deletions(-) create mode 100644 0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch diff --git a/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch b/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch new file mode 100644 index 0000000..72cd990 --- /dev/null +++ b/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch @@ -0,0 +1,199 @@ +From mboxrd@z Thu Jan 1 00:00:00 1970 +Return-Path: +X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on + aws-us-west-2-korg-lkml-1.web.codeaurora.org +Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) + by smtp.lore.kernel.org (Postfix) with ESMTP id 4EF60C433EF + for ; Mon, 10 Jan 2022 21:19:15 +0000 (UTC) +Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand + id S1343852AbiAJVTN (ORCPT ); + Mon, 10 Jan 2022 16:19:13 -0500 +Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45246 "EHLO + lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org + with ESMTP id S240793AbiAJVTJ (ORCPT ); + Mon, 10 Jan 2022 16:19:09 -0500 +Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) + by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D57E9C06173F + for ; Mon, 10 Jan 2022 13:19:08 -0800 (PST) +Received: by mail-io1-xd32.google.com with SMTP id h23so19409080iol.11 + for ; Mon, 10 Jan 2022 13:19:08 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=ttaylorr-com.20210112.gappssmtp.com; s=20210112; + h=date:from:to:cc:subject:message-id:references:mime-version + :content-disposition:in-reply-to; + bh=FTrKkNrsW7oFf2weWFjBUCeY4AzPYNFulnRyLyCVrk8=; + b=z+XM3REbAP5x9W9gK6pBjzm9BHigJ0mkHwdcjCN9VQSWk7aIMxsxwVauiC4+Y15Py4 + e4kEWLSahtCS62N2410rXTW5F4IiCjrtU+iZztr+gz2IfLpV70e3CO2WaIRGNPRJm2g0 + Gl1+Y32Gk2jkmZ7w/ue8yng54F8FHEvg5joJFj19bMoWF0kd16ny2U+SjCfurbJu7Qpm + 7qMJtWStXIt8SBVaYdqvMjIylr3zDEvOolaSUBxXZYmD51XjQJXFL4DaYTvT6RIRsBZF + gcdEfTKQ3MdH7Dr8AbiaERh3vNXQ9oKb1cHL7aodKSAS6/NpSSvKMxmW+7n4yICL7hsM + b8pQ== +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=1e100.net; s=20210112; + h=x-gm-message-state:date:from:to:cc:subject:message-id:references + :mime-version:content-disposition:in-reply-to; + bh=FTrKkNrsW7oFf2weWFjBUCeY4AzPYNFulnRyLyCVrk8=; + b=YyvJy1w+MELo/HMukbimTZO7p+9odhEtnD9F2+GB68WqNtHOSqLj+FNJKrl2cWUWPM + Oec5Mop17BPiDQ5du2gbK9mEJMae9wPoqUhJijzgbcfyH8nAHG8XgBD8PYhzcdaKiwZW + 1/rhWRpyqsAmRKRnXBk+qXOydG6sbeJqYIDiHxHV/MWXzXK8L1tw0TN6x+ovUHJ8tOuu + ZStLc+f7IV9gr3soTs3R4sloQluxitDfe4RReEpc0HDcPxG0V91aiT4MxULStqcCqUbz + I1S0PJMehkw5RIZvrW8GpPjBGFao6X30hvxBN1Skq/nq1rUbbIwat343WUGUC/LogIAV + Wd5A== +X-Gm-Message-State: AOAM533g0jVnFyUCJsyN7y07jhNAhfATafqgniWHcVni8kH1UQ43T/Cd + 76bWXlo05ji/88mEupUArvoHr60/63d4qA== +X-Google-Smtp-Source: ABdhPJwh3a+flp+ajvTa6YBvQY7iqlxqOUdkFKcfZ3ahJTw9JXb3F4kXsRKSfwjHXJ9SQm7cyHyn1Q== +X-Received: by 2002:a05:6638:3009:: with SMTP id r9mr861119jak.262.1641849548063; + Mon, 10 Jan 2022 13:19:08 -0800 (PST) +Received: from localhost (104-178-186-189.lightspeed.milwwi.sbcglobal.net. [104.178.186.189]) + by smtp.gmail.com with ESMTPSA id t6sm5035566iov.39.2022.01.10.13.19.07 + (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); + Mon, 10 Jan 2022 13:19:07 -0800 (PST) +Date: Mon, 10 Jan 2022 16:19:06 -0500 +From: Taylor Blau +To: git@vger.kernel.org +Cc: Junio C Hamano , + Linus Torvalds , + Fabian Stelzer +Subject: [PATCH] fmt-merge-msg: prevent use-after-free with signed tags +Message-ID: <6e08b73d602853b3de71257117e85e32b96b5c19.1641849502.git.me@ttaylorr.com> +References: +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Disposition: inline +In-Reply-To: +Precedence: bulk +List-ID: +X-Mailing-List: git@vger.kernel.org + +When merging a signed tag, fmt_merge_msg_sigs() is responsible for +populating the body of the merge message with the names of the signed +tags, their signatures, and the validity of those signatures. + +In 02769437e1 (ssh signing: use sigc struct to pass payload, +2021-12-09), check_signature() was taught to pass the object payload via +the sigc struct instead of passing the payload buffer separately. + +In effect, 02769437e1 causes buf, and sigc.payload to point at the same +region in memory. This causes a problem for fmt_tag_signature(), which +wants to read from this location, since it is freed beforehand by +signature_check_clear() (which frees it via sigc's `payload` member). + +That makes the subsequent use in fmt_tag_signature() a use-after-free. + +As a result, merge messages did not contain the body of any signed tags. +Luckily, they tend not to contain garbage, either, since the result of +strstr()-ing the object buffer in fmt_tag_signature() is guarded: + + const char *tag_body = strstr(buf, "\n\n"); + if (tag_body) { + tag_body += 2; + strbuf_add(tagbuf, tag_body, buf + len - tag_body); + } + +Unfortunately, the tests in t6200 did not catch this at the time because +they do not search for the body of signed tags in fmt-merge-msg's +output. + +Resolve this by waiting to call signature_check_clear() until after its +contents can be safely discarded. Harden ourselves against any future +regressions in this area by making sure we can find signed tag messages +in the output of fmt-merge-msg, too. + +Reported-by: Linus Torvalds +Signed-off-by: Taylor Blau +--- + fmt-merge-msg.c | 2 +- + t/t6200-fmt-merge-msg.sh | 8 ++++++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c +index e5c0aff2bf..baca57d5b6 100644 +--- a/fmt-merge-msg.c ++++ b/fmt-merge-msg.c +@@ -541,7 +541,6 @@ static void fmt_merge_msg_sigs(struct strbuf *out) + else + strbuf_addstr(&sig, sigc.output); + } +- signature_check_clear(&sigc); + + if (!tag_number++) { + fmt_tag_signature(&tagbuf, &sig, buf, len); +@@ -565,6 +564,7 @@ static void fmt_merge_msg_sigs(struct strbuf *out) + } + strbuf_release(&payload); + strbuf_release(&sig); ++ signature_check_clear(&sigc); + next: + free(origbuf); + } +diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh +index 7544245f90..5a221f8ef1 100755 +--- a/t/t6200-fmt-merge-msg.sh ++++ b/t/t6200-fmt-merge-msg.sh +@@ -126,6 +126,7 @@ test_expect_success GPG 'message for merging local tag signed by good key' ' + git fetch . signed-good-tag && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}signed-good-tag${apos}" actual && ++ grep "^signed-tag-msg" actual && + grep "^# gpg: Signature made" actual && + grep "^# gpg: Good signature from" actual + ' +@@ -135,6 +136,7 @@ test_expect_success GPG 'message for merging local tag signed by unknown key' ' + git fetch . signed-good-tag && + GNUPGHOME=. git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}signed-good-tag${apos}" actual && ++ grep "^signed-tag-msg" actual && + grep "^# gpg: Signature made" actual && + grep -E "^# gpg: Can${apos}t check signature: (public key not found|No public key)" actual + ' +@@ -145,6 +147,7 @@ test_expect_success GPGSSH 'message for merging local tag signed by good ssh key + git fetch . signed-good-ssh-tag && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}signed-good-ssh-tag${apos}" actual && ++ grep "^signed-ssh-tag-msg" actual && + grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual && + ! grep "${GPGSSH_BAD_SIGNATURE}" actual + ' +@@ -155,6 +158,7 @@ test_expect_success GPGSSH 'message for merging local tag signed by unknown ssh + git fetch . signed-untrusted-ssh-tag && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}signed-untrusted-ssh-tag${apos}" actual && ++ grep "^signed-ssh-tag-msg-untrusted" actual && + grep "${GPGSSH_GOOD_SIGNATURE_UNTRUSTED}" actual && + ! grep "${GPGSSH_BAD_SIGNATURE}" actual && + grep "${GPGSSH_KEY_NOT_TRUSTED}" actual +@@ -166,6 +170,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign + git fetch . expired-signed && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}expired-signed${apos}" actual && ++ grep "^expired-signed" actual && + ! grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual + ' + +@@ -175,6 +180,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign + git fetch . notyetvalid-signed && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}notyetvalid-signed${apos}" actual && ++ grep "^notyetvalid-signed" actual && + ! grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual + ' + +@@ -184,6 +190,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign + git fetch . timeboxedvalid-signed && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}timeboxedvalid-signed${apos}" actual && ++ grep "^timeboxedvalid-signed" actual && + grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual && + ! grep "${GPGSSH_BAD_SIGNATURE}" actual + ' +@@ -194,6 +201,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign + git fetch . timeboxedinvalid-signed && + git fmt-merge-msg <.git/FETCH_HEAD >actual && + grep "^Merge tag ${apos}timeboxedinvalid-signed${apos}" actual && ++ grep "^timeboxedinvalid-signed" actual && + ! grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual + ' + +-- +2.34.1.455.gd6eb6fd089 + diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 1f1f8b1..bd44452 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -4,7 +4,7 @@ GIT_SKIP_TESTS missing AUTOIDENT missing CASE_INSENSITIVE_FS missing DONTHAVEIT -missing EXPENSIVE +missing ([!]LONG_IS_64BIT,)?EXPENSIVE missing JGIT missing !?LAZY_(TRUE|FALSE) missing MINGW diff --git a/git.spec b/git.spec index 6b12273..ea1b95b 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -#global rcrev .rc0 +%global rcrev .rc0 Name: git -Version: 2.34.1 -Release: 1%{?rcrev}%{?dist} +Version: 2.35.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -119,6 +119,10 @@ Patch3: 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch Patch4: 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch Patch5: 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch +# Fix tag message contents +# https://lore.kernel.org/git/CAHk-=whXPxWL7z3GiPkaDt+yygrRmagrYUnib7Lx=Vvrqx2ufg@mail.gmail.com/ +Patch6: https://lore.kernel.org/git/6e08b73d602853b3de71257117e85e32b96b5c19.1641849502.git.me@ttaylorr.com/raw#/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -218,7 +222,7 @@ BuildRequires: jgit %endif # endif fedora (except i386 and s390x) BuildRequires: mod_dav_svn -BuildRequires: openssh +BuildRequires: openssh-clients BuildRequires: perl(App::Prove) BuildRequires: perl(CGI) BuildRequires: perl(CGI::Carp) @@ -1008,6 +1012,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jan 10 2022 Todd Zullinger - 2.35.0-0.0.rc0 +- update to 2.35.0-rc0 + * Thu Nov 25 2021 Todd Zullinger - 2.34.1-1 - update to 2.34.1 - fix gpgsm issues with gnupg-2.3 diff --git a/sources b/sources index 9c138f8..4e6eca9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.34.1.tar.xz) = a1a8e9e6f64b1da25508fbd2f783564dcdbe181fb5ff1ebab3bdac6db6094e18acc334479a1abf22ac17ce4f733cc3e10a664db9ab234cd523735a3f027b42db -SHA512 (git-2.34.1.tar.sign) = a1111276e18da1a7b360e3ed3b8460034ea413b116482b0b66342f8873a9dd02a90f3f5bc7ad1e4b3c7f39ed55926a8155064b849e6e6bdf9478cb85b93f10b5 +SHA512 (git-2.35.0.rc0.tar.xz) = 9aa5d89d7981c73d32e9023dfc61a62e63688c3172cba4bee145b2ff4f5f7bc497435d1b4b535089c698893feabc6057a6522676e52bd3355327dfc0b6b8ba56 +SHA512 (git-2.35.0.rc0.tar.sign) = fe4e74de26c0268d36f4fecfa2a2e014e4025c16c931366d1f6f70417661aa250e4ccb8d583c1060559e554e0f5eb770901f246f729f9a55ecbd08c11c6f1119 From 9d7a08be77521c05a65cdc450bc96e41f974f193 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 14 Jan 2022 20:04:04 -0500 Subject: [PATCH 091/202] update to 2.35.0-rc1 Release notes: https://github.com/git/git/raw/v2.35.0-rc1/Documentation/RelNotes/2.35.0.txt --- ...event-use-after-free-with-signed-tag.patch | 199 ------------------ git.spec | 11 +- sources | 4 +- 3 files changed, 7 insertions(+), 207 deletions(-) delete mode 100644 0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch diff --git a/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch b/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch deleted file mode 100644 index 72cd990..0000000 --- a/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch +++ /dev/null @@ -1,199 +0,0 @@ -From mboxrd@z Thu Jan 1 00:00:00 1970 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) - by smtp.lore.kernel.org (Postfix) with ESMTP id 4EF60C433EF - for ; Mon, 10 Jan 2022 21:19:15 +0000 (UTC) -Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand - id S1343852AbiAJVTN (ORCPT ); - Mon, 10 Jan 2022 16:19:13 -0500 -Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45246 "EHLO - lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org - with ESMTP id S240793AbiAJVTJ (ORCPT ); - Mon, 10 Jan 2022 16:19:09 -0500 -Received: from mail-io1-xd32.google.com (mail-io1-xd32.google.com [IPv6:2607:f8b0:4864:20::d32]) - by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D57E9C06173F - for ; Mon, 10 Jan 2022 13:19:08 -0800 (PST) -Received: by mail-io1-xd32.google.com with SMTP id h23so19409080iol.11 - for ; Mon, 10 Jan 2022 13:19:08 -0800 (PST) -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=ttaylorr-com.20210112.gappssmtp.com; s=20210112; - h=date:from:to:cc:subject:message-id:references:mime-version - :content-disposition:in-reply-to; - bh=FTrKkNrsW7oFf2weWFjBUCeY4AzPYNFulnRyLyCVrk8=; - b=z+XM3REbAP5x9W9gK6pBjzm9BHigJ0mkHwdcjCN9VQSWk7aIMxsxwVauiC4+Y15Py4 - e4kEWLSahtCS62N2410rXTW5F4IiCjrtU+iZztr+gz2IfLpV70e3CO2WaIRGNPRJm2g0 - Gl1+Y32Gk2jkmZ7w/ue8yng54F8FHEvg5joJFj19bMoWF0kd16ny2U+SjCfurbJu7Qpm - 7qMJtWStXIt8SBVaYdqvMjIylr3zDEvOolaSUBxXZYmD51XjQJXFL4DaYTvT6RIRsBZF - gcdEfTKQ3MdH7Dr8AbiaERh3vNXQ9oKb1cHL7aodKSAS6/NpSSvKMxmW+7n4yICL7hsM - b8pQ== -X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; - d=1e100.net; s=20210112; - h=x-gm-message-state:date:from:to:cc:subject:message-id:references - :mime-version:content-disposition:in-reply-to; - bh=FTrKkNrsW7oFf2weWFjBUCeY4AzPYNFulnRyLyCVrk8=; - b=YyvJy1w+MELo/HMukbimTZO7p+9odhEtnD9F2+GB68WqNtHOSqLj+FNJKrl2cWUWPM - Oec5Mop17BPiDQ5du2gbK9mEJMae9wPoqUhJijzgbcfyH8nAHG8XgBD8PYhzcdaKiwZW - 1/rhWRpyqsAmRKRnXBk+qXOydG6sbeJqYIDiHxHV/MWXzXK8L1tw0TN6x+ovUHJ8tOuu - ZStLc+f7IV9gr3soTs3R4sloQluxitDfe4RReEpc0HDcPxG0V91aiT4MxULStqcCqUbz - I1S0PJMehkw5RIZvrW8GpPjBGFao6X30hvxBN1Skq/nq1rUbbIwat343WUGUC/LogIAV - Wd5A== -X-Gm-Message-State: AOAM533g0jVnFyUCJsyN7y07jhNAhfATafqgniWHcVni8kH1UQ43T/Cd - 76bWXlo05ji/88mEupUArvoHr60/63d4qA== -X-Google-Smtp-Source: ABdhPJwh3a+flp+ajvTa6YBvQY7iqlxqOUdkFKcfZ3ahJTw9JXb3F4kXsRKSfwjHXJ9SQm7cyHyn1Q== -X-Received: by 2002:a05:6638:3009:: with SMTP id r9mr861119jak.262.1641849548063; - Mon, 10 Jan 2022 13:19:08 -0800 (PST) -Received: from localhost (104-178-186-189.lightspeed.milwwi.sbcglobal.net. [104.178.186.189]) - by smtp.gmail.com with ESMTPSA id t6sm5035566iov.39.2022.01.10.13.19.07 - (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); - Mon, 10 Jan 2022 13:19:07 -0800 (PST) -Date: Mon, 10 Jan 2022 16:19:06 -0500 -From: Taylor Blau -To: git@vger.kernel.org -Cc: Junio C Hamano , - Linus Torvalds , - Fabian Stelzer -Subject: [PATCH] fmt-merge-msg: prevent use-after-free with signed tags -Message-ID: <6e08b73d602853b3de71257117e85e32b96b5c19.1641849502.git.me@ttaylorr.com> -References: -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf-8 -Content-Disposition: inline -In-Reply-To: -Precedence: bulk -List-ID: -X-Mailing-List: git@vger.kernel.org - -When merging a signed tag, fmt_merge_msg_sigs() is responsible for -populating the body of the merge message with the names of the signed -tags, their signatures, and the validity of those signatures. - -In 02769437e1 (ssh signing: use sigc struct to pass payload, -2021-12-09), check_signature() was taught to pass the object payload via -the sigc struct instead of passing the payload buffer separately. - -In effect, 02769437e1 causes buf, and sigc.payload to point at the same -region in memory. This causes a problem for fmt_tag_signature(), which -wants to read from this location, since it is freed beforehand by -signature_check_clear() (which frees it via sigc's `payload` member). - -That makes the subsequent use in fmt_tag_signature() a use-after-free. - -As a result, merge messages did not contain the body of any signed tags. -Luckily, they tend not to contain garbage, either, since the result of -strstr()-ing the object buffer in fmt_tag_signature() is guarded: - - const char *tag_body = strstr(buf, "\n\n"); - if (tag_body) { - tag_body += 2; - strbuf_add(tagbuf, tag_body, buf + len - tag_body); - } - -Unfortunately, the tests in t6200 did not catch this at the time because -they do not search for the body of signed tags in fmt-merge-msg's -output. - -Resolve this by waiting to call signature_check_clear() until after its -contents can be safely discarded. Harden ourselves against any future -regressions in this area by making sure we can find signed tag messages -in the output of fmt-merge-msg, too. - -Reported-by: Linus Torvalds -Signed-off-by: Taylor Blau ---- - fmt-merge-msg.c | 2 +- - t/t6200-fmt-merge-msg.sh | 8 ++++++++ - 2 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c -index e5c0aff2bf..baca57d5b6 100644 ---- a/fmt-merge-msg.c -+++ b/fmt-merge-msg.c -@@ -541,7 +541,6 @@ static void fmt_merge_msg_sigs(struct strbuf *out) - else - strbuf_addstr(&sig, sigc.output); - } -- signature_check_clear(&sigc); - - if (!tag_number++) { - fmt_tag_signature(&tagbuf, &sig, buf, len); -@@ -565,6 +564,7 @@ static void fmt_merge_msg_sigs(struct strbuf *out) - } - strbuf_release(&payload); - strbuf_release(&sig); -+ signature_check_clear(&sigc); - next: - free(origbuf); - } -diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh -index 7544245f90..5a221f8ef1 100755 ---- a/t/t6200-fmt-merge-msg.sh -+++ b/t/t6200-fmt-merge-msg.sh -@@ -126,6 +126,7 @@ test_expect_success GPG 'message for merging local tag signed by good key' ' - git fetch . signed-good-tag && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}signed-good-tag${apos}" actual && -+ grep "^signed-tag-msg" actual && - grep "^# gpg: Signature made" actual && - grep "^# gpg: Good signature from" actual - ' -@@ -135,6 +136,7 @@ test_expect_success GPG 'message for merging local tag signed by unknown key' ' - git fetch . signed-good-tag && - GNUPGHOME=. git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}signed-good-tag${apos}" actual && -+ grep "^signed-tag-msg" actual && - grep "^# gpg: Signature made" actual && - grep -E "^# gpg: Can${apos}t check signature: (public key not found|No public key)" actual - ' -@@ -145,6 +147,7 @@ test_expect_success GPGSSH 'message for merging local tag signed by good ssh key - git fetch . signed-good-ssh-tag && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}signed-good-ssh-tag${apos}" actual && -+ grep "^signed-ssh-tag-msg" actual && - grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual && - ! grep "${GPGSSH_BAD_SIGNATURE}" actual - ' -@@ -155,6 +158,7 @@ test_expect_success GPGSSH 'message for merging local tag signed by unknown ssh - git fetch . signed-untrusted-ssh-tag && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}signed-untrusted-ssh-tag${apos}" actual && -+ grep "^signed-ssh-tag-msg-untrusted" actual && - grep "${GPGSSH_GOOD_SIGNATURE_UNTRUSTED}" actual && - ! grep "${GPGSSH_BAD_SIGNATURE}" actual && - grep "${GPGSSH_KEY_NOT_TRUSTED}" actual -@@ -166,6 +170,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign - git fetch . expired-signed && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}expired-signed${apos}" actual && -+ grep "^expired-signed" actual && - ! grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual - ' - -@@ -175,6 +180,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign - git fetch . notyetvalid-signed && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}notyetvalid-signed${apos}" actual && -+ grep "^notyetvalid-signed" actual && - ! grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual - ' - -@@ -184,6 +190,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign - git fetch . timeboxedvalid-signed && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}timeboxedvalid-signed${apos}" actual && -+ grep "^timeboxedvalid-signed" actual && - grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual && - ! grep "${GPGSSH_BAD_SIGNATURE}" actual - ' -@@ -194,6 +201,7 @@ test_expect_success GPGSSH,GPGSSH_VERIFYTIME 'message for merging local tag sign - git fetch . timeboxedinvalid-signed && - git fmt-merge-msg <.git/FETCH_HEAD >actual && - grep "^Merge tag ${apos}timeboxedinvalid-signed${apos}" actual && -+ grep "^timeboxedinvalid-signed" actual && - ! grep "${GPGSSH_GOOD_SIGNATURE_TRUSTED}" actual - ' - --- -2.34.1.455.gd6eb6fd089 - diff --git a/git.spec b/git.spec index ea1b95b..fb6a98d 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -%global rcrev .rc0 +%global rcrev .rc1 Name: git Version: 2.35.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -119,10 +119,6 @@ Patch3: 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch Patch4: 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch Patch5: 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch -# Fix tag message contents -# https://lore.kernel.org/git/CAHk-=whXPxWL7z3GiPkaDt+yygrRmagrYUnib7Lx=Vvrqx2ufg@mail.gmail.com/ -Patch6: https://lore.kernel.org/git/6e08b73d602853b3de71257117e85e32b96b5c19.1641849502.git.me@ttaylorr.com/raw#/0001-fmt-merge-msg-prevent-use-after-free-with-signed-tag.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1012,6 +1008,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Jan 15 2022 Todd Zullinger - 2.35.0-0.1.rc1 +- update to 2.35.0-rc1 + * Mon Jan 10 2022 Todd Zullinger - 2.35.0-0.0.rc0 - update to 2.35.0-rc0 diff --git a/sources b/sources index 4e6eca9..84bfe82 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.35.0.rc0.tar.xz) = 9aa5d89d7981c73d32e9023dfc61a62e63688c3172cba4bee145b2ff4f5f7bc497435d1b4b535089c698893feabc6057a6522676e52bd3355327dfc0b6b8ba56 -SHA512 (git-2.35.0.rc0.tar.sign) = fe4e74de26c0268d36f4fecfa2a2e014e4025c16c931366d1f6f70417661aa250e4ccb8d583c1060559e554e0f5eb770901f246f729f9a55ecbd08c11c6f1119 +SHA512 (git-2.35.0.rc1.tar.xz) = fe7fdf5dfa9f3c7ac89158fd73520335cb0c10ab992258dbb88ee1a90b03f4f8bfbe490dcf704770e91245e162014deb400f3b507dd6fda4f52b01c16081b2cd +SHA512 (git-2.35.0.rc1.tar.sign) = 0644ef1e80a3ef84edbe699c1fe50df451aa335b9a0881786e5dac73079e2b94111c9cfd140eb6bee1c2342e06d6c0a27e968fbd1bc5a2ca76892d6cbaa4bc83 From a8bfca0241b9008882609f05cbcc56466bd37856 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 19 Jan 2022 18:02:12 -0500 Subject: [PATCH 092/202] update to 2.35.0-rc2 Release notes: https://github.com/git/git/raw/v2.35.0-rc2/Documentation/RelNotes/2.35.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index fb6a98d..6658bce 100644 --- a/git.spec +++ b/git.spec @@ -76,11 +76,11 @@ %endif # Define for release candidates -%global rcrev .rc1 +%global rcrev .rc2 Name: git Version: 2.35.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1008,6 +1008,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jan 19 2022 Todd Zullinger - 2.35.0-0.2.rc2 +- update to 2.35.0-rc2 + * Sat Jan 15 2022 Todd Zullinger - 2.35.0-0.1.rc1 - update to 2.35.0-rc1 diff --git a/sources b/sources index 84bfe82..debc1e5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.35.0.rc1.tar.xz) = fe7fdf5dfa9f3c7ac89158fd73520335cb0c10ab992258dbb88ee1a90b03f4f8bfbe490dcf704770e91245e162014deb400f3b507dd6fda4f52b01c16081b2cd -SHA512 (git-2.35.0.rc1.tar.sign) = 0644ef1e80a3ef84edbe699c1fe50df451aa335b9a0881786e5dac73079e2b94111c9cfd140eb6bee1c2342e06d6c0a27e968fbd1bc5a2ca76892d6cbaa4bc83 +SHA512 (git-2.35.0.rc2.tar.xz) = 5eb758cbf37c632f89f03eca65bf36f7f2490fbfb3d54c396d906b45a7ab96735f928abe300d7bcacdfdd33b59b1901a4c92f27f30dfe82c4fb1e8d690568dc3 +SHA512 (git-2.35.0.rc2.tar.sign) = fc9d96ea3f58f3c34f121477597e4f5b4a9c50e0d3ee42d021a276f5f1ca9a524c437a3fee8c78b6f09095ff411ab2f919444c53152e9bb44e5211437c18f415 From ce97e98127806a33bcb42d1873af5aa11b77cdaa Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 21 Jan 2022 15:07:05 -0500 Subject: [PATCH 093/202] checkout: avoid BUG() when hitting a broken repository (rhbz#2042920) The git checkout command crashes when run multiple times, if `.git/refs/remotes/origin/HEAD` is manually copied into `.git/refs/heads/$branch-name`. Strictly, this is repository corruption, but it has been silently tolerated until upstream 9081a421 (checkout: fix "branch info" memory leaks, 2021-11-16), which added some sanity checking of the data. Loosen the check via Junio's upstream commit 519947b69a (checkout: avoid BUG() when hitting a broken repository, 2022-01-21). --- ...BUG-when-hitting-a-broken-repository.patch | 74 +++++++++++++++++++ git.spec | 9 ++- 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch diff --git a/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch b/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch new file mode 100644 index 0000000..d04d487 --- /dev/null +++ b/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch @@ -0,0 +1,74 @@ +From 519947b69a9ea1461d5f5afc762823835295b3b2 Mon Sep 17 00:00:00 2001 +From: Junio C Hamano +Date: Fri, 21 Jan 2022 16:58:30 -0800 +Subject: [PATCH] checkout: avoid BUG() when hitting a broken repository +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When 9081a421 (checkout: fix "branch info" memory leaks, 2021-11-16) +cleaned up existing memory leaks, we added an unrelated sanity check +to ensure that a local branch is truly local and not a symref to +elsewhere that dies with BUG() otherwise. This was misguided in two +ways. First of all, such a tightening did not belong to a leak-fix +patch. And the condition it detected was *not* a bug in our program +but a problem in user data, where warning() or die() would have been +more appropriate. + +As the condition is not fatal (the result of computing the local +branch name in the code that is involved in the faulty check is only +used as a textual label for the commit), let's revert the code to +the original state, i.e. strip "refs/heads/" to compute the local +branch name if possible, and otherwise leave it NULL. The consumer +of the information in merge_working_tree() is prepared to see NULL +in there and act accordingly. + +cf. https://bugzilla.redhat.com/show_bug.cgi?id=2042920 + +Reported-by: Petr Šplíchal +Reported-by: Todd Zullinger +Helped-by: Ævar Arnfjörð Bjarmason +Signed-off-by: Junio C Hamano +--- + builtin/checkout.c | 3 --- + t/t2018-checkout-branch.sh | 13 +++++++++++++ + 2 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/builtin/checkout.c b/builtin/checkout.c +index 43d0275187fc8f..1fb34d537d9e91 100644 +--- a/builtin/checkout.c ++++ b/builtin/checkout.c +@@ -1094,9 +1094,6 @@ static int switch_branches(const struct checkout_opts *opts, + const char *p; + if (skip_prefix(old_branch_info.path, prefix, &p)) + old_branch_info.name = xstrdup(p); +- else +- BUG("should be able to skip past '%s' in '%s'!", +- prefix, old_branch_info.path); + } + + if (opts->new_orphan_branch && opts->orphan_from_empty_tree) { +diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh +index 93be1c0eae5ead..5dda5ad4cbcb07 100755 +--- a/t/t2018-checkout-branch.sh ++++ b/t/t2018-checkout-branch.sh +@@ -85,6 +85,19 @@ test_expect_success 'setup' ' + git branch -m branch1 + ' + ++test_expect_success 'checkout a branch without refs/heads/* prefix' ' ++ git clone --no-tags . repo-odd-prefix && ++ ( ++ cd repo-odd-prefix && ++ ++ origin=$(git symbolic-ref refs/remotes/origin/HEAD) && ++ git symbolic-ref refs/heads/a-branch "$origin" && ++ ++ git checkout -f a-branch && ++ git checkout -f a-branch ++ ) ++' ++ + test_expect_success 'checkout -b to a new branch, set to HEAD' ' + test_when_finished " + git checkout branch1 && diff --git a/git.spec b/git.spec index 6658bce..7f280db 100644 --- a/git.spec +++ b/git.spec @@ -80,7 +80,7 @@ Name: git Version: 2.35.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -119,6 +119,10 @@ Patch3: 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch Patch4: 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch Patch5: 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch +# checkout: avoid BUG() when hitting a broken repository +# https://bugzilla.redhat.com/2042920 +Patch6: https://github.com/git/git/commit/519947b69a.patch#/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1008,6 +1012,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jan 20 2022 Todd Zullinger - 2.35.0-0.2.rc2.1 +- checkout: avoid BUG() when hitting a broken repository (rhbz#2042920) + * Wed Jan 19 2022 Todd Zullinger - 2.35.0-0.2.rc2 - update to 2.35.0-rc2 From 601fe503aabd0aeb45589b153b8c23819966dfa6 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 20 Jan 2022 12:33:32 -0500 Subject: [PATCH 094/202] fix compilation on EL7 Git now requires C99 support and a zlib with uncompress2 by default. On EL7, gcc-4.8.5 requires a flag to enable C99 support. Compilation also fails without -fPIC on EL7, for reasons of which I am not entirely clear. (I do not like making a change I cannot justify or explain properly, but it is better than dropping EL7 support until I have time to learn the reason(s).) Update the %build_cflags macro when building on EL7 to enable C99 support and set -fPIC. Define NO_UNCOMPRESS2 to use compat/zlib-uncompress2.c. --- git.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 7f280db..778e231 100644 --- a/git.spec +++ b/git.spec @@ -39,6 +39,7 @@ %else %bcond_without python2 %bcond_with python3 +%global build_cflags %{build_cflags} -fPIC -std=gnu99 %global gitweb_httpd_conf git.conf %global use_glibc_langpacks 0 %global use_perl_generators 0 @@ -80,7 +81,7 @@ Name: git Version: 2.35.0 -Release: 0.2%{?rcrev}%{?dist}.1 +Release: 0.2%{?rcrev}%{?dist}.2 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -548,6 +549,9 @@ INSTALL_SYMLINKS = 1 GITWEB_PROJECTROOT = %{_localstatedir}/lib/git GNU_ROFF = 1 NO_PERL_CPAN_FALLBACKS = 1 +%if 0%{?rhel} && 0%{?rhel} < 8 +NO_UNCOMPRESS2 = 1 +%endif %if %{with python3} PYTHON_PATH = %{__python3} %else @@ -1012,6 +1016,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Jan 21 2022 Todd Zullinger - 2.35.0-0.2.rc2.2 +- fix compilation on EL7 + * Thu Jan 20 2022 Todd Zullinger - 2.35.0-0.2.rc2.1 - checkout: avoid BUG() when hitting a broken repository (rhbz#2042920) From 32a3ec7045053427f28f40500aad489b420325d4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 22 Jan 2022 12:49:44 -0500 Subject: [PATCH 095/202] remove contrib/scalar to avoid cruft in git-core-doc The scalar command is being worked on incrementally upstream. As it matures, we may consider building and distributing it. Whether that will happen before it graduates from contrib or not is anyone's guess. For the moment, remove it to avoid cruft in git-core-doc. --- git.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 778e231..75ca4f4 100644 --- a/git.spec +++ b/git.spec @@ -81,7 +81,7 @@ Name: git Version: 2.35.0 -Release: 0.2%{?rcrev}%{?dist}.2 +Release: 0.2%{?rcrev}%{?dist}.3 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -675,6 +675,9 @@ install -Dpm 0755 contrib/diff-highlight/diff-highlight \ %{buildroot}%{_datadir}/git-core/contrib/diff-highlight rm -rf contrib/diff-highlight/{Makefile,diff-highlight,*.perl,t} +# Remove contrib/scalar to avoid cruft in the git-core-doc docdir +rm -rf contrib/scalar + # Clean up contrib/subtree to avoid cruft in the git-core-doc docdir rm -rf contrib/subtree/{INSTALL,Makefile,git-subtree*,t} @@ -1016,6 +1019,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Jan 22 2022 Todd Zullinger - 2.35.0-0.2.rc2.3 +- remove contrib/scalar to avoid cruft in git-core-doc + * Fri Jan 21 2022 Todd Zullinger - 2.35.0-0.2.rc2.2 - fix compilation on EL7 From 4eb061b2091db583f5b6d759e78d3aa6d32a75c4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 24 Jan 2022 15:31:20 -0500 Subject: [PATCH 096/202] update to 2.35.0 Release notes: https://github.com/git/git/raw/v2.35.0/Documentation/RelNotes/2.35.0.txt --- ...BUG-when-hitting-a-broken-repository.patch | 74 ------------------- git.spec | 11 ++- sources | 4 +- 3 files changed, 7 insertions(+), 82 deletions(-) delete mode 100644 0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch diff --git a/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch b/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch deleted file mode 100644 index d04d487..0000000 --- a/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 519947b69a9ea1461d5f5afc762823835295b3b2 Mon Sep 17 00:00:00 2001 -From: Junio C Hamano -Date: Fri, 21 Jan 2022 16:58:30 -0800 -Subject: [PATCH] checkout: avoid BUG() when hitting a broken repository -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When 9081a421 (checkout: fix "branch info" memory leaks, 2021-11-16) -cleaned up existing memory leaks, we added an unrelated sanity check -to ensure that a local branch is truly local and not a symref to -elsewhere that dies with BUG() otherwise. This was misguided in two -ways. First of all, such a tightening did not belong to a leak-fix -patch. And the condition it detected was *not* a bug in our program -but a problem in user data, where warning() or die() would have been -more appropriate. - -As the condition is not fatal (the result of computing the local -branch name in the code that is involved in the faulty check is only -used as a textual label for the commit), let's revert the code to -the original state, i.e. strip "refs/heads/" to compute the local -branch name if possible, and otherwise leave it NULL. The consumer -of the information in merge_working_tree() is prepared to see NULL -in there and act accordingly. - -cf. https://bugzilla.redhat.com/show_bug.cgi?id=2042920 - -Reported-by: Petr Šplíchal -Reported-by: Todd Zullinger -Helped-by: Ævar Arnfjörð Bjarmason -Signed-off-by: Junio C Hamano ---- - builtin/checkout.c | 3 --- - t/t2018-checkout-branch.sh | 13 +++++++++++++ - 2 files changed, 13 insertions(+), 3 deletions(-) - -diff --git a/builtin/checkout.c b/builtin/checkout.c -index 43d0275187fc8f..1fb34d537d9e91 100644 ---- a/builtin/checkout.c -+++ b/builtin/checkout.c -@@ -1094,9 +1094,6 @@ static int switch_branches(const struct checkout_opts *opts, - const char *p; - if (skip_prefix(old_branch_info.path, prefix, &p)) - old_branch_info.name = xstrdup(p); -- else -- BUG("should be able to skip past '%s' in '%s'!", -- prefix, old_branch_info.path); - } - - if (opts->new_orphan_branch && opts->orphan_from_empty_tree) { -diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh -index 93be1c0eae5ead..5dda5ad4cbcb07 100755 ---- a/t/t2018-checkout-branch.sh -+++ b/t/t2018-checkout-branch.sh -@@ -85,6 +85,19 @@ test_expect_success 'setup' ' - git branch -m branch1 - ' - -+test_expect_success 'checkout a branch without refs/heads/* prefix' ' -+ git clone --no-tags . repo-odd-prefix && -+ ( -+ cd repo-odd-prefix && -+ -+ origin=$(git symbolic-ref refs/remotes/origin/HEAD) && -+ git symbolic-ref refs/heads/a-branch "$origin" && -+ -+ git checkout -f a-branch && -+ git checkout -f a-branch -+ ) -+' -+ - test_expect_success 'checkout -b to a new branch, set to HEAD' ' - test_when_finished " - git checkout branch1 && diff --git a/git.spec b/git.spec index 75ca4f4..14f4c3b 100644 --- a/git.spec +++ b/git.spec @@ -77,11 +77,11 @@ %endif # Define for release candidates -%global rcrev .rc2 +#global rcrev .rc0 Name: git Version: 2.35.0 -Release: 0.2%{?rcrev}%{?dist}.3 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -120,10 +120,6 @@ Patch3: 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch Patch4: 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch Patch5: 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch -# checkout: avoid BUG() when hitting a broken repository -# https://bugzilla.redhat.com/2042920 -Patch6: https://github.com/git/git/commit/519947b69a.patch#/0001-checkout-avoid-BUG-when-hitting-a-broken-repository.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1019,6 +1015,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jan 24 2022 Todd Zullinger - 2.35.0-1 +- update to 2.35.0 + * Sat Jan 22 2022 Todd Zullinger - 2.35.0-0.2.rc2.3 - remove contrib/scalar to avoid cruft in git-core-doc diff --git a/sources b/sources index debc1e5..21febdd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.35.0.rc2.tar.xz) = 5eb758cbf37c632f89f03eca65bf36f7f2490fbfb3d54c396d906b45a7ab96735f928abe300d7bcacdfdd33b59b1901a4c92f27f30dfe82c4fb1e8d690568dc3 -SHA512 (git-2.35.0.rc2.tar.sign) = fc9d96ea3f58f3c34f121477597e4f5b4a9c50e0d3ee42d021a276f5f1ca9a524c437a3fee8c78b6f09095ff411ab2f919444c53152e9bb44e5211437c18f415 +SHA512 (git-2.35.0.tar.xz) = ae391e1cda7b4e7d49e09e7412cd2da8d643c71f20967fd7b600be00a13d3b126c2bc3a2deece935742084ecbbd1eb51455b10365e0d65423979241e9e7b94a9 +SHA512 (git-2.35.0.tar.sign) = 8aeb47662e51f2d64150101b2e0887c9f6bfe42b312d52cde3e9d0b2467febea7bd4e9ba2e2df2121728a574e3d02a42ef7f2220486211bde8f936e848da4510 From 1dc07e7d5daaacc47013f1a646d81f79379176b6 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 24 Jan 2022 15:33:49 -0500 Subject: [PATCH 097/202] set path to linker script in %_package_note_file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The package-notes feature¹ creates a linker script in %{buildsubdir}. Unfortunately, %{buildsubdir} is not set in %prep, leaving us with an incorrect path to the linker script. The build then fails with: /usr/bin/ld: cannot open linker script file /builddir/build/BUILD/.package_note-git-2.35.0-0.2.rc2.fc36.3.x86_64.ld: No such file or directory Set the path to the linker script via %_package_note_file, per suggestion by Zbigniew Jędrzejewski-Szmek². References: ¹ https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects ² https://bugzilla.redhat.com/2044028#c10 --- git.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/git.spec b/git.spec index 14f4c3b..1baa4ef 100644 --- a/git.spec +++ b/git.spec @@ -76,6 +76,9 @@ %global _hardened_build 1 %endif +# Set path to the package-notes linker script +%global _package_note_file %{_builddir}/%{name}-%{version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld + # Define for release candidates #global rcrev .rc0 @@ -1017,6 +1020,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Mon Jan 24 2022 Todd Zullinger - 2.35.0-1 - update to 2.35.0 +- set path to linker script in %%_package_note_file * Sat Jan 22 2022 Todd Zullinger - 2.35.0-0.2.rc2.3 - remove contrib/scalar to avoid cruft in git-core-doc From 9e214cd4d018c3be1f38bd2b4aa949a8b7f0a3a4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 29 Jan 2022 00:20:45 -0500 Subject: [PATCH 098/202] update to 2.35.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per the upstream release notes¹: Git 2.35 shipped with a regression that broke use of "rebase" and "stash" in a secondary worktree. This maintenance release ought to fix it. ¹ https://github.com/git/git/raw/v2.35.1/Documentation/RelNotes/2.35.1.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 1baa4ef..b8ea26b 100644 --- a/git.spec +++ b/git.spec @@ -83,7 +83,7 @@ #global rcrev .rc0 Name: git -Version: 2.35.0 +Version: 2.35.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1018,6 +1018,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Jan 29 2022 Todd Zullinger - 2.35.1-1 +- update to 2.35.1 + * Mon Jan 24 2022 Todd Zullinger - 2.35.0-1 - update to 2.35.0 - set path to linker script in %%_package_note_file diff --git a/sources b/sources index 21febdd..4095968 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.35.0.tar.xz) = ae391e1cda7b4e7d49e09e7412cd2da8d643c71f20967fd7b600be00a13d3b126c2bc3a2deece935742084ecbbd1eb51455b10365e0d65423979241e9e7b94a9 -SHA512 (git-2.35.0.tar.sign) = 8aeb47662e51f2d64150101b2e0887c9f6bfe42b312d52cde3e9d0b2467febea7bd4e9ba2e2df2121728a574e3d02a42ef7f2220486211bde8f936e848da4510 +SHA512 (git-2.35.1.tar.xz) = 926c6813ef61931e1a1c43dfd7b15e20dc5878c1752876bd08f039249c9ed09f20f096b2f01947de9c9522c942e9fa8c1363d7d31a488bbe3f93c0cff31fcbcb +SHA512 (git-2.35.1.tar.sign) = 27adbb0628a18ae13ce76c2812c2f2a8a9da002105ca1f550a864ae769a27efa697ab7cbd8582e69be99d8731fe2f53895321c3a71990ffbcfe1e7f2064fd9b7 From 0b5afcebda0b34f5fb5860355c6ceef770f3feb1 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 4 Apr 2022 23:43:05 -0400 Subject: [PATCH 099/202] update to 2.36.0-rc0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The %_package_note_file definition added in 1dc07e7 (set path to linker script in %_package_note_file, 2022-01-24) does not support release candidates. Fix it. Add 'fsmonitor--daemon is not supported on this platform' and 'missing !REFFILES' to git.skip-test-patterns to match new test prerequisites which are not relevant for our builds. Adjust number of t5541 "push 2000 tags over http" test. It was shifted from 35 to 36 by upstream c36c62859a (tests: use "test_hook" for misc "mkdir -p" and "chmod" cases, 2022-03-17). Replace `%__make test` with `%__make -C t all` to avoid re-compiling in %check. This is an issue I have yet to fully diagnose. I suspect that it is related to the nice work Ævar Arnfjörð Bjarmason has done upstream to improve the efficiency and correctness of the build process. Work around it for the moment. Release notes: https://github.com/git/git/raw/v2.36.0-rc0/Documentation/RelNotes/2.36.0.txt --- ...-litdd-in-credential-cache-fsmonitor.patch | 102 ++++++++++++++++++ ...ith-colons-when-parsing-gpgsm-output.patch | 47 -------- ...-gpg-components-after-updating-trust.patch | 31 ------ ...ll-gpg-components-not-just-gpg-agent.patch | 40 ------- ...02-match-gpgsm-output-from-GnuPG-2.3.patch | 33 ------ ...tch-SIG_CREATED-if-it-s-the-first-li.patch | 48 --------- git.skip-test-patterns | 2 + git.spec | 29 +++-- sources | 4 +- 9 files changed, 120 insertions(+), 216 deletions(-) create mode 100644 0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch delete mode 100644 0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch delete mode 100644 0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch delete mode 100644 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch delete mode 100644 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch delete mode 100644 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch diff --git a/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch b/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch new file mode 100644 index 0000000..6982207 --- /dev/null +++ b/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch @@ -0,0 +1,102 @@ +From f3ea4bed2acb129db66c4c9a22dae71576d58066 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Wed, 6 Apr 2022 14:41:22 -0400 +Subject: [PATCH] doc: replace "--" with {litdd} in credential-cache/fsmonitor + +Asciidoc renders `--` as em-dash. This is not appropriate for command +names. It also breaks linkgit links to these commands. + +Fix git-credential-cache--daemon and git-fsmonitor--daemon. The latter +was added 3248486920 (fsmonitor: document builtin fsmonitor, 2022-03-25) +and included several links. A check for broken links in the HTML docs +turned this up. + +Manually inspecting the other Documentation/git-*--*.txt files turned up +the issue in git-credential-cache--daemon. + +While here, quote `git credential-cache--daemon` in the synopsis to +match the vast majority of our other documentation. + +Signed-off-by: Todd Zullinger +Signed-off-by: Junio C Hamano +--- + Documentation/config/core.txt | 2 +- + Documentation/git-credential-cache--daemon.txt | 6 +++--- + Documentation/git-fsmonitor--daemon.txt | 12 ++++++------ + Documentation/git-update-index.txt | 2 +- + 4 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/Documentation/config/core.txt b/Documentation/config/core.txt +index 889522956e45bb..e67392cc838499 100644 +--- a/Documentation/config/core.txt ++++ b/Documentation/config/core.txt +@@ -63,7 +63,7 @@ core.protectNTFS:: + + core.fsmonitor:: + If set to true, enable the built-in file system monitor +- daemon for this working directory (linkgit:git-fsmonitor--daemon[1]). ++ daemon for this working directory (linkgit:git-fsmonitor{litdd}daemon[1]). + + + Like hook-based file system monitors, the built-in file system monitor + can speed up Git commands that need to refresh the Git index +diff --git a/Documentation/git-credential-cache--daemon.txt b/Documentation/git-credential-cache--daemon.txt +index 7051c6bdf8f542..01e1c214dd82e1 100644 +--- a/Documentation/git-credential-cache--daemon.txt ++++ b/Documentation/git-credential-cache--daemon.txt +@@ -1,5 +1,5 @@ +-git-credential-cache--daemon(1) +-=============================== ++git-credential-cache{litdd}daemon(1) ++==================================== + + NAME + ---- +@@ -8,7 +8,7 @@ git-credential-cache--daemon - Temporarily store user credentials in memory + SYNOPSIS + -------- + [verse] +-git credential-cache--daemon [--debug] ++'git credential-cache{litdd}daemon' [--debug] + + DESCRIPTION + ----------- +diff --git a/Documentation/git-fsmonitor--daemon.txt b/Documentation/git-fsmonitor--daemon.txt +index 0fedf5a4565f79..cc142fb8612c72 100644 +--- a/Documentation/git-fsmonitor--daemon.txt ++++ b/Documentation/git-fsmonitor--daemon.txt +@@ -1,5 +1,5 @@ +-git-fsmonitor--daemon(1) +-======================== ++git-fsmonitor{litdd}daemon(1) ++============================= + + NAME + ---- +@@ -8,10 +8,10 @@ git-fsmonitor--daemon - A Built-in File System Monitor + SYNOPSIS + -------- + [verse] +-'git fsmonitor--daemon' start +-'git fsmonitor--daemon' run +-'git fsmonitor--daemon' stop +-'git fsmonitor--daemon' status ++'git fsmonitor{litdd}daemon' start ++'git fsmonitor{litdd}daemon' run ++'git fsmonitor{litdd}daemon' stop ++'git fsmonitor{litdd}daemon' status + + DESCRIPTION + ----------- +diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt +index 64315e2e8c2d3f..5ea2f2c60e45a3 100644 +--- a/Documentation/git-update-index.txt ++++ b/Documentation/git-update-index.txt +@@ -528,7 +528,7 @@ This feature is intended to speed up git operations for repos that have + large working directories. + + It enables git to work together with a file system monitor (see +-linkgit:git-fsmonitor--daemon[1] ++linkgit:git-fsmonitor{litdd}daemon[1] + and the + "fsmonitor-watchman" section of linkgit:githooks[5]) that can + inform it as to what files have been modified. This enables git to avoid diff --git a/0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch b/0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch deleted file mode 100644 index 5c003a5..0000000 --- a/0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch +++ /dev/null @@ -1,47 +0,0 @@ -From e155951262e6dea419db8b9010342b08b487f96a Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Thu, 25 Nov 2021 05:05:08 -0500 -Subject: [PATCH] t/lib-gpg: use --with-colons when parsing gpgsm output -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The output of `gpgsm -K` changed in gnupg-2.3¹, breaking the parsing -used by the GPGSM prereq. - -Use the `--with-colons` options for stable, machine-parseable output. -This allows the grep/cut/tr pipeline (and the subsequent echo which -appends ' S relax') to be replaced with a single call to awk to create -the ${GNUPGHOME}/trustlist.txt file. - -¹ https://dev.gnupg.org/rGe7d70923901e is the change in 2.3, while - https://dev.gnupg.org/rG9c57de75cf36 is the similar change in 2.2. - - The latter says: Here in 2.2 we keep the string "fingerprint:" and no - not change it to "sha1 fpr" as we did in master (2.3). (sic) - -Signed-off-by: Todd Zullinger ---- - t/lib-gpg.sh | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh -index a3f285f515..cbbf74e725 100644 ---- a/t/lib-gpg.sh -+++ b/t/lib-gpg.sh -@@ -72,12 +72,10 @@ test_lazy_prereq GPGSM ' - --passphrase-fd 0 --pinentry-mode loopback \ - --import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 && - -- gpgsm --homedir "${GNUPGHOME}" -K | -- grep fingerprint: | -- cut -d" " -f4 | -- tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" && -+ gpgsm --homedir "${GNUPGHOME}" -K --with-colons | -+ awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \ -+ >"${GNUPGHOME}/trustlist.txt" && - -- echo " S relax" >>"${GNUPGHOME}/trustlist.txt" && - echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \ - -u committer@example.com -o /dev/null --sign - - ' diff --git a/0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch b/0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch deleted file mode 100644 index 2c27b74..0000000 --- a/0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 93299b9b221da01d4055528f7c760d04ee83b82b Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Thu, 25 Nov 2021 08:07:32 -0500 -Subject: [PATCH] t/lib-gpg: reload gpg components after updating trustlist - -With gpgsm from gnupg-2.3, the changes to the trustlist.txt do not -appear to be picked up without refreshing the gpg-agent. Use the 'all' -keyword to reload all of the gpg components. The scdaemon is started as -a child of gpg-agent, for example. - -We used to have a --kill at this spot, but I removed it in 2e285e7803 -(t/lib-gpg: drop redundant killing of gpg-agent, 2019-02-07). It seems -like it might be necessary (again) for 2.3. - -Signed-off-by: Todd Zullinger ---- - t/lib-gpg.sh | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh -index cbbf74e725..d675698a2d 100644 ---- a/t/lib-gpg.sh -+++ b/t/lib-gpg.sh -@@ -75,6 +75,7 @@ test_lazy_prereq GPGSM ' - gpgsm --homedir "${GNUPGHOME}" -K --with-colons | - awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \ - >"${GNUPGHOME}/trustlist.txt" && -+ (gpgconf --reload all || : ) && - - echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \ - -u committer@example.com -o /dev/null --sign - diff --git a/0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch b/0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch deleted file mode 100644 index 2905564..0000000 --- a/0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch +++ /dev/null @@ -1,40 +0,0 @@ -From da340dd76714474126f73f6b53087da0ffd4e8d8 Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Fri, 26 Nov 2021 21:11:54 -0500 -Subject: [PATCH] t/lib-gpg: kill all gpg components, not just gpg-agent - -The gpg-agent is one of several processes that newer releases of GnuPG -start automatically. Issue a kill to each of them to ensure they do not -affect separate tests. (Yes, the separate GNUPGHOME should do that -already. If we find that is case, we could drop the --kill entirely.) - -In terms of compatibility, the 'all' keyword was added to the --kill & ---reload options in GnuPG 2.1.18. Debian and RHEL are often used as -indicators of how a change might affect older systems we often try to -support. - - - Debian Strech (old old stable), which has limited security support - until June 2022, has GnuPG 2.1.18 (or 2.2.x in backports). - - - CentOS/RHEL 7, which is supported until June 2024, has GnuPG - 2.0.22, which lacks the --kill option, so the change won't have - any impact. - -Signed-off-by: Todd Zullinger ---- - t/lib-gpg.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh -index d675698a2d..2bb309a8c1 100644 ---- a/t/lib-gpg.sh -+++ b/t/lib-gpg.sh -@@ -40,7 +40,7 @@ test_lazy_prereq GPG ' - # > lib-gpg/ownertrust - mkdir "$GNUPGHOME" && - chmod 0700 "$GNUPGHOME" && -- (gpgconf --kill gpg-agent || : ) && -+ (gpgconf --kill all || : ) && - gpg --homedir "${GNUPGHOME}" --import \ - "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && - gpg --homedir "${GNUPGHOME}" --import-ownertrust \ diff --git a/0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch b/0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch deleted file mode 100644 index 005ace7..0000000 --- a/0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d1efcac68414b80cc0fd7b7e3b4781f313d98697 Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Sat, 27 Nov 2021 05:31:13 -0500 -Subject: [PATCH] t4202: match gpgsm output from GnuPG 2.3 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In GnuPG 2.3, the output from gpgsm when a certificate is not found -differs from that of earlier versions. This appears to be a bug¹, but -there are several releases in use now which have this output. Extend -the grep pattern to catch it rather than failing the test. - -¹ https://lists.gnupg.org/pipermail/gnupg-devel/2021-November/034991.html - -Signed-off-by: Todd Zullinger ---- - t/t4202-log.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/t4202-log.sh b/t/t4202-log.sh -index 7884e3d46b..c69f9ac469 100755 ---- a/t/t4202-log.sh -+++ b/t/t4202-log.sh -@@ -1851,7 +1851,7 @@ test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 miss - git merge --no-ff -m msg signed_tag_x509_nokey && - GNUPGHOME=. git log --graph --show-signature -n1 plain-x509-nokey >actual && - grep "^|\\\ merged tag" actual && -- grep "^| | gpgsm: certificate not found" actual -+ grep -Ei "^| | gpgsm:( failed to find the)? certificate:? not found" actual - ' - - test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 bad signature' ' diff --git a/0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch b/0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch deleted file mode 100644 index 458af9d..0000000 --- a/0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch +++ /dev/null @@ -1,48 +0,0 @@ -From edb5eafc9945b2d400c2d777a9750cee06ab500f Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Sat, 27 Nov 2021 02:55:47 -0500 -Subject: [PATCH] gpg-interface: match SIG_CREATED if it's the first line - -In `sign_buffer_gpg`, "\n[GNUPG:] SIG_CREATED " in the gpg status output -is used to signal a successful signature. This fails if "SIG_CREATED" -is the first line in the gpg output, as is the case with `gpgsm` in -GnuPG 2.3. - -In earlier versions of GnuPG, there was a debug line in the `gpgsm` -output which allowed the check in `sign_buffer_gpg` to work. This debug -line was removed from GnuPG in a6d2f3133 (sm: Replace some debug message -by log_error or log_info, 2020-04-21). - -The result is the `gpgsm --status-fd` output for a signing operation -starts with "[GNUPG:] SIG_CREATED" and we mistakenly report "gpg failed -to sign the data" to the user. The `gpg` command has other `[GNUPG:]` -output for signing operations, so it is not affected by this issue. -It's best not to rely on something as subtle and out of our control as -the order if the gnupg status messages. - -This likely went unnoticed because the GPGSM test prereq was failing for -a different reason with GnuPG 2.3. No tests failed, they were simply -skipped due to the missing GPGSM prereq. - -Signed-off-by: Todd Zullinger ---- - gpg-interface.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/gpg-interface.c b/gpg-interface.c -index 3e7255a2a9..d179dfb3ab 100644 ---- a/gpg-interface.c -+++ b/gpg-interface.c -@@ -859,6 +859,12 @@ static int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature, - - bottom = signature->len; - -+ /* -+ * Ensure gpg_status begins with a newline or we'll fail to match if -+ * the SIG_CREATED line is at the start of the gpg output. -+ */ -+ strbuf_addch(&gpg_status, '\n'); -+ - /* - * When the username signingkey is bad, program could be terminated - * because gpg exits without reading and then write gets SIGPIPE. diff --git a/git.skip-test-patterns b/git.skip-test-patterns index bd44452..234d37a 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -1,5 +1,6 @@ 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 CASE_INSENSITIVE_FS @@ -11,6 +12,7 @@ missing MINGW missing NATIVE_CRLF missing !PCRE missing !PTHREADS +missing !REFFILES missing RFC1991 missing RUNTIME_PREFIX missing SYMLINKS_WINDOWS diff --git a/git.spec b/git.spec index b8ea26b..e105b6c 100644 --- a/git.spec +++ b/git.spec @@ -76,15 +76,15 @@ %global _hardened_build 1 %endif -# Set path to the package-notes linker script -%global _package_note_file %{_builddir}/%{name}-%{version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld - # Define for release candidates -#global rcrev .rc0 +%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.35.1 -Release: 1%{?rcrev}%{?dist} +Version: 2.36.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -116,12 +116,8 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# Fix a few tests and issues with gnupg-2.3 -Patch1: 0001-t-lib-gpg-use-with-colons-when-parsing-gpgsm-output.patch -Patch2: 0002-t-lib-gpg-reload-gpg-components-after-updating-trust.patch -Patch3: 0003-t-lib-gpg-kill-all-gpg-components-not-just-gpg-agent.patch -Patch4: 0004-t4202-match-gpgsm-output-from-GnuPG-2.3.patch -Patch5: 0005-gpg-interface-match-SIG_CREATED-if-it-s-the-first-li.patch +# https://lore.kernel.org/git/20220406184122.4126898-1-tmz@pobox.com/ +Patch1: https://github.com/git/git/commit/f3ea4bed2.patch#/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch %if %{with docs} # pod2man is needed to build Git.3pm @@ -826,9 +822,9 @@ GIT_SKIP_TESTS="" # # The following 2 tests use run_with_limited_cmdline, which calls ulimit -s 128 # to limit the maximum stack size. -# t5541.35 'push 2000 tags over http' +# t5541.36 'push 2000 tags over http' # t5551.25 'clone the 2,000 tag repo to check OS command line overflow' -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.35 t5551.25" +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.36 t5551.25" %endif # endif aarch64 %%{arm} %%{power64} @@ -866,7 +862,7 @@ sed -i "s@\(GIT_TEST_OPTS='.*\)'@\1 --root=$testdir'@" GIT-BUILD-OPTIONS touch -r ts GIT-BUILD-OPTIONS # Run the tests -%__make test || ./print-failed-test-output +%__make -C t all || ./print-failed-test-output # Run contrib/credential/netrc tests mkdir -p contrib/credential @@ -1018,6 +1014,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Apr 05 2022 Todd Zullinger - 2.36.0-0.0.rc0 +- update to 2.36.0-rc0 + * Sat Jan 29 2022 Todd Zullinger - 2.35.1-1 - update to 2.35.1 diff --git a/sources b/sources index 4095968..567d1db 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.35.1.tar.xz) = 926c6813ef61931e1a1c43dfd7b15e20dc5878c1752876bd08f039249c9ed09f20f096b2f01947de9c9522c942e9fa8c1363d7d31a488bbe3f93c0cff31fcbcb -SHA512 (git-2.35.1.tar.sign) = 27adbb0628a18ae13ce76c2812c2f2a8a9da002105ca1f550a864ae769a27efa697ab7cbd8582e69be99d8731fe2f53895321c3a71990ffbcfe1e7f2064fd9b7 +SHA512 (git-2.36.0.rc0.tar.xz) = 7417784582f17e9579fbae984a175af814ff6bd9b28b48d0405b8c4342566a4e138df0f544ee7fbccf25419a50c3848fb9d0830feb9848a2f41cae2c969989c4 +SHA512 (git-2.36.0.rc0.tar.sign) = f1c8217687c993a32a3b8b38cde242440e6c3de4093dffd68bd9d483f103d20701856254e9bc92c2945c75405dd2c67e4c66076c05b469bbf4b21b7752888358 From 25830241e697031e1debac8298151b00a013e835 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 8 Apr 2022 13:42:17 -0400 Subject: [PATCH 100/202] use httpd-core for tests on Fedora >= 37 The httpd package was slimmed down per rhbz#2070517. Use the new httpd-core package for the test suite requirements on F37+. While here, adjust a nearby '# endif' comment to match reality. --- git.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index e105b6c..287ef90 100644 --- a/git.spec +++ b/git.spec @@ -189,7 +189,7 @@ BuildRequires: acl # Needed by t5540-http-push-webdav.sh BuildRequires: apr-util-bdb %endif -# endif fedora >= 27 +# endif fedora or rhel >= 8 BuildRequires: bash %if %{with cvs} BuildRequires: cvs @@ -212,7 +212,12 @@ BuildRequires: gnupg2-smime BuildRequires: highlight %endif # endif fedora or el7+ (ppc64le/x86_64) +%if 0%{?fedora} >= 37 +BuildRequires: httpd-core +%else BuildRequires: httpd +%endif +# endif fedora >= 37 %if 0%{?fedora} && ! ( 0%{?fedora} >= 35 || "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) BuildRequires: jgit %endif @@ -1016,6 +1021,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Tue Apr 05 2022 Todd Zullinger - 2.36.0-0.0.rc0 - update to 2.36.0-rc0 +- use httpd-core for tests on Fedora >= 37 * Sat Jan 29 2022 Todd Zullinger - 2.35.1-1 - update to 2.35.1 From d1736385d567d30b7931bc1e8a26112ad05a3aec Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 4 Apr 2022 23:43:05 -0400 Subject: [PATCH 101/202] update to 2.36.0-rc1 Release notes: https://github.com/git/git/raw/v2.36.0-rc1/Documentation/RelNotes/2.36.0.txt --- ...-litdd-in-credential-cache-fsmonitor.patch | 102 ------------------ git.spec | 10 +- sources | 4 +- 3 files changed, 7 insertions(+), 109 deletions(-) delete mode 100644 0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch diff --git a/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch b/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch deleted file mode 100644 index 6982207..0000000 --- a/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch +++ /dev/null @@ -1,102 +0,0 @@ -From f3ea4bed2acb129db66c4c9a22dae71576d58066 Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Wed, 6 Apr 2022 14:41:22 -0400 -Subject: [PATCH] doc: replace "--" with {litdd} in credential-cache/fsmonitor - -Asciidoc renders `--` as em-dash. This is not appropriate for command -names. It also breaks linkgit links to these commands. - -Fix git-credential-cache--daemon and git-fsmonitor--daemon. The latter -was added 3248486920 (fsmonitor: document builtin fsmonitor, 2022-03-25) -and included several links. A check for broken links in the HTML docs -turned this up. - -Manually inspecting the other Documentation/git-*--*.txt files turned up -the issue in git-credential-cache--daemon. - -While here, quote `git credential-cache--daemon` in the synopsis to -match the vast majority of our other documentation. - -Signed-off-by: Todd Zullinger -Signed-off-by: Junio C Hamano ---- - Documentation/config/core.txt | 2 +- - Documentation/git-credential-cache--daemon.txt | 6 +++--- - Documentation/git-fsmonitor--daemon.txt | 12 ++++++------ - Documentation/git-update-index.txt | 2 +- - 4 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/Documentation/config/core.txt b/Documentation/config/core.txt -index 889522956e45bb..e67392cc838499 100644 ---- a/Documentation/config/core.txt -+++ b/Documentation/config/core.txt -@@ -63,7 +63,7 @@ core.protectNTFS:: - - core.fsmonitor:: - If set to true, enable the built-in file system monitor -- daemon for this working directory (linkgit:git-fsmonitor--daemon[1]). -+ daemon for this working directory (linkgit:git-fsmonitor{litdd}daemon[1]). - + - Like hook-based file system monitors, the built-in file system monitor - can speed up Git commands that need to refresh the Git index -diff --git a/Documentation/git-credential-cache--daemon.txt b/Documentation/git-credential-cache--daemon.txt -index 7051c6bdf8f542..01e1c214dd82e1 100644 ---- a/Documentation/git-credential-cache--daemon.txt -+++ b/Documentation/git-credential-cache--daemon.txt -@@ -1,5 +1,5 @@ --git-credential-cache--daemon(1) --=============================== -+git-credential-cache{litdd}daemon(1) -+==================================== - - NAME - ---- -@@ -8,7 +8,7 @@ git-credential-cache--daemon - Temporarily store user credentials in memory - SYNOPSIS - -------- - [verse] --git credential-cache--daemon [--debug] -+'git credential-cache{litdd}daemon' [--debug] - - DESCRIPTION - ----------- -diff --git a/Documentation/git-fsmonitor--daemon.txt b/Documentation/git-fsmonitor--daemon.txt -index 0fedf5a4565f79..cc142fb8612c72 100644 ---- a/Documentation/git-fsmonitor--daemon.txt -+++ b/Documentation/git-fsmonitor--daemon.txt -@@ -1,5 +1,5 @@ --git-fsmonitor--daemon(1) --======================== -+git-fsmonitor{litdd}daemon(1) -+============================= - - NAME - ---- -@@ -8,10 +8,10 @@ git-fsmonitor--daemon - A Built-in File System Monitor - SYNOPSIS - -------- - [verse] --'git fsmonitor--daemon' start --'git fsmonitor--daemon' run --'git fsmonitor--daemon' stop --'git fsmonitor--daemon' status -+'git fsmonitor{litdd}daemon' start -+'git fsmonitor{litdd}daemon' run -+'git fsmonitor{litdd}daemon' stop -+'git fsmonitor{litdd}daemon' status - - DESCRIPTION - ----------- -diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt -index 64315e2e8c2d3f..5ea2f2c60e45a3 100644 ---- a/Documentation/git-update-index.txt -+++ b/Documentation/git-update-index.txt -@@ -528,7 +528,7 @@ This feature is intended to speed up git operations for repos that have - large working directories. - - It enables git to work together with a file system monitor (see --linkgit:git-fsmonitor--daemon[1] -+linkgit:git-fsmonitor{litdd}daemon[1] - and the - "fsmonitor-watchman" section of linkgit:githooks[5]) that can - inform it as to what files have been modified. This enables git to avoid diff --git a/git.spec b/git.spec index 287ef90..08dc543 100644 --- a/git.spec +++ b/git.spec @@ -77,14 +77,14 @@ %endif # 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.36.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -116,9 +116,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# https://lore.kernel.org/git/20220406184122.4126898-1-tmz@pobox.com/ -Patch1: https://github.com/git/git/commit/f3ea4bed2.patch#/0001-doc-replace-with-litdd-in-credential-cache-fsmonitor.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1019,6 +1016,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Apr 08 2022 Todd Zullinger - 2.36.0-0.1.rc1 +- update to 2.36.0-rc1 + * Tue Apr 05 2022 Todd Zullinger - 2.36.0-0.0.rc0 - update to 2.36.0-rc0 - use httpd-core for tests on Fedora >= 37 diff --git a/sources b/sources index 567d1db..0d98a58 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.36.0.rc0.tar.xz) = 7417784582f17e9579fbae984a175af814ff6bd9b28b48d0405b8c4342566a4e138df0f544ee7fbccf25419a50c3848fb9d0830feb9848a2f41cae2c969989c4 -SHA512 (git-2.36.0.rc0.tar.sign) = f1c8217687c993a32a3b8b38cde242440e6c3de4093dffd68bd9d483f103d20701856254e9bc92c2945c75405dd2c67e4c66076c05b469bbf4b21b7752888358 +SHA512 (git-2.36.0.rc1.tar.xz) = 48c17b4071128bc8d5e79545cbf835cd8bcca5d204fcd7e81a7207254ae3ff47a52edc2cbd132f27c575860cd53e354e6b5f277753b91d51ffd7e6313ee5e6f2 +SHA512 (git-2.36.0.rc1.tar.sign) = c7de5cd63425cf4ae4f6e38805461296de737b637f0d0008ac6e6d260c3623d5c576cb97d04673aee21cd8bb1294c5e618c9a5f8ad3ffd2a43a936ada05d8ebd From 4787e39b4029c1a9e195c61404dce160091e6652 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 12 Apr 2022 21:02:44 -0400 Subject: [PATCH 102/202] update to 2.36.0-rc2 (CVE-2022-24765) Regarding CVE-2022-24765, the release announcement says: On multi-user machines, Git users might find themselves unexpectedly in a Git worktree, e.g. when another user created a repository in `C:\.git`, in a mounted network drive or in a scratch space. Merely having a Git-aware prompt that runs `git status` (or `git diff`) and navigating to a directory which is supposedly not a Git worktree, or opening such a directory in an editor or IDE such as VS Code or Atom, will potentially run commands defined by that other user. The new `safe.directory` setting may be used in either the system or global configuration to list directories which git should consider safe even if they are owned by someone other than the current user. Release notes: https://github.com/git/git/raw/v2.36.0-rc2/Documentation/RelNotes/2.36.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 08dc543..39cd06c 100644 --- a/git.spec +++ b/git.spec @@ -77,14 +77,14 @@ %endif # 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.36.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1016,6 +1016,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Apr 13 2022 Todd Zullinger - 2.36.0-0.2.rc2 +- update to 2.36.0-rc2 (CVE-2022-24765) + * Fri Apr 08 2022 Todd Zullinger - 2.36.0-0.1.rc1 - update to 2.36.0-rc1 diff --git a/sources b/sources index 0d98a58..134454c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.36.0.rc1.tar.xz) = 48c17b4071128bc8d5e79545cbf835cd8bcca5d204fcd7e81a7207254ae3ff47a52edc2cbd132f27c575860cd53e354e6b5f277753b91d51ffd7e6313ee5e6f2 -SHA512 (git-2.36.0.rc1.tar.sign) = c7de5cd63425cf4ae4f6e38805461296de737b637f0d0008ac6e6d260c3623d5c576cb97d04673aee21cd8bb1294c5e618c9a5f8ad3ffd2a43a936ada05d8ebd +SHA512 (git-2.36.0.rc2.tar.xz) = dfdd49fc7d25c6e2c4291afd5e9c234f4180226d9219cb6e70328dfdeb585a982a2f3b375ede578570825fff9f68ea126b3342512644906dc4333f9f953fe4a3 +SHA512 (git-2.36.0.rc2.tar.sign) = 8b7abfabd47f2be269717e6eb832bcdecf502efc11caa8533a3851e7fbd21e41644322d0784e73efc4dfd5bf4bc1b1094f8dedbd72758e7522b12d045507618c From f0106d7c9a6f80916f456831a4e985b08605d7fc Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 12 Apr 2022 22:50:19 -0400 Subject: [PATCH 103/202] disable failing tests on s390x on EL8 These tests fail on s390x, but only with EL8. They succeed on Fedora and EL9. This suggests the issue is not with git. Skip them to avoid blocking the Fedora releases which we care most about while still allowing builds in COPR and elsewhere for all Fedora/EPEL releases. --- git.spec | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/git.spec b/git.spec index 39cd06c..16a265a 100644 --- a/git.spec +++ b/git.spec @@ -841,6 +841,26 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" %endif # endif %%{power64} +%ifarch s390x && 0%{?rhel} == 8 +# Skip tests which fail on s390x on rhel-8 +# +# The following tests fail on s390x & el8. The cause should be investigated. +# However, it's a lower priority since the same tests work consistently on +# s390x with Fedora and RHEL-9. The failures seem to originate in t5300. +# +# t5300.10 'unpack without delta' +# t5300.12 'unpack with REF_DELTA' +# t5300.14 'unpack with OFS_DELTA' +# t5303.5 'create corruption in data of first object' +# t5303.7 '... and loose copy of second object allows for partial recovery' +# t5303.11 'create corruption in data of first delta' +# t6300.35 'basic atom: head objectsize:disk' +# t6300.91 'basic atom: tag objectsize:disk' +# t6300.92 'basic atom: tag *objectsize:disk' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.{10,12,14} t5303.{5,7,11} t6300.{35,91,92}" +%endif +# endif s390x && rhel == 8 + export GIT_SKIP_TESTS # Set LANG so various UTF-8 tests are run @@ -1018,6 +1038,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Wed Apr 13 2022 Todd Zullinger - 2.36.0-0.2.rc2 - update to 2.36.0-rc2 (CVE-2022-24765) +- disable failing tests on s390x on EL8 * Fri Apr 08 2022 Todd Zullinger - 2.36.0-0.1.rc1 - update to 2.36.0-rc1 From 59a5ed4cff3a6d1b398ca56cd04542b60b97a87a Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 13 Apr 2022 21:35:36 -0400 Subject: [PATCH 104/202] usability improvements on top of CVE-2022-24765 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per the release announcement¹, these patches... address usability issues in the recent releases 'v2.35.2', 'v2.34.2', 'v2.33.2', 'v2.32.1', 'v2.31.2', and 'v2.30.3', where each "safe" directory has to be listed on the safe.directory configuration variables. A broader escape hatch has been added so that the value '*' can be used to declare "my colleagues and their repositories I may ever visit are all trustworthy". ¹ https://lore.kernel.org/git/xmqq1qy04iqa.fsf@gitster.g/ --- 0001-t0033-add-tests-for-safe.directory.patch | 72 +++++++++++++++ ...safe.directory-key-not-being-checked.patch | 48 ++++++++++ ...opt-out-of-check-with-safe.directory.patch | 88 +++++++++++++++++++ git.spec | 10 ++- 4 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 0001-t0033-add-tests-for-safe.directory.patch create mode 100644 0002-setup-fix-safe.directory-key-not-being-checked.patch create mode 100644 0003-setup-opt-out-of-check-with-safe.directory.patch diff --git a/0001-t0033-add-tests-for-safe.directory.patch b/0001-t0033-add-tests-for-safe.directory.patch new file mode 100644 index 0000000..6774b37 --- /dev/null +++ b/0001-t0033-add-tests-for-safe.directory.patch @@ -0,0 +1,72 @@ +From e47363e5a8bdf5144059d664c45c0975243ef05b Mon Sep 17 00:00:00 2001 +From: Derrick Stolee +Date: Wed, 13 Apr 2022 15:32:29 +0000 +Subject: [PATCH 1/3] t0033: add tests for safe.directory + +It is difficult to change the ownership on a directory in our test +suite, so insert a new GIT_TEST_ASSUME_DIFFERENT_OWNER environment +variable to trick Git into thinking we are in a differently-owned +directory. This allows us to test that the config is parsed correctly. + +Signed-off-by: Derrick Stolee +Signed-off-by: Junio C Hamano +--- + setup.c | 3 ++- + t/t0033-safe-directory.sh | 34 ++++++++++++++++++++++++++++++++++ + 2 files changed, 36 insertions(+), 1 deletion(-) + create mode 100755 t/t0033-safe-directory.sh + +diff --git a/setup.c b/setup.c +index 95d5b00940..3c6ed17af9 100644 +--- a/setup.c ++++ b/setup.c +@@ -1053,7 +1053,8 @@ static int ensure_valid_ownership(const char *path) + { + struct safe_directory_data data = { .path = path }; + +- if (is_path_owned_by_current_user(path)) ++ if (!git_env_bool("GIT_TEST_ASSUME_DIFFERENT_OWNER", 0) && ++ is_path_owned_by_current_user(path)) + return 1; + + read_very_early_config(safe_directory_cb, &data); +diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh +new file mode 100755 +index 0000000000..9380ff3d01 +--- /dev/null ++++ b/t/t0033-safe-directory.sh +@@ -0,0 +1,34 @@ ++#!/bin/sh ++ ++test_description='verify safe.directory checks' ++ ++. ./test-lib.sh ++ ++GIT_TEST_ASSUME_DIFFERENT_OWNER=1 ++export GIT_TEST_ASSUME_DIFFERENT_OWNER ++ ++expect_rejected_dir () { ++ test_must_fail git status 2>err && ++ grep "safe.directory" err ++} ++ ++test_expect_success 'safe.directory is not set' ' ++ expect_rejected_dir ++' ++ ++test_expect_success 'safe.directory does not match' ' ++ git config --global safe.directory bogus && ++ expect_rejected_dir ++' ++ ++test_expect_success 'safe.directory matches' ' ++ git config --global --add safe.directory "$(pwd)" && ++ git status ++' ++ ++test_expect_success 'safe.directory matches, but is reset' ' ++ git config --global --add safe.directory "" && ++ expect_rejected_dir ++' ++ ++test_done diff --git a/0002-setup-fix-safe.directory-key-not-being-checked.patch b/0002-setup-fix-safe.directory-key-not-being-checked.patch new file mode 100644 index 0000000..d53a5f2 --- /dev/null +++ b/0002-setup-fix-safe.directory-key-not-being-checked.patch @@ -0,0 +1,48 @@ +From bb50ec3cc300eeff3aba7a2bea145aabdb477d31 Mon Sep 17 00:00:00 2001 +From: Matheus Valadares +Date: Wed, 13 Apr 2022 15:32:30 +0000 +Subject: [PATCH 2/3] setup: fix safe.directory key not being checked + +It seems that nothing is ever checking to make sure the safe directories +in the configs actually have the key safe.directory, so some unrelated +config that has a value with a certain directory would also make it a +safe directory. + +Signed-off-by: Matheus Valadares +Signed-off-by: Derrick Stolee +Signed-off-by: Junio C Hamano +--- + setup.c | 3 +++ + t/t0033-safe-directory.sh | 5 +++++ + 2 files changed, 8 insertions(+) + +diff --git a/setup.c b/setup.c +index 3c6ed17af9..4b9f073617 100644 +--- a/setup.c ++++ b/setup.c +@@ -1034,6 +1034,9 @@ static int safe_directory_cb(const char *key, const char *value, void *d) + { + struct safe_directory_data *data = d; + ++ if (strcmp(key, "safe.directory")) ++ return 0; ++ + if (!value || !*value) + data->is_safe = 0; + else { +diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh +index 9380ff3d01..6f33c0dfef 100755 +--- a/t/t0033-safe-directory.sh ++++ b/t/t0033-safe-directory.sh +@@ -21,6 +21,11 @@ test_expect_success 'safe.directory does not match' ' + expect_rejected_dir + ' + ++test_expect_success 'path exist as different key' ' ++ git config --global foo.bar "$(pwd)" && ++ expect_rejected_dir ++' ++ + test_expect_success 'safe.directory matches' ' + git config --global --add safe.directory "$(pwd)" && + git status diff --git a/0003-setup-opt-out-of-check-with-safe.directory.patch b/0003-setup-opt-out-of-check-with-safe.directory.patch new file mode 100644 index 0000000..b734d9e --- /dev/null +++ b/0003-setup-opt-out-of-check-with-safe.directory.patch @@ -0,0 +1,88 @@ +From 0f85c4a30b072a26d74af8bbf63cc8f6a5dfc1b8 Mon Sep 17 00:00:00 2001 +From: Derrick Stolee +Date: Wed, 13 Apr 2022 15:32:31 +0000 +Subject: [PATCH 3/3] setup: opt-out of check with safe.directory=* + +With the addition of the safe.directory in 8959555ce +(setup_git_directory(): add an owner check for the top-level directory, +2022-03-02) released in v2.35.2, we are receiving feedback from a +variety of users about the feature. + +Some users have a very large list of shared repositories and find it +cumbersome to add this config for every one of them. + +In a more difficult case, certain workflows involve running Git commands +within containers. The container boundary prevents any global or system +config from communicating `safe.directory` values from the host into the +container. Further, the container almost always runs as a different user +than the owner of the directory in the host. + +To simplify the reactions necessary for these users, extend the +definition of the safe.directory config value to include a possible '*' +value. This value implies that all directories are safe, providing a +single setting to opt-out of this protection. + +Note that an empty assignment of safe.directory clears all previous +values, and this is already the case with the "if (!value || !*value)" +condition. + +Signed-off-by: Derrick Stolee +Signed-off-by: Junio C Hamano +--- + Documentation/config/safe.txt | 7 +++++++ + setup.c | 6 ++++-- + t/t0033-safe-directory.sh | 10 ++++++++++ + 3 files changed, 21 insertions(+), 2 deletions(-) + +diff --git a/Documentation/config/safe.txt b/Documentation/config/safe.txt +index 63597b2df8..6d764fe0cc 100644 +--- a/Documentation/config/safe.txt ++++ b/Documentation/config/safe.txt +@@ -19,3 +19,10 @@ line option `-c safe.directory=`. + The value of this setting is interpolated, i.e. `~/` expands to a + path relative to the home directory and `%(prefix)/` expands to a + path relative to Git's (runtime) prefix. +++ ++To completely opt-out of this security check, set `safe.directory` to the ++string `*`. This will allow all repositories to be treated as if their ++directory was listed in the `safe.directory` list. If `safe.directory=*` ++is set in system config and you want to re-enable this protection, then ++initialize your list with an empty value before listing the repositories ++that you deem safe. +diff --git a/setup.c b/setup.c +index 4b9f073617..aad9ace0af 100644 +--- a/setup.c ++++ b/setup.c +@@ -1037,9 +1037,11 @@ static int safe_directory_cb(const char *key, const char *value, void *d) + if (strcmp(key, "safe.directory")) + return 0; + +- if (!value || !*value) ++ if (!value || !*value) { + data->is_safe = 0; +- else { ++ } else if (!strcmp(value, "*")) { ++ data->is_safe = 1; ++ } else { + const char *interpolated = NULL; + + if (!git_config_pathname(&interpolated, key, value) && +diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh +index 6f33c0dfef..239d93f4d2 100755 +--- a/t/t0033-safe-directory.sh ++++ b/t/t0033-safe-directory.sh +@@ -36,4 +36,14 @@ test_expect_success 'safe.directory matches, but is reset' ' + expect_rejected_dir + ' + ++test_expect_success 'safe.directory=*' ' ++ git config --global --add safe.directory "*" && ++ git status ++' ++ ++test_expect_success 'safe.directory=*, but is reset' ' ++ git config --global --add safe.directory "" && ++ expect_rejected_dir ++' ++ + test_done diff --git a/git.spec b/git.spec index 16a265a..4060513 100644 --- a/git.spec +++ b/git.spec @@ -84,7 +84,7 @@ Name: git Version: 2.36.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 0.3%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -116,6 +116,11 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# Usability improvements on top of CVE-2022-24765 +Patch1: 0001-t0033-add-tests-for-safe.directory.patch +Patch2: 0002-setup-fix-safe.directory-key-not-being-checked.patch +Patch3: 0003-setup-opt-out-of-check-with-safe.directory.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1036,6 +1041,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Apr 14 2022 Todd Zullinger - 2.36.0-0.3.rc2 +- usability improvements on top of CVE-2022-24765 + * Wed Apr 13 2022 Todd Zullinger - 2.36.0-0.2.rc2 - update to 2.36.0-rc2 (CVE-2022-24765) - disable failing tests on s390x on EL8 From dbec023603a5a5ced85a0192a02bc88f39ac820c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 18 Apr 2022 14:11:02 -0400 Subject: [PATCH 105/202] update to 2.36.0 Release notes: https://github.com/git/git/raw/v2.36.0/Documentation/RelNotes/2.36.0.txt --- 0001-t0033-add-tests-for-safe.directory.patch | 72 --------------- ...safe.directory-key-not-being-checked.patch | 48 ---------- ...opt-out-of-check-with-safe.directory.patch | 88 ------------------- git.spec | 12 ++- sources | 4 +- 5 files changed, 7 insertions(+), 217 deletions(-) delete mode 100644 0001-t0033-add-tests-for-safe.directory.patch delete mode 100644 0002-setup-fix-safe.directory-key-not-being-checked.patch delete mode 100644 0003-setup-opt-out-of-check-with-safe.directory.patch diff --git a/0001-t0033-add-tests-for-safe.directory.patch b/0001-t0033-add-tests-for-safe.directory.patch deleted file mode 100644 index 6774b37..0000000 --- a/0001-t0033-add-tests-for-safe.directory.patch +++ /dev/null @@ -1,72 +0,0 @@ -From e47363e5a8bdf5144059d664c45c0975243ef05b Mon Sep 17 00:00:00 2001 -From: Derrick Stolee -Date: Wed, 13 Apr 2022 15:32:29 +0000 -Subject: [PATCH 1/3] t0033: add tests for safe.directory - -It is difficult to change the ownership on a directory in our test -suite, so insert a new GIT_TEST_ASSUME_DIFFERENT_OWNER environment -variable to trick Git into thinking we are in a differently-owned -directory. This allows us to test that the config is parsed correctly. - -Signed-off-by: Derrick Stolee -Signed-off-by: Junio C Hamano ---- - setup.c | 3 ++- - t/t0033-safe-directory.sh | 34 ++++++++++++++++++++++++++++++++++ - 2 files changed, 36 insertions(+), 1 deletion(-) - create mode 100755 t/t0033-safe-directory.sh - -diff --git a/setup.c b/setup.c -index 95d5b00940..3c6ed17af9 100644 ---- a/setup.c -+++ b/setup.c -@@ -1053,7 +1053,8 @@ static int ensure_valid_ownership(const char *path) - { - struct safe_directory_data data = { .path = path }; - -- if (is_path_owned_by_current_user(path)) -+ if (!git_env_bool("GIT_TEST_ASSUME_DIFFERENT_OWNER", 0) && -+ is_path_owned_by_current_user(path)) - return 1; - - read_very_early_config(safe_directory_cb, &data); -diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh -new file mode 100755 -index 0000000000..9380ff3d01 ---- /dev/null -+++ b/t/t0033-safe-directory.sh -@@ -0,0 +1,34 @@ -+#!/bin/sh -+ -+test_description='verify safe.directory checks' -+ -+. ./test-lib.sh -+ -+GIT_TEST_ASSUME_DIFFERENT_OWNER=1 -+export GIT_TEST_ASSUME_DIFFERENT_OWNER -+ -+expect_rejected_dir () { -+ test_must_fail git status 2>err && -+ grep "safe.directory" err -+} -+ -+test_expect_success 'safe.directory is not set' ' -+ expect_rejected_dir -+' -+ -+test_expect_success 'safe.directory does not match' ' -+ git config --global safe.directory bogus && -+ expect_rejected_dir -+' -+ -+test_expect_success 'safe.directory matches' ' -+ git config --global --add safe.directory "$(pwd)" && -+ git status -+' -+ -+test_expect_success 'safe.directory matches, but is reset' ' -+ git config --global --add safe.directory "" && -+ expect_rejected_dir -+' -+ -+test_done diff --git a/0002-setup-fix-safe.directory-key-not-being-checked.patch b/0002-setup-fix-safe.directory-key-not-being-checked.patch deleted file mode 100644 index d53a5f2..0000000 --- a/0002-setup-fix-safe.directory-key-not-being-checked.patch +++ /dev/null @@ -1,48 +0,0 @@ -From bb50ec3cc300eeff3aba7a2bea145aabdb477d31 Mon Sep 17 00:00:00 2001 -From: Matheus Valadares -Date: Wed, 13 Apr 2022 15:32:30 +0000 -Subject: [PATCH 2/3] setup: fix safe.directory key not being checked - -It seems that nothing is ever checking to make sure the safe directories -in the configs actually have the key safe.directory, so some unrelated -config that has a value with a certain directory would also make it a -safe directory. - -Signed-off-by: Matheus Valadares -Signed-off-by: Derrick Stolee -Signed-off-by: Junio C Hamano ---- - setup.c | 3 +++ - t/t0033-safe-directory.sh | 5 +++++ - 2 files changed, 8 insertions(+) - -diff --git a/setup.c b/setup.c -index 3c6ed17af9..4b9f073617 100644 ---- a/setup.c -+++ b/setup.c -@@ -1034,6 +1034,9 @@ static int safe_directory_cb(const char *key, const char *value, void *d) - { - struct safe_directory_data *data = d; - -+ if (strcmp(key, "safe.directory")) -+ return 0; -+ - if (!value || !*value) - data->is_safe = 0; - else { -diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh -index 9380ff3d01..6f33c0dfef 100755 ---- a/t/t0033-safe-directory.sh -+++ b/t/t0033-safe-directory.sh -@@ -21,6 +21,11 @@ test_expect_success 'safe.directory does not match' ' - expect_rejected_dir - ' - -+test_expect_success 'path exist as different key' ' -+ git config --global foo.bar "$(pwd)" && -+ expect_rejected_dir -+' -+ - test_expect_success 'safe.directory matches' ' - git config --global --add safe.directory "$(pwd)" && - git status diff --git a/0003-setup-opt-out-of-check-with-safe.directory.patch b/0003-setup-opt-out-of-check-with-safe.directory.patch deleted file mode 100644 index b734d9e..0000000 --- a/0003-setup-opt-out-of-check-with-safe.directory.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 0f85c4a30b072a26d74af8bbf63cc8f6a5dfc1b8 Mon Sep 17 00:00:00 2001 -From: Derrick Stolee -Date: Wed, 13 Apr 2022 15:32:31 +0000 -Subject: [PATCH 3/3] setup: opt-out of check with safe.directory=* - -With the addition of the safe.directory in 8959555ce -(setup_git_directory(): add an owner check for the top-level directory, -2022-03-02) released in v2.35.2, we are receiving feedback from a -variety of users about the feature. - -Some users have a very large list of shared repositories and find it -cumbersome to add this config for every one of them. - -In a more difficult case, certain workflows involve running Git commands -within containers. The container boundary prevents any global or system -config from communicating `safe.directory` values from the host into the -container. Further, the container almost always runs as a different user -than the owner of the directory in the host. - -To simplify the reactions necessary for these users, extend the -definition of the safe.directory config value to include a possible '*' -value. This value implies that all directories are safe, providing a -single setting to opt-out of this protection. - -Note that an empty assignment of safe.directory clears all previous -values, and this is already the case with the "if (!value || !*value)" -condition. - -Signed-off-by: Derrick Stolee -Signed-off-by: Junio C Hamano ---- - Documentation/config/safe.txt | 7 +++++++ - setup.c | 6 ++++-- - t/t0033-safe-directory.sh | 10 ++++++++++ - 3 files changed, 21 insertions(+), 2 deletions(-) - -diff --git a/Documentation/config/safe.txt b/Documentation/config/safe.txt -index 63597b2df8..6d764fe0cc 100644 ---- a/Documentation/config/safe.txt -+++ b/Documentation/config/safe.txt -@@ -19,3 +19,10 @@ line option `-c safe.directory=`. - The value of this setting is interpolated, i.e. `~/` expands to a - path relative to the home directory and `%(prefix)/` expands to a - path relative to Git's (runtime) prefix. -++ -+To completely opt-out of this security check, set `safe.directory` to the -+string `*`. This will allow all repositories to be treated as if their -+directory was listed in the `safe.directory` list. If `safe.directory=*` -+is set in system config and you want to re-enable this protection, then -+initialize your list with an empty value before listing the repositories -+that you deem safe. -diff --git a/setup.c b/setup.c -index 4b9f073617..aad9ace0af 100644 ---- a/setup.c -+++ b/setup.c -@@ -1037,9 +1037,11 @@ static int safe_directory_cb(const char *key, const char *value, void *d) - if (strcmp(key, "safe.directory")) - return 0; - -- if (!value || !*value) -+ if (!value || !*value) { - data->is_safe = 0; -- else { -+ } else if (!strcmp(value, "*")) { -+ data->is_safe = 1; -+ } else { - const char *interpolated = NULL; - - if (!git_config_pathname(&interpolated, key, value) && -diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh -index 6f33c0dfef..239d93f4d2 100755 ---- a/t/t0033-safe-directory.sh -+++ b/t/t0033-safe-directory.sh -@@ -36,4 +36,14 @@ test_expect_success 'safe.directory matches, but is reset' ' - expect_rejected_dir - ' - -+test_expect_success 'safe.directory=*' ' -+ git config --global --add safe.directory "*" && -+ git status -+' -+ -+test_expect_success 'safe.directory=*, but is reset' ' -+ git config --global --add safe.directory "" && -+ expect_rejected_dir -+' -+ - test_done diff --git a/git.spec b/git.spec index 4060513..250761b 100644 --- a/git.spec +++ b/git.spec @@ -77,14 +77,14 @@ %endif # 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.36.0 -Release: 0.3%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -116,11 +116,6 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -# Usability improvements on top of CVE-2022-24765 -Patch1: 0001-t0033-add-tests-for-safe.directory.patch -Patch2: 0002-setup-fix-safe.directory-key-not-being-checked.patch -Patch3: 0003-setup-opt-out-of-check-with-safe.directory.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1041,6 +1036,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Apr 18 2022 Todd Zullinger - 2.36.0-1 +- update to 2.36.0 + * Thu Apr 14 2022 Todd Zullinger - 2.36.0-0.3.rc2 - usability improvements on top of CVE-2022-24765 diff --git a/sources b/sources index 134454c..07711e7 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.36.0.rc2.tar.xz) = dfdd49fc7d25c6e2c4291afd5e9c234f4180226d9219cb6e70328dfdeb585a982a2f3b375ede578570825fff9f68ea126b3342512644906dc4333f9f953fe4a3 -SHA512 (git-2.36.0.rc2.tar.sign) = 8b7abfabd47f2be269717e6eb832bcdecf502efc11caa8533a3851e7fbd21e41644322d0784e73efc4dfd5bf4bc1b1094f8dedbd72758e7522b12d045507618c +SHA512 (git-2.36.0.tar.xz) = dce0d7dbe684af070271830a01bf1b9cc289182f5106f6e3303b1b3a0d5dc74bebf6ac0174373db05a28f5acc62acb095bc9385dabeeecc1d6e8567dce29b766 +SHA512 (git-2.36.0.tar.sign) = 51343a6443a95db4e896687987876d5259fe8e52fc14bbaa87314f7e3be3e36655d087c6453ca8208face5b28db10b503e5e52487cfa3f3664d2b4a761561815 From b76548f9c23d21ad96a1c319f0b2f28363b83bf0 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 18 Apr 2022 14:11:02 -0400 Subject: [PATCH 106/202] update to 2.36.1 Release notes: https://github.com/git/git/raw/v2.36.1/Documentation/RelNotes/2.36.1.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 250761b..347ebd0 100644 --- a/git.spec +++ b/git.spec @@ -83,7 +83,7 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.36.0 +Version: 2.36.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1036,6 +1036,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri May 06 2022 Todd Zullinger - 2.36.1-1 +- update to 2.36.1 + * Mon Apr 18 2022 Todd Zullinger - 2.36.0-1 - update to 2.36.0 diff --git a/sources b/sources index 07711e7..2a46fa9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.36.0.tar.xz) = dce0d7dbe684af070271830a01bf1b9cc289182f5106f6e3303b1b3a0d5dc74bebf6ac0174373db05a28f5acc62acb095bc9385dabeeecc1d6e8567dce29b766 -SHA512 (git-2.36.0.tar.sign) = 51343a6443a95db4e896687987876d5259fe8e52fc14bbaa87314f7e3be3e36655d087c6453ca8208face5b28db10b503e5e52487cfa3f3664d2b4a761561815 +SHA512 (git-2.36.1.tar.xz) = 459432bd0c1d5a87c828a6fbf6d3473f14bf6b95783b3f27ea4f3af1ba9fd0e712a96a41276a16c6ebeb7ac3583a5f445eedd0a9e19fe160c2c8e309ec58818e +SHA512 (git-2.36.1.tar.sign) = 60e8ca4b1219020c79405cffb1612dc027fd67a5af1780d937795a6f12f9231a8bfdfb2f53aee2f61c1acfb01f0d8fc626fbf3467bb7c435aebf4fcbd441b08b From 09bd4bb5d8b7a78570107d6bcdda99d6377bfea6 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Wed, 1 Jun 2022 08:18:21 +0200 Subject: [PATCH 107/202] Perl 5.36 rebuild --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index 347ebd0..b5a5e85 100644 --- a/git.spec +++ b/git.spec @@ -84,7 +84,7 @@ Name: git Version: 2.36.1 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1036,6 +1036,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jun 01 2022 Jitka Plesnikova - 2.36.1-1.1 +- Perl 5.36 rebuild + * Fri May 06 2022 Todd Zullinger - 2.36.1-1 - update to 2.36.1 From a35db90ce1c19abf5ada66e8a315c93e7f1709d8 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Fri, 3 Jun 2022 13:30:49 +0200 Subject: [PATCH 108/202] Perl 5.36 re-rebuild of bootstrapped packages --- git.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/git.spec b/git.spec index b5a5e85..d0f0503 100644 --- a/git.spec +++ b/git.spec @@ -84,7 +84,7 @@ Name: git Version: 2.36.1 -Release: 1%{?rcrev}%{?dist}.1 +Release: 1%{?rcrev}%{?dist}.2 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1036,6 +1036,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 +- Perl 5.36 re-rebuild of bootstrapped packages + * Wed Jun 01 2022 Jitka Plesnikova - 2.36.1-1.1 - Perl 5.36 rebuild From 81908fa387158fd68ea07e8e08d6ac718e19b1fc Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 14 Jun 2022 01:18:56 -0400 Subject: [PATCH 109/202] update to 2.37.0-rc0 Release notes: https://github.com/git/git/raw/v2.37.0-rc0/Documentation/RelNotes/2.37.0.txt --- git.spec | 9 ++++++--- sources | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/git.spec b/git.spec index d0f0503..0555712 100644 --- a/git.spec +++ b/git.spec @@ -77,14 +77,14 @@ %endif # 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.36.1 -Release: 1%{?rcrev}%{?dist}.2 +Version: 2.37.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1036,6 +1036,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Jun 14 2022 Todd Zullinger - 2.37.0-0.0.rc0 +- update to 2.37.0-rc0 + * Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 - Perl 5.36 re-rebuild of bootstrapped packages diff --git a/sources b/sources index 2a46fa9..a0e2d2e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.36.1.tar.xz) = 459432bd0c1d5a87c828a6fbf6d3473f14bf6b95783b3f27ea4f3af1ba9fd0e712a96a41276a16c6ebeb7ac3583a5f445eedd0a9e19fe160c2c8e309ec58818e -SHA512 (git-2.36.1.tar.sign) = 60e8ca4b1219020c79405cffb1612dc027fd67a5af1780d937795a6f12f9231a8bfdfb2f53aee2f61c1acfb01f0d8fc626fbf3467bb7c435aebf4fcbd441b08b +SHA512 (git-2.37.0.rc0.tar.xz) = bcb69bc211ea4a439260dca6b61afeb0ea1f61ad892f169d990454038ad83e28eccbf9d1da6d9f4deb56b1016d8cca6a431374e8f3401c33a6ca99f403391790 +SHA512 (git-2.37.0.rc0.tar.sign) = 6d3443504b012d580209afee938c99f4ae6ee34257a17e7f58adf640f42c54140f6873f4a15ca36ffa06d5d9740ecbab6fa39c8331f5e9bbfdbd522e30f24c0e From 70428fb2e85e754ccad0b3fc051c40c9aad77656 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 13 Jun 2022 23:49:48 -0400 Subject: [PATCH 110/202] fix GIT_SKIP_TESTS for EL8 s390x The GIT_SKIP_TESTS variable does not support brace expansion. It was my mistake thinking that it did. List the tests to skip properly. If we had a longer list and *really* wanted to use brace expansion, we could do something like this: GIT_SKIP_TESTS="$GIT_SKIP_TESTS $(echo t5300.{10,12,14} t5303.{5,7,11} t6300.{35,91,92})" In this case, that's more characters _and_ more complexity, so it makes no sense to use it. (Even if it were shorter, it doesn't necessarily justify the extra complexity.) Expand the list of tests to skip to cover those which fail due to the earlier skipped tests. Additionally, GIT_SKIP_TESTS is (unintentionally) set on systems other than EL8. Fix the conditional to only skip these tests on s390x on EL8. --- git.spec | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 0555712..41f02f3 100644 --- a/git.spec +++ b/git.spec @@ -841,7 +841,7 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" %endif # endif %%{power64} -%ifarch s390x && 0%{?rhel} == 8 +%if 0%{?rhel} == 8 && "%{_arch}" == "s390x" # Skip tests which fail on s390x on rhel-8 # # The following tests fail on s390x & el8. The cause should be investigated. @@ -850,16 +850,26 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" # # t5300.10 'unpack without delta' # t5300.12 'unpack with REF_DELTA' +# t5300.13 'unpack with REF_DELTA' # t5300.14 'unpack with OFS_DELTA' +# t5300.18 'compare delta flavors' +# t5300.20 'use packed deltified (REF_DELTA) objects' +# t5300.23 'verify pack' +# t5300.24 'verify pack -v' +# t5300.25 'verify-pack catches mismatched .idx and .pack files' +# t5300.29 'verify-pack catches a corrupted sum of the index file itself' +# t5300.30 'build pack index for an existing pack' +# t5300.45 'make sure index-pack detects the SHA1 collision' +# t5300.46 'make sure index-pack detects the SHA1 collision (large blobs)' # t5303.5 'create corruption in data of first object' # t5303.7 '... and loose copy of second object allows for partial recovery' # t5303.11 'create corruption in data of first delta' # t6300.35 'basic atom: head objectsize:disk' # t6300.91 'basic atom: tag objectsize:disk' # t6300.92 'basic atom: tag *objectsize:disk' -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.{10,12,14} t5303.{5,7,11} t6300.{35,91,92}" +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[56] t5303.[57] t5303.11 t6300.35 t6300.9[12]" %endif -# endif s390x && rhel == 8 +# endif rhel == 8 && arch == s390x export GIT_SKIP_TESTS @@ -1038,6 +1048,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Tue Jun 14 2022 Todd Zullinger - 2.37.0-0.0.rc0 - update to 2.37.0-rc0 +- fix GIT_SKIP_TESTS for EL8 s390x * Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 - Perl 5.36 re-rebuild of bootstrapped packages From 33956465a148eec72f465deb3c32e143e41496ea Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 13 Jun 2022 23:45:30 -0400 Subject: [PATCH 111/202] remove --with/--without emacs build conditional The emacs bcond support was added cdea01a (drop emacs-git stub for fedora >= 34 (#1882360), 2020-10-10). Now that Fedora 34 is EOL, we no longer need the conditional. --- git.spec | 40 +--------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/git.spec b/git.spec index 41f02f3..65ba831 100644 --- a/git.spec +++ b/git.spec @@ -6,13 +6,6 @@ %global gitexecdir %{_libexecdir}/git-core -# Settings for Fedora >= 34 -%if 0%{?fedora} >= 34 -%bcond_with emacs -%else -%bcond_without emacs -%endif - # Settings for Fedora %if 0%{?fedora} # linkchecker is not available on EL @@ -137,10 +130,6 @@ BuildRequires: linkchecker BuildRequires: coreutils BuildRequires: desktop-file-utils BuildRequires: diffutils -%if %{with emacs} -BuildRequires: emacs-common -%endif -# endif emacs-common %if 0%{?rhel} && 0%{?rhel} < 9 # Require epel-rpm-macros for the %%gpgverify macro on EL-7/EL-8, and # %%build_cflags & %%build_ldflags on EL-7. @@ -267,17 +256,6 @@ Requires: perl(Term::ReadKey) # endif ! defined perl_bootstrap Requires: perl-Git = %{version}-%{release} -%if %{with emacs} && %{defined _emacs_version} -Requires: emacs-filesystem >= %{_emacs_version} -%endif -# endif with emacs && defined _emacs_version - -# Obsolete emacs-git if it's disabled -%if %{without emacs} -Obsoletes: emacs-git < %{?epoch:%{epoch}:}%{version}-%{release} -%endif -# endif without emacs - # Obsolete git-cvs if it's disabled %if %{without cvs} Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release} @@ -636,19 +614,6 @@ sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ %make_install -C contrib/contacts -%if %{with emacs} -%global elispdir %{_emacs_sitelispdir}/git -pushd contrib/emacs >/dev/null -for el in *.el ; do - # Note: No byte-compiling is done. These .el files are one-line stubs - # which only serve to point users to better alternatives. - install -Dpm 644 $el %{buildroot}%{elispdir}/$el - rm -f $el # clean up to avoid cruft in git-core-doc -done -popd >/dev/null -%endif -# endif with emacs - %if %{with libsecret} install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ %{buildroot}%{gitexecdir} @@ -915,10 +880,6 @@ rmdir --ignore-fail-on-non-empty "$testdir" %systemd_postun_with_restart git.socket %files -f bin-man-doc-git-files -%if %{with emacs} -%{elispdir} -%endif -# endif with emacs %{_datadir}/git-core/contrib/diff-highlight %{_datadir}/git-core/contrib/hooks/update-paranoid %{_datadir}/git-core/contrib/hooks/setgitperms.perl @@ -1049,6 +1010,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Tue Jun 14 2022 Todd Zullinger - 2.37.0-0.0.rc0 - update to 2.37.0-rc0 - fix GIT_SKIP_TESTS for EL8 s390x +- remove --with/--without emacs build conditional * Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 - Perl 5.36 re-rebuild of bootstrapped packages From 7d205ab48d41596df2a37bd4742ecad8fc4b3e6c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 17 Jun 2022 22:55:42 -0400 Subject: [PATCH 112/202] update to 2.37.0-rc1 Add 'missing FSMONITOR_DAEMON' and 'You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test' to git.skip-test-patterns to cover new test prerequisites. Release notes: https://github.com/git/git/raw/v2.37.0-rc1/Documentation/RelNotes/2.37.0.txt --- git.skip-test-patterns | 2 ++ git.spec | 7 +++++-- sources | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/git.skip-test-patterns b/git.skip-test-patterns index 234d37a..1a1139f 100644 --- a/git.skip-test-patterns +++ b/git.skip-test-patterns @@ -6,6 +6,7 @@ missing AUTOIDENT missing CASE_INSENSITIVE_FS missing DONTHAVEIT missing ([!]LONG_IS_64BIT,)?EXPENSIVE +missing FSMONITOR_DAEMON missing JGIT missing !?LAZY_(TRUE|FALSE) missing MINGW @@ -26,3 +27,4 @@ skipping svn-info test skipping Windows-(only path|specific) tests Test requiring writable / skipped used to test external credential helpers +You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test diff --git a/git.spec b/git.spec index 65ba831..d58e164 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.37.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Jun 17 2022 Todd Zullinger - 2.37.0-0.1.rc1 +- update to 2.37.0-rc1 + * Tue Jun 14 2022 Todd Zullinger - 2.37.0-0.0.rc0 - update to 2.37.0-rc0 - fix GIT_SKIP_TESTS for EL8 s390x diff --git a/sources b/sources index a0e2d2e..aed88fa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.0.rc0.tar.xz) = bcb69bc211ea4a439260dca6b61afeb0ea1f61ad892f169d990454038ad83e28eccbf9d1da6d9f4deb56b1016d8cca6a431374e8f3401c33a6ca99f403391790 -SHA512 (git-2.37.0.rc0.tar.sign) = 6d3443504b012d580209afee938c99f4ae6ee34257a17e7f58adf640f42c54140f6873f4a15ca36ffa06d5d9740ecbab6fa39c8331f5e9bbfdbd522e30f24c0e +SHA512 (git-2.37.0.rc1.tar.xz) = 4a2ddb7d4be9bcfcdcc181693d09bd4b34db0b44d22c3df6bcbb82f99950dfa2a19aebe0d877386be1c731cc307c891e85fe48c50c7988299ee92ed3aad95d11 +SHA512 (git-2.37.0.rc1.tar.sign) = 0b622b99e0f2a56784e50c395661cc305e6a30b8bb8b5bf41d202929fe140ae3b32d8502089f316d8662d2c704060122c7b35debc2d7413c66a662a144ce2469 From 8b14c0b19ff01e4193995083fd72a5252cced4df Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 22 Jun 2022 15:51:09 -0400 Subject: [PATCH 113/202] update to 2.37.0-rc2 Release notes: https://github.com/git/git/raw/v2.37.0-rc2/Documentation/RelNotes/2.37.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index d58e164..6552e98 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.37.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Jun 22 2022 Todd Zullinger - 2.37.0-0.2.rc2 +- update to 2.37.0-rc2 + * Fri Jun 17 2022 Todd Zullinger - 2.37.0-0.1.rc1 - update to 2.37.0-rc1 diff --git a/sources b/sources index aed88fa..1f84e38 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.0.rc1.tar.xz) = 4a2ddb7d4be9bcfcdcc181693d09bd4b34db0b44d22c3df6bcbb82f99950dfa2a19aebe0d877386be1c731cc307c891e85fe48c50c7988299ee92ed3aad95d11 -SHA512 (git-2.37.0.rc1.tar.sign) = 0b622b99e0f2a56784e50c395661cc305e6a30b8bb8b5bf41d202929fe140ae3b32d8502089f316d8662d2c704060122c7b35debc2d7413c66a662a144ce2469 +SHA512 (git-2.37.0.rc2.tar.xz) = 1b81180f2ed4566a74bc37d47fa9790eb70048c43b5204a9eda03d6fe6dd8c273ccb464d2490877b6ada901845edc9ec7cc1a6d73c064be5d426ff9b9e64e1e5 +SHA512 (git-2.37.0.rc2.tar.sign) = 6b71e9495a4b758029ff37dca304c57161e60d88587f43dff32abf4c0dc218a329a16b16831e39eb0be3b6d61da1f91f7a9444eea38af4dfed4da8c0b6f80821 From eab9894931e14536f8965a8e524fc83e0a1fd2b1 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 27 Jun 2022 15:07:38 -0400 Subject: [PATCH 114/202] update to 2.37.0 Release notes: https://github.com/git/git/raw/v2.37.0/Documentation/RelNotes/2.37.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 6552e98..4863e00 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.37.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Jun 27 2022 Todd Zullinger - 2.37.0-1 +- update to 2.37.0 + * Wed Jun 22 2022 Todd Zullinger - 2.37.0-0.2.rc2 - update to 2.37.0-rc2 diff --git a/sources b/sources index 1f84e38..d351812 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.0.rc2.tar.xz) = 1b81180f2ed4566a74bc37d47fa9790eb70048c43b5204a9eda03d6fe6dd8c273ccb464d2490877b6ada901845edc9ec7cc1a6d73c064be5d426ff9b9e64e1e5 -SHA512 (git-2.37.0.rc2.tar.sign) = 6b71e9495a4b758029ff37dca304c57161e60d88587f43dff32abf4c0dc218a329a16b16831e39eb0be3b6d61da1f91f7a9444eea38af4dfed4da8c0b6f80821 +SHA512 (git-2.37.0.tar.xz) = 2ae3c845c9d0e0f5245e47f95c958c86a4aa2c47dfe31bff6fc81b2434d2e9402b7eced18700c04ba7158ed6a72807a81c4cde6a26dd30c969b4267b8fce4d0a +SHA512 (git-2.37.0.tar.sign) = f2f8816cacf0abc66e52123618192ae87153492a95d2390fe457ca9b8910a261c4d2225937b45658a1c3d7e6a4dc4f05527831c232461b955be600d981e756e3 From 47478b1513a0ad0755d75d49c35bc6801722f3ac Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 12 Jul 2022 13:33:11 -0400 Subject: [PATCH 115/202] update to 2.37.1 (CVE-2022-29187) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the release notes for 2.30.5¹: This release contains minor fix-ups for the changes that went into Git 2.30.3 and 2.30.4, addressing CVE-2022-29187. * The safety check that verifies a safe ownership of the Git worktree is now extended to also cover the ownership of the Git directory (and the `.git` file, if there is any). Carlo Marcelo Arenas Belón (1): setup: tighten ownership checks post CVE-2022-24765 Additionally, from the release notes for 2.37.1²: * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't correctly record a removed file to the index, which is an old regression but has become widely known because the C version has become the default in the latest release. ¹ https://github.com/git/git/raw/v2.37.1/Documentation/RelNotes/2.30.5.txt ² https://github.com/git/git/raw/v2.37.1/Documentation/RelNotes/2.37.1.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index 4863e00..8c50c7f 100644 --- a/git.spec +++ b/git.spec @@ -76,7 +76,7 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.37.0 +Version: 2.37.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Jul 12 2022 Todd Zullinger - 2.37.1-1 +- update to 2.37.1 (CVE-2022-29187) + * Mon Jun 27 2022 Todd Zullinger - 2.37.0-1 - update to 2.37.0 diff --git a/sources b/sources index d351812..45b2c13 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.0.tar.xz) = 2ae3c845c9d0e0f5245e47f95c958c86a4aa2c47dfe31bff6fc81b2434d2e9402b7eced18700c04ba7158ed6a72807a81c4cde6a26dd30c969b4267b8fce4d0a -SHA512 (git-2.37.0.tar.sign) = f2f8816cacf0abc66e52123618192ae87153492a95d2390fe457ca9b8910a261c4d2225937b45658a1c3d7e6a4dc4f05527831c232461b955be600d981e756e3 +SHA512 (git-2.37.1.tar.xz) = 3c9cad6b4757f425ee53996d8d80db2226b246513cbcec9011022e02e4235d7ec38c7c1aada73bb3c9279a91d1aaf8664633356ce1dce847e0d371f702a5b766 +SHA512 (git-2.37.1.tar.sign) = 204b84321e0eadcde81d4e2dc134d53706a569c77dd34a1919543ec3b0561b828eb6525a12cd3fba7238e03e9e26708d6d2b64cd1a4d902ee4d6e680339603a9 From 0266063d10ccdc4ba3f65595b15a8de474d50538 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 06:16:03 +0000 Subject: [PATCH 116/202] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_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 8c50c7f..42fb2b8 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ Name: git Version: 2.37.1 -Release: 1%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist}.1 Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 2.37.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jul 12 2022 Todd Zullinger - 2.37.1-1 - update to 2.37.1 (CVE-2022-29187) From 3eb6f047dca4b5670c71d48c094b1ce601f5db44 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sat, 23 Jul 2022 15:28:15 -0400 Subject: [PATCH 117/202] require systemd-rpm-macros rather than systemd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `BuildRequires: systemd` was added in d7389e7 (use systemd instead of xinetd (bz 737183), 2013-04-30). Since then, the systemd macros have been split into a subpackage¹. Adjust our BuildRequires (with an exception for EL-7). Replace `Requires*: systemd` in git-daemon with %{?systemd_requires}. ¹ https://src.fedoraproject.org/rpms/systemd/c/c9030f0 (Split out the rpm macros into systemd-rpm-macros subpackage, 2018-11-02), --- git.spec | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/git.spec b/git.spec index 42fb2b8..e7a699d 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ Name: git Version: 2.37.1 -Release: 1%{?rcrev}%{?dist}.1 +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -161,8 +161,11 @@ BuildRequires: perl # endif use_perl_interpreter BuildRequires: pkgconfig(bash-completion) BuildRequires: sed -# For macros +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: systemd-rpm-macros +%else BuildRequires: systemd +%endif BuildRequires: tcl BuildRequires: tk BuildRequires: xz @@ -360,10 +363,7 @@ Requires: perl(DBD::SQLite) %package daemon Summary: Git protocol daemon Requires: git-core = %{version}-%{release} -Requires: systemd -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +%{?systemd_requires} %description daemon The git daemon for supporting git:// access to git repositories @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sat Jul 23 2022 Todd Zullinger - 2.37.1-2 +- require systemd-rpm-macros rather than systemd + * Thu Jul 21 2022 Fedora Release Engineering - 2.37.1-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 5c57e78875da2b7b029c2323cba7c6925a4d7cf4 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 11 Aug 2022 14:22:53 -0400 Subject: [PATCH 118/202] update to 2.37.2 This is an upstream bugfix release. Release notes: https://github.com/git/git/raw/v2.37.2/Documentation/RelNotes/2.37.2.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index e7a699d..af92750 100644 --- a/git.spec +++ b/git.spec @@ -76,8 +76,8 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.37.1 -Release: 2%{?rcrev}%{?dist} +Version: 2.37.2 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1007,6 +1007,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Thu Aug 11 2022 Todd Zullinger - 2.37.2-1 +- update to 2.37.2 + * Sat Jul 23 2022 Todd Zullinger - 2.37.1-2 - require systemd-rpm-macros rather than systemd diff --git a/sources b/sources index 45b2c13..c4e406c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.1.tar.xz) = 3c9cad6b4757f425ee53996d8d80db2226b246513cbcec9011022e02e4235d7ec38c7c1aada73bb3c9279a91d1aaf8664633356ce1dce847e0d371f702a5b766 -SHA512 (git-2.37.1.tar.sign) = 204b84321e0eadcde81d4e2dc134d53706a569c77dd34a1919543ec3b0561b828eb6525a12cd3fba7238e03e9e26708d6d2b64cd1a4d902ee4d6e680339603a9 +SHA512 (git-2.37.2.tar.xz) = a26d83f4eeb71d49c427ced9509861f7677e13e806da729f369ca39b795f8417b789a0adec859f44716f7fbc1190f7d1e6e518e774ad95c89e88442ac125b9c2 +SHA512 (git-2.37.2.tar.sign) = 8ae911329f57df76e1fe9932ded46bf7a37350ae609802afa54da9d7c05be4d13907cae8585b8824b575d177a20dc11f3e555c820beb2cbf6d65509777faabda From 3bf0a72eb1e3c5b367f03440f246fda9c7b822c1 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 14 Aug 2022 14:13:49 -0400 Subject: [PATCH 119/202] consolidate git-archimport removal in %prep We have not shipped git-archimport since 3f0dc97 (Drop git-arch on fedora >= 16, 2011-07-26). Replace the scattered references to it in the spec file with a small group of commands in %prep to remove it entirely. --- git.spec | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/git.spec b/git.spec index af92750..35651f6 100644 --- a/git.spec +++ b/git.spec @@ -77,7 +77,7 @@ Name: git Version: 2.37.2 -Release: 1%{?rcrev}%{?dist} +Release: 2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -496,8 +496,10 @@ xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1 # Install print-failed-test-output script install -p -m 755 %{SOURCE99} print-failed-test-output -# Remove git-archimport from command list +# Remove git-archimport +sed -i '/^SCRIPT_PERL += git-archimport\.perl$/d' Makefile sed -i '/^git-archimport/d' command-list.txt +rm git-archimport.perl Documentation/git-archimport.txt %if %{without cvs} # Remove git-cvs* from command list @@ -643,9 +645,6 @@ rm -rf contrib/scalar # Clean up contrib/subtree to avoid cruft in the git-core-doc docdir rm -rf contrib/subtree/{INSTALL,Makefile,git-subtree*,t} -# git-archimport is not supported -find %{buildroot} Documentation -type f -name 'git-archimport*' -exec rm -f {} ';' - %if %{without cvs} # Remove git-cvs* and gitcvs* find %{buildroot} Documentation \( -type f -o -type l \) \ @@ -663,7 +662,7 @@ rm -f %{buildroot}%{gitexecdir}/mergetools/p4merge # Remove unneeded git-remote-testsvn so git-svn can be noarch rm -f %{buildroot}%{gitexecdir}/git-remote-testsvn -exclude_re="archimport|email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" +exclude_re="email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" (find %{buildroot}{%{_bindir},%{_libexecdir}} -type f -o -type l | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files (find %{buildroot}{%{_bindir},%{_libexecdir}} -mindepth 1 -type d | grep -vE "$exclude_re" | sed -e 's@^%{buildroot}@%dir @') >> bin-man-doc-files (find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files @@ -1007,6 +1006,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 +- consolidate git-archimport removal in %%prep + * Thu Aug 11 2022 Todd Zullinger - 2.37.2-1 - update to 2.37.2 From c1a92d4bda57e39d25b1c908fd6c6ea1719b7f1c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 30 Aug 2022 21:09:04 -0400 Subject: [PATCH 120/202] update to 2.37.3 This is an upstream bugfix release. Release notes: https://github.com/git/git/raw/v2.37.3/Documentation/RelNotes/2.37.3.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 35651f6..51023d9 100644 --- a/git.spec +++ b/git.spec @@ -76,8 +76,8 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.37.2 -Release: 2%{?rcrev}%{?dist} +Version: 2.37.3 +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1006,6 +1006,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Aug 30 2022 Todd Zullinger - 2.37.3-1 +- update to 2.37.3 + * Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 - consolidate git-archimport removal in %%prep diff --git a/sources b/sources index c4e406c..4f304df 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.2.tar.xz) = a26d83f4eeb71d49c427ced9509861f7677e13e806da729f369ca39b795f8417b789a0adec859f44716f7fbc1190f7d1e6e518e774ad95c89e88442ac125b9c2 -SHA512 (git-2.37.2.tar.sign) = 8ae911329f57df76e1fe9932ded46bf7a37350ae609802afa54da9d7c05be4d13907cae8585b8824b575d177a20dc11f3e555c820beb2cbf6d65509777faabda +SHA512 (git-2.37.3.tar.xz) = 9120050b01d8ac8d9f9e85f19cb84dc90c28f3beadc3ea94da94845f2eb5e35aa83eee8447a7ecef5190b8eb5d01be621be2e82bb3020e51e05037cd1fa9b58f +SHA512 (git-2.37.3.tar.sign) = ca2b0396c7d5f47822578f654588580b101ce97e0a4913071b6987cdbb470e3fad456b967cf6ec5928c85d56aa8a8eeff123e0e9aaa4ce1cbfc79c30a2af3b03 From cbc4c3e411cc105150a1d9444dd327a6a5aec6f5 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Sun, 21 Aug 2022 19:27:34 -0400 Subject: [PATCH 121/202] remove %changelog entries prior to 2020 The git history serves as the repository for the old entries. The changelog was roughly 20% of the total lines in the spec file. --- git.spec | 250 +------------------------------------------------------ 1 file changed, 1 insertion(+), 249 deletions(-) diff --git a/git.spec b/git.spec index 51023d9..f234f02 100644 --- a/git.spec +++ b/git.spec @@ -1008,6 +1008,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Tue Aug 30 2022 Todd Zullinger - 2.37.3-1 - update to 2.37.3 +- remove %%changelog entries prior to 2020 * Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 - consolidate git-archimport removal in %%prep @@ -1198,252 +1199,3 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Tue Jan 26 2021 Fedora Release Engineering - 2.30.0-1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Dec 28 2020 Todd Zullinger - 2.30.0-1 -- update to 2.30.0 - -* Wed Dec 23 2020 Todd Zullinger - 2.30.0-0.2.rc2 -- update to 2.30.0-rc2 - -* Sat Dec 19 2020 Todd Zullinger - 2.30.0-0.1.rc1 -- update to 2.30.0-rc1 - -* Mon Dec 14 2020 Todd Zullinger - 2.30.0-0.0.rc0 -- update to 2.30.0-rc0 - -* Sun Dec 06 2020 Todd Zullinger - 2.29.2-4 -- move git-difftool to git-core, it does not require perl - -* Wed Nov 25 2020 Todd Zullinger - 2.29.2-3 -- apply upstream patch to resolve git fast-import memory leak (#1900335) -- add epel-rpm-macros BuildRequires on EL-7 (#1872865) - -* Sat Nov 07 2020 Todd Zullinger - 2.29.2-2 -- apply upstream patch to resolve git log segfault (#1791810) - -* Thu Oct 29 2020 Todd Zullinger - 2.29.2-1 -- update to 2.29.2 - -* Sat Oct 24 2020 Todd Zullinger - 2.29.1-1 -- update to 2.29.1 -- fix bugs in am/rebase handling of committer ident/date - -* Mon Oct 19 2020 Todd Zullinger - 2.29.0-1 -- update to 2.29.0 - -* Thu Oct 15 2020 Todd Zullinger - 2.29.0-0.2.rc2 -- update to 2.29.0-rc2 - -* Fri Oct 09 2020 Todd Zullinger - 2.29.0-0.1.rc1 -- update to 2.29.0-rc1 -- drop emacs-git stub for fedora >= 34 (#1882360) -- adjust python hashbang in contrib/hg-to-git, it supports python3 - -* Mon Oct 05 2020 Todd Zullinger - 2.29.0-0.0.rc0 -- update to 2.29.0-rc0 - -* Mon Jul 27 2020 Todd Zullinger - 2.28.0-1 -- update to 2.28.0 - -* Mon Jul 27 2020 Fedora Release Engineering - 2.28.0-0.3.rc2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 22 2020 Todd Zullinger - 2.28.0-0.2.rc2 -- update to 2.28.0-rc2 - -* Sat Jul 18 2020 Todd Zullinger - 2.28.0-0.1.rc1 -- update to 2.28.0-rc1 - -* Thu Jul 09 2020 Todd Zullinger - 2.28.0-0.0.rc0 -- update to 2.28.0-rc0 - -* Fri Jun 26 2020 Jitka Plesnikova - 2.27.0-1.2 -- Perl 5.32 re-rebuild of bootstrapped packages - -* Tue Jun 23 2020 Jitka Plesnikova - 2.27.0-1.1 -- Perl 5.32 rebuild - -* Mon Jun 01 2020 Todd Zullinger - 2.27.0-1 -- update to 2.27.0 - -* Tue May 26 2020 Todd Zullinger - 2.27.0-0.2.rc2 -- update to 2.27.0-rc2 - -* Thu May 21 2020 Todd Zullinger - 2.27.0-0.1.rc1 -- update to 2.27.0-rc1 - -* Thu May 21 2020 Merlin Mathesius - 2.26.2-2 -- Minor conditional fixes for ELN - -* Mon Apr 20 2020 Todd Zullinger - 2.26.2-1 -- update to 2.26.2 (CVE-2020-11008) - -* Tue Apr 14 2020 Todd Zullinger - 2.26.1-1 -- update to 2.26.1 (CVE-2020-5260) - -* Sat Apr 04 2020 Todd Zullinger - 2.26.0-2 -- fix issue with fast-forward rebases when rebase.abbreviateCommands is set -- fix/quiet rpmlint issues from libsecret split - -* Thu Apr 02 2020 Björn Esser - 2.26.0-1.1 -- Fix string quoting for rpm >= 4.16 - -* Sun Mar 22 2020 Todd Zullinger - 2.26.0-1 -- update to 2.26.0 - -* Mon Mar 16 2020 Todd Zullinger - 2.26.0-0.3.rc2 -- update to 2.26.0-rc2 - -* Thu Mar 12 2020 Todd Zullinger - 2.26.0-0.2.rc1 -- remove s390x gcc10 workaround (#1799408) - -* Tue Mar 10 2020 Todd Zullinger - 2.26.0-0.1.rc1 -- update to 2.26.0-rc1 -- adjust make test options -- add missing build deps for tests - -* Fri Mar 06 2020 Todd Zullinger - 2.26.0-0.0.rc0 -- update to 2.26.0-rc0 - -* Wed Feb 26 2020 Todd Zullinger - 2.25.1-4 -- use Asciidoctor to build documentation when possible - -* Sat Feb 22 2020 Todd Zullinger - 2.25.1-3 -- work around issue on s390x with gcc10 (#1799408) - -* Wed Feb 19 2020 Todd Zullinger - 2.25.1-2 -- split libsecret credential helper into a subpackage (#1804741) -- consolidate macros for Fedora/EPEL -- remove unneeded gnome-keyring obsoletes - -* Mon Feb 17 2020 Todd Zullinger - 2.25.1-1 -- update to 2.25.1 - -* Tue Jan 28 2020 Fedora Release Engineering - 2.25.0-2.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Jan 14 2020 Tom Stellard - 2.25.0-2 -- Use make_build macro when running tests - -* Tue Jan 14 2020 Todd Zullinger - 2.25.0-1 -- update to 2.25.0 - -* Thu Jan 09 2020 Todd Zullinger - 2.25.0-0.2.rc2 -- update to 2.25.0-rc2 - -* Fri Jan 03 2020 Todd Zullinger - 2.25.0-0.1.rc1 -- update to 2.25.0-rc1 -- only add highlight test BR for ppc64le/x86_64 on EL7+ - -* Wed Dec 25 2019 Todd Zullinger - 2.25.0-0.0.rc0 -- update to 2.25.0-rc0 - -* Thu Dec 19 2019 Todd Zullinger - 2.24.1-2 -- fix git-daemon systemd scriptlets (#1785088) - -* Tue Dec 10 2019 Todd Zullinger - 2.24.1-1 -- update to 2.24.1 (CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, - CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387) - -* Wed Dec 04 2019 Todd Zullinger - 2.24.0-2 -- restore jgit BR for use in tests - -* Mon Nov 04 2019 Todd Zullinger - 2.24.0-1 -- update to 2.24.0 - -* Thu Oct 31 2019 Todd Zullinger - 2.24.0-0.2.rc2 -- update to 2.24.0-rc2 - -* Sun Oct 27 2019 Todd Zullinger - 2.24.0-0.1.rc1.1 -- disable linkchecker on all EL releases - -* Thu Oct 24 2019 Todd Zullinger - 2.24.0-0.1.rc1 -- update to 2.24.0-rc1 -- skip failing test in t7812-grep-icase-non-ascii on s390x -- gitk: add Requires: git-gui (#1765113) - -* Sat Oct 19 2019 Todd Zullinger - 2.24.0-0.0.rc0 -- update to 2.24.0-rc0 -- fix t0500-progress-display on big-endian arches - -* Fri Aug 16 2019 Todd Zullinger - 2.23.0-1 -- Update to 2.23.0 - -* Sun Aug 11 2019 Todd Zullinger - 2.23.0-0.2.rc2 -- Update to 2.23.0-rc2 - -* Fri Aug 02 2019 Todd Zullinger - 2.23.0-0.1.rc1 -- Update to 2.23.0-rc1 - -* Mon Jul 29 2019 Todd Zullinger - 2.23.0-0.0.rc0 -- Update to 2.23.0-rc0 - -* Thu Jul 25 2019 Todd Zullinger - 2.22.0-2 -- completion: do not cache if --git-completion-helper fails -- avoid trailing comments in spec file -- drop jgit on Fedora > 30 - -* Thu Jul 25 2019 Fedora Release Engineering - 2.22.0-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Fri Jun 07 2019 Todd Zullinger - 2.22.0-1 -- Update to 2.22.0 - -* Tue Jun 04 2019 Jitka Plesnikova - 2.22.0-0.7.rc3 -- Perl 5.30 re-rebuild updated packages - -* Mon Jun 03 2019 Todd Zullinger - 2.22.0-0.6.rc3 -- Update to 2.22.0-rc3 - -* Sun Jun 02 2019 Jitka Plesnikova - 2.22.0-0.5.rc2 -- Perl 5.30 re-rebuild of bootstrapped packages - -* Sat Jun 01 2019 Jitka Plesnikova - 2.22.0-0.4.rc2 -- Perl 5.30 rebuild - -* Thu May 30 2019 Todd Zullinger - 2.22.0-0.3.rc2 -- Update to 2.22.0-rc1 - -* Fri May 24 2019 Todd Zullinger - 2.22.0-0.2.rc1 -- Apply upstream fixes for diff-parseopt issues on s390x - -* Sun May 19 2019 Todd Zullinger - 2.22.0-0.1.rc1 -- Update to 2.22.0-rc1 - -* Mon May 13 2019 Todd Zullinger - 2.22.0-0.0.rc0 -- Update to 2.22.0-rc0 -- Ensure a consistent format for test output -- Improve JGIT test prereq (jgit on Fedora >= 30 is broken) -- Add perl(JSON::PP) BuildRequires for trace2 tests - -* Sun Feb 24 2019 Todd Zullinger - 2.21.0-1 -- Update to 2.21.0 -- Move gitweb manpages to gitweb package -- Link git-citool to git-gui if they are identical - -* Tue Feb 19 2019 Todd Zullinger - 2.21.0-0.2.rc2 -- Update to 2.21.0.rc2 - -* Fri Feb 15 2019 Todd Zullinger -- Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility - -* Wed Feb 13 2019 Todd Zullinger - 2.21.0-0.1.rc1 -- Update to 2.21.0.rc1 - -* Thu Feb 07 2019 Todd Zullinger - 2.21.0-0.0.rc0 -- Update to 2.21.0.rc0 -- Remove %%changelog entries prior to 2017 - -* Thu Jan 31 2019 Todd Zullinger - 2.20.1-2 -- Remove extraneous pcre BuildRequires -- Add additional BuildRequires for i18n locales used in tests -- Replace gitweb home-link with inline sed -- Add gnupg2-smime and perl JSON BuildRequires for tests -- Work around gpg-agent issues in the test suite -- Drop gnupg BuildRequires on fedora >= 30 -- Fix formatting of contrib/{contacts,subtree} docs -- Use %%{build_cflags} and %%{build_ldflags} -- Drop unneeded TEST_SHELL_PATH make variable - -* Thu Jan 31 2019 Fedora Release Engineering - 2.20.1-1.1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 0d294dd61006522f5434a82f76ad186aa19d052c Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 19 Aug 2022 21:52:40 -0400 Subject: [PATCH 122/202] tests: try harder to find open ports for apache, git, and svn When running multiple builds, we frequently see failures due to port conflicts, particularly with httpd tests. Retry with a different port when the test function start_httpd() fails to reduce these spurious failures. We should not need to skip t9115-git-svn-dcommit-funky-renames as a result. Remove it from GIT_SKIP_TESTS. Similarly, adjust the git-daemon and svnserve start functions. --- ...try-harder-to-find-a-port-for-apache.patch | 73 +++++++++++++++ ...git-daemon-try-harder-to-find-a-port.patch | 88 +++++++++++++++++++ ...ib-git-svn-try-harder-to-find-a-port.patch | 85 ++++++++++++++++++ git.spec | 22 ++--- 4 files changed, 257 insertions(+), 11 deletions(-) create mode 100644 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch create mode 100644 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch create mode 100644 0003-t-lib-git-svn-try-harder-to-find-a-port.patch diff --git a/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch b/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch new file mode 100644 index 0000000..f7c1509 --- /dev/null +++ b/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch @@ -0,0 +1,73 @@ +From aedeaaf788bd8a7fc5a1887196b6f6d8a5c31362 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Sun, 21 Aug 2022 13:49:57 -0400 +Subject: [PATCH] t/lib-httpd: try harder to find a port for apache +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When running multiple builds concurrently, tests which run daemons, like +apache httpd, sometimes conflict with each other, leading to spurious +failures: + + ++ /usr/sbin/httpd -d '/tmp/git-t.ck9I/trash directory.t9118-git-svn-funky-branch-names/httpd' \ + -f /builddir/build/BUILD/git-2.37.2/t/lib-httpd/apache.conf -DDAV -DSVN -c 'Listen 127.0.0.1:9118' \ + -k start + (98)Address already in use: AH00072: make_sock: could not bind to address 127.0.0.1:9118 + no listening sockets available, shutting down + AH00015: Unable to open logs + ++ test 1 -ne 0 + +Try a bit harder to find an open port to use to avoid these intermittent +failures. If we fail to start httpd, increment the port number and try +again. By default, we make 3 attempts. This may be overridden by +setting GIT_TEST_START_HTTPD_TRIES to a different value. + +Helped-by: Ondřej Pohořelský +Signed-off-by: Todd Zullinger +--- + t/lib-httpd.sh | 29 ++++++++++++++++++----------- + 1 file changed, 18 insertions(+), 11 deletions(-) + +diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh +index 1f6b9b08d1..9279dcd659 100644 +--- a/t/lib-httpd.sh ++++ b/t/lib-httpd.sh +@@ -175,19 +175,26 @@ prepare_httpd() { + } + + start_httpd() { +- prepare_httpd >&3 2>&4 +- + test_atexit stop_httpd + +- "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \ +- -f "$TEST_PATH/apache.conf" $HTTPD_PARA \ +- -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \ +- >&3 2>&4 +- if test $? -ne 0 +- then +- cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null +- test_skip_or_die GIT_TEST_HTTPD "web server setup failed" +- fi ++ i=0 ++ while test $i -lt ${GIT_TEST_START_HTTPD_TRIES:-3} ++ do ++ i=$(($i + 1)) ++ prepare_httpd >&3 2>&4 ++ say >&3 "Starting httpd on port $LIB_HTTPD_PORT" ++ "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \ ++ -f "$TEST_PATH/apache.conf" $HTTPD_PARA \ ++ -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \ ++ >&3 2>&4 ++ test $? -eq 0 && return ++ LIB_HTTPD_PORT=$(($LIB_HTTPD_PORT + 1)) ++ export LIB_HTTPD_PORT ++ # clean up modules symlink, prepare_httpd will re-create it ++ rm -f "$HTTPD_ROOT_PATH/modules" ++ done ++ cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null ++ test_skip_or_die GIT_TEST_HTTPD "web server setup failed" + } + + stop_httpd() { diff --git a/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch b/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch new file mode 100644 index 0000000..4540b63 --- /dev/null +++ b/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch @@ -0,0 +1,88 @@ +From 16750d024ce038b019ab2e9ee5639901e445af37 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Fri, 26 Aug 2022 18:28:44 -0400 +Subject: [PATCH] t/lib-git-daemon: try harder to find a port + +As with the previous commit, try harder to find an open port to avoid +intermittent failures on busy/shared build systems. + +By default, we make 3 attempts. This may be overridden by setting +GIT_TEST_START_GIT_DAEMON_TRIES to a different value. + +Signed-off-by: Todd Zullinger +--- + t/lib-git-daemon.sh | 60 ++++++++++++++++++++++++++++----------------- + 1 file changed, 37 insertions(+), 23 deletions(-) + +diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh +index e62569222b..c3e8dda9ff 100644 +--- a/t/lib-git-daemon.sh ++++ b/t/lib-git-daemon.sh +@@ -51,30 +51,44 @@ start_git_daemon() { + registered_stop_git_daemon_atexit_handler=AlreadyDone + fi + +- say >&3 "Starting git daemon ..." +- mkfifo git_daemon_output +- ${LIB_GIT_DAEMON_COMMAND:-git daemon} \ +- --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \ +- --reuseaddr --verbose --pid-file="$GIT_DAEMON_PIDFILE" \ +- --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \ +- "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \ +- >&3 2>git_daemon_output & +- GIT_DAEMON_PID=$! +- { +- read -r line <&7 +- printf "%s\n" "$line" >&4 +- cat <&7 >&4 & +- } 7&3 "Starting git daemon on port $LIB_GIT_DAEMON_PORT ..." ++ mkfifo git_daemon_output ++ ${LIB_GIT_DAEMON_COMMAND:-git daemon} \ ++ --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \ ++ --reuseaddr --verbose --pid-file="$GIT_DAEMON_PIDFILE" \ ++ --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \ ++ "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \ ++ >&3 2>git_daemon_output & ++ GIT_DAEMON_PID=$! ++ { ++ read -r line <&7 ++ printf "%s\n" "$line" >&4 ++ cat <&7 >&4 & ++ } 7 +Date: Fri, 26 Aug 2022 18:28:44 -0400 +Subject: [PATCH] t/lib-git-svn: try harder to find a port + +As with the previous commits, try harder to find an open port to avoid +intermittent failures on busy/shared build systems. + +By default, we make 3 attempts. This may be overridden by setting +GIT_TEST_START_SVNSERVE_TRIES to a different value. + +Run svnserve in daemon mode and use 'test_atexit' to stop it. This is +cleaner than running in the foreground with --listen-once and having to +manage the PID ourselves. + +Signed-off-by: Todd Zullinger +--- + t/lib-git-svn.sh | 34 +++++++++++++++++++++++++---- + t/t9113-git-svn-dcommit-new-file.sh | 1 - + 2 files changed, 30 insertions(+), 5 deletions(-) + +diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh +index ea28971e8e..04e660e2ba 100644 +--- a/t/lib-git-svn.sh ++++ b/t/lib-git-svn.sh +@@ -17,6 +17,7 @@ fi + GIT_DIR=$PWD/.git + GIT_SVN_DIR=$GIT_DIR/svn/refs/remotes/git-svn + SVN_TREE=$GIT_SVN_DIR/svn-tree ++SVNSERVE_PIDFILE="$PWD"/daemon.pid + test_set_port SVNSERVE_PORT + + svn >/dev/null 2>&1 +@@ -119,10 +120,35 @@ require_svnserve () { + } + + start_svnserve () { +- svnserve --listen-port $SVNSERVE_PORT \ +- --root "$rawsvnrepo" \ +- --listen-once \ +- --listen-host 127.0.0.1 & ++ test_atexit stop_svnserve ++ ++ i=0 ++ while test $i -lt ${GIT_TEST_START_SVNSERVE_TRIES:-3} ++ do ++ say >&3 "Starting svnserve on port $SVNSERVE_PORT ..." ++ svnserve --listen-port $SVNSERVE_PORT \ ++ --root "$rawsvnrepo" \ ++ --daemon --pid-file="$SVNSERVE_PIDFILE" \ ++ --listen-host 127.0.0.1 ++ ret=$? ++ # increment port and retry if unsuccessful ++ if test $ret -ne 0 ++ then ++ SVNSERVE_PORT=$(($SVNSERVE_PORT + 1)) ++ export SVNSERVE_PORT ++ else ++ break ++ fi ++ done ++} ++ ++stop_svnserve () { ++ say >&3 "Stopping svnserve ..." ++ SVNSERVE_PID="$(cat "$SVNSERVE_PIDFILE")" ++ if test -n "$SVNSERVE_PID" ++ then ++ kill "$SVNSERVE_PID" 2>/dev/null ++ fi + } + + prepare_utf8_locale () { +diff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh +index e8479cec7a..5925891f5d 100755 +--- a/t/t9113-git-svn-dcommit-new-file.sh ++++ b/t/t9113-git-svn-dcommit-new-file.sh +@@ -28,7 +28,6 @@ test_expect_success 'create files in new directory with dcommit' " + echo hello > git-new-dir/world && + git update-index --add git-new-dir/world && + git commit -m hello && +- start_svnserve && + git svn dcommit + " + diff --git a/git.spec b/git.spec index f234f02..2d1fab2 100644 --- a/git.spec +++ b/git.spec @@ -109,6 +109,16 @@ Source99: print-failed-test-output # https://bugzilla.redhat.com/490602 Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch +# https://bugzilla.redhat.com/2114531 +# tests: try harder to find open ports for apache, git, and svn +# +# https://github.com/tmzullinger/git/commit/aedeaaf788 +Patch1: 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch +# https://github.com/tmzullinger/git/commit/16750d024c +Patch2: 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch +# https://github.com/tmzullinger/git/commit/aa5105dc11 +Patch3: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -794,17 +804,6 @@ GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.36 t5551.25" %endif # endif aarch64 %%{arm} %%{power64} -%ifarch %{power64} -# Skip tests which fail on ppc -# -# t9115-git-svn-dcommit-funky-renames is disabled because it frequently fails. -# The port it uses (9115) is already in use. It is unclear if this is -# due to an issue in the test suite or a conflict with some other process on -# the build host. It only appears to occur on ppc-arches. -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" -%endif -# endif %%{power64} - %if 0%{?rhel} == 8 && "%{_arch}" == "s390x" # Skip tests which fail on s390x on rhel-8 # @@ -1009,6 +1008,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" * Tue Aug 30 2022 Todd Zullinger - 2.37.3-1 - update to 2.37.3 - remove %%changelog entries prior to 2020 +- tests: try harder to find open ports for apache, git, and svn * Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 - consolidate git-archimport removal in %%prep From ea59aa363719d7f73903a7ec9f0f53d775bf1614 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 16 Sep 2022 00:21:22 -0400 Subject: [PATCH 123/202] update to 2.38.0-rc0 Adjust number of t5541 "push 2000 tags over http" test, which we skip on aarch64 and ppc64le arches. It was shifted from 36 to 37 by upstream b0c4adcdd7 (remote-curl: send Accept-Language header to server, 2022-07-11). Release notes: https://github.com/git/git/raw/v2.38.0-rc0/Documentation/RelNotes/2.38.0.txt --- ...docs-fix-a-few-recently-broken-links.patch | 75 +++++++++++++++++++ ...s-link-to-html-version-of-api-trace2.patch | 29 +++++++ git.spec | 17 ++++- sources | 4 +- 4 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 0001-docs-fix-a-few-recently-broken-links.patch create mode 100644 0002-api-docs-link-to-html-version-of-api-trace2.patch diff --git a/0001-docs-fix-a-few-recently-broken-links.patch b/0001-docs-fix-a-few-recently-broken-links.patch new file mode 100644 index 0000000..91961ec --- /dev/null +++ b/0001-docs-fix-a-few-recently-broken-links.patch @@ -0,0 +1,75 @@ +From 349a26b8a0fe65e26b1d75af4e30d356de499a2f Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Fri, 16 Sep 2022 00:50:28 -0400 +Subject: [PATCH] docs: fix a few recently broken links + +Some links were broken in the recent move of various technical docs +c0f6dd49f1 (Merge branch 'ab/tech-docs-to-help', 2022-08-14). + +Fix them. + +Signed-off-by: Todd Zullinger +--- + Documentation/gitprotocol-capabilities.txt | 4 ++-- + Documentation/gitprotocol-v2.txt | 4 ++-- + Documentation/technical/bundle-uri.txt | 3 +-- + Documentation/user-manual.txt | 2 +- + 4 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/Documentation/gitprotocol-capabilities.txt b/Documentation/gitprotocol-capabilities.txt +index c6dcc7d565..0fb5ea0c1c 100644 +--- a/Documentation/gitprotocol-capabilities.txt ++++ b/Documentation/gitprotocol-capabilities.txt +@@ -388,8 +388,8 @@ the server as well. + Session IDs should be unique to a given process. They must fit within a + packet-line, and must not contain non-printable or whitespace characters. The + current implementation uses trace2 session IDs (see +-link:api-trace2.html[api-trace2] for details), but this may change and users of +-the session ID should not rely on this fact. ++link:technical/api-trace2.html[api-trace2] for details), but this may change ++and users of the session ID should not rely on this fact. + + GIT + --- +diff --git a/Documentation/gitprotocol-v2.txt b/Documentation/gitprotocol-v2.txt +index c9c0f9160b..59bf41cefb 100644 +--- a/Documentation/gitprotocol-v2.txt ++++ b/Documentation/gitprotocol-v2.txt +@@ -544,8 +544,8 @@ the server as well. + Session IDs should be unique to a given process. They must fit within a + packet-line, and must not contain non-printable or whitespace characters. The + current implementation uses trace2 session IDs (see +-link:api-trace2.html[api-trace2] for details), but this may change and users of +-the session ID should not rely on this fact. ++link:technical/api-trace2.html[api-trace2] for details), but this may change ++and users of the session ID should not rely on this fact. + + object-info + ~~~~~~~~~~~ +diff --git a/Documentation/technical/bundle-uri.txt b/Documentation/technical/bundle-uri.txt +index c25c42378a..85c6a7fc7c 100644 +--- a/Documentation/technical/bundle-uri.txt ++++ b/Documentation/technical/bundle-uri.txt +@@ -3,8 +3,7 @@ Bundle URIs + + Git bundles are files that store a pack-file along with some extra metadata, + including a set of refs and a (possibly empty) set of necessary commits. See +-linkgit:git-bundle[1] and link:bundle-format.txt[the bundle format] for more +-information. ++linkgit:git-bundle[1] and linkgit:gitformat-bundle[5] for more information. + + Bundle URIs are locations where Git can download one or more bundles in + order to bootstrap the object database in advance of fetching the remaining +diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt +index ca9decdd95..dc9c6a663a 100644 +--- a/Documentation/user-manual.txt ++++ b/Documentation/user-manual.txt +@@ -3133,7 +3133,7 @@ those "loose" objects. + You can save space and make Git faster by moving these loose objects in + to a "pack file", which stores a group of objects in an efficient + compressed format; the details of how pack files are formatted can be +-found in link:gitformat-pack[5]. ++found in linkgit:gitformat-pack[5]. + + To put the loose objects into a pack, just run git repack: + diff --git a/0002-api-docs-link-to-html-version-of-api-trace2.patch b/0002-api-docs-link-to-html-version-of-api-trace2.patch new file mode 100644 index 0000000..4c854f4 --- /dev/null +++ b/0002-api-docs-link-to-html-version-of-api-trace2.patch @@ -0,0 +1,29 @@ +From 6e50f870372027b5c8c3e68df3c193384c5f6e59 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Fri, 16 Sep 2022 01:15:15 -0400 +Subject: [PATCH] api docs: link to html version of api-trace2 + +In f6d25d7878 (api docs: document that BUG() emits a trace2 error event, +2021-04-13), a link to the plain text version of api-trace2 was added in +`technical/api-error-handling.txt`. + +All of our other `link:`s point to the html versions. Do the same here. + +Signed-off-by: Todd Zullinger +--- + Documentation/technical/api-error-handling.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Documentation/technical/api-error-handling.txt b/Documentation/technical/api-error-handling.txt +index 70bf1d3e52..665c4960b4 100644 +--- a/Documentation/technical/api-error-handling.txt ++++ b/Documentation/technical/api-error-handling.txt +@@ -46,7 +46,7 @@ parse-options.c. + returns -1 after reporting the situation to the caller. + + These reports will be logged via the trace2 facility. See the "error" +-event in link:api-trace2.txt[trace2 API]. ++event in link:api-trace2.html[trace2 API]. + + Customizable error handlers + --------------------------- diff --git a/git.spec b/git.spec index 2d1fab2..36bc8e0 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.37.3 -Release: 1%{?rcrev}%{?dist} +Version: 2.38.0 +Release: 0.0%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -119,6 +119,12 @@ 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 +# fix a few broken links +# https://lore.kernel.org/git/20220916062303.3736166-1-tmz@pobox.com/ +# https://lore.kernel.org/git/20220916062303.3736166-2-tmz@pobox.com/ +Patch4: 0001-docs-fix-a-few-recently-broken-links.patch +Patch5: 0002-api-docs-link-to-html-version-of-api-trace2.patch + %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -800,7 +806,7 @@ GIT_SKIP_TESTS="" # to limit the maximum stack size. # t5541.36 'push 2000 tags over http' # t5551.25 'clone the 2,000 tag repo to check OS command line overflow' -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.36 t5551.25" +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.37 t5551.25" %endif # endif aarch64 %%{arm} %%{power64} @@ -1005,6 +1011,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 +- update to 2.38.0-rc0 + * Tue Aug 30 2022 Todd Zullinger - 2.37.3-1 - update to 2.37.3 - remove %%changelog entries prior to 2020 diff --git a/sources b/sources index 4f304df..eed459c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.37.3.tar.xz) = 9120050b01d8ac8d9f9e85f19cb84dc90c28f3beadc3ea94da94845f2eb5e35aa83eee8447a7ecef5190b8eb5d01be621be2e82bb3020e51e05037cd1fa9b58f -SHA512 (git-2.37.3.tar.sign) = ca2b0396c7d5f47822578f654588580b101ce97e0a4913071b6987cdbb470e3fad456b967cf6ec5928c85d56aa8a8eeff123e0e9aaa4ce1cbfc79c30a2af3b03 +SHA512 (git-2.38.0.rc0.tar.xz) = 98b5aa08da0a754d3d6119b4690e2add3f85295ba5243f8cbfef04738c27ab1d39c3388e27349a824841f4b54004e22e8731f5aa37afa5f62b2b2a197b8ec84a +SHA512 (git-2.38.0.rc0.tar.sign) = 80d1c913f32a4c63178f3514cf04052580c9699c1161d7d5ed4329961218c4712705c5dcf16162ec53487a2bb0b204bbad6559c7ff99de8fa1b937b0e9ed3f7e From 35ed577d15d597bfc92ffb88bde85349d9fb96ac Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 21 Sep 2022 20:32:41 -0400 Subject: [PATCH 124/202] update to 2.38.0-rc1 Release notes: https://github.com/git/git/raw/v2.38.0-rc1/Documentation/RelNotes/2.38.0.txt --- ...docs-fix-a-few-recently-broken-links.patch | 75 ------------------- ...s-link-to-html-version-of-api-trace2.patch | 29 ------- git.spec | 13 ++-- sources | 4 +- 4 files changed, 7 insertions(+), 114 deletions(-) delete mode 100644 0001-docs-fix-a-few-recently-broken-links.patch delete mode 100644 0002-api-docs-link-to-html-version-of-api-trace2.patch diff --git a/0001-docs-fix-a-few-recently-broken-links.patch b/0001-docs-fix-a-few-recently-broken-links.patch deleted file mode 100644 index 91961ec..0000000 --- a/0001-docs-fix-a-few-recently-broken-links.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 349a26b8a0fe65e26b1d75af4e30d356de499a2f Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Fri, 16 Sep 2022 00:50:28 -0400 -Subject: [PATCH] docs: fix a few recently broken links - -Some links were broken in the recent move of various technical docs -c0f6dd49f1 (Merge branch 'ab/tech-docs-to-help', 2022-08-14). - -Fix them. - -Signed-off-by: Todd Zullinger ---- - Documentation/gitprotocol-capabilities.txt | 4 ++-- - Documentation/gitprotocol-v2.txt | 4 ++-- - Documentation/technical/bundle-uri.txt | 3 +-- - Documentation/user-manual.txt | 2 +- - 4 files changed, 6 insertions(+), 7 deletions(-) - -diff --git a/Documentation/gitprotocol-capabilities.txt b/Documentation/gitprotocol-capabilities.txt -index c6dcc7d565..0fb5ea0c1c 100644 ---- a/Documentation/gitprotocol-capabilities.txt -+++ b/Documentation/gitprotocol-capabilities.txt -@@ -388,8 +388,8 @@ the server as well. - Session IDs should be unique to a given process. They must fit within a - packet-line, and must not contain non-printable or whitespace characters. The - current implementation uses trace2 session IDs (see --link:api-trace2.html[api-trace2] for details), but this may change and users of --the session ID should not rely on this fact. -+link:technical/api-trace2.html[api-trace2] for details), but this may change -+and users of the session ID should not rely on this fact. - - GIT - --- -diff --git a/Documentation/gitprotocol-v2.txt b/Documentation/gitprotocol-v2.txt -index c9c0f9160b..59bf41cefb 100644 ---- a/Documentation/gitprotocol-v2.txt -+++ b/Documentation/gitprotocol-v2.txt -@@ -544,8 +544,8 @@ the server as well. - Session IDs should be unique to a given process. They must fit within a - packet-line, and must not contain non-printable or whitespace characters. The - current implementation uses trace2 session IDs (see --link:api-trace2.html[api-trace2] for details), but this may change and users of --the session ID should not rely on this fact. -+link:technical/api-trace2.html[api-trace2] for details), but this may change -+and users of the session ID should not rely on this fact. - - object-info - ~~~~~~~~~~~ -diff --git a/Documentation/technical/bundle-uri.txt b/Documentation/technical/bundle-uri.txt -index c25c42378a..85c6a7fc7c 100644 ---- a/Documentation/technical/bundle-uri.txt -+++ b/Documentation/technical/bundle-uri.txt -@@ -3,8 +3,7 @@ Bundle URIs - - Git bundles are files that store a pack-file along with some extra metadata, - including a set of refs and a (possibly empty) set of necessary commits. See --linkgit:git-bundle[1] and link:bundle-format.txt[the bundle format] for more --information. -+linkgit:git-bundle[1] and linkgit:gitformat-bundle[5] for more information. - - Bundle URIs are locations where Git can download one or more bundles in - order to bootstrap the object database in advance of fetching the remaining -diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt -index ca9decdd95..dc9c6a663a 100644 ---- a/Documentation/user-manual.txt -+++ b/Documentation/user-manual.txt -@@ -3133,7 +3133,7 @@ those "loose" objects. - You can save space and make Git faster by moving these loose objects in - to a "pack file", which stores a group of objects in an efficient - compressed format; the details of how pack files are formatted can be --found in link:gitformat-pack[5]. -+found in linkgit:gitformat-pack[5]. - - To put the loose objects into a pack, just run git repack: - diff --git a/0002-api-docs-link-to-html-version-of-api-trace2.patch b/0002-api-docs-link-to-html-version-of-api-trace2.patch deleted file mode 100644 index 4c854f4..0000000 --- a/0002-api-docs-link-to-html-version-of-api-trace2.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6e50f870372027b5c8c3e68df3c193384c5f6e59 Mon Sep 17 00:00:00 2001 -From: Todd Zullinger -Date: Fri, 16 Sep 2022 01:15:15 -0400 -Subject: [PATCH] api docs: link to html version of api-trace2 - -In f6d25d7878 (api docs: document that BUG() emits a trace2 error event, -2021-04-13), a link to the plain text version of api-trace2 was added in -`technical/api-error-handling.txt`. - -All of our other `link:`s point to the html versions. Do the same here. - -Signed-off-by: Todd Zullinger ---- - Documentation/technical/api-error-handling.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Documentation/technical/api-error-handling.txt b/Documentation/technical/api-error-handling.txt -index 70bf1d3e52..665c4960b4 100644 ---- a/Documentation/technical/api-error-handling.txt -+++ b/Documentation/technical/api-error-handling.txt -@@ -46,7 +46,7 @@ parse-options.c. - returns -1 after reporting the situation to the caller. - - These reports will be logged via the trace2 facility. See the "error" --event in link:api-trace2.txt[trace2 API]. -+event in link:api-trace2.html[trace2 API]. - - Customizable error handlers - --------------------------- diff --git a/git.spec b/git.spec index 36bc8e0..0952808 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.38.0 -Release: 0.0%{?rcrev}%{?dist} +Release: 0.1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -119,12 +119,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 -# fix a few broken links -# https://lore.kernel.org/git/20220916062303.3736166-1-tmz@pobox.com/ -# https://lore.kernel.org/git/20220916062303.3736166-2-tmz@pobox.com/ -Patch4: 0001-docs-fix-a-few-recently-broken-links.patch -Patch5: 0002-api-docs-link-to-html-version-of-api-trace2.patch - %if %{with docs} # pod2man is needed to build Git.3pm BuildRequires: %{_bindir}/pod2man @@ -1011,6 +1005,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 +- update to 2.38.0-rc1 + * Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 - update to 2.38.0-rc0 diff --git a/sources b/sources index eed459c..53e6bb3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.38.0.rc0.tar.xz) = 98b5aa08da0a754d3d6119b4690e2add3f85295ba5243f8cbfef04738c27ab1d39c3388e27349a824841f4b54004e22e8731f5aa37afa5f62b2b2a197b8ec84a -SHA512 (git-2.38.0.rc0.tar.sign) = 80d1c913f32a4c63178f3514cf04052580c9699c1161d7d5ed4329961218c4712705c5dcf16162ec53487a2bb0b204bbad6559c7ff99de8fa1b937b0e9ed3f7e +SHA512 (git-2.38.0.rc1.tar.xz) = 2be15be5c687f7c65f9381ee34bfca00063ca2568981a9713a220f05cb16f7a1c4fdf628ab1971399e77d0b4b39d71b47d73e93b937d00efd965cf4c49e34af2 +SHA512 (git-2.38.0.rc1.tar.sign) = 4a944bae3dd5ee357627f60f7b3edcc3b58da280cf2fef5cc8c49098a059be03383851b5a5c7b5cdf021bca87bfd6f0e6d778eb486ae8e37cdcef644ec8a9592 From 047cf1702dc780d03769e81392176ad9501c84f0 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Thu, 22 Sep 2022 00:32:27 -0400 Subject: [PATCH 125/202] git-subtree sub-package is noarch In 986b772 (Split 'git subtree' into a separate package, 2018-02-07), I mistakenly created the package as arch-specific. It should have been noarch; it is merely a shell script. --- git.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git.spec b/git.spec index 0952808..a5bb7c4 100644 --- a/git.spec +++ b/git.spec @@ -478,6 +478,7 @@ Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $versi %package subtree Summary: Git tools to merge and split repositories +BuildArch: noarch Requires: git-core = %{version}-%{release} %description subtree Git subtrees allow subprojects to be included within a subdirectory @@ -1007,6 +1008,7 @@ rmdir --ignore-fail-on-non-empty "$testdir" %changelog * Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 - update to 2.38.0-rc1 +- git-subtree sub-package is noarch * Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 - update to 2.38.0-rc0 From 588c4c7c7ca2a8bf38ae5b11cb1f72b03b3d1538 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 21 Sep 2022 23:29:51 -0400 Subject: [PATCH 126/202] lint: update filter rules We removed '%{_emacs_version}' in 3395646 (remove --with/--without emacs build conditional, 2022-06-13). Drop the unnecessary filter from the rpmlint config. Add filters for several new checks in rpmlint 2.x: files-duplicate; package-with-huge-docs; and potential-bashisms. Also ignore unused-direct-shlib-dependency for libpcre2. While this is accurate, the additional linking would be tricky to remove from the upstream Makefile. It would almost certainly not be worth the effort. Lastly (even though it's the first line in the file), drop the unneeded 'from Config import *' directive. The rpmlint config is no longer loaded directly as python code (yay!). --- git.rpmlintrc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/git.rpmlintrc b/git.rpmlintrc index 9fd93ce..0c6926b 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -1,5 +1,3 @@ -from Config import * - # the dictionary is a bit limited addFilter("git.* spelling-error %description .* subpackages") addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject|subtree)") @@ -23,5 +21,16 @@ addFilter("git-core\..*: W: no-manual-page-for-binary") # similarly ignore the warning when git-cvs and git-p4 are disabled addFilter("git.* obsolete-not-provided git-(cvs|gnome-keyring|p4)") -# we BR emacs which requires emacs-common and provides %{_emacs_version} -addFilter("git.(spec|src): .* Possible unexpanded macro in: Requires:.*emacs-filesystem >= %{_emacs_version}") +# git-svn has both man and html docs and only a single command +addFilter('git-svn\..*: W: package-with-huge-docs') + +# ignore potential "bashisms" in docs +addFilter('git-core-doc\.noarch: W: potential-bashisms /usr/share/doc/git/') + +# ignore unused-direct-shlib-dependency for libpcre; while it probably could be +# removed from some binaries, the cost of doing so isn't worth the gain. +addFilter('git-(core|daemon)\..*: W: unused-direct-shlib-dependency .* /lib64/libpcre2-.*') + +# ignore duplicate gvimdiff/nvimdiff files; they are only 29 bytes, sourcing the same base +# vimdiff mergetool +addFilter('git-core\..*: W: files-duplicate /usr/libexec/git-core/mergetools/[gn]vimdiff') From 202c5f9f242d26c01c51f10ef57fd6900e7c7a0d Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Wed, 28 Sep 2022 00:18:42 -0400 Subject: [PATCH 127/202] update to 2.38.0-rc2 Release notes: https://github.com/git/git/raw/v2.38.0-rc2/Documentation/RelNotes/2.38.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index a5bb7c4..0d6a1d4 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.38.0 -Release: 0.1%{?rcrev}%{?dist} +Release: 0.2%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1006,6 +1006,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Wed Sep 28 2022 Todd Zullinger - 2.38.0-0.2.rc2 +- update to 2.38.0-rc2 + * Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 - update to 2.38.0-rc1 - git-subtree sub-package is noarch diff --git a/sources b/sources index 53e6bb3..9998f4f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.38.0.rc1.tar.xz) = 2be15be5c687f7c65f9381ee34bfca00063ca2568981a9713a220f05cb16f7a1c4fdf628ab1971399e77d0b4b39d71b47d73e93b937d00efd965cf4c49e34af2 -SHA512 (git-2.38.0.rc1.tar.sign) = 4a944bae3dd5ee357627f60f7b3edcc3b58da280cf2fef5cc8c49098a059be03383851b5a5c7b5cdf021bca87bfd6f0e6d778eb486ae8e37cdcef644ec8a9592 +SHA512 (git-2.38.0.rc2.tar.xz) = 223ae2e2da38eed0c0f834defb50ea98069db2a79f60e52ec03c56a5cf125f1a35f10091c5c2c44fb70ad02ecfc5ab9cfdecfbcc9a7d1051bff42008bbae48cd +SHA512 (git-2.38.0.rc2.tar.sign) = c29a1710cbe420d7d8091da592abe72a1840767fe4026fdfe7ab4ed0ed06947efddd1eea1b9e107003329b0964a0d25d463958dbf5f9623fa2179b5c09f37e17 From 269487c60468f6be951df620c1eee891d2f189d5 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 3 Oct 2022 15:21:28 -0400 Subject: [PATCH 128/202] update to 2.38.0 Release notes: https://github.com/git/git/raw/v2.38.0/Documentation/RelNotes/2.38.0.txt --- git.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/git.spec b/git.spec index 0d6a1d4..f01dd45 100644 --- a/git.spec +++ b/git.spec @@ -70,14 +70,14 @@ %endif # 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.38.0 -Release: 0.2%{?rcrev}%{?dist} +Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 URL: https://git-scm.com/ @@ -1006,6 +1006,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Mon Oct 03 2022 Todd Zullinger - 2.38.0-1 +- update to 2.38.0 + * Wed Sep 28 2022 Todd Zullinger - 2.38.0-0.2.rc2 - update to 2.38.0-rc2 diff --git a/sources b/sources index 9998f4f..126f70f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.38.0.rc2.tar.xz) = 223ae2e2da38eed0c0f834defb50ea98069db2a79f60e52ec03c56a5cf125f1a35f10091c5c2c44fb70ad02ecfc5ab9cfdecfbcc9a7d1051bff42008bbae48cd -SHA512 (git-2.38.0.rc2.tar.sign) = c29a1710cbe420d7d8091da592abe72a1840767fe4026fdfe7ab4ed0ed06947efddd1eea1b9e107003329b0964a0d25d463958dbf5f9623fa2179b5c09f37e17 +SHA512 (git-2.38.0.tar.xz) = 5c475d25b40a01cc62be28478b9b5a1b0cedf91c3e007d4869019a25bdc980b5ef9b761e7ee02d7c581bff6c7dbf2696a624431a718dcd976bad34a3f2be5cb6 +SHA512 (git-2.38.0.tar.sign) = e3fb09d2e520074888d0b63a241427a596bf63648734325316f18343955a83086a4f6be622eb65e965478630ece905a6ae15989358012f84ebf6424abe6419e9 From 6e2a249aefd0b03e6820c4ac1dc4c11e3ea70a9d Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 7 Oct 2022 21:37:05 -0400 Subject: [PATCH 129/202] lint: ignore non-standard-dir-in-var for gitweb Newer rpmlint rightly points out this minor gitweb issue. Fixing it is a low priority as we need to arrange the change only for newer releases, keeping the old layout on existing systems. This is tracked in bug 479613. --- git.rpmlintrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/git.rpmlintrc b/git.rpmlintrc index 0c6926b..b83cb0a 100644 --- a/git.rpmlintrc +++ b/git.rpmlintrc @@ -34,3 +34,6 @@ addFilter('git-(core|daemon)\..*: W: unused-direct-shlib-dependency .* /lib64/li # ignore duplicate gvimdiff/nvimdiff files; they are only 29 bytes, sourcing the same base # vimdiff mergetool addFilter('git-core\..*: W: files-duplicate /usr/libexec/git-core/mergetools/[gn]vimdiff') + +# ignore non-standard-dir-in-var for gitweb (#479613) +addFilter('gitweb.noarch: W: non-standard-dir-in-var www') From 537938edaa895ddc9a1d714bc54814ecaa832645 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Tue, 18 Oct 2022 13:43:15 -0400 Subject: [PATCH 130/202] update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the release notes for 2.30.6¹ * CVE-2022-39253: When relying on the `--local` clone optimization, Git dereferences symbolic links in the source repository before creating hardlinks (or copies) of the dereferenced link in the destination repository. This can lead to surprising behavior where arbitrary files are present in a repository's `$GIT_DIR` when cloning from a malicious repository. Git will no longer dereference symbolic links via the `--local` clone mechanism, and will instead refuse to clone repositories that have symbolic links present in the `$GIT_DIR/objects` directory. Additionally, the value of `protocol.file.allow` is changed to be "user" by default. * CVE-2022-39260: An overly-long command string given to `git shell` can result in overflow in `split_cmdline()`, leading to arbitrary heap writes and remote code execution when `git shell` is exposed and the directory `$HOME/git-shell-commands` exists. `git shell` is taught to refuse interactive commands that are longer than 4MiB in size. `split_cmdline()` is hardened to reject inputs larger than 2GiB. Credit for finding CVE-2022-39253 goes to Cory Snider of Mirantis. The fix was authored by Taylor Blau, with help from Johannes Schindelin. Credit for finding CVE-2022-39260 goes to Kevin Backhouse of GitHub. The fix was authored by Kevin Backhouse, Jeff King, and Taylor Blau. ¹ https://github.com/git/git/raw/v2.38.1/Documentation/RelNotes/2.30.6.txt --- git.spec | 5 ++++- sources | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/git.spec b/git.spec index f01dd45..4ab882b 100644 --- a/git.spec +++ b/git.spec @@ -76,7 +76,7 @@ %global _package_note_file %{_builddir}/%{name}-%{version}%{?rcrev}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld Name: git -Version: 2.38.0 +Version: 2.38.1 Release: 1%{?rcrev}%{?dist} Summary: Fast Version Control System License: GPLv2 @@ -1006,6 +1006,9 @@ rmdir --ignore-fail-on-non-empty "$testdir" %{?with_docs:%{_pkgdocdir}/git-svn.html} %changelog +* Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 +- update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) + * Mon Oct 03 2022 Todd Zullinger - 2.38.0-1 - update to 2.38.0 diff --git a/sources b/sources index 126f70f..3f9c27f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (git-2.38.0.tar.xz) = 5c475d25b40a01cc62be28478b9b5a1b0cedf91c3e007d4869019a25bdc980b5ef9b761e7ee02d7c581bff6c7dbf2696a624431a718dcd976bad34a3f2be5cb6 -SHA512 (git-2.38.0.tar.sign) = e3fb09d2e520074888d0b63a241427a596bf63648734325316f18343955a83086a4f6be622eb65e965478630ece905a6ae15989358012f84ebf6424abe6419e9 +SHA512 (git-2.38.1.tar.xz) = e62ca6f54f01d2e4ccffb5f94e8e5cd2f3e098b766d909c694a8daf4d00d5cdeb9cc5ff8e9bc55d888406f292ba99433d334d4da9689c0ce5d7299a3c67c90e0 +SHA512 (git-2.38.1.tar.sign) = a10fa332d5d5ea96bf6a0ed0c2a568212dd033acd539d07efbb73def13dd0144640a5a17477ea5cfe4104f1fa166237d7b251de275307eac7b91c6e60ca3de5d From 1ea41cbd46d4ac427d42fa8c129f56a67fe688ce Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 7 Nov 2022 19:02:33 -0500 Subject: [PATCH 131/202] 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 132/202] 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 133/202] 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 134/202] 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 135/202] 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 136/202] 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 137/202] 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 138/202] 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 139/202] 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 140/202] 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 141/202] 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 142/202] 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 143/202] 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 144/202] 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 145/202] 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 146/202] 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 147/202] 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 148/202] 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 149/202] 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 150/202] 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 151/202] 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 152/202] 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 153/202] 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 154/202] 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 155/202] 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 156/202] 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 157/202] 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 158/202] 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 159/202] 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 160/202] 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 161/202] 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 162/202] 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 163/202] 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 164/202] 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 165/202] 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 166/202] 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 167/202] 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 168/202] 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 169/202] 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 170/202] 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 171/202] 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 172/202] 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 173/202] 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 174/202] 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 175/202] 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 176/202] 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 177/202] 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 178/202] 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 179/202] 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 180/202] 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 181/202] 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 182/202] 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 183/202] 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 184/202] 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 185/202] 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 186/202] 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 187/202] 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 188/202] 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 189/202] 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 190/202] 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 191/202] 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 192/202] 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 193/202] 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 194/202] 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 195/202] 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 196/202] 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 197/202] 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 198/202] 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 199/202] 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 200/202] 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 201/202] 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 202/202] 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