From ea3d6643fe49c2381558d0636ee99dcd05bbf6ba Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 18:10:31 +0000 Subject: [PATCH] import UBI git-2.47.1-2.el10_0 --- .git.metadata | 2 - .gitignore | 4 +- ...try-harder-to-find-a-port-for-apache.patch | 6 +- ...git-daemon-try-harder-to-find-a-port.patch | 2 +- ...ib-git-svn-try-harder-to-find-a-port.patch | 2 +- ...it-instaweb-default-to-apache-2.26.2.patch | 12 - SOURCES/git-2.43.0-core-crypto-hmac.patch | 70 - SOURCES/git-2.43.0-slow-shallow-clones.patch | 115 - SOURCES/print-failed-test-output | 13 - SPECS/git.spec | 2520 ----------------- ...7-sanitize-sideband-channel-messages.patch | 219 ++ ...t-Ignore-cvsps-2.2b1-Branches-output.patch | 0 SOURCES/git-gui.desktop => git-gui.desktop | 0 git-test-apache-davlockdbtype-config.patch | 14 + SOURCES/git.socket => git.socket | 0 git.spec | 1371 +++++++++ SOURCES/git.xinetd.in => git.xinetd.in | 0 SOURCES/git@.service.in => git@.service.in | 0 .../gitweb-httpd.conf => gitweb-httpd.conf | 0 SOURCES/gitweb.conf.in => gitweb.conf.in | 0 SOURCES/gpgkey-junio.asc => gpgkey-junio.asc | 0 print-failed-test-output | 26 + sources | 2 + 23 files changed, 1639 insertions(+), 2739 deletions(-) delete mode 100644 .git.metadata rename SOURCES/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch => 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch (94%) rename SOURCES/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch => 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch (97%) rename SOURCES/0003-t-lib-git-svn-try-harder-to-find-a-port.patch => 0003-t-lib-git-svn-try-harder-to-find-a-port.patch (97%) delete mode 100644 SOURCES/0001-Switch-git-instaweb-default-to-apache-2.26.2.patch delete mode 100644 SOURCES/git-2.43.0-core-crypto-hmac.patch delete mode 100644 SOURCES/git-2.43.0-slow-shallow-clones.patch delete mode 100644 SOURCES/print-failed-test-output delete mode 100644 SPECS/git.spec create mode 100644 git-2.47-sanitize-sideband-channel-messages.patch rename SOURCES/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch => git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch (100%) rename SOURCES/git-gui.desktop => git-gui.desktop (100%) create mode 100644 git-test-apache-davlockdbtype-config.patch rename SOURCES/git.socket => git.socket (100%) create mode 100644 git.spec rename SOURCES/git.xinetd.in => git.xinetd.in (100%) rename SOURCES/git@.service.in => git@.service.in (100%) rename SOURCES/gitweb-httpd.conf => gitweb-httpd.conf (100%) rename SOURCES/gitweb.conf.in => gitweb.conf.in (100%) rename SOURCES/gpgkey-junio.asc => gpgkey-junio.asc (100%) create mode 100644 print-failed-test-output create mode 100644 sources diff --git a/.git.metadata b/.git.metadata deleted file mode 100644 index a01d0b6..0000000 --- a/.git.metadata +++ /dev/null @@ -1,2 +0,0 @@ -7577a22e233e892dba5cf19a3a57cef2062d01e6 SOURCES/git-2.43.5.tar.sign -31decef72034ae36c8098a9e6bb13a7dd4859fd9 SOURCES/git-2.43.5.tar.xz diff --git a/.gitignore b/.gitignore index dc23a3b..ee29d6f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/git-2.43.5.tar.sign -SOURCES/git-2.43.5.tar.xz +git-2.47.1.tar.sign +git-2.47.1.tar.xz diff --git a/SOURCES/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 similarity index 94% rename from SOURCES/0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch rename to 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch index f7c1509..733f9c0 100644 --- a/SOURCES/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/SOURCES/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 similarity index 97% rename from SOURCES/0002-t-lib-git-daemon-try-harder-to-find-a-port.patch rename to 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch index 4540b63..37637bc 100644 --- a/SOURCES/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/SOURCES/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 similarity index 97% rename from SOURCES/0003-t-lib-git-svn-try-harder-to-find-a-port.patch rename to 0003-t-lib-git-svn-try-harder-to-find-a-port.patch index 56624e2..905174e 100644 --- a/SOURCES/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/SOURCES/0001-Switch-git-instaweb-default-to-apache-2.26.2.patch b/SOURCES/0001-Switch-git-instaweb-default-to-apache-2.26.2.patch deleted file mode 100644 index a3a40a6..0000000 --- a/SOURCES/0001-Switch-git-instaweb-default-to-apache-2.26.2.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/git-instaweb.sh b/git-instaweb.sh ---- a/git-instaweb.sh 2020-04-20 17:52:30.000000000 +0200 -+++ b/git-instaweb.sh 2020-05-27 12:36:20.725300334 +0200 -@@ -36,7 +36,7 @@ - # Defaults: - - # if installed, it doesn't need further configuration (module_path) --test -z "$httpd" && httpd='lighttpd -f' -+test -z "$httpd" && httpd='httpd -f' - - # Default is @@GITWEBDIR@@ - test -z "$root" && root='@@GITWEBDIR@@' diff --git a/SOURCES/git-2.43.0-core-crypto-hmac.patch b/SOURCES/git-2.43.0-core-crypto-hmac.patch deleted file mode 100644 index 26343f8..0000000 --- a/SOURCES/git-2.43.0-core-crypto-hmac.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -ur b/builtin/receive-pack.c a/builtin/receive-pack.c ---- b/builtin/receive-pack.c 2023-11-20 03:07:41.000000000 +0100 -+++ a/builtin/receive-pack.c 2023-12-06 15:34:28.294170714 +0100 -@@ -40,6 +40,8 @@ - #include "worktree.h" - #include "shallow.h" - #include "parse-options.h" -+#include -+#include - - static const char * const receive_pack_usage[] = { - N_("git receive-pack "), -@@ -538,43 +540,11 @@ - return 0; - } - --static void hmac_hash(unsigned char *out, -+static inline void hmac_hash(unsigned char *out, - const char *key_in, size_t key_len, - const char *text, size_t text_len) - { -- unsigned char key[GIT_MAX_BLKSZ]; -- unsigned char k_ipad[GIT_MAX_BLKSZ]; -- unsigned char k_opad[GIT_MAX_BLKSZ]; -- int i; -- git_hash_ctx ctx; -- -- /* RFC 2104 2. (1) */ -- memset(key, '\0', GIT_MAX_BLKSZ); -- if (the_hash_algo->blksz < key_len) { -- the_hash_algo->init_fn(&ctx); -- the_hash_algo->update_fn(&ctx, key_in, key_len); -- the_hash_algo->final_fn(key, &ctx); -- } else { -- memcpy(key, key_in, key_len); -- } -- -- /* RFC 2104 2. (2) & (5) */ -- for (i = 0; i < sizeof(key); i++) { -- k_ipad[i] = key[i] ^ 0x36; -- k_opad[i] = key[i] ^ 0x5c; -- } -- -- /* RFC 2104 2. (3) & (4) */ -- the_hash_algo->init_fn(&ctx); -- the_hash_algo->update_fn(&ctx, k_ipad, sizeof(k_ipad)); -- the_hash_algo->update_fn(&ctx, text, text_len); -- the_hash_algo->final_fn(out, &ctx); -- -- /* RFC 2104 2. (6) & (7) */ -- the_hash_algo->init_fn(&ctx); -- the_hash_algo->update_fn(&ctx, k_opad, sizeof(k_opad)); -- the_hash_algo->update_fn(&ctx, out, the_hash_algo->rawsz); -- the_hash_algo->final_fn(out, &ctx); -+ HMAC(EVP_sha1(), key_in, key_len, text, text_len, out, NULL); - } - - static char *prepare_push_cert_nonce(const char *path, timestamp_t stamp) -diff -ur b/Makefile a/Makefile ---- b/Makefile 2023-11-20 03:07:41.000000000 +0100 -+++ a/Makefile 2023-12-06 15:35:08.506316431 +0100 -@@ -2123,6 +2123,8 @@ - EXTLIBS += -lcrypto -lssl - endif - -+EXTLIBS += -lcrypto -+ - ifneq ($(PROCFS_EXECUTABLE_PATH),) - procfs_executable_path_SQ = $(subst ','\'',$(PROCFS_EXECUTABLE_PATH)) - BASIC_CFLAGS += '-DPROCFS_EXECUTABLE_PATH="$(procfs_executable_path_SQ)"' diff --git a/SOURCES/git-2.43.0-slow-shallow-clones.patch b/SOURCES/git-2.43.0-slow-shallow-clones.patch deleted file mode 100644 index 6d1779d..0000000 --- a/SOURCES/git-2.43.0-slow-shallow-clones.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 51441e6460b505c07b4a8a6deeaa7de4bf6e8e33 Mon Sep 17 00:00:00 2001 -From: Junio C Hamano -Date: Fri, 3 May 2024 08:34:27 -0700 -Subject: [PATCH] stop using HEAD for attributes in bare repository by default - -With 23865355 (attr: read attributes from HEAD when bare repo, -2023-10-13), we started to use the HEAD tree as the default -attribute source in a bare repository. One argument for such a -behaviour is that it would make things like "git archive" run in -bare and non-bare repositories for the same commit consistent. -This changes was merged to Git 2.43 but without an explicit mention -in its release notes. - -It turns out that this change destroys performance of shallowly -cloning from a bare repository. As the "server" installations are -expected to be mostly bare, and "git pack-objects", which is the -core of driving the other side of "git clone" and "git fetch" wants -to see if a path is set not to delta with blobs from other paths via -the attribute system, the change forces the server side to traverse -the tree of the HEAD commit needlessly to find if each and every -paths the objects it sends out has the attribute that controls the -deltification. Given that (1) most projects do not configure such -an attribute, and (2) it is dubious for the server side to honor -such an end-user supplied attribute anyway, this was a poor choice -of the default. - -To mitigate the current situation, let's revert the change that uses -the tree of HEAD in a bare repository by default as the attribute -source. This will help most people who have been happy with the -behaviour of Git 2.42 and before. - -Two things to note: - - * If you are stuck with versions of Git 2.43 or newer, that is - older than the release this fix appears in, you can explicitly - set the attr.tree configuration variable to point at an empty - tree object, i.e. - - $ git config attr.tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 - - * If you like the behaviour we are reverting, you can explicitly - set the attr.tree configuration variable to HEAD, i.e. - - $ git config attr.tree HEAD - -The right fix for this is to optimize the code paths that allow -accesses to attributes in tree objects, but that is a much more -involved change and is left as a longer-term project, outside the -scope of this "first step" fix. - -Signed-off-by: Junio C Hamano ---- - attr.c | 7 ------- - t/t0003-attributes.sh | 10 ++++++++-- - t/t5001-archive-attr.sh | 3 ++- - 3 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/attr.c b/attr.c -index e62876dfd3e9be..02ab8436266289 100644 ---- a/attr.c -+++ b/attr.c -@@ -1213,13 +1213,6 @@ static void compute_default_attr_source(struct object_id *attr_source) - ignore_bad_attr_tree = 1; - } - -- if (!default_attr_source_tree_object_name && -- startup_info->have_repository && -- is_bare_repository()) { -- default_attr_source_tree_object_name = "HEAD"; -- ignore_bad_attr_tree = 1; -- } -- - if (!default_attr_source_tree_object_name || !is_null_oid(attr_source)) - return; - -diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh -index aee2298f01331a..5de46ddf67f7ff 100755 ---- a/t/t0003-attributes.sh -+++ b/t/t0003-attributes.sh -@@ -384,13 +384,19 @@ test_expect_success 'bad attr source defaults to reading .gitattributes file' ' - ) - ' - --test_expect_success 'bare repo defaults to reading .gitattributes from HEAD' ' -+test_expect_success 'bare repo no longer defaults to reading .gitattributes from HEAD' ' - test_when_finished rm -rf test bare_with_gitattribute && - git init test && - test_commit -C test gitattributes .gitattributes "f/path test=val" && - git clone --bare test bare_with_gitattribute && -- echo "f/path: test: val" >expect && -+ -+ echo "f/path: test: unspecified" >expect && - git -C bare_with_gitattribute check-attr test -- f/path >actual && -+ test_cmp expect actual && -+ -+ echo "f/path: test: val" >expect && -+ git -C bare_with_gitattribute -c attr.tree=HEAD \ -+ check-attr test -- f/path >actual && - test_cmp expect actual - ' - -diff --git a/t/t5001-archive-attr.sh b/t/t5001-archive-attr.sh -index eaf959d8f63f15..7310774af5efea 100755 ---- a/t/t5001-archive-attr.sh -+++ b/t/t5001-archive-attr.sh -@@ -133,7 +133,8 @@ test_expect_success 'git archive vs. bare' ' - ' - - test_expect_success 'git archive with worktree attributes, bare' ' -- (cd bare && git archive --worktree-attributes HEAD) >bare-worktree.tar && -+ (cd bare && -+ git -c attr.tree=HEAD archive --worktree-attributes HEAD) >bare-worktree.tar && - (mkdir bare-worktree && cd bare-worktree && "$TAR" xf -) = 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 -%bcond_without python3 -%global gitweb_httpd_conf gitweb.conf -%global use_glibc_langpacks 1 -%global use_perl_generators 1 -%global use_perl_interpreter 1 -%else -%bcond_without python2 -%bcond_with python3 -%global gitweb_httpd_conf git.conf -%global use_glibc_langpacks 0 -%global use_perl_generators 0 -%global use_perl_interpreter 0 -%endif - -# Settings for Fedora and EL >= 7 -%if 0%{?fedora} || 0%{?rhel} >= 7 -%bcond_without libsecret -%global bashcomp_pkgconfig 1 -%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null) -%global bashcomproot %(dirname %{bashcompdir} 2>/dev/null) -%global emacs_filesystem 1 -%global use_new_rpm_filters 1 -%global use_systemd 1 -%else -%bcond_with libsecret -%global bashcomp_pkgconfig 0 -%global bashcompdir %{_sysconfdir}/bash_completion.d -%global bashcomproot %{bashcompdir} -%global emacs_filesystem 0 -%global use_new_rpm_filters 0 -%global use_systemd 0 -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} -%endif - -# Allow cvs subpackage to be toggled via --with/--without -# Disable cvs subpackage by default on EL > 7 -%if 0%{?rhel} > 7 -%bcond_with cvs -%else -%bcond_without cvs -%endif - -# Allow p4 subpackage to be toggled via --with/--without -# Disable by default if we lack python2 support -%if %{without python2} -%bcond_with p4 -%else -%bcond_without p4 -%endif - -# Hardening flags for EL-7 -%if 0%{?rhel} == 7 -%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 - -# 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 - -Name: git -Version: 2.43.5 -Release: 2%{?rcrev}%{?dist} -Summary: Fast Version Control System -License: GPLv2 -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 - -# Junio C Hamano's key is used to sign git releases, it can be found in the -# junio-gpg-pub tag within git. -# -# (Note that the tagged blob in git contains a version of the key with an -# expired signing subkey. The subkey expiration has been extended on the -# public keyservers, but the blob in git has not been updated.) -# -# 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 -Source2: gpgkey-junio.asc - -# Local sources begin at 10 to allow for additional future upstream sources -Source11: git.xinetd.in -Source12: git-gui.desktop -Source13: gitweb-httpd.conf -Source14: gitweb.conf.in -Source15: git@.service.in -Source16: git.socket - -# Script to print test failure output (used in %%check) -Source99: print-failed-test-output - -# https://bugzilla.redhat.com/490602 -Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch -Patch1: 0001-Switch-git-instaweb-default-to-apache-2.26.2.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1619113 -Patch2: git-2.43.0-core-crypto-hmac.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 -Patch3: 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch -# https://github.com/tmzullinger/git/commit/16750d024c -Patch4: 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch -# https://github.com/tmzullinger/git/commit/aa5105dc11 -Patch5: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch - -# attr: read attributes from HEAD when bare repo -# -# https://github.com/git/git/commit/2386535511d1181afd4e892e2a866ffe5e1d7d21 -Patch6: git-2.43.0-slow-shallow-clones.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: perl(File::Compare) -BuildRequires: xmlto -%if %{with linkcheck} -BuildRequires: linkchecker -%endif -# endif with linkcheck -%endif -# endif with docs -BuildRequires: desktop-file-utils -BuildRequires: diffutils -BuildRequires: emacs -BuildRequires: expat-devel -BuildRequires: findutils -BuildRequires: gawk -BuildRequires: gcc -BuildRequires: gettext -BuildRequires: gnupg2 -BuildRequires: libcurl-devel -BuildRequires: make -BuildRequires: openssl-devel -BuildRequires: pcre2-devel -BuildRequires: perl(Error) -BuildRequires: perl(lib) -BuildRequires: perl(Test) -%if %{use_perl_generators} -BuildRequires: perl-generators -%endif -# endif use_perl_generators -%if %{use_perl_interpreter} -BuildRequires: perl-interpreter -%else -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: zlib-devel >= 1.2 - -%if %{with tests} -# Test suite requirements -BuildRequires: acl -%if 0%{?fedora} >= 27 || 0%{?rhel} > 7 -# Needed by t5540-http-push-webdav.sh -BuildRequires: apr-util-bdb -%endif -# endif fedora >= 27 -BuildRequires: bash -%if %{with cvs} -BuildRequires: cvs -BuildRequires: cvsps -%endif -# endif with cvs -%if %{use_glibc_langpacks} -# glibc-all-langpacks and glibc-langpack-is are needed for GETTEXT_LOCALE and -# GETTEXT_ISO_LOCALE test prereq's, glibc-langpack-en ensures en_US.UTF-8. -BuildRequires: glibc-all-langpacks -BuildRequires: glibc-langpack-en -BuildRequires: glibc-langpack-is -%endif -# endif use_glibc_langpacks -%if 0%{?fedora} && 0%{?fedora} < 30 -BuildRequires: gnupg -%endif -# endif fedora < 30 -%if 0%{?fedora} || 0%{?rhel} > 8 -BuildRequires: gnupg2-smime -%endif -# endif fedora or el > 8 -%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" ) -BuildRequires: jgit -%endif -# endif fedora (except i386 and s390x) -BuildRequires: mod_dav_svn -BuildRequires: perl(App::Prove) -BuildRequires: perl(CGI) -BuildRequires: perl(CGI::Carp) -BuildRequires: perl(CGI::Util) -BuildRequires: perl(DBD::SQLite) -BuildRequires: perl(Digest::MD5) -BuildRequires: perl(Fcntl) -BuildRequires: perl(File::Basename) -BuildRequires: perl(File::Copy) -BuildRequires: perl(File::Find) -BuildRequires: perl(filetest) -BuildRequires: perl(HTTP::Date) -BuildRequires: perl(IO::Pty) -BuildRequires: perl(JSON) -BuildRequires: perl(JSON::PP) -BuildRequires: perl(Mail::Address) -BuildRequires: perl(Memoize) -BuildRequires: perl(POSIX) -BuildRequires: perl(Term::ReadLine) -BuildRequires: perl(Test::More) -BuildRequires: perl(Time::HiRes) -%if %{with python2} -BuildRequires: python2-devel -%endif -# endif with python2 -%if %{with python3} -BuildRequires: python3-devel -%endif -# endif with python3 -BuildRequires: subversion -BuildRequires: subversion-perl -BuildRequires: tar -BuildRequires: time -BuildRequires: zip -%endif -# endif with tests - -Requires: git-core = %{version}-%{release} -Requires: git-core-doc = %{version}-%{release} -%if ! %{defined perl_bootstrap} -Requires: perl(Term::ReadKey) -%endif -# endif ! defined perl_bootstrap -Requires: perl-Git = %{version}-%{release} - -%if %{emacs_filesystem} && %{defined _emacs_version} -Requires: emacs-filesystem >= %{_emacs_version} -%endif -# endif emacs_filesystem - -# Obsolete git-cvs if it's disabled -%if %{without cvs} -Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release} -%endif -# endif without cvs - -# Obsolete git-p4 if it's disabled -%if %{without p4} -Obsoletes: git-p4 < %{?epoch:%{epoch}:}%{version}-%{release} -%endif -# endif without p4 - -%description -Git is a fast, scalable, distributed revision control system with an -unusually rich command set that provides both high-level operations -and full access to internals. - -The git rpm installs common set of tools which are usually using with -small amount of dependencies. To install all git packages, including -tools for integrating with other SCMs, install the git-all meta-package. - -%package all -Summary: Meta-package to pull in all git tools -BuildArch: noarch -Requires: git = %{version}-%{release} -%if %{with libsecret} -Requires: git-credential-libsecret = %{version}-%{release} -%endif -# endif with libsecret -%if %{with cvs} -Requires: git-cvs = %{version}-%{release} -%endif -# endif with cvs -Requires: git-daemon = %{version}-%{release} -Requires: git-email = %{version}-%{release} -Requires: git-gui = %{version}-%{release} -%if %{with p4} -Requires: git-p4 = %{version}-%{release} -%endif -# endif with p4 -Requires: git-subtree = %{version}-%{release} -Requires: git-svn = %{version}-%{release} -Requires: git-instaweb = %{version}-%{release} -Requires: gitk = %{version}-%{release} -Requires: perl-Git = %{version}-%{release} -%if ! %{defined perl_bootstrap} -Requires: perl(Term::ReadKey) -%endif -# endif ! defined perl_bootstrap -%if ! %{emacs_filesystem} -Requires: emacs-git = %{version}-%{release} -%endif -# endif ! 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 -and full access to internals. - -This is a dummy package which brings in all subpackages. - -%package core -Summary: Core package of git with minimal functionality -Requires: less -Requires: openssh-clients -Requires: zlib >= 1.2 -%description core -Git is a fast, scalable, distributed revision control system with an -unusually rich command set that provides both high-level operations -and full access to internals. - -The git-core rpm installs really the core tools with minimal -dependencies. Install git package for common set of tools. -To install all git packages, including tools for integrating with -other SCMs, install the git-all meta-package. - -%package core-doc -Summary: Documentation files for git-core -BuildArch: noarch -Requires: git-core = %{version}-%{release} -%description core-doc -Documentation files for git-core package including man pages. - -%if %{with libsecret} -%package credential-libsecret -Summary: Git helper for accessing credentials via libsecret -BuildRequires: libsecret-devel -Requires: git = %{version}-%{release} -%description credential-libsecret -%{summary}. -%endif -# endif with libsecret - -%if %{with cvs} -%package cvs -Summary: Git tools for importing CVS repositories -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: cvs -Requires: cvsps -Requires: perl(DBD::SQLite) -%description cvs -%{summary}. -%endif -# endif with cvs - -%package daemon -Summary: Git protocol daemon -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 - -%package email -Summary: Git tools for sending patches via email -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: perl(Authen::SASL) -Requires: perl(Cwd) -Requires: perl(File::Spec) -Requires: perl(File::Spec::Functions) -Requires: perl(File::Temp) -Requires: perl(IO::Socket::SSL) -Requires: perl(Mail::Address) -Requires: perl(MIME::Base64) -Requires: perl(MIME::QuotedPrint) -Requires: perl(Net::Domain) -Requires: perl(Net::SMTP) -Requires: perl(Net::SMTP::SSL) -Requires: perl(POSIX) -Requires: perl(Sys::Hostname) -Requires: perl(Term::ANSIColor) -Requires: perl(Term::ReadLine) -Requires: perl(Text::ParseWords) -%description email -%{summary}. - -%if ! %{emacs_filesystem} -%package -n emacs-git -Summary: Git version control system support for Emacs -Requires: git = %{version}-%{release} -BuildArch: noarch -Requires: emacs(bin) >= %{_emacs_version} -Obsoletes: emacs-git-el < 2.18.0-0.0 -Provides: emacs-git-el = %{version}-%{release} -%description -n emacs-git -%{summary}. -%endif -# endif ! emacs_filesystem - -%package -n gitk -Summary: Git repository browser -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: git-gui = %{version}-%{release} -Requires: tk >= 8.4 -%description -n gitk -%{summary}. - -%package -n gitweb -Summary: Simple web interface to git repositories -BuildArch: noarch -Requires: git = %{version}-%{release} -%description -n gitweb -%{summary}. - -%package gui -Summary: Graphical interface to Git -BuildArch: noarch -Requires: gitk = %{version}-%{release} -Requires: tk >= 8.4 -%description gui -%{summary}. - -%package instaweb -Summary: Repository browser in gitweb -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: gitweb = %{version}-%{release} -Requires: httpd - -%description instaweb -A simple script to set up gitweb and a web server for browsing the local -repository. - -%if %{with p4} -%package p4 -Summary: Git tools for working with Perforce depots -BuildArch: noarch -BuildRequires: python2-devel -Requires: git = %{version}-%{release} -%description p4 -%{summary}. -%endif -# endif with p4 - -%package -n perl-Git -Summary: Perl interface to Git -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) -%description -n perl-Git -%{summary}. - -%package -n perl-Git-SVN -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}. - -%package subtree -Summary: Git tools to merge and split repositories -Requires: git-core = %{version}-%{release} -%description subtree -Git subtrees allow subprojects to be included within a subdirectory -of the main project, optionally including the subproject's entire -history. - -%package svn -Summary: Git tools for interacting with Subversion repositories -BuildArch: noarch -Requires: git = %{version}-%{release} -Requires: perl(Digest::MD5) -%if ! %{defined perl_bootstrap} -Requires: perl(Term::ReadKey) -%endif -# endif ! defined perl_bootstrap -Requires: subversion -%description svn -%{summary}. - -%prep -# Verify GPG signatures -gpghome="$(mktemp -qd)" # Ensure we don't use any existing gpg keyrings -# Convert the ascii-armored key to binary -# (use --yes to ensure an existing dearmored key is overwritten) -gpg2 --homedir "$gpghome" --dearmor --quiet --yes %{SOURCE2} -xz -dc %{SOURCE0} | # Upstream signs the uncompressed tarballs - gpgv2 --homedir "$gpghome" --quiet --keyring %{SOURCE2}.gpg %{SOURCE1} - -rm -rf "$gpghome" # Cleanup tmp gpg home dir - -%autosetup -p1 -n %{name}-%{version}%{?rcrev} - -# Install print-failed-test-output script -install -p -m 755 %{SOURCE99} print-failed-test-output - -# Remove git-archimport from command list -sed -i '/^git-archimport/d' command-list.txt - -%if %{without cvs} -# Remove git-cvs* from command list -sed -i '/^git-cvs/d' command-list.txt -%endif -# endif without cvs - -%if %{without p4} -# Remove git-p4 from command list -sed -i '/^git-p4/d' command-list.txt -%endif -# endif without p4 - -# Use these same options for every invocation of 'make'. -# Otherwise it will rebuild in %%install due to flags changes. -# Pipe to tee to aid confirmation/verification of settings. -cat << \EOF | tee config.mak -V = 1 -CFLAGS = %{build_cflags} -LDFLAGS = %{build_ldflags} -NEEDS_CRYPTO_WITH_SSL = 1 -USE_LIBPCRE = 1 -ETC_GITCONFIG = %{_sysconfdir}/gitconfig -INSTALL_SYMLINKS = 1 -GITWEB_PROJECTROOT = %{_localstatedir}/lib/git -GNU_ROFF = 1 -NO_PERL_CPAN_FALLBACKS = 1 -%if %{with python2} -PYTHON_PATH = %{__python2} -%else -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} -gitwebdir = %{_localstatedir}/www/git - -# Test options -DEFAULT_TEST_TARGET = prove -GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File -GIT_TEST_OPTS = -x --verbose-log -EOF - -# Filter bogus perl requires -# packed-refs comes from a comment in contrib/hooks/update-paranoid -%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. -rm -rf perl/Git/LoadCPAN{.pm,/} -grep -rlZ '^use Git::LoadCPAN::' | xargs -r0 sed -i 's/Git::LoadCPAN:://g' - -# Update gitweb default home link string -sed -i 's@"++GITWEB_HOME_LINK_STR++"@$ENV{"SERVER_NAME"} ? "git://" . $ENV{"SERVER_NAME"} : "projects"@' \ - gitweb/gitweb.perl - -# Move contrib/{contacts,subtree} docs to Documentation so they build with the -# proper asciidoc/docbook/xmlto options -mv contrib/{contacts,subtree}/git-*.txt Documentation/ - -%build -# Improve build reproducibility -export TZ=UTC -export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) - -%make_build all %{?with_docs:doc} - -%make_build -C contrib/contacts/ all - -%if %{with libsecret} -%make_build -C contrib/credential/libsecret/ -%endif -# endif with libsecret - -%make_build -C contrib/credential/netrc/ - -%make_build -C contrib/diff-highlight/ - -%make_build -C contrib/subtree/ all - -# Fix shebang in a few places to silence rpmlint complaints -%if %{with python2} -sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \ - contrib/fast-import/import-zips.py -%else -# Remove contrib/fast-import/import-zips.py which require python2. -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} - -%make_install -C contrib/contacts - -%global elispdir %{_emacs_sitelispdir}/git -pushd contrib/emacs >/dev/null -for el in *.el ; do - # Note: No byte-compiling is done. These .el files are one-line stubs - # which only serve to point users to better alternatives. - install -Dpm 644 $el %{buildroot}%{elispdir}/$el - rm -f $el # clean up to avoid cruft in git-core-doc -done -popd >/dev/null - -%if %{with libsecret} -install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ - %{buildroot}%{gitexecdir} -%endif -# endif with libsecret -install -pm 755 contrib/credential/netrc/git-credential-netrc \ - %{buildroot}%{gitexecdir} -# temporarily move contrib/credential/netrc aside to prevent it from being -# deleted in the docs preparation, so the tests can be run in %%check -mv contrib/credential/netrc . - -%make_install -C contrib/subtree - -mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d -install -pm 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf} -sed "s|@PROJECTROOT@|%{_localstatedir}/lib/git|g" \ - %{SOURCE14} > %{buildroot}%{_sysconfdir}/gitweb.conf - -# install contrib/diff-highlight and clean up to avoid cruft in git-core-doc -install -Dpm 0755 contrib/diff-highlight/diff-highlight \ - %{buildroot}%{_datadir}/git-core/contrib/diff-highlight -rm -rf contrib/diff-highlight/{Makefile,diff-highlight,*.perl,t} - -# Remove contrib/scalar to avoid cruft in the git-core-doc docdir -rm -rf contrib/scalar - -# Clean up contrib/subtree to avoid cruft in the git-core-doc docdir -rm -rf contrib/subtree/{INSTALL,Makefile,git-subtree*,t} - -# git-archimport is not supported -find %{buildroot} Documentation -type f -name 'git-archimport*' -exec rm -f {} ';' - -%if %{without cvs} -# Remove git-cvs* and gitcvs* -find %{buildroot} Documentation \( -type f -o -type l \) \ - \( -name 'git-cvs*' -o -name 'gitcvs*' \) -exec rm -f {} ';' -%endif -# endif without cvs - -%if %{without p4} -# Remove git-p4* and mergetools/p4merge -find %{buildroot} Documentation -type f -name 'git-p4*' -exec rm -f {} ';' -rm -f %{buildroot}%{gitexecdir}/mergetools/p4merge -%endif -# endif without p4 - -# Remove unneeded git-remote-testsvn so git-svn can be noarch -rm -f %{buildroot}%{gitexecdir}/git-remote-testsvn - -exclude_re="archimport|email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" -(find %{buildroot}{%{_bindir},%{_libexecdir}} -type f -o -type l | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files -(find %{buildroot}{%{_bindir},%{_libexecdir}} -mindepth 1 -type d | grep -vE "$exclude_re" | sed -e 's@^%{buildroot}@%dir @') >> bin-man-doc-files -(find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files -(find %{buildroot}%{perl_vendorlib} -mindepth 1 -type d | sed -e 's@^%{buildroot}@%dir @') >> perl-git-files -# Split out Git::SVN files -grep Git/SVN perl-git-files > perl-git-svn-files -sed -i "/Git\/SVN/ d" perl-git-files -%if %{with docs} -(find %{buildroot}%{_mandir} -type f | grep -vE "$exclude_re|Git" | sed -e s@^%{buildroot}@@ -e 's/$/*/' ) >> bin-man-doc-files -%else -rm -rf %{buildroot}%{_mandir} -%endif -# endif with docs - -mkdir -p %{buildroot}%{_localstatedir}/lib/git -%if %{use_systemd} -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 -ln -s git %{buildroot}%{bashcompdir}/gitk - -# Install tcsh completion -mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion -install -pm 644 contrib/completion/git-completion.tcsh \ - %{buildroot}%{_datadir}/git-core/contrib/completion/ - -# 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 \ - %{buildroot}%{_datadir}/git-core/contrib/completion/ - -# install git-gui .desktop file -desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE12} - -# symlink git-citool to git-gui if they are identical -pushd %{buildroot}%{gitexecdir} >/dev/null -if cmp -s git-gui git-citool 2>/dev/null; then - ln -svf git-gui git-citool -fi -popd >/dev/null - -# find translations -%find_lang %{name} %{name}.lang -cat %{name}.lang >> bin-man-doc-files - -# quiet some rpmlint complaints -chmod -R g-w %{buildroot} -chmod a-x %{buildroot}%{gitexecdir}/git-mergetool--lib -# These files probably are not needed -find . -regex '.*/\.\(git\(attributes\|ignore\)\|perlcriticrc\)' -delete -chmod a-x Documentation/technical/api-index.sh -find contrib -type f -print0 | xargs -r0 chmod -x - -# Split core files -not_core_re="git-(add--interactive|contacts|credential-netrc|filter-branch|instaweb|request-pull|send-mail)|gitweb" -grep -vE "$not_core_re|%{_mandir}" bin-man-doc-files > bin-files-core -touch man-doc-files-core -%if %{with docs} -grep -vE "$not_core_re" bin-man-doc-files | grep "%{_mandir}" > man-doc-files-core -%endif -# endif with docs -grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files - -##### DOC -# place doc files into %%{_pkgdocdir} and split them into expected packages -# contrib -not_core_doc_re="(git-(cvs|gui|citool|daemon|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}/ -# Remove contrib/ files/dirs which have nothing useful for documentation -rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential,svn-fe}/ -cp -p gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb -cp -p gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb - -%if %{with docs} -cp -pr Documentation/*.html Documentation/docbook-xsl.css %{buildroot}%{_pkgdocdir}/ -cp -pr Documentation/{howto,technical} %{buildroot}%{_pkgdocdir}/ -find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \ - |grep -o "%{_pkgdocdir}.*$" >> man-doc-files-core -%endif -# endif with docs - -{ - find %{buildroot}%{_pkgdocdir} -type f -maxdepth 1 \ - | grep -o "%{_pkgdocdir}.*$" \ - | grep -vE "$not_core_doc_re" - find %{buildroot}%{_pkgdocdir}/{contrib,RelNotes} -type f \ - | grep -o "%{_pkgdocdir}.*$" - find %{buildroot}%{_pkgdocdir} -type d | grep -o "%{_pkgdocdir}.*$" \ - | sed "s/^/\%dir /" -} >> man-doc-files-core -##### #DOC - -%check -%if %{without tests} -echo "*** Skipping tests" -exit 0 -%endif -# endif without tests - -%if %{with docs} && %{with linkcheck} -# Test links in HTML documentation -find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker -%endif -# endif with docs && with linkcheck - -# Tests to skip on all releases and architectures -# -# t5559-http-fetch-smart-http2 runs t5551-http-fetch-smart with -# HTTP_PROTO=HTTP/2. Unfortunately, it fails quite regularly. -# https://lore.kernel.org/git/Y4fUntdlc1mqwad5@pobox.com/ -GIT_SKIP_TESTS="t5559" - -%if 0%{?rhel} && 0%{?rhel} < 8 -# Skip tests which require mod_http2 on el7 -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5559" -%endif -# endif rhel < 8 - -%ifarch aarch64 %{arm} %{power64} -# Skip tests which fail on aarch64, arm, and ppc -# -# The following 2 tests use run_with_limited_cmdline, which calls ulimit -s 128 -# to limit the maximum stack size. -# t5541.35 'push 2000 tags over http' -# t5551.25 'clone the 2,000 tag repo to check OS command line overflow' -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.37 t5551.25" -%endif -# endif aarch64 %%{arm} %%{power64} - -%if 0%{?rhel} == 8 && "%{_arch}" == "s390x" -# Skip tests which fail on s390x on rhel-8 -# -# The following tests fail on s390x & el8. The cause should be investigated. -# However, it's a lower priority since the same tests work consistently on -# s390x with Fedora and RHEL-9. The failures seem to originate in t5300. -# -# t5300.10 'unpack without delta' -# t5300.12 'unpack with REF_DELTA' -# t5300.13 'unpack with REF_DELTA' -# t5300.14 'unpack with OFS_DELTA' -# t5300.18 'compare delta flavors' -# t5300.20 'use packed deltified (REF_DELTA) objects' -# t5300.23 'verify pack' -# t5300.24 'verify pack -v' -# t5300.25 'verify-pack catches mismatched .idx and .pack files' -# t5300.29 'verify-pack catches a corrupted sum of the index file itself' -# t5300.30 'build pack index for an existing pack' -# t5300.45 'make sure index-pack detects the SHA1 collision' -# t5300.46 'make sure index-pack detects the SHA1 collision (large blobs)' -# t5303.5 'create corruption in data of first object' -# t5303.7 '... and loose copy of second object allows for partial recovery' -# t5303.11 'create corruption in data of first delta' -# t6300.35 'basic atom: head objectsize:disk' -# t6300.91 'basic atom: tag objectsize:disk' -# t6300.92 'basic atom: tag *objectsize:disk' -GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[56] t5303.[57] t5303.11 t6300.35 t6300.9[12]" -%endif -# endif rhel == 8 && arch == s390x - -export GIT_SKIP_TESTS - -# Set LANG so various UTF-8 tests are run -export LANG=en_US.UTF-8 - -# Explicitly enable tests which may be skipped opportunistically -# Check for variables set via test_bool_env in the test suite: -# git grep 'test_bool_env GIT_' -- t/{lib-,t[0-9]}*.sh | -# sed -r 's/.* (GIT_[^ ]+) .*/\1/g' | sort -u -export GIT_TEST_GIT_DAEMON=true -export GIT_TEST_HTTPD=true -export GIT_TEST_SVNSERVE=true -export GIT_TEST_SVN_HTTPD=true - -# Create tmpdir for test output and update GIT_TEST_OPTS -# Also update GIT-BUILD-OPTIONS to keep make from any needless rebuilding -testdir=$(mktemp -d -p /tmp git-t.XXXX) -sed -i "s@^GIT_TEST_OPTS = .*@& --root=$testdir@" config.mak -touch -r GIT-BUILD-OPTIONS ts -sed -i "s@\(GIT_TEST_OPTS='.*\)'@\1 --root=$testdir'@" GIT-BUILD-OPTIONS -touch -r ts GIT-BUILD-OPTIONS - -# Run the tests -%__make test || ./print-failed-test-output - -# Run contrib/credential/netrc tests -mkdir -p contrib/credential -mv netrc contrib/credential/ -%make_build -C contrib/credential/netrc/ test || \ -%make_build -C contrib/credential/netrc/ testverbose - -# Clean up test dir -rmdir --ignore-fail-on-non-empty "$testdir" - -%if %{use_systemd} -%post daemon -%systemd_post git.socket - -%preun daemon -%systemd_preun git.socket - -%postun daemon -%systemd_postun_with_restart git.socket -%endif -# endif use_systemd - -%files -f bin-man-doc-git-files -%if %{emacs_filesystem} -%{elispdir} -%endif -# endif emacs_filesystem -%{_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! - -%files core -f bin-files-core -#NOTE: this is only use of the %%doc macro in this spec file and should not -# be used elsewhere -%{!?_licensedir:%global license %doc} -%license COPYING -# exclude is best way here because of troubles with symlinks inside git-core/ -%exclude %{_datadir}/git-core/contrib/diff-highlight -%exclude %{_datadir}/git-core/contrib/hooks/update-paranoid -%exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl -%exclude %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample -%exclude %{_datadir}/git-core/templates/hooks/pre-rebase.sample -%exclude %{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample -%{bashcomproot} -%{_datadir}/git-core/ - -%files core-doc -f man-doc-files-core -%if 0%{?rhel} && 0%{?rhel} <= 7 -# .py files are only bytecompiled on EL <= 7 -%exclude %{_pkgdocdir}/contrib/*/*.py[co] -%endif -# endif rhel <= 7 -%{_pkgdocdir}/contrib/hooks - -%if %{with libsecret} -%files credential-libsecret -%defattr(-,root,root) -%{gitexecdir}/git-credential-libsecret -%endif -# endif with libsecret - -%if %{with cvs} -%files cvs -%{_pkgdocdir}/*git-cvs*.txt -%{_bindir}/git-cvsserver -%{gitexecdir}/*cvs* -%{?with_docs:%{_mandir}/man1/*cvs*.1*} -%{?with_docs:%{_pkgdocdir}/*git-cvs*.html} -%endif -# endif with cvs - -%files daemon -%{_pkgdocdir}/git-daemon*.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 ! %{emacs_filesystem} -%files -n emacs-git -%{_pkgdocdir}/contrib/emacs/README -%{elispdir} -%endif -# endif ! emacs_filesystem - -%files email -%{_pkgdocdir}/*email*.txt -%{gitexecdir}/*email* -%{?with_docs:%{_mandir}/man1/*email*.1*} -%{?with_docs:%{_pkgdocdir}/*email*.html} - -%files -n gitk -%{_pkgdocdir}/*gitk*.txt -%{_bindir}/*gitk* -%{_datadir}/gitk -%{?with_docs:%{_mandir}/man1/*gitk*.1*} -%{?with_docs:%{_pkgdocdir}/*gitk*.html} - -%files -n gitweb -%{_pkgdocdir}/*.gitweb -%{_pkgdocdir}/gitweb*.txt -%{?with_docs:%{_mandir}/man1/gitweb.1*} -%{?with_docs:%{_mandir}/man5/gitweb.conf.5*} -%{?with_docs:%{_pkgdocdir}/gitweb*.html} -%config(noreplace)%{_sysconfdir}/gitweb.conf -%config(noreplace)%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf} -%{_localstatedir}/www/git/ - -%files gui -%{gitexecdir}/git-gui* -%{gitexecdir}/git-citool -%{_datadir}/applications/*git-gui.desktop -%{_datadir}/git-gui/ -%{_pkgdocdir}/git-gui.txt -%{_pkgdocdir}/git-citool.txt -%{?with_docs:%{_mandir}/man1/git-gui.1*} -%{?with_docs:%{_pkgdocdir}/git-gui.html} -%{?with_docs:%{_mandir}/man1/git-citool.1*} -%{?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*} -%{?with_docs:%{_pkgdocdir}/git-instaweb.html} - -%if %{with p4} -%files p4 -%{gitexecdir}/*p4* -%{gitexecdir}/mergetools/p4merge -%{_pkgdocdir}/*p4*.txt -%{?with_docs:%{_mandir}/man1/*p4*.1*} -%{?with_docs:%{_pkgdocdir}/*p4*.html} -%endif -# endif with p4 - -%files -n perl-Git -f perl-git-files -%{?with_docs:%{_mandir}/man3/Git.3pm*} - -%files -n perl-Git-SVN -f perl-git-svn-files - -%files subtree -%{gitexecdir}/git-subtree -%{_pkgdocdir}/git-subtree.txt -%{?with_docs:%{_mandir}/man1/git-subtree.1*} -%{?with_docs:%{_pkgdocdir}/git-subtree.html} - -%files svn -%{gitexecdir}/git-svn -%{_pkgdocdir}/git-svn.txt -%{?with_docs:%{_mandir}/man1/git-svn.1*} -%{?with_docs:%{_pkgdocdir}/git-svn.html} - -%changelog -* Fri Nov 15 2024 Ondřej Pohořelský - 2.43.5-2 -- Sync version with the hotfix branch -- Related: RHEL-64984 - -* Thu Nov 14 2024 Ondřej Pohořelský - 2.43.0-2 -- Add fix for extremely slow shallow clones -- Repair t6300 on s390x -- Resolves: RHEL-64984 - -* Wed Dec 06 2023 Ondřej Pohořelský - 2.43.0-1 -- Update to 2.43.0 -- Resolves: RHEL-17103 - -* Thu Apr 27 2023 Ondřej Pohořelský - 2.39.3-1 -- Update to 2.39.3 -- Resolves: #2188364, #2188373, #2190157, #2190158 - -* Thu Jan 19 2023 Ondrej Pohorelsky - 2.39.1-1 -- Update to 2.39.1 -- Resolves: rhbz#2162064 - -* Mon Dec 19 2022 Ondrej Pohorelsky - 2.39.0-1 -- Update to 2.39.0 -- Resolves: rhbz#2139378 - -* Thu Nov 25 2021 Ondrej Pohorelsky - 2.31.1-2 -- Remove perl(Email::Valid) require from git-email -- Related: rhbz#2021547 - -* Fri Nov 19 2021 Ondrej Pohorelsky - 2.31.1-1 -- Update to release 2.31.1 -- Resolves: rhbz#2021547 - -* Thu Jun 11 2020 Ondrej Pohorelsky - 2.27.0-1 -- Update to release 2.27.0 -- Resolves: rhbz#1825114 - -* Tue May 26 2020 Ondrej Pohorelsky - 2.26.2-1 -- Update to release 2.26.2 -- Resolves: rhbz#1825114 - -* Wed Apr 22 2020 Ondrej Pohorelsky - 2.18.4-1 -- Update to release 2.18.4 -- Resolves: CVE-2020-11008 - -* Thu Apr 9 2020 Ondrej Pohorelsky - 2.18.2-2 -- Crafted URL containing new lines can cause credential leak -- Resolves: CVE-2020-5260 - -* Tue Dec 17 2019 Ondrej Pohorelsky - 2.18.2-1 -- Update to release 2.18.2 -- Remote code execution in recursive clones with nested submodules - Resolves: CVE-2019-1387 -- Fixes CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, - CVE-2019-1352, CVE-2019-1353, CVE-2019-1354 - -* Tue Jun 11 2019 Marcel Plch - 2.18.1-4 -- Use HMAC from libcrypto instead of git's implementation -- Resolves: rhbz#1619113 - -* Tue Dec 11 2018 Pavel Cahyna - 2.18.1-3 -- apply upstream run-command PATH fix (CVE-2018-19486) -- config: document value 2 for protocol.version (upstream patch) - -* Thu Oct 11 2018 Pavel Cahyna - 2.18.1-2 -- Fix build when apr-util does not pull in apr-util-bdb, adapt the existing Fedora condition. - Problem caused by changes in #1633973 and #1491151. -- Fix builds without docs and without cvs and/or p4 (from skisela) -- Fix smart-http test due to changes in cookie sort order in curl-7.61.1 - -* Wed Oct 10 2018 Pavel Cahyna - 2.18.1-1 -- Update to release 2.18.1, fixes CVE-2018-17456: arbitrary code execution via .gitmodules - -* Thu Aug 2 2018 Pavel Cahyna - 2.18.0-6 -- use the same spec file as for SCL (rhscl-3.2-rh-git218-rhel-7) - -* Thu Jul 19 2018 Sebastian Kisela - 2.18.0-5 -- Add %%{?scl_prefix} macros for services + desktop files. -- Add tests, checking hardcoded content of dist git sources, -written by pstodulk. -- Make git-gui.desktop, git@.service and gitweb-httpd.conf content -point to the correct scl paths. -- Move instaweb to separate subpackage -- Switch instaweb default HTTP daemon to httpd -- Use the correct apache module directory in instaweb. -- Build docs with TZ=UTC to make results deterministic. - Inspired by https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByAsciidoc - -* Tue Jul 17 2018 Sebastian Kisela - 2.18.0-4 -- Fix %%{perllibdir} path -- %%{perllibdir} now points to where perl-git modules are installed. - This was introduced in fedora commit: - f3c13faa206935a844e09c7dc9d78d6325100ced. - -* Tue Jul 17 2018 Sebastian Kisela - 2.18.0-3 -- Initial rhscl-3.2-rh-git218 commit -- Add %{scl*} macros to the spec file. - -* Wed Jul 11 2018 Pavel Cahyna - 2.18.0-3 -- Disable link checking on RHEL again (partially reverts 2.17.0-3) - -* 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 - -* Wed Nov 30 2016 Jon Ciesla - 2.11.0-1 -- Update to 2.11.0 - -* Mon Oct 31 2016 Jon Ciesla - 2.10.2-1 -- Update to 2.10.2 - -* Tue Oct 04 2016 Jon Ciesla - 2.10.1-1 -- Update to 2.10.1 - -* Sat Sep 03 2016 Todd Zullinger - 2.10.0-1 -- Update to 2.10.0 - -* Mon Aug 15 2016 Jon Ciesla - 2.9.3-1 -- Update to 2.9.3. - -* Fri Jul 15 2016 Jon Ciesla - 2.9.2-1 -- Update to 2.9.2. - -* Tue Jul 12 2016 Jon Ciesla - 2.9.1-1 -- Update to 2.9.1. - -* Tue Jun 14 2016 Jon Ciesla - 2.9.0-1 -- Update to 2.9.0. - -* Wed Jun 08 2016 Jon Ciesla - 2.8.4-1 -- Update to 2.8.4. - -* Fri May 20 2016 Jitka Plesnikova - 2.8.3-2 -- Perl 5.24 rebuild - -* Thu May 19 2016 Todd Zullinger - 2.8.3-1 -- Update to 2.8.3 - -* Thu May 19 2016 Jitka Plesnikova - 2.8.2-5 -- Perl 5.24 re-rebuild of bootstrapped packages - -* Wed May 18 2016 Todd Zullinger - 2.8.2-4 -- Use perl(MOD::NAME) format for perl-DBD-SQLite and perl-Digest-MD5 deps -- Define __global_ldflags on EL < 7 (#1337137) - -* Wed May 18 2016 Jitka Plesnikova - 2.8.2-3 -- Perl 5.24 re-rebuild of bootstrapped packages - -* Sun May 15 2016 Jitka Plesnikova - 2.8.2-2 -- Perl 5.24 rebuild - -* Fri Apr 29 2016 Todd Zullinger - 2.8.2-1 -- Update to 2.8.2 - -* Mon Apr 11 2016 Todd Zullinger - 2.8.1-3 -- Set LDFLAGS for hardened builds (#1289728) - -* Wed Apr 06 2016 Paolo Bonzini - 2.8.1-2 -- Install git-credentials-netrc (#1303358) - -* Tue Apr 05 2016 Jon Ciesla - 2.8.1-1 -- Update to 2.8.1. - -* Tue Mar 29 2016 Neal Gompa - 2.8.0-1 -- Update to 2.8.0 -- Use license macro for COPYING - -* Sun Mar 27 2016 Todd Zullinger - 2.7.4-2 -- Use https for URL / Source and smaller tar.xz files -- Check upstream GPG signatures in %%prep - -* Tue Mar 22 2016 Konrad Scherer -- Workaround missing git subtree documentation in prebuilt docs (bug 1320210) -- Only add git-cvsserver binary once if the core dir matches the bin dir as it - does on el5 (bug 1320210) - -* Tue Mar 22 2016 Todd Zullinger -- Conditionalize bash-completion pkg-config usage for EL <= 6 (bug 1320210) - -* Fri Mar 18 2016 David Woodhouse - 2.7.4-1 -- Update to 2.7.4 (for CVE-2016-2315, CVE-2016-2324) - Resolves: #1318220 - -* Mon Mar 14 2016 Jon Ciesla - 2.7.3-1 -- Update to 2.7.3. - -* Tue Feb 23 2016 Jon Ciesla - 2.7.2-1 -- Update to 2.7.2. - -* Sat Feb 06 2016 Jon Ciesla - 2.7.1-1 -- Update to 2.7.1. - -* Thu Feb 04 2016 Petr Stodulka - 2.7.0-3 -- remove all '.gitignore' files from packages - -* Wed Feb 03 2016 Fedora Release Engineering - 2.7.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 05 2016 Jon Ciesla - 2.7.0-1 -- Update to 2.7.0. -- Infinite loop patch appears obsolete. - -* Wed Dec 09 2015 Jon Ciesla - 2.6.4-1 -- Update to 2.6.4. - -* Fri Nov 27 2015 Petr Stodulka - 2.6.3-2 -- found 2 perl scripts in git-core, move them to git package - (#1284688) - -* Fri Nov 06 2015 Jon Ciesla - 2.6.3-1 -- Update to 2.6.3. - -* Tue Nov 03 2015 Petr Stodulka - 2.6.2-2 -- provides failback for the macro _pkgdocdir (#1277550) - -* Sat Oct 17 2015 Jon Ciesla - 2.6.2-1 -- Update to 2.6.2. - -* Tue Oct 06 2015 Jon Ciesla - 2.6.1-1 -- Update to 2.6.1. - -* Tue Sep 29 2015 Jon Ciesla - 2.6.0-1 -- Update to 2.6.0. - -* Fri Sep 18 2015 Jon Ciesla - 2.5.3-1 -- Update to 2.5.3. - -* Fri Sep 11 2015 Jon Ciesla - 2.5.2-1 -- Update to 2.5.2. - -* Sat Aug 29 2015 Petr Stodulka - 2.5.1-1 -- Update to 2.5.1 - -* Tue Jul 28 2015 Jon Ciesla - 2.5.0-1 -- Update to 2.5.0. - -* Thu Jul 16 2015 Petr Stodulka - 2.4.6-1 -- New upstream release 2.4.6 - -* Tue Jul 7 2015 Jonathan Underwood - 2.4.5-2 -- Comply with modern Emacs packaging guidelines on recent Fedora - No longer split out emacs-git and emacs-git-el sub-packages on recent Fedora - Require emacs-filesystem on recent Fedora (#1234552) - -* Fri Jun 26 2015 Jon Ciesla - 2.4.5-1 -- Update to 2.4.5. - -* Mon Jun 22 2015 Petr Stodulka - 2.4.4-2 -- git-svn - added requires for perl-Digest-MD5 (#1218176) -- solve troubles with infinite loop due to broken symlink (probably - shouldn't be problem here, but it's reproducible manually) - (#1204193) - -* Tue Jun 16 2015 Jon Ciesla - 2.4.4-1 -- Update to 2.4.4. - -* Wed Jun 10 2015 Jitka Plesnikova - 2.4.3-4 -- Perl 5.22 re-rebuild of bootstrapped packages - -* Tue Jun 09 2015 Jitka Plesnikova - 2.4.3-3 -- Perl 5.22 rebuild - -* Mon Jun 08 2015 Petr Stodulka - 2.4.3-2 -- separate documentation files from git-core package to git-core-doc - including core man pages - -* Sat Jun 06 2015 Jon Ciesla - 2.4.3-1 -- Update to 2.4.3. - -* Fri Jun 05 2015 Jitka Plesnikova -- Perl 5.22 rebuild - -* Wed Jun 03 2015 Petr Stodulka - 2.4.2-2 -- split create subpackage git-core (perl-less) from git package -- git package requires git-core and it has same tool set as - before -- relevant docs are part of git-core package too -- removed proved and obsoletes in git for git-core - -* Tue May 26 2015 Jon Ciesla - 2.4.2-1 -- Update to 2.4.2. - -* Thu May 14 2015 Jon Ciesla - 2.4.1-1 -- Update to 2.4.1. - -* Fri May 01 2015 Jon Ciesla - 2.4.0-1 -- Update to 2.4.0. - -* Tue Apr 28 2015 Jon Ciesla - 2.3.7-1 -- Update to 2.3.7. - -* Wed Apr 22 2015 Jon Ciesla - 2.3.6-1 -- Update to 2.3.6. - -* Mon Apr 06 2015 Jon Ciesla - 2.3.5-1 -- Update to 2.3.5. - -* Tue Mar 24 2015 Petr Stodulka - 2.3.4-1 -- Update to 2.3.4. - -* Mon Mar 16 2015 Jon Ciesla - 2.3.3-1 -- Update to 2.3.3. - -* Mon Mar 09 2015 Jon Ciesla - 2.3.2-1 -- Update to 2.3.2. - -* Fri Feb 27 2015 Jon Ciesla - 2.3.1-1 -- Update to 2.3.1. - -* Sat Feb 21 2015 Till Maas - 2.3.0-2 -- Rebuilt for Fedora 23 Change - https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code - -* Fri Feb 06 2015 Jon Ciesla - 2.3.0-1 -- Update to 2.3.0. - -* Tue Jan 27 2015 Ville Skyttä - 2.2.2-2 -- Install bash completion to %%{_datadir}/bash-completion/completions - -* Fri Jan 23 2015 Jon Ciesla - 2.2.2-1 -- Update to 2.2.2. - -* Thu Jan 08 2015 Jon Ciesla - 2.2.1-1 -- Update to 2.2.1. - -* Thu Dec 11 2014 Petr Stodulka - 2.2.0-3 -- removed subpackage git-hg which is replaced by git-remote-hg from - separated package - -* Fri Nov 28 2014 Petr Stodulka - 2.2.0-2 -- removed subpackage git-bzr which is replaced by git-remote-bzr from - separated package - -* Fri Nov 28 2014 Petr Stodulka - 2.2.0-1 -- 2.2.0 - -* Fri Oct 24 2014 Pierre-Yves Chibon - 2.1.0-5 -- Rename the git.service into git@.service fixing - https://bugzilla.redhat.com/980574 - -* Mon Sep 08 2014 Jitka Plesnikova - 2.1.0-4 -- Perl 5.20 re-rebuild of bootstrapped packages - -* Thu Aug 28 2014 Jitka Plesnikova - 2.1.0-3 -- Perl 5.20 rebuild - -* Tue Aug 26 2014 Jitka Plesnikova - 2.1.0-2 -- Disable requires perl(Term::ReadKey) when perl bootstraping - -* Mon Aug 18 2014 Ondrej Oprala - 2.0.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Thu Jul 31 2014 Ondrej Oprala - 2.0.0-4 -- Change source URLs, as googlecode doesn't have up-to-date tarballs - -* Tue Jun 10 2014 Ondrej Oprala - 2.0.0-3 -- Conditionalize an ancient obsolete - -* Sat Jun 07 2014 Fedora Release Engineering - 2.0.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Thu May 29 2014 Ondrej Oprala - 2.0.0-1 -- Update to 2.0.0 - -* Mon May 19 2014 Jon Ciesla - 1.9.3-1 -- Update to 1.9.3 - -* Mon Feb 17 2014 Ondrej Oprala - 1.9.0-1 -- Update to 1.9.0 - -* Thu Jan 16 2014 Todd Zullinger - 1.8.5.3-2 -- Drop unused python DESTIR patch -- Consolidate settings for Fedora 19+ and EL 7+ -- Use new rpm filtering on Fedora 19+ and EL 7+ -- Rebuild with file-5.14-14 (#1026760) - -* Thu Jan 16 2014 Ondrej Oprala - 1.8.5.3-1 -* Update to 1.8.5.3 - -* Wed Dec 18 2013 Ondrej Oprala - 1.8.5.2-1 -* Update to 1.8.5.2 - -* Wed Nov 13 2013 Ville Skyttä - 1.8.4.2-2 -- Fix htmldir when doc dir is unversioned (#993779). - -* Tue Oct 29 2013 Todd Zullinger - 1.8.4.2-1 -- Update to 1.8.4.2 (#1024497) - -* Sat Oct 05 2013 Todd Zullinger -- Add mercurial version requirement to git-hg, for those rebuilding on EL - -* Sat Aug 03 2013 Fedora Release Engineering - 1.8.3.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Jul 15 2013 Petr Pisar - 1.8.3.1-2 -- Perl 5.18 rebuild - -* Fri Jun 14 2013 Todd Zullinger - 1.8.3.1-1 -- Update to 1.8.3.1 -- Add bzr and hg subpackages, thanks to Michael Scherer (#974800) - -* Mon May 13 2013 Jon Ciesla - 1.8.2.1-4 -- Fix typo introduced in 1.8.2-3, fixed desktop tag. - -* Wed May 1 2013 Tom Callaway - 1.8.2.1-3 -- conditionalize systemd vs xinetd -- cleanup systemd handling (it was not quite right in -2) - -* Tue Apr 30 2013 Tom Callaway - 1.8.2.1-2 -- switch to systemd instead of xinetd (bz 737183) - -* Sun Apr 14 2013 Todd Zullinger - 1.8.2.1-1 -- Update to 1.8.2.1 -- Exclude optional perl(YAML::Any) dependency on EL-5 - -* Wed Apr 10 2013 Jon Ciesla - 1.8.2-3 -- Drop desktop vendor tag for >= f19. - -* Wed Mar 27 2013 Todd Zullinger - 1.8.2-2 -- Require perl(Term::ReadKey) for git add --interactive (#928328) -- Drop DESTDIR from python instlibdir -- Fix bogus changelog dates - -* Tue Mar 19 2013 Adam Tkac - 1.8.2-1 -- update to 1.8.2 -- 0001-DESTDIR-support-in-contrib-subtree-Makefile.patch has been merged - -* Tue Feb 26 2013 Todd Zullinger - 1.8.1.4-2 -- Update asciidoc requirements, drop unsupported ASCIIDOC7 -- Define GNU_ROFF to force ASCII apostrophes in manpages (so copy/paste works) -- Install tcsh completion (requires manual setup by users) -- Clean up dist conditionals, don't pretend to support EL-4 builds -- Use prebuilt documentation on EL-5, where asciidoc is too old -- Respect gitexecdir variable in git-subtree install - -* Wed Feb 20 2013 Adam Tkac - 1.8.1.4-1 -- update to 1.8.1.4 - -* Wed Jan 30 2013 Adam Tkac - 1.8.1.2-1 -- update to 1.8.1.2 -- own directories which should be owned (#902517) - -* Thu Jan 03 2013 Adam Tkac - 1.8.1-1 -- update to 1.8.1 -- build git-svn as arch subpkg due to new git-remote-testsvn binary - -* Tue Dec 11 2012 Adam Tkac - 1.8.0.2-1 -- update to 1.8.0.2 - -* Thu Dec 06 2012 Adam Tkac - 1.8.0.1-2 -- don't install some unneeded credential-gnome-keyring stuff - -* Thu Nov 29 2012 Adam Tkac - 1.8.0.1-1 -- update to 1.8.0.1 -- include git-subtree in git rpm (#864651) - -* Mon Oct 29 2012 Adam Tkac - 1.8.0-1 -- update to 1.8.0 -- include git-credential-gnome-keyring helper in git pkg -- 0001-cvsimport-strip-all-inappropriate-tag-strings.patch was merged - -* Thu Oct 25 2012 Adam Tkac - 1.7.12.1-2 -- move git-prompt.sh into usr/share/git-core/contrib/completion (#854061) - -* Thu Sep 27 2012 Adam Tkac - 1.7.12.1-1 -- update to 1.7.12.1 -- cvsimport should skip more characters (#850640) - -* Thu Aug 23 2012 Todd Zullinger - 1.7.12-2 -- Install git-prompt.sh which provides __git_ps1() - -* Wed Aug 22 2012 Adam Tkac - 1.7.12-1 -- update to 1.7.12 - -* Wed Aug 15 2012 Todd Zullinger - 1.7.11.5-1 -- Update to 1.7.11.5 -- Add git-p4 subpackage (#844008) - -* Tue Aug 07 2012 Adam Tkac - 1.7.11.4-1 -- update to 1.7.11.4 - -* Fri Jul 27 2012 Fedora Release Engineering - 1.7.11.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jul 25 2012 Todd Zullinger - 1.7.11.2-2 -- Split perl(Git::SVN) into its own package (#843182) - -* Mon Jul 16 2012 Adam Tkac - 1.7.11.2-1 -- update to 1.7.11.2 - -* Thu Jun 28 2012 Petr Pisar - 1.7.10.4-2 -- Perl 5.16 rebuild - -* Fri Jun 15 2012 Adam Tkac - 1.7.10.4-1 -- update to 1.7.10.4 - -* Thu Jun 07 2012 Petr Pisar - 1.7.10.2-2 -- Perl 5.16 rebuild - -* Mon May 14 2012 Adam Tkac - 1.7.10.2-1 -- update to 1.7.10.2 - -* Thu May 03 2012 Adam Tkac - 1.7.10.1-1 -- update to 1.7.10.1 - -* Tue Apr 10 2012 Adam Tkac - 1.7.10-1 -- update to 1.7.10 - -* Fri Mar 30 2012 Adam Tkac - 1.7.9.5-1 -- update to 1.7.9.5 - -* Thu Mar 08 2012 Adam Tkac - 1.7.9.3-1 -- update to 1.7.9.3 - -* Wed Feb 15 2012 Todd Zullinger - 1.7.9.1-1 -- Update to 1.7.9.1 -- Fix EPEL builds (rpm doesn't accept multiple -f options in %%files) - -* Fri Feb 10 2012 Petr Pisar - 1.7.9-2 -- Rebuild against PCRE 8.30 - -* Mon Jan 30 2012 Adam Tkac - 1.7.9-1 -- update to 1.7.9 - -* Thu Jan 19 2012 Adam Tkac - 1.7.8.4-1 -- update to 1.7.8.4 - -* Thu Jan 12 2012 Adam Tkac - 1.7.8.3-1 -- update to 1.7.8.3 - -* Mon Jan 02 2012 Adam Tkac - 1.7.8.2-1 -- update to 1.7.8.2 - -* Fri Dec 23 2011 Adam Tkac - 1.7.8.1-1 -- update to 1.7.8.1 - -* Wed Dec 07 2011 Adam Tkac - 1.7.8-1 -- update to 1.7.8 - -* Tue Nov 29 2011 Adam Tkac - 1.7.7.4-1 -- update to 1.7.7.4 - -* Thu Nov 10 2011 Adam Tkac - 1.7.7.3-1 -- update to 1.7.7.3 - -* Mon Nov 07 2011 Adam Tkac - 1.7.7.2-1 -- update to 1.7.7.2 - -* Tue Nov 01 2011 Adam Tkac - 1.7.7.1-1 -- update to 1.7.7.1 - -* Wed Oct 26 2011 Fedora Release Engineering - 1.7.7-2 -- Rebuilt for glibc bug#747377 - -* Thu Oct 20 2011 Adam Tkac - 1.7.7-1 -- update to 1.7.7 - - git-1.6-update-contrib-hooks-path.patch is no longer needed - -* Mon Sep 26 2011 Adam Tkac - 1.7.6.4-1 -- update to 1.7.6.4 - -* Wed Sep 07 2011 Todd Zullinger - 1.7.6.2-1 -- Update to 1.7.6.2 -- Fixes incompatibility caused by git push --quiet fix - http://thread.gmane.org/gmane.comp.version-control.git/180652 - -* Mon Aug 29 2011 Todd Zullinger - 1.7.6.1-2 -- Build with PCRE support (#734269) - -* Fri Aug 26 2011 Todd Zullinger - 1.7.6.1-1 -- Update to 1.7.6.1 -- Include gpg signature for tarball in SRPM - -* Fri Aug 05 2011 Todd Zullinger - 1.7.6-5 -- Fix git push --quiet, thanks to Clemens Buchacher (#725593) -- Obsolete git-arch as needed - -* Tue Jul 26 2011 Todd Zullinger - 1.7.6-4 -- Drop git-arch on fedora >= 16, the tla package has been retired -- Rework most spec file dist conditionals to make future changes easier - -* Thu Jul 21 2011 Petr Sabata - 1.7.6-3 -- Perl mass rebuild - -* Wed Jul 20 2011 Petr Sabata - 1.7.6-2 -- Perl mass rebuild - -* Wed Jun 29 2011 Adam Tkac - 1.7.6-1 -- update to 1.7.6 - -* Mon Jun 20 2011 Marcela Mašláňová - 1.7.5.4-2 -- Perl mass rebuild - -* Thu Jun 09 2011 Adam Tkac - 1.7.5.4-1 -- update to 1.7.5.4 - -* Tue May 24 2011 Adam Tkac - 1.7.5.2-1 -- update to 1.7.5.2 - -* Thu May 05 2011 Adam Tkac - 1.7.5.1-1 -- update to 1.7.5.1 - -* Wed Apr 27 2011 Adam Tkac - 1.7.5-1 -- update to 1.7.5 - -* Mon Apr 11 2011 Adam Tkac - 1.7.4.4-1 -- update to 1.7.4.4 - -* Mon Mar 28 2011 Adam Tkac - 1.7.4.2-1 -- update to 1.7.4.2 -- move man3/Git.3pm file to perl-Git subpkg (#664889) -- add perl-DBD-SQLite dependency to git-cvs (#602410) - -* Sun Feb 13 2011 Todd Zullinger - 1.7.4.1-1 -- Update to 1.7.4.1 -- Clean up documentation settings (the defaults changed in 1.7.4) -- Improve EL-5 compatibility, thanks to Kevin Fenzi for emacs testing - -* Tue Feb 08 2011 Fedora Release Engineering - 1.7.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Mon Jan 31 2011 Adam Tkac - 1.7.4-1 -- update to 1.7.4 - -* Wed Jan 19 2011 Adam Tkac - 1.7.3.5-1 -- update to 1.7.3.5 - -* Thu Dec 16 2010 Adam Tkac - 1.7.3.4-1 -- update to 1.7.3.4 - -* Mon Dec 06 2010 Adam Tkac - 1.7.3.3-1 -- update to 1.7.3.3 - -* Fri Oct 22 2010 Adam Tkac - 1.7.3.2-1 -- update to 1.7.3.2 - -* Thu Sep 30 2010 Adam Tkac - 1.7.3.1-1 -- update to 1.7.3.1 - -* Wed Sep 29 2010 jkeating - 1.7.3-3 -- Rebuilt for gcc bug 634757 - -* Mon Sep 20 2010 Todd Zullinger - 1.7.3-2 -- Ensure the release notes are included in %%doc - -* Sun Sep 19 2010 Todd Zullinger - 1.7.3-1 -- Update to 1.7.3 - -* Tue Sep 07 2010 Adam Tkac - 1.7.2.3-1 -- update to 1.7.2.3 - -* Fri Aug 20 2010 Adam Tkac - 1.7.2.2-1 -- update to 1.7.2.2 - -* Fri Jul 30 2010 Thomas Spura - 1.7.2.1-2 -- cherry-pick: "Do not unquote + into ' ' in URLs" - -* Thu Jul 29 2010 Todd Zullinger - 1.7.2.1-1 -- Update to git-1.7.2.1 - -* Thu Jul 22 2010 Adam Tkac - 1.7.2-1 -- update to 1.7.2 - -* Fri Jul 02 2010 Adam Tkac - 1.7.1.1-1 -- update to 1.7.1.1 - -* Fri Jun 25 2010 Adam Tkac - 1.7.1-2 -- rebuild against new perl - -* Tue May 04 2010 Todd Zullinger - 1.7.1-1 -- git-1.7.1 -- Fix conditionals for EL-6 -- Comply with Emacs add-on packaging guidelines (#573423), Jonathan Underwood - - Place elisp source files in separate emacs-git-el package - - Place git support files in own directory under site-lisp - - Use Emacs packaging macros - -* Thu Apr 29 2010 Marcela Maslanova - 1.7.0.1-2 -- Mass rebuild with perl-5.12.0 - -* Mon Mar 01 2010 Todd Zullinger - 1.7.0.1-1 -- git-1.7.0.1 - -* Sat Feb 13 2010 Todd Zullinger - 1.7.0-1 -- git-1.7.0 -- Link imap-send with libcrypto (#565147) -- Disable building of unused python remote helper libs - -* Tue Jan 26 2010 Todd Zullinger - 1.6.6.1-1 -- git-1.6.6.1 -- Use %%{gitcoredir}/git-daemon as xinetd server option, for SELinux (#529682) -- Make %%{_var}/lib/git the default gitweb projectroot (#556299) -- Include gitweb/INSTALL file as documentation, the gitweb README refers to it -- Ship a short example gitweb config file (%%{_sysconfdir}/gitweb.conf) -- Remove long fixed xinetd IPv6 workaround on Fedora (#557528) -- Install missing gitweb.js (#558740) - -* Wed Dec 23 2009 Todd Zullinger - 1.6.6-1 -- git-1.6.6 - -* Fri Dec 11 2009 Todd Zullinger - 1.6.5.6-1 -- git-1.6.5.6 - -* Sun Dec 06 2009 Todd Zullinger - 1.6.5.5-1 -- git-1.6.5.5 - -* Fri Dec 4 2009 Stepan Kasal - 1.6.5.3-2 -- rebuild against perl 5.10.1 - -* Sat Nov 21 2009 Todd Zullinger - 1.6.5.3-1 -- git-1.6.5.3 -- Only BR perl(Error) on Fedora and RHEL >= 5 -- Use config.mak to set build options -- Improve compatibility with EPEL -- Replace $RPM_BUILD_ROOT with %%{buildroot} -- Fix Obsoletes for those rebuilding on EL-4 - -* Mon Oct 26 2009 Todd Zullinger - 1.6.5.2-1 -- git-1.6.5.2 -- Drop asciidoc --unsafe option, it should not be needed anymore -- Don't use install -t/-T, they're not compatible with older coreutils -- Don't use -perm /a+x with find, it's incompatible with older findutils - -* Sat Oct 17 2009 Todd Zullinger - 1.6.5.1-1 -- git-1.6.5.1 - -* Sun Oct 11 2009 Todd Zullinger - 1.6.5-1 -- git-1.6.5 - -* Mon Sep 28 2009 Todd Zullinger - 1.6.5-0.2.rc2 -- git-1.6.5.rc2 -- Enable Linus' block-sha1 implementation - -* Wed Sep 16 2009 Todd Zullinger - 1.6.4.4-1 -- git-1.6.4.4 - -* Sun Sep 13 2009 Todd Zullinger - 1.6.4.3-1 -- git-1.6.4.3 - -* Sun Aug 30 2009 Todd Zullinger - 1.6.4.2-1 -- git-1.6.4.2 - -* Sat Aug 22 2009 Todd Zullinger - 1.6.4.1-1 -- git-1.6.4.1 - -* Fri Aug 21 2009 Tomas Mraz - 1.6.4-2 -- rebuilt with new openssl - -* Wed Jul 29 2009 Todd Zullinger - 1.6.4-1 -- git-1.6.4 - -* Fri Jul 24 2009 Fedora Release Engineering - 1.6.3.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Sun Jun 28 2009 Todd Zullinger - 1.6.3.3-1 -- git-1.6.3.3 -- Move contributed hooks to %%{_datadir}/git-core/contrib/hooks (bug 500137) -- Fix rpmlint warnings about Summary and git-mergetool--lib missing shebang - -* Fri Jun 19 2009 Todd Zullinger - 1.6.3.2-3 -- Temporarily disable asciidoc's safe mode until bug 506953 is fixed - -* Fri Jun 19 2009 Todd Zullinger - 1.6.3.2-2 -- Fix git-daemon hang on invalid input (CVE-2009-2108, bug 505761) - -* Fri Jun 05 2009 Todd Zullinger - 1.6.3.2-1 -- git-1.6.3.2 -- Require emacs >= 22.2 for emacs support (bug 495312) -- Add a .desktop file for git-gui (bug 498801) -- Set ASCIIDOC8 and ASCIIDOC_NO_ROFF to correct documentation issues, - the sed hack to fix bug 485161 should no longer be needed -- Escape newline in git-daemon xinetd description (bug 502393) -- Add xinetd to git-daemon Requires (bug 504105) -- Organize BuildRequires/Requires, drop redundant expat Requires -- Only build noarch subpackages on Fedora >= 10 -- Only build emacs and arch subpackages on Fedora -- Handle curl/libcurl naming for EPEL and Fedora - -* Fri Apr 03 2009 Todd Zullinger - 1.6.2.2-1 -- git-1.6.2.2 -- Include contrib/ dir in %%doc (bug 492490) -- Don't set DOCBOOK_XSL_172, fix the '\&.ft' with sed (bug 485161) -- Ignore Branches output from cvsps-2.2b1 (bug 490602) -- Remove shebang from bash-completion script -- Include README in gitweb subpackage - -* Mon Mar 09 2009 Todd Zullinger - 1.6.2-1 -- git-1.6.2 -- Include contrib/emacs/README in emacs subpackage -- Drop upstreamed git-web--browse patch - -* Tue Feb 24 2009 Todd Zullinger - 1.6.1.3-2 -- Require perl(Authen::SASL) in git-email (bug 483062) -- Build many of the subpackages as noarch -- Update URL field - -* Mon Feb 09 2009 Todd Zullinger 1.6.1.3-1 -- git-1.6.1.3 -- Set htmldir so "git help -w " works -- Patch git-web--browse to not use "/sbin/start" to browse -- Include git-daemon documentation in the git-daemon package - -* Thu Jan 29 2009 Josh Boyer 1.6.1.2-1 -- git-1.6.1.2 - -* Mon Jan 26 2009 Todd Zullinger 1.6.1.1-1 -- git-1.6.1.1 -- Make compile more verbose - -* Fri Jan 16 2009 Tomas Mraz 1.6.1-2 -- rebuild with new openssl - -* Sat Jan 03 2009 Todd Zullinger 1.6.1-1 -- Install git-* commands in %%{_libexecdir}/git-core, the upstream default -- Remove libcurl from Requires, rpm will pick this up automatically -- Consolidate build/install options in %%make_git (Roland McGrath) -- Include DirectoryIndex in gitweb httpd-config (bug 471692) -- Define DOCBOOK_XSL_172 to fix minor manpage issues -- Rename %%{_var}/lib/git-daemon to %%{_var}/lib/git -- Preserve timestamps on installed files -- Quiet some rpmlint complaints -- Use macros more consistently - -* Sat Dec 20 2008 Todd Zullinger 1.6.0.6-1 -- git-1.6.0.6 -- Fixes a local privilege escalation bug in gitweb - (http://article.gmane.org/gmane.comp.version-control.git/103624) -- Add gitk Requires to git-gui (bug 476308) - -* Thu Dec 11 2008 Josh Boyer 1.6.0.5-1 -- git-1.6.0.5 - -* Mon Nov 17 2008 Seth Vidal -- switch from /srv/git to /var/lib/git-daemon for packaging rules compliance - -* Fri Nov 14 2008 Josh Boyer 1.6.0.4-1 -- git-1.6.0.4 - -* Wed Oct 22 2008 Josh Boyer 1.6.0.3-1 -- git-1.6.0.3 -- Drop curl requirement in favor of libcurl (bug 449388) -- Add requires for SMTP-SSL perl module to make git-send-email work (bug 443615) - -* Thu Aug 28 2008 James Bowes 1.6.0.1-1 -- git-1.6.0.1 - -* Thu Jul 24 2008 James Bowes 1.5.6-4 -- git-1.5.6.4 - -* Thu Jun 19 2008 James Bowes 1.5.6-1 -- git-1.5.6 - -* Tue Jun 3 2008 Stepan Kasal 1.5.5.3-2 -- use tar.bz2 instead of tar.gz - -* Wed May 28 2008 James Bowes 1.5.5.3-1 -- git-1.5.5.3 - -* Mon May 26 2008 James Bowes 1.5.5.2-1 -- git-1.5.5.2 - -* Mon Apr 21 2008 James Bowes 1.5.5.1-1 -- git-1.5.5.1 - -* Wed Apr 09 2008 James Bowes 1.5.5-1 -- git-1.5.5 - -* Fri Apr 04 2008 James Bowes 1.5.4.5-3 -- Remove the last two requires on git-core. - -* Wed Apr 02 2008 James Bowes 1.5.4.5-2 -- Remove a patch that's already upstream. - -* Fri Mar 28 2008 James Bowes 1.5.4.5-1 -- git-1.5.4.5 - -* Wed Mar 26 2008 James Bowes 1.5.4.4-4 -- Own /etc/bash_completion.d in case bash-completion isn't installed. - -* Tue Mar 25 2008 James Bowes 1.5.4.4-3 -- Include the sample hooks from contrib/hooks as docs (bug 321151). -- Install the bash completion script from contrib (bug 433255). -- Include the html docs in the 'core' package again (bug 434271). - -* Wed Mar 19 2008 James Bowes 1.5.4.4-2 -- Obsolete git <= 1.5.4.3, to catch going from F8 to rawhide/F9 - -* Thu Mar 13 2008 James Bowes 1.5.4.4-1 -- git-1.5.4.4 - -* Mon Mar 3 2008 Tom "spot" Callaway 1.5.4.3-3 -- rebuild for new perl (again) - -* Sun Feb 24 2008 Bernardo Innocenti 1.5.4.3-2 -- Do not silently overwrite /etc/httpd/conf.d/git.conf - -* Sat Feb 23 2008 James Bowes 1.5.4.3-1 -- git-1.5.4.3 -- Include Kristian Høgsberg's changes to rename git-core to - git and git to git-all. - -* Sun Feb 17 2008 James Bowes 1.5.4.2-1 -- git-1.5.4.2 - -* Mon Feb 11 2008 Jeremy Katz - 1.5.4.1-2 -- Add upstream patch (e62a641de17b172ffc4d3a803085c8afbfbec3d1) to have - gitweb rss feeds point be commitdiffs instead of commit - -* Sun Feb 10 2008 James Bowes 1.5.4.1-1 -- git-1.5.4.1 - -* Tue Feb 05 2008 Tom "spot" Callaway 1.5.4-3 -- rebuild for new perl - -* Sun Feb 03 2008 James Bowes 1.5.4-1 -- Add BuidRequires on gettext. - -* Sat Feb 02 2008 James Bowes 1.5.4-1 -- git-1.5.4 - -* Tue Jan 08 2008 James Bowes 1.5.3.8-1 -- git-1.5.3.8 - -* Fri Dec 21 2007 James Bowes 1.5.3.7-2 -- Have git metapackage require explicit versions (bug 247214) - -* Mon Dec 03 2007 Josh Boyer 1.5.3.7-1 -- git-1.5.3.7 - -* Tue Nov 27 2007 Josh Boyer 1.5.3.6-1 -- git-1.5.3.6 -- git-core requires perl(Error) (bug 367861) -- git-svn requires perl(Term:ReadKey) (bug 261361) -- git-email requires perl-Git (bug 333061) - -* Wed Oct 24 2007 Lubomir Kundrak 1.5.3.4-2 -- git-Perl requires Error package - -* Tue Oct 09 2007 James Bowes 1.5.3.4-1 -- git-1.5.3.4 - -* Sun Sep 30 2007 James Bowes 1.5.3.3-1 -- git-1.5.3.3 - -* Wed Sep 26 2007 James Bowes 1.5.3.2-1 -- git-1.5.3.2 - -* Thu Sep 06 2007 Josh Boyer 1.5.3.1-2 -- Include git-gui and git-citool docs - -* Thu Sep 06 2007 Josh Boyer 1.5.3.1-1 -- git-1.5.3.1-1 - -* Thu Aug 23 2007 James Bowes 1.5.2.5-1 -- git-1.5.2.5-1 - -* Fri Aug 03 2007 Josh Boyer 1.5.2.4-1 -- git-1.5.2.4-1 - -* Tue Jul 03 2007 Josh Boyer 1.5.2.2-3 -- Add git-daemon and gitweb packages - -* Thu Jun 21 2007 Josh Boyer 1.5.2.2-2 -- Add emacs-git package (#235431) - -* Mon Jun 18 2007 James Bowes 1.5.2.2-1 -- git-1.5.2.2 - -* Fri Jun 08 2007 James Bowes 1.5.2.1-1 -- git-1.5.2.1 - -* Sun May 13 2007 Quy Tonthat -- Added lib files for git-gui -- Added Documentation/technical (As needed by Git Users Manual) - -* Tue May 8 2007 Quy Tonthat -- Added howto files - -* Fri Mar 30 2007 Chris Wright 1.5.0.6-1 -- git-1.5.0.6 - -* Mon Mar 19 2007 Chris Wright 1.5.0.5-1 -- git-1.5.0.5 - -* Tue Mar 13 2007 Chris Wright 1.5.0.3-1 -- git-1.5.0.3 - -* Fri Mar 2 2007 Chris Wright 1.5.0.2-2 -- BuildRequires perl-devel as of perl-5.8.8-14 (bz 230680) - -* Mon Feb 26 2007 Chris Wright 1.5.0.2-1 -- git-1.5.0.2 - -* Tue Feb 13 2007 Nicolas Pitre -- Update core package description (Git isn't as stupid as it used to be) - -* Mon Feb 12 2007 Junio C Hamano -- Add git-gui and git-citool. - -* Sun Dec 10 2006 Chris Wright 1.4.4.2-2 -- no need to install manpages executable (bz 216790) -- use bytes for git-cvsserver - -* Sun Dec 10 2006 Chris Wright 1.4.4.2-1 -- git-1.4.4.2 - -* Mon Nov 6 2006 Jindrich Novy 1.4.2.4-2 -- rebuild against the new curl - -* Tue Oct 17 2006 Chris Wright 1.4.2.4-1 -- git-1.4.2.4 - -* Wed Oct 4 2006 Chris Wright 1.4.2.3-1 -- git-1.4.2.3 - -* Fri Sep 22 2006 Chris Wright 1.4.2.1-1 -- git-1.4.2.1 - -* Mon Sep 11 2006 Chris Wright 1.4.2-1 -- git-1.4.2 - -* Thu Jul 6 2006 Chris Wright 1.4.1-1 -- git-1.4.1 - -* Tue Jun 13 2006 Chris Wright 1.4.0-1 -- git-1.4.0 - -* Thu May 4 2006 Chris Wright 1.3.3-1 -- git-1.3.3 -- enable git-email building, prereqs have been relaxed - -* Thu May 4 2006 Chris Wright 1.3.2-1 -- git-1.3.2 - -* Fri Apr 28 2006 Chris Wright 1.3.1-1 -- git-1.3.1 - -* Wed Apr 19 2006 Chris Wright 1.3.0-1 -- git-1.3.0 - -* Mon Apr 10 2006 Chris Wright 1.2.6-1 -- git-1.2.6 - -* Wed Apr 5 2006 Chris Wright 1.2.5-1 -- git-1.2.5 - -* Wed Mar 1 2006 Chris Wright 1.2.4-1 -- git-1.2.4 - -* Wed Feb 22 2006 Chris Wright 1.2.3-1 -- git-1.2.3 - -* Tue Feb 21 2006 Chris Wright 1.2.2-1 -- git-1.2.2 - -* Thu Feb 16 2006 Chris Wright 1.2.1-1 -- git-1.2.1 - -* Mon Feb 13 2006 Chris Wright 1.2.0-1 -- git-1.2.0 - -* Wed Feb 1 2006 Chris Wright 1.1.6-1 -- git-1.1.6 - -* Tue Jan 24 2006 Chris Wright 1.1.4-1 -- git-1.1.4 - -* Sun Jan 15 2006 Chris Wright 1.1.2-1 -- git-1.1.2 - -* Tue Jan 10 2006 Chris Wright 1.1.1-1 -- git-1.1.1 - -* Tue Jan 10 2006 Chris Wright 1.1.0-1 -- Update to latest git-1.1.0 (drop git-email for now) -- Now creates multiple packages: -- git-core, git-svn, git-cvs, git-arch, gitk - -* Mon Nov 14 2005 H. Peter Anvin 0.99.9j-1 -- Change subpackage names to git- instead of git-core- -- Create empty root package which brings in all subpackages -- Rename git-tk -> gitk - -* Thu Nov 10 2005 Chris Wright 0.99.9g-1 -- zlib dependency fix -- Minor cleanups from split -- Move arch import to separate package as well - -* Tue Sep 27 2005 Jim Radford -- Move programs with non-standard dependencies (svn, cvs, email) - into separate packages - -* Tue Sep 27 2005 H. Peter Anvin -- parallelize build -- COPTS -> CFLAGS - -* Fri Sep 16 2005 Chris Wright 0.99.6-1 -- update to 0.99.6 - -* Fri Sep 16 2005 Horst H. von Brand -- Linus noticed that less is required, added to the dependencies - -* Sun Sep 11 2005 Horst H. von Brand -- Updated dependencies -- Don't assume manpages are gzipped - -* Thu Aug 18 2005 Chris Wright 0.99.4-4 -- drop sh_utils, sh-utils, diffutils, mktemp, and openssl Requires -- use RPM_OPT_FLAGS in spec file, drop patch0 - -* Wed Aug 17 2005 Tom "spot" Callaway 0.99.4-3 -- use dist tag to differentiate between branches -- use rpm optflags by default (patch0) -- own %%{_datadir}/git-core/ - -* Mon Aug 15 2005 Chris Wright -- update spec file to fix Buildroot, Requires, and drop Vendor - -* Sun Aug 07 2005 Horst H. von Brand -- Redid the description -- Cut overlong make line, loosened changelog a bit -- I think Junio (or perhaps OSDL?) should be vendor... - -* Thu Jul 14 2005 Eric Biederman -- Add the man pages, and the --without docs build option - -* Thu Jul 7 2005 Chris Wright -- initial git spec file diff --git a/git-2.47-sanitize-sideband-channel-messages.patch b/git-2.47-sanitize-sideband-channel-messages.patch new file mode 100644 index 0000000..dec65f6 --- /dev/null +++ b/git-2.47-sanitize-sideband-channel-messages.patch @@ -0,0 +1,219 @@ +From 833c73801527b37d9bc725c81c6042ae350aaae3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= +Date: Fri, 28 Mar 2025 13:26:29 +0100 +Subject: [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. + +Changes are taken from Git for Windows. The only differences are that +by default we are allowing all control characters, the documentation +reflects it and one of the tests has to be invoked with a config +change: `sideband.allowControlCharacters=color` + +These commits can also be seen in this upstream PR: +https://github.com/gitgitgadget/git/pull/1853 +--- + Documentation/config.txt | 2 + + Documentation/config/sideband.txt | 16 ++++++ + sideband.c | 78 ++++++++++++++++++++++++++++- + t/t5409-colorize-remote-messages.sh | 30 +++++++++++ + 4 files changed, 124 insertions(+), 2 deletions(-) + create mode 100644 Documentation/config/sideband.txt + +diff --git a/Documentation/config.txt b/Documentation/config.txt +index 8c0b3ed807..48870bb588 100644 +--- a/Documentation/config.txt ++++ b/Documentation/config.txt +@@ -522,6 +522,8 @@ include::config/sequencer.txt[] + + include::config/showbranch.txt[] + ++include::config/sideband.txt[] ++ + include::config/sparse.txt[] + + include::config/splitindex.txt[] +diff --git a/Documentation/config/sideband.txt b/Documentation/config/sideband.txt +new file mode 100644 +index 0000000000..1adc831667 +--- /dev/null ++++ b/Documentation/config/sideband.txt +@@ -0,0 +1,16 @@ ++sideband.allowControlCharacters:: ++ By default, control characters that are delivered via the sideband ++ are NOT masked. Use this config setting to prevent potentially ++ unwanted ANSI escape sequences from being sent to the terminal: +++ ++-- ++ color:: ++ Allow ANSI color sequences, line feeds and horizontal tabs, ++ but mask all other control characters. ++ false:: ++ Mask all control characters other than line feeds and ++ horizontal tabs. ++ true:: ++ Allow all control characters to be sent to the terminal. ++ This is the default. ++-- +\ No newline at end of file +diff --git a/sideband.c b/sideband.c +index 02805573fa..7a0ca61948 100644 +--- a/sideband.c ++++ b/sideband.c +@@ -25,6 +25,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) + { +@@ -38,6 +44,25 @@ static int use_sideband_colors(void) + if (use_sideband_colors_cached >= 0) + return use_sideband_colors_cached; + ++ 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); + else if (!git_config_get_string_tmp("color.ui", &value)) +@@ -65,6 +90,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 +@@ -80,7 +154,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; + } + +@@ -113,7 +187,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 516b22fd96..48f8413eff 100755 +--- a/t/t5409-colorize-remote-messages.sh ++++ b/t/t5409-colorize-remote-messages.sh +@@ -99,4 +99,34 @@ 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.49.0 + diff --git a/SOURCES/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch b/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch similarity index 100% rename from SOURCES/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch rename to git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch diff --git a/SOURCES/git-gui.desktop b/git-gui.desktop similarity index 100% rename from SOURCES/git-gui.desktop rename to git-gui.desktop 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/SOURCES/git.socket b/git.socket similarity index 100% rename from SOURCES/git.socket rename to git.socket diff --git a/git.spec b/git.spec new file mode 100644 index 0000000..316e728 --- /dev/null +++ b/git.spec @@ -0,0 +1,1371 @@ +# Pass --without docs to rpmbuild if you don't want the documentation +%bcond_without docs + +# Pass --without tests to rpmbuild if you don't want to run the tests +%bcond_without tests + +%global gitexecdir %{_libexecdir}/git-core + +# Settings for Fedora +%if 0%{?fedora} +# linkchecker is not available on EL +%bcond_without linkcheck +%else +%bcond_with linkcheck +%endif + +# Settings for Fedora >= 38 and EL >= 10 +%if 0%{?fedora} >= 38 || 0%{?rhel} >= 10 +%bcond_with perl_modcompat +%else +%bcond_without perl_modcompat +%endif + +# Settings for Fedora and EL == 9 +# In EL >= 10 docbook5-style-xsl, needed by asciidoctor, is unwanted package +%if 0%{?fedora} || 0%{?rhel} == 9 +%bcond_without asciidoctor +%else +%bcond_with asciidoctor +%endif + +# Settings for Fedora and EL >= 8 +%if 0%{?fedora} || 0%{?rhel} >= 8 +%bcond_with python2 +%bcond_without python3 +%global gitweb_httpd_conf gitweb.conf +%global use_glibc_langpacks 1 +%global use_perl_generators 1 +%global use_perl_interpreter 1 +%else +%bcond_without python2 +%bcond_with python3 +%global build_cflags %{build_cflags} -fPIC -std=gnu99 +%global gitweb_httpd_conf git.conf +%global use_glibc_langpacks 0 +%global use_perl_generators 0 +%global use_perl_interpreter 0 +%endif + +# Allow cvs subpackage to be toggled via --with/--without +# Disable cvs subpackage by default on EL >= 8 +%if 0%{?rhel} >= 8 +%bcond_with cvs +%else +%bcond_without cvs +%endif + +# Allow credential-libsecret subpackage to be toggled via --with/--without +%bcond_without libsecret + +# Allow p4 subpackage to be toggled via --with/--without +# Disable p4 package by default on EL >= 10 +%if 0%{?rhel} >= 10 +%bcond_with p4 +%else +%bcond_without p4 +%endif + +# Hardening flags for EL-7 +%if 0%{?rhel} == 7 +%global _hardened_build 1 +%endif + +# Define %%bash_completions_dir for EL <= 9 +%{?!bash_completions_dir:%global bash_completions_dir %{_datadir}/bash-completion/completions} + +# Set path to the package-notes linker script +%global _package_note_file %{_builddir}/%{name}-%{real_version}/.package_note-%{name}-%{version}-%{release}.%{_arch}.ld + +Name: git +Version: 2.47.1 +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/ + +# Note: real_version must be defined _after_ Version +%global real_version %(echo %{version} | tr '~' '.') + +# Adjust Source URL path for release candidates +%global rcpath %(test "%{version}" = "%{real_version}" || echo testing/) + +Source0: https://www.kernel.org/pub/software/scm/git/%{rcpath}%{name}-%{real_version}.tar.xz +Source1: https://www.kernel.org/pub/software/scm/git/%{rcpath}%{name}-%{real_version}.tar.sign + +# Junio C Hamano's key is used to sign git releases, it can be found in the +# junio-gpg-pub tag within git. +# +# (Note that the tagged blob in git contains a version of the key with an +# expired signing subkey. The subkey expiration has been extended on the +# public keyservers, but the blob in git has not been updated.) +# +# 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 +Source2: gpgkey-junio.asc + +# Local sources begin at 10 to allow for additional future upstream sources +Source11: git.xinetd.in +Source12: git-gui.desktop +Source13: gitweb-httpd.conf +Source14: gitweb.conf.in +Source15: git@.service.in +Source16: git.socket + +# Script to print test failure output (used in %%check) +Source99: print-failed-test-output + +# https://bugzilla.redhat.com/490602 +Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch + +# https://bugzilla.redhat.com/2114531 +# tests: try harder to find open ports for apache, git, and svn +# +# https://github.com/tmzullinger/git/commit/aedeaaf788 +Patch1: 0001-t-lib-httpd-try-harder-to-find-a-port-for-apache.patch +# https://github.com/tmzullinger/git/commit/16750d024c +Patch2: 0002-t-lib-git-daemon-try-harder-to-find-a-port.patch +# https://github.com/tmzullinger/git/commit/aa5105dc11 +Patch3: 0003-t-lib-git-svn-try-harder-to-find-a-port.patch + +# Configurates Apache test server to use `DavLockDBType sdbm` +# Prevents t5540 failures on i686, s390x and ppc64le +Patch5: git-test-apache-davlockdbtype-config.patch + +# Adds the option to sanitize sideband channel messages +# CVE-2024-52005 wasn't fixed by upstream. This patch adds the option to harden Git against it. +# The default behaviour of Git remains unchanged. +# +# https://github.com/gitgitgadget/git/pull/1853 +Patch6: git-2.47-sanitize-sideband-channel-messages.patch + +%if %{with docs} +# pod2man is needed to build Git.3pm +BuildRequires: perl-podlators +%if %{with asciidoctor} +BuildRequires: docbook5-style-xsl +BuildRequires: rubygem-asciidoctor +%else +BuildRequires: asciidoc >= 8.4.1 +%endif +# endif with asciidoctor +BuildRequires: perl(File::Compare) +BuildRequires: xmlto +%if %{with linkcheck} +BuildRequires: linkchecker +%endif +# endif with linkcheck +%endif +# endif with docs +BuildRequires: coreutils +BuildRequires: desktop-file-utils +BuildRequires: diffutils +%if 0%{?rhel} && 0%{?rhel} < 9 +# Require epel-rpm-macros for the %%gpgverify macro on EL-7/EL-8, and +# %%build_cflags & %%build_ldflags on EL-7. +BuildRequires: epel-rpm-macros +%endif +# endif rhel < 9 +BuildRequires: expat-devel +BuildRequires: findutils +BuildRequires: gawk +BuildRequires: gcc +BuildRequires: gettext +BuildRequires: glibc-utils +BuildRequires: gnupg2 +BuildRequires: libcurl-devel +BuildRequires: make +BuildRequires: openssl-devel +BuildRequires: pcre2-devel +BuildRequires: perl(Error) +BuildRequires: perl(lib) +BuildRequires: perl(Test) +%if %{use_perl_generators} +BuildRequires: perl-generators +%endif +# endif use_perl_generators +%if %{use_perl_interpreter} +BuildRequires: perl-interpreter +%else +BuildRequires: perl +%endif +# endif use_perl_interpreter +BuildRequires: pkgconfig(bash-completion) +BuildRequires: sed +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: systemd-rpm-macros +%else +BuildRequires: systemd +%endif +BuildRequires: tcl +BuildRequires: tk +BuildRequires: xz +BuildRequires: zlib-devel >= 1.2 + +%if %{with tests} +# Test suite requirements +BuildRequires: acl +%if (0%{?fedora} && 0%{?fedora} < 40) || (0%{?rhel} >= 8 && 0%{?rhel} < 10) +# Needed by t5540-http-push-webdav.sh; recent httpd obviates this +BuildRequires: apr-util-bdb +%endif +%if 0%{?fedora} || 0%{?rhel} >= 8 +# Needed by t5559-http-fetch-smart-http2.sh +BuildRequires: mod_http2 +%endif +# endif fedora or rhel >= 8 +BuildRequires: bash +%if %{with cvs} +BuildRequires: cvs +BuildRequires: cvsps +%endif +# endif with cvs +%if %{use_glibc_langpacks} +# glibc-all-langpacks and glibc-langpack-is are needed for GETTEXT_LOCALE and +# GETTEXT_ISO_LOCALE test prereq's, glibc-langpack-en ensures en_US.UTF-8. +BuildRequires: glibc-all-langpacks +BuildRequires: glibc-langpack-en +BuildRequires: glibc-langpack-is +%endif +# endif use_glibc_langpacks +%if 0%{?fedora} || 0%{?rhel} >= 9 +BuildRequires: gnupg2-smime +%endif +# endif fedora or el >= 9 +%if 0%{?fedora} || ( 0%{?rhel} >= 7 && ( "%{_arch}" == "ppc64le" || "%{_arch}" == "x86_64" ) ) +BuildRequires: highlight +%endif +# endif fedora or el7+ (ppc64le/x86_64) +%if 0%{?fedora} >= 37 +BuildRequires: httpd-core +%else +BuildRequires: httpd +%endif +# endif fedora >= 37 +%if 0%{?fedora} && ! ( 0%{?fedora} >= 35 || "%{_arch}" == "i386" || "%{_arch}" == "s390x" ) +BuildRequires: jgit +%endif +# endif fedora (except i386 and s390x) +BuildRequires: mod_dav_svn +BuildRequires: openssh-clients +BuildRequires: perl(App::Prove) +BuildRequires: perl(CGI) +BuildRequires: perl(CGI::Carp) +BuildRequires: perl(CGI::Util) +BuildRequires: perl(DBD::SQLite) +BuildRequires: perl(Digest::MD5) +BuildRequires: perl(Fcntl) +BuildRequires: perl(File::Basename) +BuildRequires: perl(File::Copy) +BuildRequires: perl(File::Find) +BuildRequires: perl(filetest) +BuildRequires: perl(HTTP::Date) +BuildRequires: perl(IO::Pty) +BuildRequires: perl(JSON) +BuildRequires: perl(JSON::PP) +BuildRequires: perl(Mail::Address) +BuildRequires: perl(Memoize) +BuildRequires: perl(POSIX) +BuildRequires: perl(Term::ReadLine) +BuildRequires: perl(Test::More) +BuildRequires: perl(Time::HiRes) +%if %{with python3} +BuildRequires: python3-devel +%else +%if %{with python2} +BuildRequires: python2-devel +%endif +# endif with python2 +%endif +# endif with python3 +BuildRequires: subversion +BuildRequires: subversion-perl +BuildRequires: tar +BuildRequires: time +BuildRequires: zip +BuildRequires: zstd +%endif +# endif with tests + +Requires: git-core = %{version}-%{release} +Requires: git-core-doc = %{version}-%{release} +%if ! %{defined perl_bootstrap} +Requires: perl(Term::ReadKey) +%endif +# endif ! defined perl_bootstrap +Requires: perl-Git = %{version}-%{release} + +# Obsolete git-cvs if it's disabled +%if %{without cvs} +Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release} +%endif +# endif without cvs + +# Obsolete git-p4 if it's disabled +%if %{without p4} +Obsoletes: git-p4 < %{?epoch:%{epoch}:}%{version}-%{release} +%endif +# endif without p4 + +%description +Git is a fast, scalable, distributed revision control system with an +unusually rich command set that provides both high-level operations +and full access to internals. + +The git rpm installs common set of tools which are usually using with +small amount of dependencies. To install all git packages, including +tools for integrating with other SCMs, install the git-all meta-package. + +%package all +Summary: Meta-package to pull in all git tools +BuildArch: noarch +Requires: git = %{version}-%{release} +%if %{with libsecret} +Requires: git-credential-libsecret = %{version}-%{release} +%endif +# endif with libsecret +%if %{with cvs} +Requires: git-cvs = %{version}-%{release} +%endif +# endif with cvs +Requires: git-daemon = %{version}-%{release} +Requires: git-email = %{version}-%{release} +Requires: git-gui = %{version}-%{release} +%if %{with p4} +Requires: git-p4 = %{version}-%{release} +%endif +# endif with p4 +Requires: git-subtree = %{version}-%{release} +Requires: git-svn = %{version}-%{release} +Requires: git-instaweb = %{version}-%{release} +Requires: gitk = %{version}-%{release} +Requires: perl-Git = %{version}-%{release} +%if ! %{defined perl_bootstrap} +Requires: perl(Term::ReadKey) +%endif +# endif ! defined perl_bootstrap +%description all +Git is a fast, scalable, distributed revision control system with an +unusually rich command set that provides both high-level operations +and full access to internals. + +This is a dummy package which brings in all subpackages. + +%package core +Summary: Core package of git with minimal functionality +Requires: less +Requires: openssh-clients +Requires: zlib >= 1.2 +%description core +Git is a fast, scalable, distributed revision control system with an +unusually rich command set that provides both high-level operations +and full access to internals. + +The git-core rpm installs really the core tools with minimal +dependencies. Install git package for common set of tools. +To install all git packages, including tools for integrating with +other SCMs, install the git-all meta-package. + +%package core-doc +Summary: Documentation files for git-core +BuildArch: noarch +Requires: git-core = %{version}-%{release} +%description core-doc +Documentation files for git-core package including man pages. + +%if %{with libsecret} +%package credential-libsecret +Summary: Git helper for accessing credentials via libsecret +BuildRequires: libsecret-devel +Requires: git = %{version}-%{release} +%description credential-libsecret +%{summary}. +%endif +# endif with libsecret + +%if %{with cvs} +%package cvs +Summary: Git tools for importing CVS repositories +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: cvs +Requires: cvsps +Requires: perl(DBD::SQLite) +%description cvs +%{summary}. +%endif +# endif with cvs + +%package daemon +Summary: Git protocol daemon +Requires: git-core = %{version}-%{release} +%{?systemd_requires} +%description daemon +The git daemon for supporting git:// access to git repositories + +%package email +Summary: Git tools for sending patches via email +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: perl(Authen::SASL) +Requires: perl(Cwd) +%if ! 0%{?rhel} +# RHEL lacks perl-Email-Valid (rhbz#2166718) +Requires: perl(Email::Valid) +%endif +Requires: perl(File::Spec) +Requires: perl(File::Spec::Functions) +Requires: perl(File::Temp) +Requires: perl(IO::Socket::SSL) +Requires: perl(Mail::Address) +Requires: perl(MIME::Base64) +Requires: perl(MIME::QuotedPrint) +Requires: perl(Net::Domain) +Requires: perl(Net::SMTP) +Requires: perl(Net::SMTP::SSL) +Requires: perl(POSIX) +Requires: perl(Sys::Hostname) +Requires: perl(Term::ANSIColor) +Requires: perl(Term::ReadLine) +Requires: perl(Text::ParseWords) +%description email +%{summary}. + +%package -n gitk +Summary: Git repository browser +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: git-gui = %{version}-%{release} +Requires: tk >= 8.4 +%description -n gitk +%{summary}. + +%package -n gitweb +Summary: Simple web interface to git repositories +BuildArch: noarch +Requires: git = %{version}-%{release} +%description -n gitweb +%{summary}. + +%package gui +Summary: Graphical interface to Git +BuildArch: noarch +Requires: gitk = %{version}-%{release} +Requires: tk >= 8.4 +%description gui +%{summary}. + +%package instaweb +Summary: Repository browser in gitweb +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: gitweb = %{version}-%{release} +%if 0%{?rhel} >= 9 +Requires: httpd +%else +Requires: lighttpd +%endif + +%description instaweb +A simple script to set up gitweb and a web server for browsing the local +repository. + +%if %{with p4} +%package p4 +Summary: Git tools for working with Perforce depots +BuildArch: noarch +%if %{with python3} +BuildRequires: python3-devel +%else +%if %{with python2} +BuildRequires: python2-devel +%endif +# endif with python2 +%endif +# endif with python3 +Requires: git = %{version}-%{release} +%description p4 +%{summary}. +%endif +# endif with p4 + +%package -n perl-Git +Summary: Perl interface to Git +BuildArch: noarch +Requires: git = %{version}-%{release} +%if %{with perl_modcompat} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +%endif +%description -n perl-Git +%{summary}. + +%package -n perl-Git-SVN +Summary: Perl interface to Git::SVN +BuildArch: noarch +Requires: git = %{version}-%{release} +%if %{with perl_modcompat} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +%endif +%description -n perl-Git-SVN +%{summary}. + +%package subtree +Summary: Git tools to merge and split repositories +BuildArch: noarch +Requires: git-core = %{version}-%{release} +%description subtree +Git subtrees allow subprojects to be included within a subdirectory +of the main project, optionally including the subproject's entire +history. + +%package svn +Summary: Git tools for interacting with Subversion repositories +BuildArch: noarch +Requires: git = %{version}-%{release} +Requires: perl(Digest::MD5) +%if ! %{defined perl_bootstrap} +Requires: perl(Term::ReadKey) +%endif +# endif ! defined perl_bootstrap +Requires: subversion +%description svn +%{summary}. + +%prep +# Verify GPG signatures +xz -dc '%{SOURCE0}' | %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data=- + +%autosetup -p1 -n %{name}-%{real_version} + +# Install print-failed-test-output script +install -p -m 755 %{SOURCE99} print-failed-test-output + +# Remove git-archimport +sed -i '/^SCRIPT_PERL += git-archimport\.perl$/d' Makefile +sed -i '/^git-archimport/d' command-list.txt +rm git-archimport.perl Documentation/git-archimport.txt + +%if %{without cvs} +# Remove git-cvs* from command list +sed -i '/^git-cvs/d' command-list.txt +%endif +# endif without cvs + +%if %{without p4} +# Remove git-p4 from command list +sed -i '/^git-p4/d' command-list.txt +%endif +# endif without p4 + +# Use these same options for every invocation of 'make'. +# Otherwise it will rebuild in %%install due to flags changes. +# Pipe to tee to aid confirmation/verification of settings. +cat << \EOF | tee config.mak +V = 1 +CFLAGS = %{build_cflags} +LDFLAGS = %{build_ldflags} +USE_LIBPCRE = 1 +ETC_GITCONFIG = %{_sysconfdir}/gitconfig +INSTALL_SYMLINKS = 1 +GITWEB_PROJECTROOT = %{_localstatedir}/lib/git +GNU_ROFF = 1 +NO_PERL_CPAN_FALLBACKS = 1 +%if 0%{?rhel} && 0%{?rhel} < 8 +NO_UNCOMPRESS2 = 1 +%endif +%if %{with python3} +PYTHON_PATH = %{__python3} +%else +%if %{with python2} +PYTHON_PATH = %{__python2} +%else +NO_PYTHON = 1 +%endif +%endif +%if %{with asciidoctor} +USE_ASCIIDOCTOR = 1 +%endif +htmldir = %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}} +prefix = %{_prefix} +perllibdir = %{perl_vendorlib} +gitwebdir = %{_localstatedir}/www/git + +# Test options +DEFAULT_TEST_TARGET = prove +GIT_PROVE_OPTS = --verbose --normalize %{?_smp_mflags} --formatter=TAP::Formatter::File +GIT_TEST_OPTS = -x --verbose-log +EOF + +# Filter bogus perl requires +# packed-refs comes from a comment in contrib/hooks/update-paranoid +%{?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 + +# Remove Git::LoadCPAN to ensure we use only system perl modules. This also +# allows the dependencies to be automatically processed by rpm. +rm -rf perl/Git/LoadCPAN{.pm,/} +grep -rlZ '^use Git::LoadCPAN::' | xargs -r0 sed -i 's/Git::LoadCPAN:://g' + +# Update gitweb default home link string +sed -i 's@"++GITWEB_HOME_LINK_STR++"@$ENV{"SERVER_NAME"} ? "git://" . $ENV{"SERVER_NAME"} : "projects"@' \ + gitweb/gitweb.perl + +# Move contrib/{contacts,subtree} docs to Documentation so they build with the +# proper asciidoc/docbook/xmlto options +mv contrib/{contacts,subtree}/git-*.txt Documentation/ + +%build +# Improve build reproducibility +export TZ=UTC +export SOURCE_DATE_EPOCH=$(date -r version +%%s 2>/dev/null) + +%make_build all %{?with_docs:doc} + +%make_build -C contrib/contacts/ all + +%if %{with libsecret} +%make_build -C contrib/credential/libsecret/ +%endif +# endif with libsecret + +%make_build -C contrib/credential/netrc/ + +%make_build -C contrib/diff-highlight/ + +%make_build -C contrib/subtree/ all + +# Fix shebang in a few places to silence rpmlint complaints +%if %{with python2} +sed -i -e '1s@#! */usr/bin/env python$@#!%{__python2}@' \ + contrib/fast-import/import-zips.py +%else +# Remove contrib/fast-import/import-zips.py which requires python2. +rm -rf contrib/fast-import/import-zips.py +%endif +# endif with python2 + +%install +%make_install %{?with_docs:install-doc} + +%make_install -C contrib/contacts + +%if %{with libsecret} +install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ + %{buildroot}%{gitexecdir} +%endif +# endif with libsecret +install -pm 755 contrib/credential/netrc/git-credential-netrc \ + %{buildroot}%{gitexecdir} +# temporarily move contrib/credential/netrc aside to prevent it from being +# deleted in the docs preparation, so the tests can be run in %%check +mv contrib/credential/netrc . + +%make_install -C contrib/subtree + +mkdir -p %{buildroot}%{_sysconfdir}/httpd/conf.d +install -pm 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf} +sed "s|@PROJECTROOT@|%{_localstatedir}/lib/git|g" \ + %{SOURCE14} > %{buildroot}%{_sysconfdir}/gitweb.conf + +# install contrib/diff-highlight and clean up to avoid cruft in git-core-doc +install -Dpm 0755 contrib/diff-highlight/diff-highlight \ + %{buildroot}%{_datadir}/git-core/contrib/diff-highlight +rm -rf contrib/diff-highlight/{Makefile,diff-highlight,*.perl,t} + +# Remove contrib/persistent-https; a) this code requires compilation; and b) it +# is licensed differently than git +rm -rf contrib/persistent-https + +# Remove contrib/scalar to avoid cruft in the git-core-doc docdir +rm -rf contrib/scalar + +# Clean up contrib/subtree to avoid cruft in the git-core-doc docdir +rm -rf contrib/subtree/{INSTALL,Makefile,git-subtree*,t} + +%if %{without cvs} +# Remove git-cvs* and gitcvs* +find %{buildroot} Documentation \( -type f -o -type l \) \ + \( -name 'git-cvs*' -o -name 'gitcvs*' \) -exec rm -f {} ';' +%endif +# endif without cvs + +%if %{without p4} +# Remove git-p4* and mergetools/p4merge +find %{buildroot} Documentation -type f -name 'git-p4*' -exec rm -f {} ';' +rm -f %{buildroot}%{gitexecdir}/mergetools/p4merge +%endif +# endif without p4 + +# Remove unneeded git-remote-testsvn so git-svn can be noarch +rm -f %{buildroot}%{gitexecdir}/git-remote-testsvn + +exclude_re="email|git-(citool|credential-libsecret|cvs|daemon|gui|instaweb|p4|subtree|svn)|gitk|gitweb|p4merge" +(find %{buildroot}{%{_bindir},%{_libexecdir}} -type f -o -type l | grep -vE "$exclude_re" | sed -e s@^%{buildroot}@@) > bin-man-doc-files +(find %{buildroot}{%{_bindir},%{_libexecdir}} -mindepth 1 -type d | grep -vE "$exclude_re" | sed -e 's@^%{buildroot}@%dir @') >> bin-man-doc-files +(find %{buildroot}%{perl_vendorlib} -type f | sed -e s@^%{buildroot}@@) > perl-git-files +(find %{buildroot}%{perl_vendorlib} -mindepth 1 -type d | sed -e 's@^%{buildroot}@%dir @') >> perl-git-files +# Split out Git::SVN files +grep Git/SVN perl-git-files > perl-git-svn-files +sed -i "/Git\/SVN/ d" perl-git-files +%if %{with docs} +(find %{buildroot}%{_mandir} -type f | grep -vE "$exclude_re|Git" | sed -e s@^%{buildroot}@@ -e 's/$/*/' ) >> bin-man-doc-files +%else +rm -rf %{buildroot}%{_mandir} +%endif +# endif with docs + +mkdir -p %{buildroot}%{_localstatedir}/lib/git +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 + +# Setup bash completion +install -Dpm 644 contrib/completion/git-completion.bash %{buildroot}%{bash_completions_dir}/git +ln -s git %{buildroot}%{bash_completions_dir}/gitk + +# Install tcsh completion +mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion +install -pm 644 contrib/completion/git-completion.tcsh \ + %{buildroot}%{_datadir}/git-core/contrib/completion/ + +# Move contrib/hooks out of %%docdir +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 \ + %{buildroot}%{_datadir}/git-core/contrib/completion/ + +# install git-gui .desktop file +desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE12} + +# symlink git-citool to git-gui if they are identical +pushd %{buildroot}%{gitexecdir} >/dev/null +if cmp -s git-gui git-citool 2>/dev/null; then + ln -svf git-gui git-citool +fi +popd >/dev/null + +# find translations +%find_lang %{name} %{name}.lang +cat %{name}.lang >> bin-man-doc-files + +# quiet some rpmlint complaints +chmod -R g-w %{buildroot} +chmod a-x %{buildroot}%{gitexecdir}/git-mergetool--lib +# These files probably are not needed +find . -regex '.*/\.\(git\(attributes\|ignore\)\|perlcriticrc\)' -delete +chmod a-x Documentation/technical/api-index.sh +find contrib -type f -print0 | xargs -r0 chmod -x + +# Split core files +not_core_re="git-(add--interactive|contacts|credential-netrc|filter-branch|instaweb|request-pull|send-mail)|gitweb" +grep -vE "$not_core_re|%{_mandir}" bin-man-doc-files > bin-files-core +touch man-doc-files-core +%if %{with docs} +grep -vE "$not_core_re" bin-man-doc-files | grep "%{_mandir}" > man-doc-files-core +%endif +# endif with docs +grep -E "$not_core_re" bin-man-doc-files > bin-man-doc-git-files + +##### DOC +# place doc files into %%{_pkgdocdir} and split them into expected packages +# contrib +not_core_doc_re="(git-(cvs|gui|citool|daemon|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}/ +# Remove contrib/ files/dirs which have nothing useful for documentation +rm -rf %{buildroot}%{_pkgdocdir}/contrib/{contacts,credential}/ +cp -p gitweb/INSTALL %{buildroot}%{_pkgdocdir}/INSTALL.gitweb +cp -p gitweb/README %{buildroot}%{_pkgdocdir}/README.gitweb + +%if %{with docs} +cp -pr Documentation/*.html Documentation/docbook-xsl.css %{buildroot}%{_pkgdocdir}/ +cp -pr Documentation/{howto,technical} %{buildroot}%{_pkgdocdir}/ +find %{buildroot}%{_pkgdocdir}/{howto,technical} -type f \ + |grep -o "%{_pkgdocdir}.*$" >> man-doc-files-core +%endif +# endif with docs + +{ + find %{buildroot}%{_pkgdocdir} -type f -maxdepth 1 \ + | grep -o "%{_pkgdocdir}.*$" \ + | grep -vE "$not_core_doc_re" + find %{buildroot}%{_pkgdocdir}/{contrib,RelNotes} -type f \ + | grep -o "%{_pkgdocdir}.*$" + find %{buildroot}%{_pkgdocdir} -type d | grep -o "%{_pkgdocdir}.*$" \ + | sed "s/^/\%dir /" +} >> man-doc-files-core +##### #DOC + +%check +%if %{without tests} +echo "*** Skipping tests" +exit 0 +%endif +# endif without tests + +%if %{with docs} && %{with linkcheck} +# Test links in HTML documentation +find %{buildroot}%{_pkgdocdir} -name "*.html" -print0 | xargs -r0 linkchecker +%endif +# endif with docs && with linkcheck + +# Tests to skip on all releases and architectures +# +# t5559-http-fetch-smart-http2 runs t5551-http-fetch-smart with +# HTTP_PROTO=HTTP/2. Unfortunately, it fails quite regularly. +# https://lore.kernel.org/git/Y4fUntdlc1mqwad5@pobox.com/ +GIT_SKIP_TESTS="t5559" + +%if 0%{?rhel} && 0%{?rhel} < 8 +# Skip tests which require mod_http2 on el7 +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5559" +%endif +# endif rhel < 8 + +%ifarch aarch64 %{arm} %{power64} +# Skip tests which fail on aarch64, arm, and ppc +# +# The following 2 tests use run_with_limited_cmdline, which calls ulimit -s 128 +# to limit the maximum stack size. +# t5541.36 'push 2000 tags over http' +# t5551.25 'clone the 2,000 tag repo to check OS command line overflow' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5541.37 t5551.25" +%endif +# endif aarch64 %%{arm} %%{power64} + +%if 0%{?rhel} == 8 && "%{_arch}" == "s390x" +# Skip tests which fail on s390x on rhel-8 +# +# The following tests fail on s390x & el8. The cause should be investigated. +# However, it's a lower priority since the same tests work consistently on +# s390x with Fedora and RHEL-9. The failures seem to originate in t5300. +# +# t5300.10 'unpack without delta' +# t5300.12 'unpack with REF_DELTA' +# t5300.13 'unpack with REF_DELTA' +# t5300.14 'unpack with OFS_DELTA' +# t5300.18 'compare delta flavors' +# t5300.20 'use packed deltified (REF_DELTA) objects' +# t5300.23 'verify pack' +# t5300.24 'verify pack -v' +# t5300.25 'verify-pack catches mismatched .idx and .pack files' +# t5300.29 'verify-pack catches a corrupted sum of the index file itself' +# t5300.30 'build pack index for an existing pack' +# t5300.45 'make sure index-pack detects the SHA1 collision' +# t5300.46 'make sure index-pack detects the SHA1 collision (large blobs)' +# t5303.5 'create corruption in data of first object' +# t5303.7 '... and loose copy of second object allows for partial recovery' +# t5303.11 'create corruption in data of first delta' +# t6300.35 'basic atom: head objectsize:disk' +# t6300.91 'basic atom: tag objectsize:disk' +# t6300.92 'basic atom: tag *objectsize:disk' +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t5300.1[02348] t5300.2[03459] t5300.30 t5300.4[56] t5303.[57] t5303.11 t6300.35 t6300.9[12]" +%endif +# endif rhel == 8 && arch == s390x + +export GIT_SKIP_TESTS + +# Set LANG so various UTF-8 tests are run +export LANG=en_US.UTF-8 + +# Explicitly enable tests which may be skipped opportunistically +# Check for variables set via test_bool_env in the test suite: +# git grep 'test_bool_env GIT_' -- t/{lib-,t[0-9]}*.sh | +# sed -r 's/.* (GIT_[^ ]+) .*/\1/g' | sort -u +export GIT_TEST_GIT_DAEMON=true +export GIT_TEST_HTTPD=true +export GIT_TEST_SVNSERVE=true +export GIT_TEST_SVN_HTTPD=true + +# Create tmpdir for test output and update GIT_TEST_OPTS +# Also update GIT-BUILD-OPTIONS to keep make from any needless rebuilding +export testdir=$(mktemp -d -p /tmp git-t.XXXX) +sed -i "s@^GIT_TEST_OPTS = .*@& --root=$testdir@" config.mak +touch -r GIT-BUILD-OPTIONS ts +sed -i "s@\(GIT_TEST_OPTS='.*\)'@\1 --root=$testdir'@" GIT-BUILD-OPTIONS +touch -r ts GIT-BUILD-OPTIONS + +# Run the tests +%__make -C t all || ./print-failed-test-output + +# Run contrib/credential/netrc tests +mkdir -p contrib/credential +mv netrc contrib/credential/ +%make_build -C contrib/credential/netrc/ test || \ +%make_build -C contrib/credential/netrc/ testverbose + +# Clean up test dir +rmdir --ignore-fail-on-non-empty "$testdir" + +%post daemon +%systemd_post git.socket + +%preun daemon +%systemd_preun git.socket + +%postun daemon +%systemd_postun_with_restart git.socket + +%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! + +%files core -f bin-files-core +#NOTE: this is only use of the %%doc macro in this spec file and should not +# be used elsewhere +%{!?_licensedir:%global license %doc} +%license COPYING +# exclude is best way here because of troubles with symlinks inside git-core/ +%exclude %{_datadir}/git-core/contrib/diff-highlight +%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/ + +%files core-doc -f man-doc-files-core +%if 0%{?rhel} && 0%{?rhel} <= 7 +# .py files are only bytecompiled on EL <= 7 +%exclude %{_pkgdocdir}/contrib/*/*.py[co] +%endif +# endif rhel <= 7 +%{_pkgdocdir}/contrib/hooks + +%if %{with libsecret} +%files credential-libsecret +%{gitexecdir}/git-credential-libsecret +%endif +# endif with libsecret + +%if %{with cvs} +%files cvs +%{_pkgdocdir}/*git-cvs*.txt +%{_bindir}/git-cvsserver +%{gitexecdir}/*cvs* +%{?with_docs:%{_mandir}/man1/*cvs*.1*} +%{?with_docs:%{_pkgdocdir}/*git-cvs*.html} +%endif +# endif with cvs + +%files daemon +%{_pkgdocdir}/git-daemon*.txt +%{_unitdir}/git.socket +%config(noreplace) %{_unitdir}/git@.service +%{gitexecdir}/git-daemon +%{_localstatedir}/lib/git +%{?with_docs:%{_mandir}/man1/git-daemon*.1*} +%{?with_docs:%{_pkgdocdir}/git-daemon*.html} + +%files email +%{_pkgdocdir}/*email*.txt +%{gitexecdir}/*email* +%{?with_docs:%{_mandir}/man1/*email*.1*} +%{?with_docs:%{_pkgdocdir}/*email*.html} + +%files -n gitk +%{_pkgdocdir}/*gitk*.txt +%{_bindir}/*gitk* +%{_datadir}/gitk +%{bash_completions_dir}/gitk +%{?with_docs:%{_mandir}/man1/*gitk*.1*} +%{?with_docs:%{_pkgdocdir}/*gitk*.html} + +%files -n gitweb +%{_pkgdocdir}/*.gitweb +%{_pkgdocdir}/gitweb*.txt +%{?with_docs:%{_mandir}/man1/gitweb.1*} +%{?with_docs:%{_mandir}/man5/gitweb.conf.5*} +%{?with_docs:%{_pkgdocdir}/gitweb*.html} +%config(noreplace)%{_sysconfdir}/gitweb.conf +%config(noreplace)%{_sysconfdir}/httpd/conf.d/%{gitweb_httpd_conf} +%{_localstatedir}/www/git/ + +%files gui +%{gitexecdir}/git-gui* +%{gitexecdir}/git-citool +%{_datadir}/applications/*git-gui.desktop +%{_datadir}/git-gui/ +%{_pkgdocdir}/git-gui.txt +%{_pkgdocdir}/git-citool.txt +%{?with_docs:%{_mandir}/man1/git-gui.1*} +%{?with_docs:%{_pkgdocdir}/git-gui.html} +%{?with_docs:%{_mandir}/man1/git-citool.1*} +%{?with_docs:%{_pkgdocdir}/git-citool.html} + +%files instaweb +%{gitexecdir}/git-instaweb +%{_pkgdocdir}/git-instaweb.txt +%{?with_docs:%{_mandir}/man1/git-instaweb.1*} +%{?with_docs:%{_pkgdocdir}/git-instaweb.html} + +%if %{with p4} +%files p4 +%{gitexecdir}/*p4* +%{gitexecdir}/mergetools/p4merge +%{_pkgdocdir}/*p4*.txt +%{?with_docs:%{_mandir}/man1/*p4*.1*} +%{?with_docs:%{_pkgdocdir}/*p4*.html} +%endif +# endif with p4 + +%files -n perl-Git -f perl-git-files +%{?with_docs:%{_mandir}/man3/Git.3pm*} + +%files -n perl-Git-SVN -f perl-git-svn-files + +%files subtree +%{gitexecdir}/git-subtree +%{_pkgdocdir}/git-subtree.txt +%{?with_docs:%{_mandir}/man1/git-subtree.1*} +%{?with_docs:%{_pkgdocdir}/git-subtree.html} + +%files svn +%{gitexecdir}/git-svn +%{_pkgdocdir}/git-svn.txt +%{?with_docs:%{_mandir}/man1/git-svn.1*} +%{?with_docs:%{_pkgdocdir}/git-svn.html} + +%changelog +* Mon Mar 31 2025 Ondřej Pohořelský - 2.47.1-2 +- add the option to sanitize sideband channel messages +- Resolves: RHEL-74175 + +* Thu Nov 28 2024 Ondřej Pohořelský - 2.47.1-1 +- update to 2.47.1 +- Resolves: RHEL-63966 + +* Tue Oct 29 2024 Troy Dawson - 2.45.2-4 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 + +* Fri Jul 19 2024 Ondřej Pohořelský - 2.45.2-3 +- build without perl_modcompat in EL >= 10 + +* Mon Jul 01 2024 Ondřej Pohořelský - 2.45.2-1 +- update to 2.45.2 +- add glibc-utils BuildRequires +- build docs with asciidoc instead of a asciidoctor +- drop git-p4 subpackage +- Resolves: RHEL-45572, RHEL-45215 + +* Mon Jun 24 2024 Troy Dawson - 2.43.1-2 +- Bump release for June 2024 mass rebuild + +* Mon Feb 12 2024 Ondřej Pohořelský - 2.43.1-1 +- update to 2.43.1 +- resolves: #2263575 + +* Wed Jan 24 2024 Fedora Release Engineering - 2.43.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.43.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Nov 21 2023 Ondřej Pohořelský - 2.43.0-1 +- update to 2.43.0 + +* Tue Nov 14 2023 Ondřej Pohořelský - 2.42.1-1 +- update to 2.42.1 + +* Wed Nov 1 2023 Joe Orton - 2.42.0-2 +- remove explicit BR for apr-util-bdb (#2247532) + +* Tue Oct 03 2023 Ondřej Pohořelský - 2.42.0-1 +- update to 2.42.0 + +* Wed Jul 19 2023 Fedora Release Engineering - 2.41.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 01 2023 Todd Zullinger - 2.41.0-1 +- update to 2.41.0 + +* Wed May 24 2023 Todd Zullinger - 2.41.0~rc2-1 +- update to 2.41.0-rc2 + +* Fri May 19 2023 Todd Zullinger - 2.41.0~rc1-1 +- update to 2.41.0-rc1 + +* Mon May 15 2023 Todd Zullinger - 2.41.0~rc0-1 +- update to 2.41.0-rc0 + +* Fri May 12 2023 Todd Zullinger - 2.40.1-2 +- use tilde versioning for release candidates + +* Tue Apr 25 2023 Todd Zullinger - 2.40.1-1 +- update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007) + +* Mon Mar 13 2023 Todd Zullinger - 2.40.0-1 +- update to 2.40.0 + +* Tue Mar 07 2023 Todd Zullinger - 2.40.0-0.2.rc2 +- update to 2.40.0-rc2 + +* Wed Mar 01 2023 Todd Zullinger - 2.40.0-0.1.rc1 +- update to 2.40.0-rc1 + +* Fri Feb 24 2023 Todd Zullinger - 2.40.0-0.0.rc0 +- update to 2.40.0-rc0 + +* Tue Feb 14 2023 Todd Zullinger - 2.39.2-1 +- update to 2.39.2 (CVE-2023-22490, CVE-2023-23946) + +* Fri Feb 03 2023 Todd Zullinger - 2.39.1-2 +- drop perl Email::Valid dep on RHEL (#2166718) + +* Thu Jan 19 2023 Fedora Release Engineering - 2.39.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Jan 17 2023 Todd Zullinger - 2.39.1-1 +- update to 2.39.1 (CVE-2022-41903, CVE-2022-23521) + +* Mon Dec 12 2022 Todd Zullinger - 2.39.0-1 +- update to 2.39.0 + +* Mon Dec 05 2022 Todd Zullinger - 2.39.0-0.2.rc2 +- update to 2.39.0-rc2 + +* Wed Nov 30 2022 Todd Zullinger - 2.39.0-0.1.rc1 +- update to 2.39.0-rc1 + +* Wed Nov 23 2022 Todd Zullinger - 2.39.0-0.0.rc0 +- update to 2.39.0-rc0 +- add mod_http2 BuildRequires for tests + +* Sat Nov 12 2022 Todd Zullinger - 2.38.1-3 +- use %%bash_completions_dir + +* Mon Nov 07 2022 Todd Zullinger - 2.38.1-2 +- don't ship contrib/persistent-https as documentation +- update license data and convert to SPDX format + +* Tue Oct 18 2022 Todd Zullinger - 2.38.1-1 +- update to 2.38.1 (CVE-2022-39253, CVE-2022-39260) + +* Mon Oct 03 2022 Todd Zullinger - 2.38.0-1 +- update to 2.38.0 + +* Wed Sep 28 2022 Todd Zullinger - 2.38.0-0.2.rc2 +- update to 2.38.0-rc2 + +* Wed Sep 21 2022 Todd Zullinger - 2.38.0-0.1.rc1 +- update to 2.38.0-rc1 +- git-subtree sub-package is noarch + +* Fri Sep 16 2022 Todd Zullinger - 2.38.0-0.0.rc0 +- update to 2.38.0-rc0 + +* Tue Aug 30 2022 Todd Zullinger - 2.37.3-1 +- update to 2.37.3 +- remove %%changelog entries prior to 2020 +- tests: try harder to find open ports for apache, git, and svn + +* Sun Aug 14 2022 Todd Zullinger - 2.37.2-2 +- consolidate git-archimport removal in %%prep + +* Thu Aug 11 2022 Todd Zullinger - 2.37.2-1 +- update to 2.37.2 + +* Sat Jul 23 2022 Todd Zullinger - 2.37.1-2 +- require systemd-rpm-macros rather than systemd + +* Thu Jul 21 2022 Fedora Release Engineering - 2.37.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jul 12 2022 Todd Zullinger - 2.37.1-1 +- update to 2.37.1 (CVE-2022-29187) + +* Mon Jun 27 2022 Todd Zullinger - 2.37.0-1 +- update to 2.37.0 + +* Wed Jun 22 2022 Todd Zullinger - 2.37.0-0.2.rc2 +- update to 2.37.0-rc2 + +* Fri Jun 17 2022 Todd Zullinger - 2.37.0-0.1.rc1 +- update to 2.37.0-rc1 + +* Tue Jun 14 2022 Todd Zullinger - 2.37.0-0.0.rc0 +- update to 2.37.0-rc0 +- fix GIT_SKIP_TESTS for EL8 s390x +- remove --with/--without emacs build conditional + +* Fri Jun 03 2022 Jitka Plesnikova - 2.36.1-1.2 +- Perl 5.36 re-rebuild of bootstrapped packages + +* Wed Jun 01 2022 Jitka Plesnikova - 2.36.1-1.1 +- Perl 5.36 rebuild + +* Fri May 06 2022 Todd Zullinger - 2.36.1-1 +- update to 2.36.1 + +* Mon Apr 18 2022 Todd Zullinger - 2.36.0-1 +- update to 2.36.0 + +* Thu Apr 14 2022 Todd Zullinger - 2.36.0-0.3.rc2 +- usability improvements on top of CVE-2022-24765 + +* Wed Apr 13 2022 Todd Zullinger - 2.36.0-0.2.rc2 +- update to 2.36.0-rc2 (CVE-2022-24765) +- disable failing tests on s390x on EL8 + +* Fri Apr 08 2022 Todd Zullinger - 2.36.0-0.1.rc1 +- update to 2.36.0-rc1 + +* Tue Apr 05 2022 Todd Zullinger - 2.36.0-0.0.rc0 +- update to 2.36.0-rc0 +- use httpd-core for tests on Fedora >= 37 + +* Sat Jan 29 2022 Todd Zullinger - 2.35.1-1 +- update to 2.35.1 + +* Mon Jan 24 2022 Todd Zullinger - 2.35.0-1 +- update to 2.35.0 +- set path to linker script in %%_package_note_file + +* Sat Jan 22 2022 Todd Zullinger - 2.35.0-0.2.rc2.3 +- remove contrib/scalar to avoid cruft in git-core-doc + +* Fri Jan 21 2022 Todd Zullinger - 2.35.0-0.2.rc2.2 +- fix compilation on EL7 + +* Thu Jan 20 2022 Todd Zullinger - 2.35.0-0.2.rc2.1 +- checkout: avoid BUG() when hitting a broken repository (rhbz#2042920) + +* Wed Jan 19 2022 Todd Zullinger - 2.35.0-0.2.rc2 +- update to 2.35.0-rc2 + +* Sat Jan 15 2022 Todd Zullinger - 2.35.0-0.1.rc1 +- update to 2.35.0-rc1 + +* Mon Jan 10 2022 Todd Zullinger - 2.35.0-0.0.rc0 +- update to 2.35.0-rc0 + +* Thu Nov 25 2021 Todd Zullinger - 2.34.1-1 +- update to 2.34.1 +- fix gpgsm issues with gnupg-2.3 + +* Mon Nov 15 2021 Todd Zullinger - 2.34.0-1 +- update to 2.34.0 + +* Sun Nov 14 2021 Todd Zullinger - 2.33.1-3 +- add more git-email perl dependencies +- Resolves: rhbz#2020487 + +* Thu Nov 11 2021 Ondřej Pohořelský - 2.33.1-2 +- add Perl requires to git-email +- Resolves: rhbz#2020487 + +* Wed Oct 13 2021 Todd Zullinger - 2.33.1-1 +- update to 2.33.1 + +* Mon Sep 27 2021 Ondřej Pohořelský - 2.33.0-1 +- update to 2.33.0 +- contrib/hooks/multimail is no longer distributed with git + +* Tue Sep 14 2021 Sahana Prasad - 2.32.0-1.2 +- Rebuilt with OpenSSL 3.0.0 + +* Thu Jul 22 2021 Fedora Release Engineering - 2.32.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun Jun 06 2021 Todd Zullinger - 2.32.0-1 +- update to 2.32.0 +- add perl(File::Compare) BuildRequires +- fix var to enable git-svn tests with httpd +- remove %%changelog entries prior to 2019 + +* Thu Jun 03 2021 Todd Zullinger - 2.32.0-0.5.rc3 +- drop jgit on Fedora >= 35 + Resolves: rhbz#1965808 + +* Wed Jun 02 2021 Todd Zullinger - 2.32.0-0.4.rc3 +- update to 2.32.0-rc3 + +* Fri May 28 2021 Todd Zullinger - 2.32.0-0.3.rc2 +- update to 2.32.0-rc2 + +* Mon May 24 2021 Jitka Plesnikova - 2.32.0-0.2.rc1 +- Perl 5.34 re-rebuild of bootstrapped packages + +* Sat May 22 2021 Todd Zullinger - 2.32.0-0.1.rc1 +- update to 2.32.0-rc1 +- rearrange python2/python3 conditionals +- re-enable git-p4 with python3 +- add coreutils BuildRequires +- remove unneeded NEEDS_CRYPTO_WITH_SSL + +* Fri May 21 2021 Jitka Plesnikova - 2.31.1-3.1 +- Perl 5.34 rebuild + +* Mon May 17 2021 Todd Zullinger - 2.32.0-0.0.rc0 +- update to 2.32.0-rc0 + +* Sun May 16 2021 Todd Zullinger +- clean up various dist conditionals + +* Wed Apr 21 2021 Todd Zullinger - 2.31.1-3 +- apply upstream patch to fix clone --bare segfault + Resolves: rhbz#1952030 + +* Tue Apr 06 2021 Todd Zullinger - 2.31.1-2 +- remove two stray %%defattr macros from %%files sections + +* Sat Mar 27 2021 Todd Zullinger - 2.31.1-1 +- update to 2.31.1 + +* Fri Mar 19 2021 Todd Zullinger - 2.31.0-2 +- fix git bisect with annotaged tags + +* Mon Mar 15 2021 Todd Zullinger - 2.31.0-1 +- update to 2.31.0 + +* Tue Mar 09 2021 Todd Zullinger - 2.31.0-0.2.rc2 +- update to 2.31.0-rc2 + +* Wed Mar 03 2021 Todd Zullinger - 2.31.0-0.1.rc1 +- update to 2.31.0-rc1 + +* Tue Mar 02 2021 Todd Zullinger - 2.31.0-0.0.rc0 +- update to 2.31.0-rc0 + +* Tue Mar 02 2021 Todd Zullinger - 2.30.1-3 +- use %%{gpgverify} macro to verify tarball signature + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.30.1-2.1 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Thu Feb 18 2021 Ondřej Pohořelský +- re-enable t7812-grep-icase-non-ascii on s390x + +* Tue Feb 09 2021 Todd Zullinger - 2.30.1-1 +- update to 2.30.1 + +* Mon Feb 08 2021 Ondřej Pohořelský - 2.30.0-2 +- add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb + +* Tue Jan 26 2021 Fedora Release Engineering - 2.30.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/SOURCES/git.xinetd.in b/git.xinetd.in similarity index 100% rename from SOURCES/git.xinetd.in rename to git.xinetd.in diff --git a/SOURCES/git@.service.in b/git@.service.in similarity index 100% rename from SOURCES/git@.service.in rename to git@.service.in diff --git a/SOURCES/gitweb-httpd.conf b/gitweb-httpd.conf similarity index 100% rename from SOURCES/gitweb-httpd.conf rename to gitweb-httpd.conf diff --git a/SOURCES/gitweb.conf.in b/gitweb.conf.in similarity index 100% rename from SOURCES/gitweb.conf.in rename to gitweb.conf.in diff --git a/SOURCES/gpgkey-junio.asc b/gpgkey-junio.asc similarity index 100% rename from SOURCES/gpgkey-junio.asc rename to gpgkey-junio.asc diff --git a/print-failed-test-output b/print-failed-test-output new file mode 100644 index 0000000..4e65662 --- /dev/null +++ b/print-failed-test-output @@ -0,0 +1,26 @@ +#!/bin/bash + +shopt -s failglob + +# Print output from failing tests +printf -v sep "%0.s-" {1..80} +for exit_file in t/test-results/*.exit; do + [ "$(< "$exit_file")" -eq 0 ] && continue + out_file="${exit_file%exit}out" + printf '\n%s\n%s\n%s\n' "$sep" "$out_file" "$sep" + cat "$out_file" +done + +# tar up test-results & $testdir, then print base64 encoded output +# +# copy $testdir contents to test-results to avoid absolute paths with tar +cp -a $testdir/* t/test-results/ +begin='-----BEGIN BASE64 MESSAGE-----' +end='-----END BASE64 MESSAGE-----' +printf '\n%s\n' 'test-results and trash directory output follows; decode via:' +printf '%s\n' "sed -n '/^${begin}$/,/^${end}$/{/^${begin}$/!{/^${end}$/!p}}' build.log | base64 -d >output.tar.zst" +printf '%s\n' "$begin" +tar -C t -cf - test-results/ | zstdmt -17 | base64 +printf '%s\n' "$end" + +exit 1 diff --git a/sources b/sources new file mode 100644 index 0000000..d82063b --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (git-2.47.1.tar.sign) = 89557b00303ce7ea063e4bbe8a81827c44ffaf997ae5a5bd1db6f671b10fd1050069bf74a10d797ec6f65453b9839e34fdc69f029bc8a6cfb8e9918fad8eda1a +SHA512 (git-2.47.1.tar.xz) = 6abe551c464b307bc3f6f474257e0be3e1a9eba1406af6463216b796c55a35356009c2f7bd9b4fa2d1798da5f885a3843f6ad8750ab69595f748f9ea8ed76fea