diff --git a/.gitignore b/.gitignore index e69de29..c6d0c92 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,8 @@ +*~ +*.gpg +*.rpm +*.sign +*.tar.xz +/.build*.log +/git-*/ +/results_git/ diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..88615c5 --- /dev/null +++ b/.mailmap @@ -0,0 +1,18 @@ + + + + + + +James Bowes + +Josh Boyer + + + + + + + + + diff --git a/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch b/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch new file mode 100644 index 0000000..37a22dd --- /dev/null +++ b/git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch @@ -0,0 +1,26 @@ +From 09891c65a5f7409ce0bd37daced0ff31fbb1b1c9 Mon Sep 17 00:00:00 2001 +From: Todd Zullinger +Date: Mon, 23 Mar 2009 00:03:36 -0400 +Subject: [PATCH] git-cvsimport: Ignore cvsps-2.2b1 Branches: output + +Signed-off-by: Todd Zullinger +--- + git-cvsimport.perl | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/git-cvsimport.perl b/git-cvsimport.perl +index e439202..d020f1a 100755 +--- a/git-cvsimport.perl ++++ b/git-cvsimport.perl +@@ -952,7 +952,7 @@ while () { + } elsif (/^-+$/) { # end of unknown-line processing + $state = 1; + } elsif ($state != 11) { # ignore stuff when skipping +- print STDERR "* UNKNOWN LINE * $_\n"; ++ print STDERR "* UNKNOWN LINE * $_\n" unless /^Branches: /; + } + } + commit() if $branch and $state != 11; +-- +1.6.2.2 + diff --git a/git-gui.desktop b/git-gui.desktop new file mode 100644 index 0000000..f74f066 --- /dev/null +++ b/git-gui.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=Git GUI +GenericName=Git GUI +Comment=A graphical interface to Git +Exec=git gui +Icon=/usr/share/git-gui/lib/git-gui.ico +Terminal=false +Type=Application +Categories=Development; diff --git a/git.rpmlintrc b/git.rpmlintrc new file mode 100644 index 0000000..b2d9407 --- /dev/null +++ b/git.rpmlintrc @@ -0,0 +1,26 @@ +from Config import * + +# the dictionary is a bit limited +addFilter("git.* spelling-error %description .* subpackages") +addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject|subtree)") + +# git-core-doc requires git-core, which provides the symlink target +addFilter("git(-core-doc)?\..*: W: dangling-relative-symlink /usr/share/doc/git/contrib/hooks ../../../git-core/contrib/hooks") + +# git requires git-core, which provides the symlink target +addFilter("git\..*: W: dangling-relative-symlink /usr/libexec/git-core/git-difftool ../../bin/git") + +# git-gui requires git, which provides the git binary +addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications/git-gui.desktop git") + +# ignore no doc/manpage warnings where we don't expect any documentation +addFilter("git-(all|core|credential-libsecret)\..*: W: no-documentation") +addFilter("perl-Git-SVN.noarch: W: no-documentation") +addFilter("git-core\..*: W: no-manual-page-for-binary") + +# nothing provides git-gnome-keyring, it's simply obsolete +# similarly ignore the warning when git-cvs and git-p4 are disabled +addFilter("git.* obsolete-not-provided git-(cvs|gnome-keyring|p4)") + +# we BR emacs which requires emacs-common and provides %{_emacs_version} +addFilter("git.(spec|src): .* Possible unexpanded macro in: Requires:.*emacs-filesystem >= %{_emacs_version}") diff --git a/git.skip-test-patterns b/git.skip-test-patterns new file mode 100644 index 0000000..f80cadf --- /dev/null +++ b/git.skip-test-patterns @@ -0,0 +1,22 @@ +expensive 2GB clone test; enable with GIT_TEST_CLONE_2GB=true +filesystem does not corrupt utf-8 +GIT_SKIP_TESTS +missing AUTOIDENT +missing CASE_INSENSITIVE_FS +missing DONTHAVEIT +missing EXPENSIVE +missing JGIT +missing !?LAZY_(TRUE|FALSE) +missing MINGW +missing NATIVE_CRLF +missing !PCRE +missing !PTHREADS +missing RFC1991 +missing TAR_NEEDS_PAX_FALLBACK +skipping case insensitive tests +skipping git p4 tests +skipping remote-svn tests, python not available +skipping svn-info test +skipping Windows-(only path|specific) tests +Test requiring writable / skipped +used to test external credential helpers diff --git a/git.socket b/git.socket new file mode 100644 index 0000000..3dec01d --- /dev/null +++ b/git.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Git Activation Socket + +[Socket] +ListenStream=9418 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/git.spec b/git.spec new file mode 100644 index 0000000..dd071c6 --- /dev/null +++ b/git.spec @@ -0,0 +1,1641 @@ +# 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 >= 34 +%if 0%{?fedora} >= 34 +%bcond_with emacs +%else +%bcond_without emacs +%endif + +# Settings for Fedora +%if 0%{?fedora} +# linkchecker is not available on EL +%bcond_without linkcheck +%else +%bcond_with linkcheck +%endif + +# Settings for Fedora and EL >= 9 +%if 0%{?fedora} || 0%{?rhel} >= 9 +%bcond_without asciidoctor +%else +%bcond_with asciidoctor +%endif + +# Settings for Fedora and EL > 7 +%if 0%{?fedora} || 0%{?rhel} > 7 +%bcond_with python2 +%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 + +# Define for release candidates +%global rcrev .rc1 + +Name: git +Version: 2.29.0 +Release: 0.1%{?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 +Source9: 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 + +%if %{with docs} +# pod2man is needed to build Git.3pm +BuildRequires: %{_bindir}/pod2man +%if %{with asciidoctor} +BuildRequires: docbook5-style-xsl +BuildRequires: rubygem-asciidoctor +%else +BuildRequires: asciidoc >= 8.4.1 +%endif +# endif with asciidoctor +BuildRequires: xmlto +%if %{with linkcheck} +BuildRequires: linkchecker +%endif +# endif with linkcheck +%endif +# endif with docs +BuildRequires: desktop-file-utils +BuildRequires: diffutils +%if %{with emacs} +BuildRequires: emacs-common +%endif +# endif emacs-common +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 %{with emacs} && %{emacs_filesystem} && %{defined _emacs_version} +Requires: emacs-filesystem >= %{_emacs_version} +%endif +# endif with emacs && emacs_filesystem + +# Obsolete emacs-git if it's disabled +%if %{without emacs} +Obsoletes: emacs-git < %{?epoch:%{epoch}:}%{version}-%{release} +%endif +# endif without emacs + +# Obsolete git-cvs if it's disabled +%if %{without cvs} +Obsoletes: git-cvs < %{?epoch:%{epoch}:}%{version}-%{release} +%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-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 %{with emacs} && ! %{emacs_filesystem} +Requires: emacs-git = %{version}-%{release} +%endif +# endif with emacs && ! emacs_filesystem +%description all +Git is a fast, scalable, distributed revision control system with an +unusually rich command set that provides both high-level operations +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(Net::SMTP::SSL) +%description email +%{summary}. + +%if %{with emacs} && ! %{emacs_filesystem} +%package -n emacs-git +Summary: Git version control system support for Emacs +Requires: git = %{version}-%{release} +BuildArch: noarch +Requires: emacs(bin) >= %{_emacs_version} +Obsoletes: emacs-git-el < 2.18.0-0.0 +Provides: emacs-git-el = %{version}-%{release} +%description -n emacs-git +%{summary}. +%endif +# endif with emacs && ! emacs_filesystem + +%package -n gitk +Summary: Git repository browser +BuildArch: noarch +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: lighttpd + +%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 %{SOURCE9} +xz -dc %{SOURCE0} | # Upstream signs the uncompressed tarballs + gpgv2 --homedir "$gpghome" --quiet --keyring %{SOURCE9}.gpg %{SOURCE1} - +rm -rf "$gpghome" # Cleanup tmp gpg home dir + +# Ensure a blank line follows autosetup, el6 chokes otherwise +# https://bugzilla.redhat.com/1310704 +%autosetup -p1 -n %{name}-%{version}%{?rcrev} + +# Install print-failed-test-output script +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 \ + contrib/hooks/multimail/git_multimail.py \ + contrib/hooks/multimail/migrate-mailhook-config \ + contrib/hooks/multimail/post-receive.example +%else +# Remove contrib/fast-import/import-zips.py which requires python2. +rm -rf contrib/fast-import/import-zips.py +%endif +# endif with python2 + +# The multimail hook is installed with git. Use python3 to avoid an +# unnecessary python2 dependency, if possible. Also fix contrib/hg-to-git +# while here. +%if %{with python3} +sed -i -e '1s@#!\( */usr/bin/env python\|%{__python2}\)$@#!%{__python3}@' \ + contrib/hg-to-git/hg-to-git.py \ + contrib/hooks/multimail/git_multimail.py \ + contrib/hooks/multimail/migrate-mailhook-config \ + contrib/hooks/multimail/post-receive.example +%endif +# endif with python3 + +%install +%make_install %{?with_docs:install-doc} + +%make_install -C contrib/contacts + +%if %{with emacs} +%global elispdir %{_emacs_sitelispdir}/git +pushd contrib/emacs >/dev/null +for el in *.el ; do + # Note: No byte-compiling is done. These .el files are one-line stubs + # which only serve to point users to better alternatives. + install -Dpm 644 $el %{buildroot}%{elispdir}/$el + rm -f $el # clean up to avoid cruft in git-core-doc +done +popd >/dev/null +%endif +# endif with emacs + +%if %{with libsecret} +install -pm 755 contrib/credential/libsecret/git-credential-libsecret \ + %{buildroot}%{gitexecdir} +%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} + +# 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/ + +# Drop .py extension from git_multimail to avoid byte-compiling +mv contrib/hooks/multimail/git_multimail{.py,} + +# Move contrib/hooks out of %%docdir +mkdir -p %{buildroot}%{_datadir}/git-core/contrib +mv contrib/hooks %{buildroot}%{_datadir}/git-core/contrib +pushd contrib > /dev/null +ln -s ../../../git-core/contrib/hooks +popd > /dev/null + +# Install git-prompt.sh +mkdir -p %{buildroot}%{_datadir}/git-core/contrib/completion +install -pm 644 contrib/completion/git-prompt.sh \ + %{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|difftool|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 +GIT_SKIP_TESTS="" + +%ifarch aarch64 %{arm} %{power64} +# Skip tests which fail on aarch64, arm, and ppc +# +# The following 2 tests use run_with_limited_cmdline, which calls ulimit -s 128 +# to limit the maximum stack size. +# t5541.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.35 t5551.25" +%endif +# endif aarch64 %%{arm} %%{power64} + +%ifarch %{power64} +# Skip tests which fail on ppc +# +# t9115-git-svn-dcommit-funky-renames is disabled because it frequently fails. +# The port it uses (9115) is already in use. It is unclear if this is +# due to an issue in the test suite or a conflict with some other process on +# the build host. It only appears to occur on ppc-arches. +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t9115" +%endif +# endif %%{power64} + +%ifarch s390x +# Skip tests which fail on s390x +# +# t7812-grep-icase-non-ascii's "PCRE v2: grep non-ASCII from invalid UTF-8 +# data" test fails on big-endian arches. This is known upstream and will +# hopefully be resolved soon (2019/10/24, tmz) +GIT_SKIP_TESTS="$GIT_SKIP_TESTS t7812.11" +%endif +# endif s390x + +export GIT_SKIP_TESTS + +# Set LANG so various UTF-8 tests are run +export LANG=en_US.UTF-8 + +# Explicitly enable tests which may be skipped opportunistically +# (Check for variables set via test_tristate in the test suite) +export GIT_SVN_TEST_HTTPD=true +export GIT_TEST_GIT_DAEMON=true +export GIT_TEST_HTTPD=true +export GIT_TEST_SVNSERVE=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 %{with emacs} && %{emacs_filesystem} +%{elispdir} +%endif +# endif with emacs && emacs_filesystem +%{_datadir}/git-core/contrib/diff-highlight +%{_datadir}/git-core/contrib/hooks/multimail +%{_datadir}/git-core/contrib/hooks/update-paranoid +%{_datadir}/git-core/contrib/hooks/setgitperms.perl +%{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample +%{_datadir}/git-core/templates/hooks/pre-rebase.sample +%{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample + +%files all +# No files for you! + +%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/multimail +%exclude %{_datadir}/git-core/contrib/hooks/update-paranoid +%exclude %{_datadir}/git-core/contrib/hooks/setgitperms.perl +%exclude %{_datadir}/git-core/templates/hooks/fsmonitor-watchman.sample +%exclude %{_datadir}/git-core/templates/hooks/pre-rebase.sample +%exclude %{_datadir}/git-core/templates/hooks/prepare-commit-msg.sample +%{bashcomproot} +%{_datadir}/git-core/ + +%files core-doc -f man-doc-files-core +%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 %{with emacs} && ! %{emacs_filesystem} +%files -n emacs-git +%{_pkgdocdir}/contrib/emacs/README +%{elispdir} +%endif +# endif with emacs && ! emacs_filesystem + +%files email +%{_pkgdocdir}/*email*.txt +%{gitexecdir}/*email* +%{?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 Oct 09 2020 Todd Zullinger - 2.29.0-0.1.rc1 +- update to 2.29.0-rc1 +- drop emacs-git stub for fedora >= 34 (#1882360) +- adjust python hashbang in contrib/hg-to-git, it supports python3 + +* Mon Oct 05 2020 Todd Zullinger - 2.29.0-0.0.rc0 +- update to 2.29.0-rc0 + +* Mon Jul 27 2020 Todd Zullinger - 2.28.0-1 +- update to 2.28.0 + +* Mon Jul 27 2020 Fedora Release Engineering - 2.28.0-0.3.rc2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 22 2020 Todd Zullinger - 2.28.0-0.2.rc2 +- update to 2.28.0-rc2 + +* Sat Jul 18 2020 Todd Zullinger - 2.28.0-0.1.rc1 +- update to 2.28.0-rc1 + +* Thu Jul 09 2020 Todd Zullinger - 2.28.0-0.0.rc0 +- update to 2.28.0-rc0 + +* Fri Jun 26 2020 Jitka Plesnikova - 2.27.0-1.2 +- Perl 5.32 re-rebuild of bootstrapped packages + +* Tue Jun 23 2020 Jitka Plesnikova - 2.27.0-1.1 +- Perl 5.32 rebuild + +* Mon Jun 01 2020 Todd Zullinger - 2.27.0-1 +- update to 2.27.0 + +* Tue May 26 2020 Todd Zullinger - 2.27.0-0.2.rc2 +- update to 2.27.0-rc2 + +* Thu May 21 2020 Todd Zullinger - 2.27.0-0.1.rc1 +- update to 2.27.0-rc1 + +* Thu May 21 2020 Merlin Mathesius - 2.26.2-2 +- Minor conditional fixes for ELN + +* Mon Apr 20 2020 Todd Zullinger - 2.26.2-1 +- update to 2.26.2 (CVE-2020-11008) + +* Tue Apr 14 2020 Todd Zullinger - 2.26.1-1 +- update to 2.26.1 (CVE-2020-5260) + +* Sat Apr 04 2020 Todd Zullinger - 2.26.0-2 +- fix issue with fast-forward rebases when rebase.abbreviateCommands is set +- fix/quiet rpmlint issues from libsecret split + +* Thu Apr 02 2020 Björn Esser - 2.26.0-1.1 +- Fix string quoting for rpm >= 4.16 + +* Sun Mar 22 2020 Todd Zullinger - 2.26.0-1 +- update to 2.26.0 + +* Mon Mar 16 2020 Todd Zullinger - 2.26.0-0.3.rc2 +- update to 2.26.0-rc2 + +* Thu Mar 12 2020 Todd Zullinger - 2.26.0-0.2.rc1 +- remove s390x gcc10 workaround (#1799408) + +* Tue Mar 10 2020 Todd Zullinger - 2.26.0-0.1.rc1 +- update to 2.26.0-rc1 +- adjust make test options +- add missing build deps for tests + +* Fri Mar 06 2020 Todd Zullinger - 2.26.0-0.0.rc0 +- update to 2.26.0-rc0 + +* Wed Feb 26 2020 Todd Zullinger - 2.25.1-4 +- use Asciidoctor to build documentation when possible + +* Sat Feb 22 2020 Todd Zullinger - 2.25.1-3 +- work around issue on s390x with gcc10 (#1799408) + +* Wed Feb 19 2020 Todd Zullinger - 2.25.1-2 +- split libsecret credential helper into a subpackage (#1804741) +- consolidate macros for Fedora/EPEL +- remove unneeded gnome-keyring obsoletes + +* Mon Feb 17 2020 Todd Zullinger - 2.25.1-1 +- update to 2.25.1 + +* Tue Jan 28 2020 Fedora Release Engineering - 2.25.0-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 14 2020 Tom Stellard - 2.25.0-2 +- Use make_build macro when running tests + +* Tue Jan 14 2020 Todd Zullinger - 2.25.0-1 +- update to 2.25.0 + +* Thu Jan 09 2020 Todd Zullinger - 2.25.0-0.2.rc2 +- update to 2.25.0-rc2 + +* Fri Jan 03 2020 Todd Zullinger - 2.25.0-0.1.rc1 +- update to 2.25.0-rc1 +- only add highlight test BR for ppc64le/x86_64 on EL7+ + +* Wed Dec 25 2019 Todd Zullinger - 2.25.0-0.0.rc0 +- update to 2.25.0-rc0 + +* Thu Dec 19 2019 Todd Zullinger - 2.24.1-2 +- fix git-daemon systemd scriptlets (#1785088) + +* Tue Dec 10 2019 Todd Zullinger - 2.24.1-1 +- update to 2.24.1 (CVE-2019-1348, CVE-2019-1349, CVE-2019-1350, CVE-2019-1351, + CVE-2019-1352, CVE-2019-1353, CVE-2019-1354, and CVE-2019-1387) + +* Wed Dec 04 2019 Todd Zullinger - 2.24.0-2 +- restore jgit BR for use in tests + +* Mon Nov 04 2019 Todd Zullinger - 2.24.0-1 +- update to 2.24.0 + +* Thu Oct 31 2019 Todd Zullinger - 2.24.0-0.2.rc2 +- update to 2.24.0-rc2 + +* Sun Oct 27 2019 Todd Zullinger - 2.24.0-0.1.rc1.1 +- disable linkchecker on all EL releases + +* Thu Oct 24 2019 Todd Zullinger - 2.24.0-0.1.rc1 +- update to 2.24.0-rc1 +- skip failing test in t7812-grep-icase-non-ascii on s390x +- gitk: add Requires: git-gui (#1765113) + +* Sat Oct 19 2019 Todd Zullinger - 2.24.0-0.0.rc0 +- update to 2.24.0-rc0 +- fix t0500-progress-display on big-endian arches + +* Fri Aug 16 2019 Todd Zullinger - 2.23.0-1 +- Update to 2.23.0 + +* Sun Aug 11 2019 Todd Zullinger - 2.23.0-0.2.rc2 +- Update to 2.23.0-rc2 + +* Fri Aug 02 2019 Todd Zullinger - 2.23.0-0.1.rc1 +- Update to 2.23.0-rc1 + +* Mon Jul 29 2019 Todd Zullinger - 2.23.0-0.0.rc0 +- Update to 2.23.0-rc0 + +* Thu Jul 25 2019 Todd Zullinger - 2.22.0-2 +- completion: do not cache if --git-completion-helper fails +- avoid trailing comments in spec file +- drop jgit on Fedora > 30 + +* Thu Jul 25 2019 Fedora Release Engineering - 2.22.0-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 07 2019 Todd Zullinger - 2.22.0-1 +- Update to 2.22.0 + +* Tue Jun 04 2019 Jitka Plesnikova - 2.22.0-0.7.rc3 +- Perl 5.30 re-rebuild updated packages + +* Mon Jun 03 2019 Todd Zullinger - 2.22.0-0.6.rc3 +- Update to 2.22.0-rc3 + +* Sun Jun 02 2019 Jitka Plesnikova - 2.22.0-0.5.rc2 +- Perl 5.30 re-rebuild of bootstrapped packages + +* Sat Jun 01 2019 Jitka Plesnikova - 2.22.0-0.4.rc2 +- Perl 5.30 rebuild + +* Thu May 30 2019 Todd Zullinger - 2.22.0-0.3.rc2 +- Update to 2.22.0-rc1 + +* Fri May 24 2019 Todd Zullinger - 2.22.0-0.2.rc1 +- Apply upstream fixes for diff-parseopt issues on s390x + +* Sun May 19 2019 Todd Zullinger - 2.22.0-0.1.rc1 +- Update to 2.22.0-rc1 + +* Mon May 13 2019 Todd Zullinger - 2.22.0-0.0.rc0 +- Update to 2.22.0-rc0 +- Ensure a consistent format for test output +- Improve JGIT test prereq (jgit on Fedora >= 30 is broken) +- Add perl(JSON::PP) BuildRequires for trace2 tests + +* Sun Feb 24 2019 Todd Zullinger - 2.21.0-1 +- Update to 2.21.0 +- Move gitweb manpages to gitweb package +- Link git-citool to git-gui if they are identical + +* Tue Feb 19 2019 Todd Zullinger - 2.21.0-0.2.rc2 +- Update to 2.21.0.rc2 + +* Fri Feb 15 2019 Todd Zullinger +- Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility + +* Wed Feb 13 2019 Todd Zullinger - 2.21.0-0.1.rc1 +- Update to 2.21.0.rc1 + +* Thu Feb 07 2019 Todd Zullinger - 2.21.0-0.0.rc0 +- Update to 2.21.0.rc0 +- Remove %%changelog entries prior to 2017 + +* Thu Jan 31 2019 Todd Zullinger - 2.20.1-2 +- Remove extraneous pcre BuildRequires +- Add additional BuildRequires for i18n locales used in tests +- Replace gitweb home-link with inline sed +- Add gnupg2-smime and perl JSON BuildRequires for tests +- Work around gpg-agent issues in the test suite +- Drop gnupg BuildRequires on fedora >= 30 +- Fix formatting of contrib/{contacts,subtree} docs +- Use %%{build_cflags} and %%{build_ldflags} +- Drop unneeded TEST_SHELL_PATH make variable + +* Thu Jan 31 2019 Fedora Release Engineering - 2.20.1-1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Dec 15 2018 Todd Zullinger - 2.20.1-1 +- Update to 2.20.1 + +* Sun Dec 09 2018 Todd Zullinger - 2.20.0-1 +- Update to 2.20.0 + +* Sat Dec 01 2018 Todd Zullinger - 2.20.0-0.2.rc2 +- Update to 2.20.0.rc2 + +* Wed Nov 21 2018 Todd Zullinger - 2.20.0-0.1.rc1 +- Update to 2.20.0.rc1 + +* Wed Nov 21 2018 Todd Zullinger - 2.19.2-1 +- Update to 2.19.2 + +* Tue Oct 23 2018 Todd Zullinger +- Skip test BuildRequires when --without tests is used +- Simplify gpg verification of Source0 +- Use %%{without ...} macro consistently +- Add comments to %%endif statements +- Add glibc-langpack-en BuildRequires for en_US.UTF-8 locale + +* Mon Oct 22 2018 Pavel Cahyna - 2.19.1-2 +- Update condition for the t5540-http-push-webdav test for future RHEL + +* Fri Oct 05 2018 Todd Zullinger - 2.19.1-1 +- Update to 2.19.1 (CVE-2018-17456) + +* Mon Sep 10 2018 Todd Zullinger - 2.19.0-1 +- Update to 2.19.0 + +* Fri Sep 07 2018 Todd Zullinger - 2.19.0-0.5.rc2 +- Fix smart-http test due to changes in cookie sort order in curl-7.61.1 +- Add --without tests option to skip tests + +* Thu Sep 06 2018 Sebastian Kisela - 2.19.0-0.4.rc2 +- Move instaweb to a separate subpackage +- Fix builds without docs and without cvs and/or p4 + +* Tue Sep 04 2018 Todd Zullinger - 2.19.0-0.3.rc2 +- Update to 2.19.0.rc2 +- Drop unnecessary Conflicts: when git-p4 is disabled +- Obsolete git-cvs if it's disabled +- Remove contrib/fast-import/import-zips.py, contrib/hg-to-git, and + contrib/svn-fe which all require python2 +- Drop git-gnome-keyring obsolete for fedora > 30 + +* Tue Sep 04 2018 Nils Philippsen - 2.19.0-0.2.rc1 +- obsolete git-p4 if it's disabled + +* Tue Aug 28 2018 Todd Zullinger - 2.19.0-0.1.rc1 +- Update to 2.19.0.rc1 + +* Mon Aug 20 2018 Todd Zullinger - 2.19.0-0.0.rc0 +- Update to 2.19.0.rc0 + +* Mon Aug 20 2018 Todd Zullinger - 2.18.0-2.5 +- Remove git-remote-testsvn, make git-svn noarch +- Restore fixed contrib/credential/netrc tests + +* Fri Jul 13 2018 Fedora Release Engineering - 2.18.0-2.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 03 2018 Petr Pisar - 2.18.0-2.3 +- Perl 5.28 rebuild + +* Sun Jul 01 2018 Jitka Plesnikova - 2.18.0-2.2 +- Perl 5.28 re-rebuild of bootstrapped packages + +* Fri Jun 29 2018 Jitka Plesnikova - 2.18.0-2.1 +- Perl 5.28 rebuild + +* Mon Jun 25 2018 Pavel Cahyna - 2.18.0-2 +- Fix build --without cvs + +* Wed Jun 20 2018 Todd Zullinger - 2.18.0-1 +- Update to 2.18.0 + +* Tue Jun 19 2018 Miro Hrončok - 2.18.0-0.3.rc2 +- Rebuilt for Python 3.7 + +* Wed Jun 13 2018 Todd Zullinger - 2.18.0-0.2.rc2 +- Update to 2.18.0-rc2 +- Apply upstream zlib buffer handling patch (#1582555) + +* Wed Jun 06 2018 Todd Zullinger +- Include git-contacts, SubmittingPatches suggests it to users +- Build git-subtree docs in %%build + +* Mon Jun 04 2018 Todd Zullinger - 2.18.0-0.1.rc1 +- Update to 2.18.0-rc1 +- Drop flaky & out-of-place netrc credential helper tests + +* Fri Jun 01 2018 Todd Zullinger - 2.18.0-0.0.rc0.1 +- add -p: fix counting empty context lines in edited patches + +* Wed May 30 2018 Todd Zullinger - 2.18.0-0.0.rc0 +- Update to 2.18.0-rc0 +- Use new INSTALL_SYMLINKS setting + +* Wed May 30 2018 Todd Zullinger - 2.17.1-3 +- Use %%apply_patch for aarch64 zlib patch, return to %%autosetup +- Disable jgit tests on s390x, they're unreliable +- Use %%make_build and %%make_install + +* Tue May 29 2018 Todd Zullinger - 2.17.1-2 +- packfile: Correct zlib buffer handling (#1582555) + +* Tue May 29 2018 Todd Zullinger - 2.17.1-1 +- Update to 2.17.1 (CVE-2018-11233, CVE-2018-11235) + +* Thu May 24 2018 Todd Zullinger - 2.17.0-4 +- Fix segfault in rev-parse with invalid input (#1581678) +- Move TEST_SHELL_PATH setting to config.mak + +* Mon Apr 16 2018 Todd Zullinger - 2.17.0-3 +- Move linkcheck macro to existing fedora/rhel > 7 block +- Re-enable t5000-tar-tree.sh test on f28 + +* Fri Apr 13 2018 Pavel Cahyna +- Use BuildRequires: perl-interpreter per the packaging guidelines +- Update conditions for future RHEL + +* Tue Apr 10 2018 Todd Zullinger - 2.17.0-2 +- Require perl-generators on EL > 7 + +* Mon Apr 09 2018 Todd Zullinger +- daemon: use --log-destination=stderr with systemd +- daemon: fix condition for redirecting stderr +- git-svn: avoid uninitialized value warning + +* Sun Apr 08 2018 Todd Zullinger +- Clean up redundant and unneeded Requires + +* Sat Apr 07 2018 Todd Zullinger +- Remove Git::LoadCPAN to ensure we use only system perl modules + +* Mon Apr 02 2018 Todd Zullinger +- Allow git-p4 subpackage to be toggled via --with/--without +- Use %%bcond_(with|without) to enable/disable python3 +- Add support for disabling python2 + +* Mon Apr 02 2018 Todd Zullinger - 2.17.0-1 +- Update to 2.17.0 + +* Wed Mar 28 2018 Todd Zullinger - 2.17.0-0.2.rc2 +- Update to 2.17.0-rc2 + +* Tue Mar 27 2018 Todd Zullinger +- Allow cvs subpackage to be toggled via --with/--without + +* Tue Mar 27 2018 Joe Orton +- Disable CVS support on EL > 7 + +* Tue Mar 27 2018 Todd Zullinger - 2.17.0-0.1.rc1.2 +- Add missing perl(Mail::Address) requirement (#1561086) + +* Thu Mar 22 2018 Todd Zullinger - 2.17.0-0.1.rc1.1 +- Drop .py extension from contrib/hooks/multimail/git_multimail.py +- Remove unnecessary "chmod +x contrib/hooks/*" + +* Wed Mar 21 2018 Todd Zullinger - 2.17.0-0.1.rc1 +- Update to 2.17.0-rc1 + +* Fri Mar 16 2018 Todd Zullinger +- Add findutils BuildRequires, improve 'find | xargs' calls + +* Thu Mar 15 2018 Todd Zullinger - 2.17.0-0.0.rc0 +- Update to 2.17.0-rc0 +- Adjust for simplified perl install +- Require git-core rather than git for git-daemon +- Rename gitweb httpd config file +- Install contrib/diff-highlight (#1550251) + +* Thu Mar 15 2018 Todd Zullinger +- Use symlinks instead of hardlinks for installed binaries + +* Fri Feb 23 2018 Todd Zullinger +- Improve hardening flags for EL-6 & EL-7 + +* Fri Feb 16 2018 Todd Zullinger - 2.16.2-1 +- Update to 2.16.2 +- Add gawk, gcc, make, and sed BuildRequires + +* Wed Feb 07 2018 Todd Zullinger - 2.16.1-3 +- Order %%files and %%packages sections by name +- Remove obsolete %%defattr +- Don't package contrib/svn-fe in %%doc +- Split git-subtree into a separate package + +* Wed Feb 07 2018 Fedora Release Engineering - 2.16.1-2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Jan 29 2018 Todd Zullinger - 2.16.1-2 +- git-svn: avoid segfaults in 'git svn branch', re-enable t9128, t9141, and + t9167 +- Drop obsolete BuildRoot, Group, %%clean, and buildroot cleanup + +* Mon Jan 22 2018 Todd Zullinger - 2.16.1-1 +- Update to 2.16.1 +- Avoid python dependency in git-core (#1536471) + +* Thu Jan 18 2018 Todd Zullinger - 2.16.0-1 +- Update to 2.16.0 +- Use 'prove' as test harness, enable shell tracing +- Disable t5000-tar-tree.sh on x86 in f28 + +* Fri Jan 12 2018 Todd Zullinger +- Add %%{emacs_filesystem} to simplify emacs support +- Use .in template for git@.service to ensure paths are substituted + +* Thu Jan 11 2018 Todd Zullinger +- Update BuildRequires for tests + +* Mon Jan 08 2018 Todd Zullinger +- Avoid excluding non-existent .py[co] files in %%doc +- Remove obsolete gnome-keyring credential helper + +* Sun Jan 07 2018 Todd Zullinger +- Explicitly enable tests which may be skipped opportunistically + +* Sat Dec 30 2017 Todd Zullinger +- Fix perl requires filtering on EL-6 + +* Thu Nov 30 2017 Todd Zullinger - 2.15.1-3 +- Include verbose logs in build output for 'make test' failures +- Use %%autosetup macro to unpack and patch source +- Remove second make invocation for doc build/install +- Fix builds using '--without docs' +- Mark git-core-docs sub-package noarch +- Avoid failures in svnserve tests when run in parallel +- Run tests in parallel by default on Fedora +- Skip 'git svn branch' tests which fail intermittently +- Re-enable grep tests on s390x + +* Wed Nov 29 2017 Todd Zullinger - 2.15.1-2 +- Fix debuginfo for gnome-keyring and libsecret credential helpers + +* Tue Nov 28 2017 Todd Zullinger - 2.15.1-1 +- Update to 2.15.1 + +* Tue Nov 21 2017 Todd Zullinger +- Add tcl/tk BuildRequires +- Enable support for release candidate builds + +* Tue Nov 07 2017 Todd Zullinger - 2.15.0-2 +- Fix git-clone memory exhaustion (CVE-2017-15298) + Resolves: #1510455, #1510457 +- Disable cross-directory hardlinks +- Drop ancient obsoletes for git and git-arch +- Update summary/description of numerous subpackages +- Fix shebang in a few places to silence rpmlint complaints +- Fix t9020-remote-svn failure when setting PYTHON_PATH +- Rename %%gitcoredir to %%gitexecdir; upstream uses the latter +- Move commands which no longer require perl into git-core +- Move filter-branch out of core, it needs perl now +- Improve test suite coverage + +* Mon Oct 30 2017 Todd Zullinger - 2.15.0-1 +- Update to 2.15.0 + +* Mon Oct 23 2017 Todd Zullinger - 2.14.3-1 +- Update to 2.14.3 + +* Tue Sep 26 2017 Todd Zullinger - 2.14.2-2 +- Update to 2.14.2 + +* Thu Aug 10 2017 Todd Zullinger - 2.14.1-2 +- Rebuild for rpm-4.14 bug (#1480407) + +* Thu Aug 10 2017 Todd Zullinger - 2.14.1-1 +- Update to 2.14.1 (resolves CVE-2017-1000117) + +* Tue Aug 08 2017 Iryna Shcherbina - 2.14.0-2 +- Add a build-time dependency on python2-devel for p4 + Resolves: #1479713 +- Skip all grep tests on s390x for now because it failes intermittently + +* Fri Aug 04 2017 Todd Zullinger - 2.14.0-1 +- Update to 2.14.0 +- Use pcre2 library +- git-p4: explicitly require python2 + +* Tue Aug 01 2017 Todd Zullinger - 2.13.4-1 +- Update to 2.13.4 +- Remove EL-5 and old Fedora conditionals + +* Sun Jul 30 2017 Florian Weimer - 2.13.3-3 +- Rebuild with binutils fix for ppc64le (#1475636) + +* Thu Jul 20 2017 Petr Stodulka - 2.13.3-2 +- Move documentation files from all subpackages into the %%{_pkgdocdir} + directory, so links inside doc and man files are correct + Resolves: #1357438 +- Quiet a few rpmlint complaints regarding hidden files in contrib dir +- Remove explicit libcurl requirement from git-core + +* Thu Jul 13 2017 Gwyn Ciesla - 2.13.3-1 +- Update to 2.13.3 + +* Sun Jun 25 2017 Todd Zullinger - 2.13.2-1 +- Update to 2.13.2 +- Skip grep tests which fail intermittently on s390x + +* Wed Jun 07 2017 Jitka Plesnikova - 2.13.1-2 +- Perl 5.26 re-rebuild of bootstrapped packages + +* Mon Jun 05 2017 Todd Zullinger - 2.13.1-1 +- Update to 2.13.1 + +* Sun Jun 04 2017 Jitka Plesnikova - 2.13.0-3 +- Perl 5.26 rebuild + +* Wed May 17 2017 Todd Zullinger - 2.13.0-2 +- Use default, collision-detecting SHA1 implementation + +* Tue May 09 2017 Todd Zullinger - 2.13.0-1 +- Update to 2.13.0 (resolves CVE-2017-8386) + +* Wed Mar 29 2017 Gwyn Ciesla - 2.12.2-1 +- Update to 2.12.2 + +* Tue Mar 21 2017 Gwyn Ciesla - 2.12.1-1 +- Update to 2.12.1 + +* Mon Feb 27 2017 Jon Ciesla - 2.12.0-1 +- Update to 2.12.0 + +* Fri Feb 17 2017 Petr Stodulka - 2.11.1-3 +- remove non-ASCII characters from description and title of packages +- fix requiremets +- fix spec to be compatible for other systems +- remove deprecated credential-gnome-keyring + +* Fri Feb 17 2017 Todd Zullinger - 2.11.1-3 +- Remove unnecessary rsync requirement from git-core +- Move gnome-keyring credential helper from git-core to git +- Enable libsecret credential helper +- Run git test suite +- Use %%{_mandir} in git/git-core file list filters +- Fix version of emacs-git and emacs-git-el provides +- Clean up contrib/{credential,subtree} to avoid cruft in git-core-doc +- Fix a number of macro-in-comment warnings from rpmlint + +* Fri Feb 10 2017 Fedora Release Engineering - 2.11.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Feb 03 2017 Jon Ciesla - 2.11.1-1 +- Update to 2.11.1 diff --git a/git.xinetd.in b/git.xinetd.in new file mode 100644 index 0000000..d4ca95d --- /dev/null +++ b/git.xinetd.in @@ -0,0 +1,14 @@ +# default: off +# description: The git dæmon allows git repositories to be exported using \ +# the git:// protocol. + +service git +{ + disable = yes + socket_type = stream + wait = no + user = nobody + server = @GITEXECDIR@/git-daemon + server_args = --base-path=@BASE_PATH@ --export-all --user-path=public_git --syslog --inetd --verbose + log_on_failure += USERID +} diff --git a/git@.service.in b/git@.service.in new file mode 100644 index 0000000..7abcfeb --- /dev/null +++ b/git@.service.in @@ -0,0 +1,10 @@ +[Unit] +Description=Git Repositories Server Daemon +Documentation=man:git-daemon(1) + +[Service] +User=nobody +ExecStart=-@GITEXECDIR@/git-daemon --base-path=@BASE_PATH@ --export-all \ + --user-path=public_git --inetd --log-destination=stderr --verbose +StandardInput=socket +StandardError=journal diff --git a/gitweb-httpd.conf b/gitweb-httpd.conf new file mode 100644 index 0000000..4f4eac7 --- /dev/null +++ b/gitweb-httpd.conf @@ -0,0 +1,7 @@ +Alias /git /var/www/git + + + Options +ExecCGI + AddHandler cgi-script .cgi + DirectoryIndex gitweb.cgi + diff --git a/gitweb.conf.in b/gitweb.conf.in new file mode 100644 index 0000000..c04a96b --- /dev/null +++ b/gitweb.conf.in @@ -0,0 +1,53 @@ +# The gitweb config file is a fragment of perl code. You can set variables +# using "our $variable = value"; text from "#" character until the end of a +# line is ignored. See perlsyn(1) man page for details. +# +# See /usr/share/doc/gitweb-*/README and /usr/share/doc/gitweb-*/INSTALL for +# more details and available configuration variables. + +# Set the path to git projects. This is an absolute filesystem path which will +# be prepended to the project path. +#our $projectroot = "@PROJECTROOT@"; + +# Set the list of git base URLs used for URL to where fetch project from, i.e. +# the full URL is "$git_base_url/$project". By default this is empty +#our @git_base_url_list = qw(git://git.example.com +# ssh://git.example.com@PROJECTROOT@); + +# Enable the 'blame' blob view, showing the last commit that modified +# each line in the file. This can be very CPU-intensive. Disabled by default +#$feature{'blame'}{'default'} = [1]; +# +# Allow projects to override the default setting via git config file. +# Example: gitweb.blame = 0|1; +#$feature{'blame'}{'override'} = 1; + +# Disable the 'snapshot' link, providing a compressed archive of any tree. This +# can potentially generate high traffic if you have large project. Enabled for +# .tar.gz snapshots by default. +# +# Value is a list of formats defined in %known_snapshot_formats that you wish +# to offer. +#$feature{'snapshot'}{'default'} = []; +# +# Allow projects to override the default setting via git config file. +# Example: gitweb.snapshot = tbz2,zip; (use "none" to disable) +#$feature{'snapshot'}{'override'} = 1; + +# Disable grep search, which will list the files in currently selected tree +# containing the given string. This can be potentially CPU-intensive, of +# course. Enabled by default. +#$feature{'grep'}{'default'} = [0]; +# +# Allow projects to override the default setting via git config file. +# Example: gitweb.grep = 0|1; +#$feature{'grep'}{'override'} = 1; + +# Disable the pickaxe search, which will list the commits that modified a given +# string in a file. This can be practical and quite faster alternative to +# 'blame', but still potentially CPU-intensive. Enabled by default. +#$feature{'pickaxe'}{'default'} = [0]; +# +# Allow projects to override the default setting via git config file. +# Example: gitweb.pickaxe = 0|1; +#$feature{'pickaxe'}{'override'} = 1; diff --git a/gpgkey-junio.asc b/gpgkey-junio.asc new file mode 100644 index 0000000..032428d --- /dev/null +++ b/gpgkey-junio.asc @@ -0,0 +1,166 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=z4yI +-----END PGP PUBLIC KEY BLOCK----- diff --git a/print-failed-test-output b/print-failed-test-output new file mode 100644 index 0000000..d0d63aa --- /dev/null +++ b/print-failed-test-output @@ -0,0 +1,13 @@ +#!/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 +exit 1 diff --git a/sources b/sources new file mode 100644 index 0000000..054e87e --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (git-2.29.0.rc1.tar.xz) = e976c5c652f32cc5bb83cc128460c200dd30f722371d180dffabff389310fceafb11ce51075b90ca77469c882d57ca617005ceae1f79a1489c00024032e6f4f8 +SHA512 (git-2.29.0.rc1.tar.sign) = e0c83c9e1bd4940145a6be8e36ec3f106d10190aa86bf61b35af736a869be8e8e3652ec94e7420ebf6f592788d3a2298f332bd2b600f14380f885fb29e48d0e0