Compare commits

...
Sign in to create a new pull request.

405 commits

Author SHA1 Message Date
Ondřej Pohořelský
da35363f19 remove unused buildrequires 2025-12-12 13:32:24 +01:00
Ondřej Pohořelský
c488c27117 update to 2.52.0 2025-11-20 13:41:02 +01:00
Yaakov Selkowitz
6c89b0ef9d Build with highlight on all arches on EL8+
While highlight was only built/shipped on some arches in RHEL 7 Optional,
as of RHEL 8 it is built on all arches (albeit not shipped as of 10).
2025-11-17 11:55:29 -05:00
Ondřej Pohořelský
8f542b0496 update to 2.51.1 2025-10-23 09:34:39 +02:00
Yaakov Selkowitz
ba249bb3a1 Revbump for tcl/tk 9
Currently, the rawhide and f43 branches both have -2, but the tcl/tk 9
change is only on rawhide.
2025-10-12 18:21:24 -04:00
Ondřej Pohořelský
8e9df669b8 exclude sample hook files from automatic dependency detection 2025-08-21 18:44:54 +02:00
Yanko Kaneti
4cf7527c99 Gitk can now work with tcl/tk 9 2025-08-21 16:46:57 +03:00
Ondřej Pohořelský
90cb7985fd update to 2.51.0 2025-08-20 14:35:53 +02:00
Fedora Release Engineering
fc75418e16 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 22:22:42 +00:00
Ondřej Pohořelský
54ed4ea4ba update to 2.50.1 2025-07-08 22:41:07 +02:00
Ondřej Pohořelský
001bf29ac7 update to 2.50.0 2025-06-23 14:16:09 +02:00
Ondřej Pohořelský
a0b3d1a02b 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.
2025-03-24 12:17:11 +01:00
Ondřej Pohořelský
9a2fecfe2e update to 2.49.0 2025-03-17 15:37:51 +01:00
Yanko Kaneti
716550b90a Keep gitk on tcl/tk 8.x until its ready for 9 2025-02-06 10:13:29 +02:00
Fedora Release Engineering
ecbadc14c1 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 22:01:51 +00:00
Ondřej Pohořelský
078a91e01a update to 2.48.1 2025-01-15 09:29:00 +01:00
Ondřej Pohořelský
0b1ce8c0dc update to 2.48.0 2025-01-13 13:25:40 +01:00
Ondřej Pohořelský
d4648b15be update to 2.47.1 2024-11-25 10:53:34 +01:00
Ondřej Pohořelský
d4d986abeb update to 2.47.0 2024-10-08 15:19:07 +02:00
Ondřej Pohořelský
2354ed4041 repair bogus date in the changelog 2024-09-24 14:34:39 +02:00
Ondřej Pohořelský
b7b63fdc8b update to 2.46.2 2024-09-24 14:31:26 +02:00
Ondřej Pohořelský
8cb6752747 update to 2.46.1 2024-09-16 11:12:46 +02:00
Ondřej Pohořelský
fe2066bbb4 mark git@.service as config(noreplace)
Each update git@.service has been overwritten, removing users custom configurations.
Marking it as config(noreplace) should prevent this behaviour.
2024-09-04 10:42:06 +02:00
Ondřej Pohořelský
0a0995368d update to 2.46.0 2024-08-05 12:53:23 +02:00
Ondřej Pohořelský
699e77dbcb build without perl_modcompat in EL >= 10 2024-07-19 09:29:31 +02:00
Fedora Release Engineering
624305e5be Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 02:23:37 +00:00
Ondřej Pohořelský
e49fa1c239 disable p4 subpackage on EL >= 10 2024-07-01 16:34:10 +02:00
Ondřej Pohořelský
2041c47024 build documentation with asciidoc on EL >= 10 2024-07-01 16:30:12 +02:00
Ondřej Pohořelský
9f89b9e069 add glibc-utils BuildRequires 2024-06-20 23:36:27 -04:00
Ondřej Pohořelský
05522a0e2a update to 2.45.2 2024-06-03 12:50:38 +02:00
Ondřej Pohořelský
18e0835469 update to 2.45.1 2024-05-15 09:29:45 +02:00
Ondřej Pohořelský
db55f698a0 update to 2.45.0 2024-04-30 17:15:29 +02:00
Ondřej Pohořelský
59c96e058b update to 2.44.0 2024-02-26 09:50:12 +01:00
Ondřej Pohořelský
9c8b3cf927 update to 2.43.2
Resolves: #2264318
2024-02-15 09:02:27 +01:00
Ondřej Pohořelský
11fa102767 update to 2.43.1
resolves: #2263575
2024-02-12 11:17:05 +01:00
Fedora Release Engineering
2a4367e6d7 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 14:51:35 +00:00
Fedora Release Engineering
75aab98556 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 22:22:27 +00:00
Yaakov Selkowitz
cab00c80b7 Fix perl-podlators dependency
With /app-prefixed builds of perl now existing for flatpaks, file
dependencies must not be used for perl components.
2024-01-09 15:57:42 +00:00
Ondřej Pohořelský
9323031c03 apache.conf set DavLockDBType to sdbm
With the recent change that drops apr-util-bdb build require, in
favor of httpd, t5540 started failing on tests using git-httpd-push.
This patch sets DavLockDBType to sdbm, fixing these failures.
2024-01-09 12:03:02 +01:00
Ondřej Pohořelský
a8ab7b524d Disable t6300.35 t6300.107 t6300.108
These tests break with zlib-ng, disable them until upstream merges
patch solving this issue.
2023-12-20 18:21:47 +01:00
Ondřej Pohořelský
f2b3ab26cc update to 2.43.0 2023-11-21 14:23:40 +01:00
Ondřej Pohořelský
3b9b7132cc update to 2.42.1 2023-11-15 09:17:33 +01:00
Joe Orton
7edc80fb3b remove explicit BR for apr-util-bdb (#2247532) 2023-11-03 09:37:39 +00:00
Ondřej Pohořelský
ac4f507599 update to 2.42.0 2023-10-03 15:31:37 +02:00
Fedora Release Engineering
be8516cba3 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 23:01:21 +00:00
Yaakov Selkowitz
2600353fc1 Fix file dependencies
Installation path macros must not be used in file dependencies:

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_directory_dependencies
2023-07-06 12:03:58 -04:00
Todd Zullinger
ee7f0d47a7 update to 2.41.0
Release notes:
https://github.com/git/git/raw/v2.41.0/Documentation/RelNotes/2.41.0.txt
2023-06-01 10:24:28 -04:00
Todd Zullinger
bae778cbc1 fix Source URL handling
Move %rcpath definition added d050347 (use tilde versioning for release
candidates, 2023-05-12) after %real_version.  Otherwise, it is not
parsed correctly.

(I'm pretty sure it worked in the past, but it certainly doesn't now.)
2023-06-01 10:20:55 -04:00
Todd Zullinger
9e3c6109b5 git.skip-test-patterns: ignore 'skip all tests in t5559'
We added t5559-http-fetch-smart-http2 to GIT_SKIP_TESTS in 7d21254
(update to 2.39.0-rc0, 2022-11-23).  Update git.skip-test-patterns to
reflect this.
2023-05-24 21:26:16 -04:00
Todd Zullinger
a297238a54 update to 2.41.0-rc2
Release notes:
https://github.com/git/git/raw/v2.41.0-rc2/Documentation/RelNotes/2.41.0.txt
2023-05-24 17:50:22 -04:00
Todd Zullinger
3f9ea1c489 update to 2.41.0-rc1
Release notes:
https://github.com/git/git/raw/v2.41.0-rc1/Documentation/RelNotes/2.41.0.txt
2023-05-19 15:40:11 -04:00
Todd Zullinger
08d76e08ab update to 2.41.0-rc0
Release notes:
https://github.com/git/git/raw/v2.41.0-rc0/Documentation/RelNotes/2.41.0.txt
2023-05-15 23:05:09 -04:00
Todd Zullinger
d050347835 use tilde versioning for release candidates
All supported released of Fedora and EPEL support the tilde notation.

Reference:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
2023-05-15 23:03:37 -04:00
Todd Zullinger
b477fc3318 update to 2.40.1 (CVE-2023-25652, CVE-2023-25815, CVE-2023-29007)
Refer to the release notes for 2.30.9 for details of each CVE as well as
the following security advisories from the git project:

https://github.com/git/git/security/advisories/GHSA-2hvf-7c8p-28fx (CVE-2023-25652)
https://github.com/git/git/security/advisories/GHSA-v48j-4xgg-4844 (CVE-2023-29007)

(At this time there is no upstream advisory for CVE-2023-25815.  This
issue does not affect the Fedora packages as we do not use the runtime
prefix support.)

Release notes:
https://github.com/git/git/raw/v2.30.9/Documentation/RelNotes/2.30.9.txt
https://github.com/git/git/raw/v2.40.1/Documentation/RelNotes/2.40.1.txt
2023-04-25 13:16:39 -04:00
Todd Zullinger
459d08b118 update to 2.40.0
Release notes:
https://github.com/git/git/raw/v2.40.0/Documentation/RelNotes/2.40.0.txt
2023-03-13 14:11:40 -04:00
Todd Zullinger
b8be89a815 update to 2.40.0-rc2
Release notes:
https://github.com/git/git/raw/v2.40.0-rc2/Documentation/RelNotes/2.40.0.txt
2023-03-07 14:59:23 -05:00
Todd Zullinger
01d712d89b update to 2.40.0-rc1
Apply upstream patch to resolve issues in range-diff on non-x86 arches.

Release notes:
https://github.com/git/git/raw/v2.40.0-rc1/Documentation/RelNotes/2.40.0.txt
2023-03-01 15:42:47 -05:00
Todd Zullinger
f5940a719d update to 2.40.0-rc0
Release notes:
https://github.com/git/git/raw/v2.40.0-rc0/Documentation/RelNotes/2.40.0.txt
2023-02-24 16:37:12 -05:00
Todd Zullinger
4583821b53 update to 2.39.2 (CVE-2023-22490, CVE-2023-23946)
From the release notes for 2.30.8¹:

     * CVE-2023-22490:

       Using a specially-crafted repository, Git can be tricked into using
       its local clone optimization even when using a non-local transport.
       Though Git will abort local clones whose source $GIT_DIR/objects
       directory contains symbolic links (c.f., CVE-2022-39253), the objects
       directory itself may still be a symbolic link.

       These two may be combined to include arbitrary files based on known
       paths on the victim's filesystem within the malicious repository's
       working copy, allowing for data exfiltration in a similar manner as
       CVE-2022-39253.

     * CVE-2023-23946:

       By feeding a crafted input to "git apply", a path outside the
       working tree can be overwritten as the user who is running "git
       apply".

     * A mismatched type in `attr.c::read_attr_from_index()` which could
       cause Git to errantly reject attributes on Windows and 32-bit Linux
       has been corrected.

    Credit for finding CVE-2023-22490 goes to yvvdwf, and the fix was
    developed by Taylor Blau, with additional help from others on the
    Git security mailing list.

    Credit for finding CVE-2023-23946 goes to Joern Schneeweisz, and the
    fix was developed by Patrick Steinhardt.

¹ https://github.com/git/git/raw/v2.39.2/Documentation/RelNotes/2.30.8.txt
2023-02-14 13:15:01 -05:00
Todd Zullinger
7c34cecc4c drop perl Email::Valid dep on RHEL (#2166718)
The git send-email command uses Email::Valid to check addresses.  If
Email::Valid is not present, it falls back to a more basic regex match
(which is not nearly as thorough as the checks Email::Valid performs).

While Fedora (and EPEL 7/8 provide perl-Email-Valid, RHEL does not and
does not wish to add the dependency.  Make it easier for RHEL to fork &
sync from us by making the dependency conditional.

References:
https://bugzilla.redhat.com/2020487
https://bugzilla.redhat.com/2046203
http://public-inbox.org/git/20220620004427.3586240-1-trawets@amazon.com/T/#u
4414f61 (add more git-email perl dependencies, 2021-11-13)
2023-02-03 16:05:16 -05:00
Fedora Release Engineering
04a6af281b Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 04:55:02 +00:00
Todd Zullinger
029feecb34 update to 2.39.1 (CVE-2022-41903, CVE-2022-23521)
From the release notes for 2.30.7¹:

    * CVE-2022-41903:

       git log has the ability to display commits using an arbitrary
       format with its --format specifiers. This functionality is also
       exposed to git archive via the export-subst gitattribute.

       When processing the padding operators (e.g., %<(, %<|(, %>(,
       %>>(, or %><( ), an integer overflow can occur in
       pretty.c::format_and_pad_commit() where a size_t is improperly
       stored as an int, and then added as an offset to a subsequent
       memcpy() call.

       This overflow can be triggered directly by a user running a
       command which invokes the commit formatting machinery (e.g., git
       log --format=...). It may also be triggered indirectly through
       git archive via the export-subst mechanism, which expands format
       specifiers inside of files within the repository during a git
       archive.

       This integer overflow can result in arbitrary heap writes, which
       may result in remote code execution.

    * CVE-2022-23521:

       gitattributes are a mechanism to allow defining attributes for
       paths. These attributes can be defined by adding a `.gitattributes`
       file to the repository, which contains a set of file patterns and
       the attributes that should be set for paths matching this pattern.

       When parsing gitattributes, multiple integer overflows can occur
       when there is a huge number of path patterns, a huge number of
       attributes for a single pattern, or when the declared attribute
       names are huge.

       These overflows can be triggered via a crafted `.gitattributes` file
       that may be part of the commit history. Git silently splits lines
       longer than 2KB when parsing gitattributes from a file, but not when
       parsing them from the index. Consequentially, the failure mode
       depends on whether the file exists in the working tree, the index or
       both.

       This integer overflow can result in arbitrary heap reads and writes,
       which may result in remote code execution.

    Credit for finding CVE-2022-41903 goes to Joern Schneeweisz of GitLab.
    An initial fix was authored by Markus Vervier of X41 D-Sec. Credit for
    finding CVE-2022-23521 goes to Markus Vervier and Eric Sesterhenn of X41
    D-Sec. This work was sponsored by OSTIF.

    The proposed fixes have been polished and extended to cover additional
    findings by Patrick Steinhardt of GitLab, with help from others on the
    Git security mailing list.

¹ https://github.com/git/git/raw/v2.39.1/Documentation/RelNotes/2.30.7.txt
2023-01-17 15:13:12 -05:00
Todd Zullinger
6fcfc2d4a2 require perl(MODULE_COMPAT) for Fedora < 38 and RHEL
ce294ea (Remove perl(MODULE_COMPAT), it will be replaced by generators,
2023-01-13) removed the `Requires: perl(:MODULE_COMPAT_*)` entirely.
This is not suitable for merging to older Fedora or RHEL releases.  Make
the requirement conditional.
2023-01-17 15:12:29 -05:00
Jitka Plesnikova
ce294eae02 Remove perl(MODULE_COMPAT), it will be replaced by generators 2023-01-13 09:35:22 +01:00
Todd Zullinger
66efed4a98 update to 2.39.0
Release notes:
https://github.com/git/git/raw/v2.39.0/Documentation/RelNotes/2.39.0.txt
2022-12-12 13:27:10 -05:00
Todd Zullinger
54729198f5 update to 2.39.0-rc2
Release notes:
https://github.com/git/git/raw/v2.39.0-rc2/Documentation/RelNotes/2.39.0.txt
2022-12-06 01:54:30 -05:00
Todd Zullinger
0af3adfcb1 include test-results & "trash" directory contents in build output
When a build fails, the contents of t/test-results and the trash
directories can be quite useful for debugging.  This is particularly
true when the failures occur only in Koji, where we can't get a shell
and poke around.

Create a compressed tarball and encode it with base64 to allow it to be
output along with the normal build output.  Include instruction on how
to extract the base64-encoded content from the build log inline.

The tar archive is compressed with zstd which provides a good balance of
speed and size.  The compression level of 17 was chosen after a number
of tests against real test failures, as opposed to entirely random
selection. ;)
2022-12-06 01:54:30 -05:00
Todd Zullinger
13887794b7 update to 2.39.0-rc1
Release notes:
https://github.com/git/git/raw/v2.39.0-rc1/Documentation/RelNotes/2.39.0.txt
2022-12-01 15:22:49 -05:00
Todd Zullinger
7d21254b02 update to 2.39.0-rc0
Add mod_http2 BuildRequires for t5559-http-fetch-smart-http2; skip it on
EL7, which lacks it.  Ignore the expected 'missing HTTP2' output from
t5551-http-fetch-smart.  Use a strict pattern to avoid unintended
matches.

Sadly, we must also disable t5559 for now.  It fails very often across
all architectures.  The most common failure is "large fetch-pack
requests can be sent using chunked encoding" (t5559.30), but earlier
tests have also failed.  Until these failures are understood and
resolved, the entire test is disabled globally.  (It's also disabled for
EL-7, which is redundant now but won't be after we re-enable the test
globally in the near future.)

We can't simply skip the mod_http2 dependency here because we set
GIT_TEST_HTTPD=true.  Per upstream 73c49a4474 (t: run t5551 tests with
both HTTP and HTTP/2, 2022-11-11):

    If HTTP/2 isn't supported on a given platform, then t5559 should
    bail during the webserver setup, and gracefully skip all tests
    (unless GIT_TEST_HTTPD has been changed from "auto" to "yes", where
    the point is to complain when webserver setup fails).

Also ignore the 'missing BUILTIN_TXT_$builtin' output which comes from
upstream a0c3244796 (doc SYNOPSIS & -h: use "-" to separate words in
labels, not "_", 2022-10-13).  We may want to loosen this in the future,
but for now ignore it because it doesn't help us identify missing test
dependencies.

Release notes:
https://github.com/git/git/raw/v2.39.0-rc0/Documentation/RelNotes/2.39.0.txt
2022-12-01 15:22:49 -05:00
Todd Zullinger
d0191b8ca5 use %bash_completions_dir
A %bash_completions_dir macros was added to redhat-rpm-config recently¹.
It is available for all supported Fedora releases.  Define it if
missing, to support EL <= 9.

This is likely to become part of the packaging guideline soon².

¹ https://src.fedoraproject.org/rpms/redhat-rpm-config/c/483a3b (Add
  macros.shell-completions, 2022-06-25)
² https://pagure.io/packaging-committee/issue/1202
2022-11-12 13:37:15 -05:00
Todd Zullinger
ef75bcdbad update license data and convert to SPDX format
The license data was gathered from the 2.38.1 tarball.  The licensecheck
tool was run:

    find -type f -regextype egrep ! -regex '^(Documentation/.*\.txt$|(t/(chainlint|perf/p[0-9]{4}|t[0-9]{4}).*))' \
        -exec licensecheck --shortname-scheme spdx {} + | LANG=C sort >licensecheck

The contents were reviewed, removing files which are not shipped or were
UNKNOWN to licensecheck.  Of the UNKNOWN files, most lacked a specific
license header and are thus treated as GPL-2.0-only.  The code in
reftable/ is licensed as BSD 3-Clause per reftable/LICENSE.
2022-11-12 13:37:15 -05:00
Todd Zullinger
1ea41cbd46 don't ship contrib/persistent-https as documentation
This is Go source code which requires compilation to be used.  It is
licensed differently than git; shipping it changes the License tag.

Let's avoid it for now.  If it turns out to be widely used, we can
restore it later (and ship it in binary form).
2022-11-07 19:05:50 -05:00
Todd Zullinger
537938edaa update to 2.38.1 (CVE-2022-39253, CVE-2022-39260)
From the release notes for 2.30.6¹

   * CVE-2022-39253:
     When relying on the `--local` clone optimization, Git dereferences
     symbolic links in the source repository before creating hardlinks
     (or copies) of the dereferenced link in the destination repository.
     This can lead to surprising behavior where arbitrary files are
     present in a repository's `$GIT_DIR` when cloning from a malicious
     repository.

     Git will no longer dereference symbolic links via the `--local`
     clone mechanism, and will instead refuse to clone repositories that
     have symbolic links present in the `$GIT_DIR/objects` directory.

     Additionally, the value of `protocol.file.allow` is changed to be
     "user" by default.

   * CVE-2022-39260:
     An overly-long command string given to `git shell` can result in
     overflow in `split_cmdline()`, leading to arbitrary heap writes and
     remote code execution when `git shell` is exposed and the directory
     `$HOME/git-shell-commands` exists.

     `git shell` is taught to refuse interactive commands that are
     longer than 4MiB in size. `split_cmdline()` is hardened to reject
     inputs larger than 2GiB.

  Credit for finding CVE-2022-39253 goes to Cory Snider of Mirantis. The
  fix was authored by Taylor Blau, with help from Johannes Schindelin.

  Credit for finding CVE-2022-39260 goes to Kevin Backhouse of GitHub.
  The fix was authored by Kevin Backhouse, Jeff King, and Taylor Blau.

¹ https://github.com/git/git/raw/v2.38.1/Documentation/RelNotes/2.30.6.txt
2022-10-18 13:43:15 -04:00
Todd Zullinger
6e2a249aef lint: ignore non-standard-dir-in-var for gitweb
Newer rpmlint rightly points out this minor gitweb issue.

Fixing it is a low priority as we need to arrange the change only for
newer releases, keeping the old layout on existing systems.  This is
tracked in bug 479613.
2022-10-15 11:53:50 -04:00
Todd Zullinger
269487c604 update to 2.38.0
Release notes:
https://github.com/git/git/raw/v2.38.0/Documentation/RelNotes/2.38.0.txt
2022-10-03 15:21:28 -04:00
Todd Zullinger
202c5f9f24 update to 2.38.0-rc2
Release notes:
https://github.com/git/git/raw/v2.38.0-rc2/Documentation/RelNotes/2.38.0.txt
2022-09-28 00:18:42 -04:00
Todd Zullinger
588c4c7c7c lint: update filter rules
We removed '%{_emacs_version}' in 3395646 (remove --with/--without emacs
build conditional, 2022-06-13).  Drop the unnecessary filter from the
rpmlint config.

Add filters for several new checks in rpmlint 2.x: files-duplicate;
package-with-huge-docs; and potential-bashisms.

Also ignore unused-direct-shlib-dependency for libpcre2.  While this
is accurate, the additional linking would be tricky to remove from the
upstream Makefile.  It would almost certainly not be worth the effort.

Lastly (even though it's the first line in the file), drop the unneeded
'from Config import *' directive.  The rpmlint config is no longer
loaded directly as python code (yay!).
2022-09-22 00:38:15 -04:00
Todd Zullinger
047cf1702d git-subtree sub-package is noarch
In 986b772 (Split 'git subtree' into a separate package, 2018-02-07), I
mistakenly created the package as arch-specific.  It should have been
noarch; it is merely a shell script.
2022-09-22 00:38:09 -04:00
Todd Zullinger
35ed577d15 update to 2.38.0-rc1
Release notes:
https://github.com/git/git/raw/v2.38.0-rc1/Documentation/RelNotes/2.38.0.txt
2022-09-21 20:32:41 -04:00
Todd Zullinger
ea59aa3637 update to 2.38.0-rc0
Adjust number of t5541 "push 2000 tags over http" test, which we skip on
aarch64 and ppc64le arches.  It was shifted from 36 to 37 by upstream
b0c4adcdd7 (remote-curl: send Accept-Language header to server,
2022-07-11).

Release notes:
https://github.com/git/git/raw/v2.38.0-rc0/Documentation/RelNotes/2.38.0.txt
2022-09-21 11:42:57 -04:00
Todd Zullinger
0d294dd610 tests: try harder to find open ports for apache, git, and svn
When running multiple builds, we frequently see failures due to port
conflicts, particularly with httpd tests.  Retry with a different port
when the test function start_httpd() fails to reduce these spurious
failures.

We should not need to skip t9115-git-svn-dcommit-funky-renames as a
result.  Remove it from GIT_SKIP_TESTS.

Similarly, adjust the git-daemon and svnserve start functions.
2022-08-31 10:05:31 -04:00
Todd Zullinger
cbc4c3e411 remove %changelog entries prior to 2020
The git history serves as the repository for the old entries.  The
changelog was roughly 20% of the total lines in the spec file.
2022-08-30 21:10:43 -04:00
Todd Zullinger
c1a92d4bda update to 2.37.3
This is an upstream bugfix release.

Release notes:
https://github.com/git/git/raw/v2.37.3/Documentation/RelNotes/2.37.3.txt
2022-08-30 21:10:12 -04:00
Todd Zullinger
3bf0a72eb1 consolidate git-archimport removal in %prep
We have not shipped git-archimport since 3f0dc97 (Drop git-arch on
fedora >= 16, 2011-07-26).  Replace the scattered references to it in
the spec file with a small group of commands in %prep to remove it
entirely.
2022-08-14 14:13:49 -04:00
Todd Zullinger
5c57e78875 update to 2.37.2
This is an upstream bugfix release.

Release notes:
https://github.com/git/git/raw/v2.37.2/Documentation/RelNotes/2.37.2.txt
2022-08-11 14:22:53 -04:00
Todd Zullinger
3eb6f047dc require systemd-rpm-macros rather than systemd
The `BuildRequires: systemd` was added in d7389e7 (use systemd instead
of xinetd (bz 737183), 2013-04-30).  Since then, the systemd macros have
been split into a subpackage¹.  Adjust our BuildRequires (with an
exception for EL-7).

Replace `Requires*: systemd` in git-daemon with %{?systemd_requires}.

¹ https://src.fedoraproject.org/rpms/systemd/c/c9030f0 (Split out the
  rpm macros into systemd-rpm-macros subpackage, 2018-11-02),
2022-07-23 15:36:18 -04:00
Fedora Release Engineering
0266063d10 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 06:16:03 +00:00
Todd Zullinger
47478b1513 update to 2.37.1 (CVE-2022-29187)
From the release notes for 2.30.5¹:

    This release contains minor fix-ups for the changes that went into
    Git 2.30.3 and 2.30.4, addressing CVE-2022-29187.

     * The safety check that verifies a safe ownership of the Git
       worktree is now extended to also cover the ownership of the Git
       directory (and the `.git` file, if there is any).

    Carlo Marcelo Arenas Belón (1):
          setup: tighten ownership checks post CVE-2022-24765

Additionally, from the release notes for 2.37.1²:

     * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't
       correctly record a removed file to the index, which is an old
       regression but has become widely known because the C version has
       become the default in the latest release.

¹ https://github.com/git/git/raw/v2.37.1/Documentation/RelNotes/2.30.5.txt
² https://github.com/git/git/raw/v2.37.1/Documentation/RelNotes/2.37.1.txt
2022-07-12 13:39:22 -04:00
Todd Zullinger
eab9894931 update to 2.37.0
Release notes:
https://github.com/git/git/raw/v2.37.0/Documentation/RelNotes/2.37.0.txt
2022-06-27 15:07:59 -04:00
Todd Zullinger
8b14c0b19f update to 2.37.0-rc2
Release notes:
https://github.com/git/git/raw/v2.37.0-rc2/Documentation/RelNotes/2.37.0.txt
2022-06-22 15:51:09 -04:00
Todd Zullinger
7d205ab48d update to 2.37.0-rc1
Add 'missing FSMONITOR_DAEMON' and 'You must set env var
GIT_TEST_ALLOW_SUDO=YES in order to run this test' to
git.skip-test-patterns to cover new test prerequisites.

Release notes:
https://github.com/git/git/raw/v2.37.0-rc1/Documentation/RelNotes/2.37.0.txt
2022-06-18 01:59:06 -04:00
Todd Zullinger
33956465a1 remove --with/--without emacs build conditional
The emacs bcond support was added cdea01a (drop emacs-git stub for
fedora >= 34 (#1882360), 2020-10-10).  Now that Fedora 34 is EOL, we no
longer need the conditional.
2022-06-14 13:31:54 -04:00
Todd Zullinger
70428fb2e8 fix GIT_SKIP_TESTS for EL8 s390x
The GIT_SKIP_TESTS variable does not support brace expansion.  It was my
mistake thinking that it did.  List the tests to skip properly.

If we had a longer list and *really* wanted to use brace expansion, we
could do something like this:

    GIT_SKIP_TESTS="$GIT_SKIP_TESTS $(echo t5300.{10,12,14} t5303.{5,7,11} t6300.{35,91,92})"

In this case, that's more characters _and_ more complexity, so it makes
no sense to use it.  (Even if it were shorter, it doesn't necessarily
justify the extra complexity.)

Expand the list of tests to skip to cover those which fail due to the
earlier skipped tests.

Additionally, GIT_SKIP_TESTS is (unintentionally) set on systems other
than EL8.  Fix the conditional to only skip these tests on s390x on EL8.
2022-06-14 13:31:54 -04:00
Todd Zullinger
81908fa387 update to 2.37.0-rc0
Release notes:
https://github.com/git/git/raw/v2.37.0-rc0/Documentation/RelNotes/2.37.0.txt
2022-06-14 03:16:56 -04:00
Jitka Plesnikova
a35db90ce1 Perl 5.36 re-rebuild of bootstrapped packages 2022-06-03 13:30:49 +02:00
Jitka Plesnikova
09bd4bb5d8 Perl 5.36 rebuild 2022-06-01 08:18:21 +02:00
Todd Zullinger
b76548f9c2 update to 2.36.1
Release notes:
https://github.com/git/git/raw/v2.36.1/Documentation/RelNotes/2.36.1.txt
2022-05-06 14:01:06 -04:00
Todd Zullinger
dbec023603 update to 2.36.0
Release notes:
https://github.com/git/git/raw/v2.36.0/Documentation/RelNotes/2.36.0.txt
2022-04-18 14:11:02 -04:00
Todd Zullinger
59a5ed4cff usability improvements on top of CVE-2022-24765
Per the release announcement¹, these patches...

    address usability issues in the recent releases 'v2.35.2',
    'v2.34.2', 'v2.33.2', 'v2.32.1', 'v2.31.2', and 'v2.30.3', where
    each "safe" directory has to be listed on the safe.directory
    configuration variables.  A broader escape hatch has been added so
    that the value '*' can be used to declare "my colleagues and their
    repositories I may ever visit are all trustworthy".

¹ https://lore.kernel.org/git/xmqq1qy04iqa.fsf@gitster.g/
2022-04-13 21:35:36 -04:00
Todd Zullinger
f0106d7c9a disable failing tests on s390x on EL8
These tests fail on s390x, but only with EL8.  They succeed on Fedora
and EL9.  This suggests the issue is not with git.  Skip them to avoid
blocking the Fedora releases which we care most about while still
allowing builds in COPR and elsewhere for all Fedora/EPEL releases.
2022-04-12 22:50:19 -04:00
Todd Zullinger
4787e39b40 update to 2.36.0-rc2 (CVE-2022-24765)
Regarding CVE-2022-24765, the release announcement says:

   On multi-user machines, Git users might find themselves
   unexpectedly in a Git worktree, e.g. when another user created a
   repository in `C:\.git`, in a mounted network drive or in a
   scratch space. Merely having a Git-aware prompt that runs `git
   status` (or `git diff`) and navigating to a directory which is
   supposedly not a Git worktree, or opening such a directory in an
   editor or IDE such as VS Code or Atom, will potentially run
   commands defined by that other user.

The new `safe.directory` setting may be used in either the system or
global configuration to list directories which git should consider safe
even if they are owned by someone other than the current user.

Release notes:
https://github.com/git/git/raw/v2.36.0-rc2/Documentation/RelNotes/2.36.0.txt
2022-04-12 21:04:04 -04:00
Todd Zullinger
d1736385d5 update to 2.36.0-rc1
Release notes:
https://github.com/git/git/raw/v2.36.0-rc1/Documentation/RelNotes/2.36.0.txt
2022-04-08 20:01:33 -04:00
Todd Zullinger
25830241e6 use httpd-core for tests on Fedora >= 37
The httpd package was slimmed down per rhbz#2070517.  Use the new
httpd-core package for the test suite requirements on F37+.

While here, adjust a nearby '# endif' comment to match reality.
2022-04-08 13:42:17 -04:00
Todd Zullinger
0b5afcebda update to 2.36.0-rc0
The %_package_note_file definition added in 1dc07e7 (set path to linker
script in %_package_note_file, 2022-01-24) does not support release
candidates.  Fix it.

Add 'fsmonitor--daemon is not supported on this platform' and 'missing
!REFFILES' to  git.skip-test-patterns to match new test prerequisites
which are not relevant for our builds.

Adjust number of t5541 "push 2000 tags over http" test.  It was shifted
from 35 to 36 by upstream c36c62859a (tests: use "test_hook" for misc
"mkdir -p" and "chmod" cases, 2022-03-17).

Replace `%__make test` with `%__make -C t all` to avoid re-compiling in
%check.  This is an issue I have yet to fully diagnose.  I suspect that
it is related to the nice work Ævar Arnfjörð Bjarmason has done upstream
to improve the efficiency and correctness of the build process.  Work
around it for the moment.

Release notes:
https://github.com/git/git/raw/v2.36.0-rc0/Documentation/RelNotes/2.36.0.txt
2022-04-08 13:40:42 -04:00
Todd Zullinger
9e214cd4d0 update to 2.35.1
Per the upstream release notes¹:

    Git 2.35 shipped with a regression that broke use of "rebase" and
    "stash" in a secondary worktree.  This maintenance release ought to
    fix it.

¹ https://github.com/git/git/raw/v2.35.1/Documentation/RelNotes/2.35.1.txt
2022-01-29 00:20:45 -05:00
Todd Zullinger
1dc07e7d5d set path to linker script in %_package_note_file
The package-notes feature¹ creates a linker script in %{buildsubdir}.
Unfortunately, %{buildsubdir} is not set in %prep, leaving us with an
incorrect path to the linker script.  The build then fails with:

   /usr/bin/ld: cannot open linker script file
   /builddir/build/BUILD/.package_note-git-2.35.0-0.2.rc2.fc36.3.x86_64.ld:
   No such file or directory

Set the path to the linker script via %_package_note_file, per
suggestion by Zbigniew Jędrzejewski-Szmek².

References:
¹ https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects
² https://bugzilla.redhat.com/2044028#c10
2022-01-24 17:40:26 -05:00
Todd Zullinger
4eb061b209 update to 2.35.0
Release notes:
https://github.com/git/git/raw/v2.35.0/Documentation/RelNotes/2.35.0.txt
2022-01-24 15:31:20 -05:00
Todd Zullinger
32a3ec7045 remove contrib/scalar to avoid cruft in git-core-doc
The scalar command is being worked on incrementally upstream.

As it matures, we may consider building and distributing it.  Whether
that will happen before it graduates from contrib or not is anyone's
guess.

For the moment, remove it to avoid cruft in git-core-doc.
2022-01-22 12:49:44 -05:00
Todd Zullinger
601fe503aa fix compilation on EL7
Git now requires C99 support and a zlib with uncompress2 by default.

On EL7, gcc-4.8.5 requires a flag to enable C99 support.

Compilation also fails without -fPIC on EL7, for reasons of which I am
not entirely clear.  (I do not like making a change I cannot justify or
explain properly, but it is better than dropping EL7 support until I
have time to learn the reason(s).)

Update the %build_cflags macro when building on EL7 to enable C99
support and set -fPIC.

Define NO_UNCOMPRESS2 to use compat/zlib-uncompress2.c.
2022-01-22 12:04:42 -05:00
Todd Zullinger
ce97e98127 checkout: avoid BUG() when hitting a broken repository (rhbz#2042920)
The git checkout command crashes when run multiple times, if
`.git/refs/remotes/origin/HEAD` is manually copied into
`.git/refs/heads/$branch-name`.

Strictly, this is repository corruption, but it has been silently
tolerated until upstream 9081a421 (checkout: fix "branch info" memory
leaks, 2021-11-16), which added some sanity checking of the data.

Loosen the check via Junio's upstream commit 519947b69a (checkout: avoid
BUG() when hitting a broken repository, 2022-01-21).
2022-01-22 11:59:10 -05:00
Todd Zullinger
a8bfca0241 update to 2.35.0-rc2
Release notes:
https://github.com/git/git/raw/v2.35.0-rc2/Documentation/RelNotes/2.35.0.txt
2022-01-19 18:02:12 -05:00
Todd Zullinger
9d7a08be77 update to 2.35.0-rc1
Release notes:
https://github.com/git/git/raw/v2.35.0-rc1/Documentation/RelNotes/2.35.0.txt
2022-01-14 20:04:04 -05:00
Todd Zullinger
ef2bab7f59 update to 2.35.0-rc0
Add openssh-clients BuildRequires, for ssh-add.  Upstream 350a2518c8
(ssh signing: support non ssh-* keytypes, 2021-11-19), added `ssh-add`
as a requirement of t7528-signed-commit-ssh's "sign commits using
literal public keys with ssh-agent" test.

Replace the openssh BR added in e8896ce (update to 2.34.0, 2021-11-15)
with openssh-clients.  The latter requires the former.

Apply Taylor Blau's patch to fix a use-after-free bug in fmt-merge-msg¹.

Add `missing !LONG_IS_64BIT,EXPENSIVE` to git.skip-test-patterns.  It is
used in t1051-large-conversion after upstream 596b5e77c9 (clean/smudge:
allow clean filters to process extremely large files, 2021-11-02).

Release notes:
https://github.com/git/git/raw/v2.35.0-rc0/Documentation/RelNotes/2.35.0.txt

¹ https://lore.kernel.org/git/CAHk-=whXPxWL7z3GiPkaDt+yygrRmagrYUnib7Lx=Vvrqx2ufg@mail.gmail.com/
2022-01-10 22:14:13 -05:00
Todd Zullinger
a7d2f7e53e fix gpgsm issues with gnupg-2.3
The output of gpgsm changed slightly in gnupg-2.3, causing the git tests
for x509 signatures to be skipped.  Update the tests to use the
machine-parseable --with-colons output.

It also appears that we need to reload the gpg-agent in order to pick up
the changes the test library makes to the trustlist.txt file.  It might
be better to store that file with the other gpg files in the test suite
rather than generating it.

While we're at it, reload all the gpg components rather than just
gpg-agent.  Adjust the earlier gpgconf kill to use the 'all' keyword as
well.

Next up, gpgsm removed a debug line from it's output which exposes a
problem in git's gpg-interface code.  The git code presumes that the
'[GNUPG:] SIG_CREATED' line will follow a newline.  That is no longer
true.  The debug line was removed from GnuPG in a6d2f3133 (sm: Replace
some debug message by log_error or log_info, 2020-04-21).

Finally, a minor bug in gpgsm causes the error message returned when a
certificate is not found to differ from previous versions¹.  Extend the
grep pattern in the test suite to catch both error messages.

¹ https://lists.gnupg.org/pipermail/gnupg-devel/2021-November/034991.html
2021-11-25 05:52:09 -05:00
Todd Zullinger
7453454dad update to 2.34.1
Release notes:
https://github.com/git/git/raw/v2.34.1/Documentation/RelNotes/2.34.1.txt
2021-11-25 00:42:31 -05:00
Todd Zullinger
e8896ce365 update to 2.34.0
Release notes:
https://github.com/git/git/raw/v2.34.0/Documentation/RelNotes/2.34.0.txt

Add `BuildRequires: openssh` for the `ssh-keygen` command; it is needed
to test the newly-added ssh signing support¹.  Refer to the `gpg.format`
and `gpg.ssh.*` variables in git-config(1) for details.

[Unfortunately, openssh-8.7 has a bug in the requisite `ssh-keygen -Y
find-principals` command, which will limit the usefulness of this
feature on Fedora 35/36 until openssh is either rebased to 8.8 or the
patch² is backported.  The git testsuite has been taught to skip the
tests when this bug is present, in upstream ca7a5bf4bd (t/lib-gpg: avoid
broken versions of ssh-keygen, 2021-11-10), but that won't help users
who try out this new feature.  Hopefully we can get openssh-8.7 in
Fedora 35 & 36 patched or updated before too long.]

We have `Requires: openssh-clients` in git-core already.  The
openssh-clients package requires openssh so we don't _need_ to add an
install-time requirement to ensure the `ssh-keygen` command is
available.

Ignore RUNTIME_PREFIX and SYMLINKS_WINDOWS test prerequisites when
looking for missing test suite BuildRequires³.

The RUNTIME_PREFIX prerequisite was added in b7d11a0f5d (tests: exercise
the RUNTIME_PREFIX feature, 2021-07-24)⁴.  It is used to build binaries
which can be easily relocated, which we don't need in our builds.

The SYMLINKS_WINDOWS prerequisite was added in 3e7d4888e5 (mingw: align
symlinks-related rmdir() behavior with Linux, 2021-08-02)⁵.  It is, as
the name implies, Windows-specific.

¹ b5726a5d9c (ssh signing: preliminary
  refactoring and clean-up, 2021-09-10) and the commits which follow.
² ca0e455b93,
  4afe431da9, and
  https://www.mail-archive.com/source-changes@openbsd.org/msg127496.html
  (plus the replies, which point out the typo in the first patch)
³ fa92661 (Add grep patterns for checking skipped tests, 2019-02-02)
⁴ b7d11a0f5d3e7d4888e5
2021-11-24 23:23:19 -05:00
Todd Zullinger
4414f619e3 add more git-email perl dependencies
There were a few dependencies missing prior to the change in git-2.33
which Ondřej fixed in the previous commit.

Of the few dependencies being added, only Email::Address and
Sys::Hostname weren't already pulled in by other dependencies when
installing git-email.  They each have fallback options, so they aren't
critical to the function of the application.  (We could use Recommends
here, if we wanted -- though neither pull in any additional packages at
this time.)
2021-11-13 21:04:39 -05:00
Ondřej Pohořelský
fe0920e128 add Perl requires to git-email
Resolves: rhbz#2020487

In git version 2.33.0, git-send-email.perl has optimized modules
loading[1]. This resulted in perl.req not detecting requires properly,
because it doesn't detect requires that are not at the start of new line.
This commit adds explicit Requires into the spec file.

[1]f4dc9432fd
2021-11-11 16:26:29 +01:00
Todd Zullinger
5507b1a187 update to 2.33.1
Release notes:
https://github.com/git/git/raw/v2.33.1/Documentation/RelNotes/2.33.1.txt
2021-10-12 23:30:43 -04:00
Ondřej Pohořelský
f291bcfd27 update to 2.33.0
contrib/hooks/multimail is no longer distributed with git

The multimail hook was removed from the git contrib tree.  From the
upstream commit f74d11471f (multimail: stop shipping a copy,
2021-06-10):

The multimail project is developed independently and has its own project
page. Traditionally, we shipped a copy in contrib/.
However, such a copy is prone to become stale, and users are much better
served to be directed to the actual project instead.
2021-10-05 17:54:36 +02:00
Sahana Prasad
0d6049db8b Rebuilt with OpenSSL 3.0.0 2021-09-14 19:02:41 +02:00
Fedora Release Engineering
a35d388291 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 01:39:37 +00:00
Todd Zullinger
6deecbd62e remove %changelog entries prior to 2019
The git history serves as the repository for the old entries.  The
changelog was roughly 20% of the total lines in the spec file.
2021-06-06 12:55:09 -04:00
Todd Zullinger
a1de5bd2d6 fix var to enable git-svn tests with httpd
Upstream commit 3b072c577b (tests: replace test_tristate with "git
env--helper", 2019-06-21) semi-broke the git-svn tests which require
httpd.  This was subsequently fixed in upstream commit 6a20b62d7e
(t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests,
2019-09-06).

The upstream fix also adjusted the variable name to follow the preferred
naming scheme, i.e. GIT_SVN_TEST_ -> GIT_TEST_SVN_.  Fix the variable in
%check to indicate that we want those tests to run.

We were still running the tests because we had all the necessary
dependencies.  But we want to ensure that we don't skip them
opportunistically if those dependencies ever change.

Update comment which suggest a method for (manually) checking such
variables in the test suite.
2021-06-06 12:50:09 -04:00
Todd Zullinger
7099f641de add perl(File::Compare) BuildRequires
The Documentation/cmd-list.perl script requires File::Compare to
generate various cmds-$area.txt file which are included in the main git
help.  This has been broken since File::Compare was split from the main
perl package in 3b63b8c (Subpackage File::Compare, 2020-01-06)¹.

The result is a broken git man/html page.  In git(1), the output is:

    HIGH-LEVEL COMMANDS (PORCELAIN)
	   We separate the porcelain commands into the main commands
	   and some ancillary user utilities.

       Main porcelain commands
	   Unresolved directive in git.txt -
	   include::cmds-mainporcelain.txt[]

       Ancillary Commands
	   Manipulators:

	   Unresolved directive in git.txt -
	   include::cmds-ancillarymanipulators.txt[]

	   Interrogators:

	   Unresolved directive in git.txt -
	   include::cmds-ancillaryinterrogators.txt[]

        ...

This is logged during the build:

    make[1]: Entering directory '/builddir/build/BUILD/git-2.32.0.rc3/Documentation'
    rm -f cmd-list.made && \
    /usr/bin/perl ./cmd-list.perl ../command-list.txt cmds-ancillaryinterrogators.txt cmds-ancillarymanipulators.txt cmds-mainporcelain.txt cmds-plumbinginterrogators.txt cmds-plumbingmanipulators.txt cmds-synchingrepositories.txt cmds-synchelpers.txt cmds-guide.txt cmds-purehelpers.txt cmds-foreignscminterface.txt  && \
    date >cmd-list.made
    Can't locate File/Compare.pm in @INC (you may need to install the File::Compare module) (@INC contains: /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at ./cmd-list.perl line 3.
    BEGIN failed--compilation aborted at ./cmd-list.perl line 3.
    make[1]: Leaving directory '/builddir/build/BUILD/git-2.32.0.rc3/Documentation'

This should probably cause a make error rather than generating
incomplete documentation.  I'll try to report this upstream (ideally
with a patch to resolve it).  It's also worth remembering to search the
build logs for such failures.  "Can't locate .* in @INC" and "BEGIN
failed" are good strings to search.

¹ https://src.fedoraproject.org/rpms/perl/c/3b63b8c
2021-06-06 11:52:22 -04:00
Todd Zullinger
c2eba54e84 update to 2.32.0
Release notes:
https://github.com/git/git/raw/v2.32.0/Documentation/RelNotes/2.32.0.txt
2021-06-06 11:34:56 -04:00
Todd Zullinger
407b015e7a drop jgit BR on Fedora >= 35
With the impending removal of a large chunk of the Java package set,
jgit will become unavailable as a BuildRequires in Fedora soon.  Remove
the build dependency on Fedora >= 35.

As noted in 8faf622 (drop jgit BR on Fedora > 30, 2019-07-29), this
affects 3 tests, 2 for packfile format (t5310-pack-bitmaps) and
1 of ls-remote (t5512-ls-remote).
2021-06-03 19:25:52 -04:00
Todd Zullinger
c052174f85 update to 2.32.0-rc3
Release notes:
https://github.com/git/git/raw/v2.32.0-rc3/Documentation/RelNotes/2.32.0.txt
2021-06-02 11:06:13 -04:00
Todd Zullinger
02138d4e5c update to 2.32.0-rc2
Release notes:
https://github.com/git/git/raw/v2.32.0-rc2/Documentation/RelNotes/2.32.0.txt
2021-05-28 10:27:29 -04:00
Jitka Plesnikova
1d9a879da8 Perl 5.34 re-rebuild of bootstrapped packages 2021-05-24 09:58:31 +02:00
Todd Zullinger
da79638e4a remove unneeded NEEDS_CRYPTO_WITH_SSL
The NEEDS_CRYPTO_WITH_SSL Makefile knob was added in 7878348 (Update to
git-1.7.0 - Link imap-send with libcrypto (#565147) - Disable building
of unused python remote helper libs, 2010-02-15).  It is no longer
needed.

I'm not sure when it stopped being necessary, though I am sure I tried
removing once before in the 11 years since it was added.

Builds on Fedora and EL7/EL8 all properly pick up the -lssl -lcrypto
flags when compiling git-imap-send.

Incidentally, git-imap-send has used libcurl for handling IMAP rather
than low-level OpenSSL-based functions on Fedora since upstream commit
dbba42bb32 (imap-send: use curl by default when possible, 2017-09-14).
This applies to EL8 as well.  On EL7, libcurl is too old (>= 7.34.0 is
required).
2021-05-22 14:35:25 -04:00
Todd Zullinger
851ee286f8 add coreutils BuildRequires
We use a number of tools from coreutils, be explicit about the
dependency.
2021-05-22 11:29:44 -04:00
Todd Zullinger
cfa2947481 re-enable git-p4 with python3
The git-p4 subpackage has been disabled in Fedora 30 via a4b4f7c (Add
support for disabling python2, 2018-03-28).  Git 2.17.0 was the current
release at that time.  The git-p4 script subsequently gained python3
support which was released in Git 2.27.0 (2020-05-31).

Adjust the python2/python3 conditionals and re-enable git-p4 when either
of them are available.  Put python3 first in the various conditionals,
as that is our primary supported python.  We only include python2 to aid
in building for EL7.

While here, remove the "# endif" comments within the config.mak output.
2021-05-22 11:13:49 -04:00
Todd Zullinger
0f6131b58c update to 2.32.0-rc1
Release notes:
https://github.com/git/git/raw/v2.32.0-rc1/Documentation/RelNotes/2.32.0.txt
2021-05-22 10:16:34 -04:00
Todd Zullinger
3c9cdffa29 add 'missing WINDOWS' to git.skip-test-patterns
We're unlikely to provide the 'WINDOWS' prerequisite in our builds.  Nor
are we likely to care about the tests which are skipped as a result.

(Also, 'missing WINDOWS' is not a phrase I thought I'd ever write.)
2021-05-21 20:04:19 -04:00
Todd Zullinger
e67c091cc6 update to 2.32.0-rc0
Release notes:
https://github.com/git/git/raw/v2.32.0-rc0/Documentation/RelNotes/2.32.0.txt
2021-05-21 20:04:15 -04:00
Todd Zullinger
b1bd88b45b clean up various dist conditionals
Remove all conditionals for EL-6; it is EOL as of November 2020.

Replace a number of `EL > 7` with `EL >= 8` to make the intention
clearer.  The next version of RHEL is no longer shrouded in mystery.

Drop conditionals which apply only to long-obsolete Fedora releases.
2021-05-21 20:02:38 -04:00
Jitka Plesnikova
d6f2c616bc Perl 5.34 rebuild 2021-05-21 23:58:49 +02:00
Todd Zullinger
bf80478210 apply upstream patch to fix clone --bare segfault
If core.bare=false is set in the global git config, git clone --bare
results in a segfault.  Fix it.

Resolves: rhbz#1952030
Upstream-patch: 75555676ad
Upstream-report: https://lore.kernel.org/git/D99DD9AD-54E5-4357-BA50-8B9CAE23084E@amazon.com/
2021-04-27 15:19:07 -04:00
Todd Zullinger
7e7f589af7 remove two stray %defattr macros from %%files sections
All %defattr macros were removed in ff200ca (Remove obsolete %defattr,
2018-02-07).  Two were subsequently added in f8a83b9 (Move instaweb to a
subpackage, 2018-09-06) and 9d91bab (split libsecret credential helper
into a subpackage (#1804741), 2020-02-19).

Remove both entries and (hopefully) avoid adding new entries in the
future.
2021-04-06 09:58:48 -04:00
Todd Zullinger
e4b60c52ef update to 2.31.1
Release notes:
https://github.com/git/git/raw/v2.31.1/Documentation/RelNotes/2.31.1.txt
2021-03-27 00:20:43 -04:00
Todd Zullinger
4971df866e fix git bisect with annotaged tags
As git bisect was migrated from shell to C, the bisect_state conversion
lost the ability to handle annotated tags.  This was not intentional.

It is fixed in upstream commit 7730f85594 (bisect: peel annotated tags
to commits, 2021-03-16).

References:
https://lore.kernel.org/git/878s6nz1sg.fsf@igel.home/
7730f85594.patch
2021-03-19 17:06:33 -04:00
Todd Zullinger
ce53345a7d update to 2.31.0
Release notes:
https://github.com/git/git/raw/v2.31.0/Documentation/RelNotes/2.31.0.txt
2021-03-15 16:04:01 -04:00
Todd Zullinger
a085ac4d92 add 'missing UTF8_NFD_TO_NFC' to git.skip-test-patterns
The UTF8_NFD_TO_NFC prereq was added to t0021-conversion and
t2006-checkout-index-basic in upstream commit 684dd4c2b4 (checkout: fix
bug that makes checkout follow symlinks in leading path, 2020-12-10), to
test the fixes for CVE-2021-21300.

Fedora's supported systems do not appear to "convert decomposed utf-8
(nfd) to precomposed utf-8 (nfc)" which is what the prereq covers.

Ignore the skipped tests which use the UTF8_NFD_TO_NFC prereq when
looking for missing test dependencies and/or incorrectly skipped tests.
2021-03-09 15:59:32 -05:00
Todd Zullinger
cb2e458a19 update to 2.31.0-rc2
This release includes a fix for CVE-2021-21300¹ in addition to the other
changes along the path to the final 2.31.0 release.

Release notes:
https://github.com/git/git/raw/v2.31.0-rc2/Documentation/RelNotes/2.31.0.txt

¹ Per the 2.17.6 release notes on CVE-2021-21300:
    On case-insensitive file systems with support for symbolic links, if
    Git is configured globally to apply delay-capable clean/smudge
    filters (such as Git LFS), Git could be fooled into running remote
    code during a clone.
2021-03-09 14:06:01 -05:00
Todd Zullinger
91eeb42936 update to 2.31.0-rc1
Release notes:
https://github.com/git/git/raw/v2.31.0-rc1/Documentation/RelNotes/2.31.0.txt
2021-03-03 10:22:27 -05:00
Todd Zullinger
adc702ecfc update to 2.31.0-rc0
Release notes:
https://github.com/git/git/raw/v2.31.0-rc0/Documentation/RelNotes/2.31.0.txt
2021-03-03 10:21:08 -05:00
Todd Zullinger
e34350e16e improve gpg verification of upstream source
Use %{gpgverify} macro to verify tarball signature.  The macro is now
available for all supported Fedora and EPEL releases.  (It is presumed
that EL-9 will include %{gpgverify} as it will be branched from F-34.
If that turns out to be false, we will adjust later.)

The Packaging Guidelines require the use of the %{gpgverify} macro:

    https://docs.fedoraproject.org/en-US/packaging-guidelines/#_verifying_signatures

Add a BuildRequires for xz as well, since we use it explicitly in %prep.

Renumber Junio's GPG key from Source9 to Source2 so the %{gpgverify}
calls follow the typical pattern.  It (mildly) lessens cognitive load
for anyone reviewing the spec file.

While here, remove a stale comment about leaving a blank line after
%autosetup to work around a bug on EL6.
2021-03-02 13:17:44 -05:00
Zbigniew Jędrzejewski-Szmek
5662337240 Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.
2021-03-02 16:13:48 +01:00
Ondřej Pohořelský
8d48672806 include git-daemon in git-all meta-package
Installing the git-all meta-package is intended to bring in all git
subpackages.  Add the missing git-daemon.
2021-02-23 09:55:30 -05:00
Todd Zullinger
9163954e0f re-enable t7812-grep-icase-non-ascii on s390x
We disabled t7812's 'PCRE v2: grep non-ASCII from invalid UTF-8 data'
test in 33ecb78 (skip failing test in t7812-grep-icase-non-ascii on
s390x, 2019-10-24).

It was subsequently fixed upstream in e714b898c6 (t7812: expect failure
for grep -i with invalid UTF-8 data, 2019-11-29) and more recently
improved with a4fea08b6e (grep/pcre2 tests: don't rely on invalid UTF-8
data test, 2021-01-24).

Don't skip the test any longer.
2021-02-23 09:54:38 -05:00
Todd Zullinger
0cb8e1a378 update to 2.30.1
Release notes:
https://github.com/git/git/raw/v2.30.1/Documentation/RelNotes/2.30.1.txt
2021-02-08 22:06:18 -05:00
Ondřej Pohořelský
3913289de2 add rhel 9 conditional to require httpd instead of lighttpd in git-instaweb 2021-02-08 22:02:49 -05:00
Todd Zullinger
50e6f6ece0 update Junio's GPG key (with extended expiration)
The key used to sign git releases expired in July 2020.  While this
doesn't strictly affect us because use gpgv to verify the releases
against a known key file, it is worth updating to make it clear that
we're using the correct signing key.

Refer to 7c95c76 (Update Junio's GPG key, 2017-09-16) for a previous
update of the key, including the process used.

Here is a diff of the key file before and after the update:

    $ diff -u <(gpg gpgkey-junio.asc.old 2>/dev/null) <(gpg gpgkey-junio.asc 2>/dev/null)
    --- /dev/fd/63	2021-01-25 11:57:17.367151191 -0500
    +++ /dev/fd/62	2021-01-25 11:57:17.368151229 -0500
    @@ -3,6 +3,6 @@
     uid                           Junio C Hamano <gitster@pobox.com>
     uid                           Junio C Hamano <junio@pobox.com>
     uid                           Junio C Hamano <jch@google.com>
    -sub   rsa4096/B0B5E88696AFE6CB 2011-10-03 [S] [expired: 2020-07-26]
    +sub   rsa4096/B0B5E88696AFE6CB 2011-10-03 [S] [expires: 2028-01-11]
     sub   rsa4096/86B76D5D833262C4 2011-10-01 [E]
    -sub   rsa4096/7594EEC7B3F7CAC9 2014-09-20 [S] [expired: 2020-07-26]
    +sub   rsa4096/7594EEC7B3F7CAC9 2014-09-20 [S] [expires: 2028-01-11]

This thread on the git list is where the question was raised and Junio
confirmed he'd extended the expiration of his signing key:

https://lore.kernel.org/git/B6DFB74D-A722-4DBD-A4B2-562604B21CCB@alchemists.io/T/#u
2021-02-08 21:58:40 -05:00
Fedora Release Engineering
cb12da19d4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 08:07:04 +00:00
Todd Zullinger
c93103f5ad update to 2.30.0
Release notes:
https://github.com/git/git/raw/v2.30.0/Documentation/RelNotes/2.30.0.txt
2020-12-28 15:02:16 -05:00
Todd Zullinger
8fef3782c3 update to 2.30.0-rc2
Release notes:
https://github.com/git/git/raw/v2.30.0-rc2/Documentation/RelNotes/2.30.0.txt
2020-12-23 19:01:29 -05:00
Todd Zullinger
9e220daf74 update to 2.30.0-rc1
Release notes:
https://github.com/git/git/raw/v2.30.0-rc1/Documentation/RelNotes/2.30.0.txt
2020-12-18 23:40:05 -05:00
Todd Zullinger
528c7a0575 update to 2.30.0-rc0
Release notes:
https://github.com/git/git/raw/v2.30.0-rc0/Documentation/RelNotes/2.30.0.txt
2020-12-14 15:09:47 -05:00
Todd Zullinger
ce1d42aa54 lint: ignore "no-binary" warning for main git package
Making the main package noarch is not trivial since we have
arch-specific subpackages.  (I'm not sure it's even possible.)

As noted in 5c331b2 (fix/quiet rpmlint issues from libsecret split,
2020-04-05), when libsecret was split into a subpackage in 9d91bab
(split libsecret credential helper into a subpackage (#1804741),
2020-02-19), it removed the only remaining binary from the main package.
2020-12-07 11:41:54 -05:00
Todd Zullinger
858ea85cce move git-difftool to git-core, it does not require perl
The `git difftool` command was converted to a builtin in git-2.12.0
(from 2017).  We don't need to split it out of git-core.

This was missed in cb7fab7 (Move commands which no longer require perl
into git-core, 2017-11-10) and d56cfc6 (Use symlinks instead of
hardlinks for installed binaries, 2018-03-15).  Better late than never.
2020-12-06 14:47:41 -05:00
Todd Zullinger
c22491b4e8 add epel-rpm-macros BuildRequires on EL-7 (#1872865)
We intend to support building on all supported Fedora and EPEL releases
from the Rawhide branch.  On EL-7, the %build_cflags and %build_ldflags
macros are not present without installing epel-rpm-macros.  Add a build
requirement to ensure these macros are available when building on EL-7.
2020-11-28 19:18:37 -05:00
Todd Zullinger
1faa4b1131 apply upstream patch to resolve git fast-import memory leak (#1900335)
A change in git-2.27.0¹ caused fast-import to leak memory and crash in
some cases.  Apply the upstream fix², which didn't quite make it into
git-2.29.0.

¹ ddddf8d7e2 (fast-import: permit reading multiple marks files, 2020-02-22)
  ddddf8d7e2

² 3f018ec716 (fast-import: fix over-allocation of marks storage, 2020-10-15)
  3f018ec716
2020-11-25 20:55:44 -05:00
Todd Zullinger
6b303b4795 apply upstream patch to resolve git log segfault (#1791810)
A change in git-2.24.0¹ resulted in a segfault when combining the
incompatible (and nonsensical) --follow and -L git log options.  (These
options were used by the GitLens plugin for VS Code until recently².)

The upstream fix returns an error when these options are combined rather
than a segfault.

¹ a2bb801f6a (line-log: avoid unnecessary full tree diffs, 2019-08-21)
  a2bb801f6a

² Fixed in GitLens >= 10.2.3
  https://github.com/eamodio/vscode-gitlens/issues/1139
2020-11-16 18:45:51 -05:00
Todd Zullinger
8fc9bc0302 update to 2.29.2
Quoting the release notes:

   In 2.29, "--committer-date-is-author-date" option of "rebase" and
   "am" subcommands lost the e-mail address by mistake, which has been
   corrected.

Release notes:
https://github.com/git/git/raw/v2.29.2/Documentation/RelNotes/2.29.2.txt
2020-10-29 18:45:12 -04:00
Todd Zullinger
79a4aef788 fix bugs in am/rebase handling of committer ident/date
Quoting from Jeff King's commit message:

    Commit e8cbe2118a (am: stop exporting GIT_COMMITTER_DATE, 2020-08-17)
    rewrote the code for setting the committer date to use fmt_ident(),
    rather than setting an environment variable and letting commit_tree()
    handle it. But it introduced two bugs:

      - we use the author email string instead of the committer email

      - when parsing the committer ident, we used the wrong variable to
	compute the length of the email, resulting in it always being a
	zero-length string

The regression affected both am and rebase.  Apply the upstream fixes.

References:
https://lore.kernel.org/git/20201023070747.GA2198273@coredump.intra.peff.net/
2020-10-24 22:24:00 -04:00
Todd Zullinger
f3a190b8da update to 2.29.1
The update to 2.29.1 is pointless on its own¹, but a subsequent commit
will add some additional post-release fixes for 2.29.  Once we're
pushing an update, we might as well pick up the latest point release to
avoid anyone wondering why we've skipped an update.

Release notes:
https://github.com/git/git/raw/v2.29.1/Documentation/RelNotes/2.29.1.txt

¹ The only change in 2.29.1 is a Makefile fix for users of the
  non-default SKIP_DASHED_BUILT_INS installation option.
2020-10-24 22:18:37 -04:00
Todd Zullinger
08f0612fd8 update to 2.29.0
Release notes:
https://github.com/git/git/raw/v2.29.0/Documentation/RelNotes/2.29.0.txt
2020-10-19 22:43:16 -04:00
Todd Zullinger
126d6526c9 update to 2.29.0-rc2
Release notes:
https://github.com/git/git/raw/v2.29.0-rc2/Documentation/RelNotes/2.29.0.txt
2020-10-15 16:56:50 -04:00
Todd Zullinger
58dc6bb36a adjust python hashbang in contrib/hg-to-git, it supports python3
The hg-to-git.py script in contrib grew python3 support in upstream
commit d17ae00c97 (hg-to-git: make it compatible with both python3 and
python2, 2019-09-18), which was released in git-2.24.0.  Move it from
the python2-only conditionals.

(This leaves contrib/fast-import/import-zips.py as the sole python
script which is _not_ python3-compatible.  It seems to need only minimal
fixes for python2/python3 compatibility -- per some light testing.)
2020-10-11 12:28:51 -04:00
Todd Zullinger
cdea01ae55 drop emacs-git stub for fedora >= 34 (#1882360)
Since git-2.18.0, the emacs files shipped in git have been stub files
which merely point users to better options.  Stop shipping these stubs
with Fedora 34 and later.

Drop the emacs BuildRequires on Fedora >= 34.  Elsewhere, replace it
with emacs-common.  We need macros.emacs for %{_emacs_sitelispdir}
anywhere we ship the stub .el files¹.

The full emacs BR _was_ necessary prior to git-2.18.0, as /usr/bin/emacs
was used to byte compile the .el files.  It traces all the way back to
e46bac5 (Add emacs-git package from Ville (#235431), 2007-06-22).

¹ It might be nice if there were an emacs-rpm-macros for this.  But
  emacs-common is a lot lighter than emacs, so it's still a nice
  improvement.  Per `dnf install` in a current f33 container image:

    $ dnf install emacs
    ...
    Install  193 Packages
    Total download size: 164 M
    Installed size: 544 M

    $ dnf install emacs-common
    ...
    Install  7 Packages
    Total download size: 36 M
    Installed size: 89 M
2020-10-11 12:28:51 -04:00
Todd Zullinger
29f5c9d803 update to 2.29.0-rc1
Release notes:
https://github.com/git/git/raw/v2.29.0-rc1/Documentation/RelNotes/2.29.0.txt
2020-10-09 16:16:03 -04:00
Todd Zullinger
425f3a39fa update to 2.29.0-rc0
Delete references to contrib/svn-fe, it was deleted in upstream commit
fc47391e24 (drop vcs-svn experiment, 2020-08-13).

Release notes:
https://github.com/git/git/raw/v2.29.0-rc0/Documentation/RelNotes/2.29.0.txt
2020-10-05 21:41:37 -04:00
Todd Zullinger
4ba9ba2188 update to 2.28.0
Release notes:
https://github.com/git/git/raw/v2.28.0/Documentation/RelNotes/2.28.0.txt
2020-07-27 17:46:34 -04:00
Fedora Release Engineering
b5802f9607 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 20:03:13 +00:00
Todd Zullinger
495c6f3ba7 update to 2.28.0-rc2
Release notes:
https://github.com/git/git/raw/v2.28.0-rc2/Documentation/RelNotes/2.28.0.txt
2020-07-22 13:41:37 -04:00
Todd Zullinger
b1fa2c8b04 update to 2.28.0-rc1
Release notes:
https://github.com/git/git/raw/1e1a30b64a/Documentation/RelNotes/2.28.0.txt
2020-07-19 19:06:45 -04:00
Todd Zullinger
a773853481 update to 2.28.0-rc0
Release notes:
https://github.com/git/git/raw/v2.28.0-rc0/Documentation/RelNotes/2.28.0.txt

Update git.skip-test-patterns to catch the 2GB clone test.  The output
of the skipped test was changed (for the better) in upstream commit
d63ae31962 (t5608: avoid say() and use "skip_all" instead for
consistency, 2020-05-22).
2020-07-19 19:01:55 -04:00
Jitka Plesnikova
9c1c244fd7 Perl 5.32 re-rebuild of bootstrapped packages 2020-06-26 16:20:55 +02:00
Jitka Plesnikova
8169cdf554 Perl 5.32 rebuild 2020-06-23 10:13:40 +02:00
Todd Zullinger
29f9b2024d update to 2.27.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.27.0.txt
2020-06-01 19:37:50 -04:00
Todd Zullinger
e79e6b9e08 update to 2.27.0-rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.27.0.txt
2020-05-26 14:52:46 -04:00
Todd Zullinger
1a2db2d667 update to 2.27.0-rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.27.0.txt
2020-05-21 21:00:07 -04:00
Merlin Mathesius
24de439725 Minor conditional fixes for ELN
Signed-off-by: Merlin Mathesius <mmathesi@redhat.com>
2020-05-21 13:37:09 -05:00
Todd Zullinger
e22c1de491 update to 2.26.2 (CVE-2020-11008)
From the upstream release notes¹:

  With a crafted URL that contains a newline or empty host, or lacks
  a scheme, the credential helper machinery can be fooled into
  providing credential information that is not appropriate for the
  protocol in use and host being contacted.

  Unlike the vulnerability CVE-2020-5260 fixed in v2.17.4, the
  credentials are not for a host of the attacker's choosing; instead,
  they are for some unspecified host (based on how the configured
  credential helper handles an absent "host" parameter).

  The attack has been made impossible by refusing to work with
  under-specified credential patterns.

¹ https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.5.txt
2020-04-20 14:59:34 -04:00
Todd Zullinger
580a5d3518 update to 2.26.1 (CVE-2020-5260)
From the upstream release notes¹:

  With a crafted URL that contains a newline in it, the credential
  helper machinery can be fooled to give credential information for
  a wrong host.  The attack has been made impossible by forbidding
  a newline character in any value passed via the credential
  protocol.

¹ https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.4.txt
2020-04-14 17:49:29 -04:00
Todd Zullinger
5c331b2580 fix/quiet rpmlint issues from libsecret split
When the libsecret credential helper was split out in 9d91bab (split
libsecret credential helper into a subpackage (#1804741), 2020-02-19), a
few rpmlint errors & warnings crept in.

Update the rpmlintrc file to ignore the no-documentation warning for the
libsecret subpackage (replacing the gnome-keyring entry which is no
longer needed).  Fix an errant tab added to the spec file.

Moving the libsecret credential helper to a subpackage left no binaries
in the main git package, so rpmlint complains.  Fixing this requires a
bit more investigation and care.
2020-04-05 12:03:23 -04:00
Todd Zullinger
c2ee27a40e fix issue with fast-forward rebases when rebase.abbreviateCommands is set
Quoting from the upstream patch:

  Jan Alexander Steffens reported that when `rebase.abbreviateCommands'
  is set, the merge backend fails to fast forward.  This is because the
  backend generates a todo list with only a `noop', and since this
  command has no abbreviated form, it is replaced by a comment mark.
  The sequencer then interprets it as if there is nothing to do, and
  fails.

References:
68e7090f31
https://lore.kernel.org/git/9b4bc756764d87c9f34c11e6ec2fc6482f531805.camel@gmail.com/
2020-04-04 12:20:11 -04:00
Björn Esser
e8ddd85759
Bump release 2020-04-02 13:29:11 +02:00
Björn Esser
64b70dd0af
Fix string quoting for rpm >= 4.16 2020-04-02 12:53:40 +02:00
Todd Zullinger
b0fbda3bc7 update to 2.26.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt
2020-03-22 23:32:32 -04:00
Todd Zullinger
cedf775a27 update to 2.26.0-rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt
2020-03-16 19:57:24 -04:00
Todd Zullinger
33714131a9 remove s390x gcc10 workaround (#1799408)
The workaround added in 9a7edd4 (work around issue on s390x with gcc10
(#1799408), 2020-02-22) is no loner needed.  The issue is fixed in
gcc-10.0.1-0.9.
2020-03-12 17:45:26 -04:00
Todd Zullinger
27b717774c add missing build deps for tests
A recent change to the perl packaging split many modules from the base
perl-interpreter package.  Add the missing test dependencies.

A few non-perl packages are also added, as they are no longer pulled
into the buildroot automatically, but were not properly required.
2020-03-10 23:52:43 -04:00
Todd Zullinger
90d09bcb85 adjust make test options
The make test call was changed to use %make_build in d34bc42 (Use
make_build macro when running tests, 2020-01-14) in order to allow the
options to be more easily overridden.  This enabled the -O option by
default, which causes the test output to be printed only after all the
tests have run.

That makes following the progress in both interactive and copr/koji
builds difficult.  Replace %make_build with %__make to drop the unwanted
-O option but still allow the make command to be overridden.
2020-03-10 23:46:37 -04:00
Todd Zullinger
edfc06e983 update to 2.26.0-rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt
2020-03-10 11:37:16 -04:00
Todd Zullinger
7428a57402 update to 2.26.0-rc0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.26.0.txt
2020-03-05 21:59:18 -05:00
Todd Zullinger
e942c8d036 use Asciidoctor to build documentation when possible
The Asciidoctor project is more actively maintained than asciidoc.  Use
it for building the documentation on Fedora.  Asciidoctor is not
currently available for EL-6 or EL-8, though it is in EPEL for EL-7.
Exclude all EL builds for now, until we can reliably use it on EL-7 and
EL-8 (including CentOS-Stream, ideally).

This is made possible by the excellent work of both the Git and
Asciidoctor communities.  Thanks in particular to brian m. carlson,
Martin Ågren, Jeff King, and Dan Allen.
2020-03-05 21:56:44 -05:00
Todd Zullinger
9a7edd4b7a work around issue on s390x with gcc10 (#1799408)
When git is built with gcc10 on s390x, the diff builtin fails many
tests.  Use -mtune=zEC12 as a workaround until the issue is fixed
(in gcc and/or git).

Many thanks to Jakub Jelinek for doing the hard work to track this down.
2020-02-22 19:04:11 -05:00
Todd Zullinger
e07c54d140 remove unneeded gnome-keyring obsoletes
Fedora 29 has reached its end of life.  We no longer need to obsolete
the gnome-keyring subpackage.
2020-02-19 14:44:50 -05:00
Todd Zullinger
bed4f32f5e consolidate macros for Fedora/EPEL
Fedora 29 has reached its end of life.  Consolidate the macros which
applied to f29 or newer.
2020-02-19 14:43:38 -05:00
Todd Zullinger
9d91bab9c8 split libsecret credential helper into a subpackage (#1804741)
The libsecret package added a weak dependency on gnome-keyring in
4976bb0 (Recommend gnome-keyring, 2019-09-06).  This pulls in a bit more
than we would like with the git package.  Move the libsecret credential
helper to a subpackage.
2020-02-19 13:47:31 -05:00
Todd Zullinger
5c3ad97a83 update to 2.25.1
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.25.1.txt
2020-02-17 02:09:41 -05:00
Fedora Release Engineering
151fc8f21e - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 21:56:13 +00:00
Tom Stellard
d34bc424d9 Use make_build macro when running tests
This will make it possible for buildroots to inject arguments to
make by redefining the %__make macro.

For example, the test target uses gcc to compile fuzz-commit-graph.c, so
one thing this change will allow us to do is to pass CC=clang to make if
we want to try to build with clang.
2020-01-15 17:19:13 +00:00
Todd Zullinger
79d00e3416 update to 2.25.0
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.25.0.txt
2020-01-13 20:07:53 -05:00
Todd Zullinger
715a141ade remove useless use of cat for printing config.mak
This `cat config.mak` was added in 37cec08 (Print config.mak to aid
confirmation/verification of settings, 2019-02-02).  Replace it by
piping the earlier cat through tee so we get a copy of the config on
stdout as well as written to config.mak.
2020-01-10 17:46:09 -05:00
Todd Zullinger
1c6dee8c16 update to 2.25.0-rc2
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.25.0.txt
2020-01-08 20:08:17 -05:00
Todd Zullinger
9b287b4f63 only add highlight test BR for ppc64le/x86_64 on EL7+
The highlight package is not available for aarch64 or s390x in EL7+.
Simplify the conditional (a little) by only listing the 2 known
architectures where highlight is available for EL7+.  It's not worth
adding much complexity for a dependency that is only used in 3 tests
for the gitweb subpackage.
2020-01-02 23:52:31 -05:00
Todd Zullinger
8f50e00fab update to 2.25.0-rc1
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.25.0.txt
2020-01-02 20:57:42 -05:00
Todd Zullinger
4eed98f371 update to 2.25.0-rc0
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.25.0.txt
2020-01-02 20:57:36 -05:00
Todd Zullinger
743dd47b9a fix git-daemon systemd scriptlets (#1785088)
When upgrading or reinstalling git-daemon, the rpm %postun scriptlet
runs the %systemd_postun_with_restart macro with git@.service as the
argument.  The macro calls 'systemctl try-restart git@.service' which
produces an error:

    $ dnf -y update git-daemon
    [...]
      Running scriptlet: git-daemon-2.24.1-1.fc31.x86_64                        2/2
    Failed to try-restart git@.service: Unit name git@.service is missing the instance name.
    See system logs and 'systemctl status git@.service' for details.

Until systemd-242, the error was hidden because the systemd scriptlets
directed all output to /dev/null.  That was changed in systemd commit
b0ca726585 (rpm: avoid hiding errors from systemd commands, 2019-03-20),
exposing this bug in the git-daemon scriptlets.

The misconfiguration also leaves a stale symlink in /etc/systemd if
git.socket is enabled.  Removing the git-daemon package and installing
again later results in git.socket being enabled.

Neither of these are the expected nor intended outcomes.  Replace
git@.service with git.socket in the systemd scriptlets.

The issue was introduced in 906d847 (Rename git.service into
git@.service and bump release, 2014-10-24).  It went unnoticed until now
largely because the systemd scriptlets hid their output.
2019-12-22 12:19:40 -05:00
Todd Zullinger
da087ee719 update to 2.24.1
Per the upstream release announcement¹, this release fixes "various
security flaws, which allowed an attacker to overwrite arbitrary paths,
remotely execute code, and/or overwrite files in the .git/ directory
etc.  See the release notes attached for the list for their descriptions
and CVE identifiers."

Refer to the 2.14.6 release notes² for details on these vulnerabilities.

¹ https://lore.kernel.org/git/xmqqr21cqcn9.fsf@gitster-ct.c.googlers.com/
² https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.14.6.txt
2019-12-10 13:23:30 -05:00
Todd Zullinger
39a7618fa8 restore jgit BR for use in tests
This effectively reverts 8faf622 (drop jgit BR on Fedora > 30,
2019-07-29).  The jgit package is available once again; use it to allow
some compatibility tests to be run.

Resolves: https://bugzilla.redhat.com/1766626
2019-12-03 22:14:32 -05:00
Todd Zullinger
763ae19326 update to 2.24.0
Include the new "Git Code of Conduct" document in git-core-doc.

Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.24.0.txt
2019-11-04 01:34:25 -05:00
Todd Zullinger
deddf05031 update to 2.24.0-rc2
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.24.0.txt
2019-10-30 23:22:01 -04:00
Todd Zullinger
185a1896d7 disable linkcheck test on all EL releases
The linkchecker package is not available for any EL release, including
EL-8.
2019-10-27 15:29:23 -04:00
Todd Zullinger
16e19ee356 gitk: add Requires: git-gui (#1765113)
While this could arguably be a Recommends: rather than Requires:, we
chose the latter for a few reasons.  The user experience when running
gitk and selecting "Start git gui" from the menu is quite poor.  No
indication is shown to the user graphically.  The only hint as to why
git gui did not start is output to stdout (and is not terribly helpful
for users who may be using gitk and git-gui because they are unfamiliar
with the command-line).

There are no additional dependencies pulled in by git-gui which are not
already dependencies of gitk.  And the git-gui package is relatively
small.

Lastly, the default behavior of Recommends: is the same as Requires: at
this time.

If/when any of these things change, we may revisit whether moving to
Recommends: makes more sense.

Thanks to Vasiliy Glazov and Pavel Cahyna for reporting the issue and
helping to determine the proper resolution.
2019-10-24 15:14:03 -04:00
Todd Zullinger
33ecb7860b skip failing test in t7812-grep-icase-non-ascii on s390x
The "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.

Reference:
https://public-inbox.org/git/20191020002648.GZ10893@pobox.com/
2019-10-24 15:14:03 -04:00
Todd Zullinger
8b2d34ca4f update to 2.24.0-rc1
Adjust skipped test number in t5541-http-push-smart.sh (skipped on
aarch64, %{arm}, and %{power64}).  A new test was added in upstream
6f1194246a ("remote-curl: pass on atomic capability to remote side",
2019-10-16), resulting in the "push 2000 tags over http" test number
changing.

Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.24.0.txt
2019-10-24 15:11:56 -04:00
Todd Zullinger
61b7079c2f fix t0500-progress-display on big-endian arches
Thanks to SZEDER Gábor <szeder.dev@gmail.com> for a quick patch.
2019-10-19 19:57:53 -04:00
Todd Zullinger
8040cda919 update to 2.24.0-rc0
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.24.0.txt
2019-10-18 23:14:21 -04:00
Todd Zullinger
20f4fd7268 Update to 2.23.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.23.0.txt
2019-08-16 17:05:49 -04:00
Todd Zullinger
300a3d79f2 Update to 2.23.0-rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.23.0.txt
2019-08-11 20:08:04 -04:00
Todd Zullinger
eb2423a5cb Update to 2.23.0-rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.23.0.txt
2019-08-02 20:02:30 -04:00
Todd Zullinger
f4c8506a97 Update to 2.23.0-rc0
Adjust the test to skip in t5541-http-push-smart as another test was
added before the failing test.

Apply a patch from Jeff King which fixes a failure in the newly-added
t0016-oidmap on big endian systems like s390x¹.

Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.23.0.txt

¹ https://public-inbox.org/git/20190731012336.GA13880@sigill.intra.peff.net/
2019-07-31 19:04:09 -04:00
Todd Zullinger
8faf6223ea drop jgit BR on Fedora > 30
With the move of java packages to modules, jgit looks likely to become
unavailable as a BuildRequires in Fedora soon. Avoid it on Fedora > 30
for now.

This affects 3 tests, 2 for packfile format (t5310-pack-bitmaps) and
1 of ls-remote (t5512-ls-remote).
2019-07-29 11:58:31 -04:00
Todd Zullinger
b52ad890ac avoid trailing comments in spec file
Spec file comments are only officially supported at the start of a line.
Trailing comments only worked unintentionally and rpm >= 4.15 warns
about such comments.

Reference:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/CKQCK5MDN6PFGAD4YOMXTO3SDAUKTCUT/
2019-07-25 21:07:38 -04:00
Todd Zullinger
e733d5d898 completion: do not cache if --git-completion-helper fails
"git <cmd> --git-completion-helper" could fail if the command checks for
a repo before parse_options(). If the result is cached, later on when
the user moves to a worktree with repo, tab completion will still fail.

Avoid this by detecting errors and not cache the completion output.
2019-07-25 21:07:38 -04:00
Fedora Release Engineering
edc147ffe0 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 03:26:35 +00:00
Todd Zullinger
b5ef6c9e8b Update to 2.22.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.22.0.txt
2019-06-07 17:48:29 -04:00
Todd Zullinger
666aaebbc9 Add changelog entry for 2.22.0-0.6.rc3
I failed to add this entry in 21cae1e ("Update to 2.22.0-rc3",
2019-06-03).
2019-06-04 11:30:03 -04:00
Jitka Plesnikova
910a5f7151 Perl 5.30 re-rebuild updated packages 2019-06-04 14:49:05 +02:00
Todd Zullinger
21cae1e2e4 Update to 2.22.0-rc3
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.22.0.txt
2019-06-03 19:20:50 -04:00
Jitka Plesnikova
9528c261f5 Perl 5.30 re-rebuild of bootstrapped packages 2019-06-02 22:59:52 +02:00
Jitka Plesnikova
2fb7861861 Perl 5.30 rebuild 2019-06-01 20:21:17 +02:00
Todd Zullinger
763b9e71e9 Update to 2.22.0-rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.22.0.txt
2019-05-30 21:01:49 -04:00
Todd Zullinger
9524a99a05 Apply upstream fixes for diff-parseopt issues on s390x
References:
https://public-inbox.org/git/20190523150416.GL3654@pobox.com/#t
https://public-inbox.org/git/20190524092442.701-1-pclouds@gmail.com/T/
2019-05-25 12:42:51 -04:00
Todd Zullinger
554467c649 Update changelog for 2.22.0-rc1 2019-05-25 12:42:38 -04:00
Todd Zullinger
ba20d6b2a2 Update to 2.22.0-rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.22.0.txt
2019-05-19 16:40:01 -04:00
Todd Zullinger
40e1625e1a Add perl(JSON::PP) BuildRequires for trace2 tests
The JSON::PP perl module is used by t0212-trace2-event.  It is available
on all supported Fedora and EPEL releases.
2019-05-14 02:01:22 -04:00
Todd Zullinger
51610991b8 Improve JGIT test prereq (jgit on Fedora >= 30 is broken)
Running jgit on Fedora >= 30 results in an immediate failure¹:

  $ jgit --version
  /usr/bin/build-classpath: Could not find xz-java Java extension for this JVM
  /usr/bin/build-classpath: error: Some specified jars were not found
  Error: Could not find or load main class org.springframework.boot.loader.JarLauncher

Skip the jgit tests if 'jgit --version' fails.  This way we'll begin
running them again once the issue is resolved -- without having to make
any further changes to the git package.

Also exclude jgit on i386 arch, as upstream eclipse has dropped support.
We could adjust the conditional to only exclude on Fedora >= 30 and
i386, but the added complexity is not worth the effort.

¹ jgit bug report: https://bugzilla.redhat.com/1709624
2019-05-14 02:01:22 -04:00
Todd Zullinger
8d801b24a1 Ensure a consistent format for test output
When run with or without a controlling terminal, keep the test output
the same.
2019-05-13 15:19:34 -04:00
Todd Zullinger
03148fb477 Update to 2.22.0-rc0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.22.0.txt
2019-05-13 15:17:46 -04:00
Todd Zullinger
e17874a9b1 Link git-citool to git-gui
The git-gui Makefile does not follow the INSTALL_SYMLINKS setting.
Until it does, manually symlink git-citool to git-gui.

Test that the files are identical before linking, to avoid issues if
they begin to differ in the future.
2019-02-24 13:31:22 -05:00
Todd Zullinger
530061ce99 Move gitweb manpages to gitweb package
The gitweb manpages should be installed with the gitweb package.  This
discrepancy was noted by Robert P. J. Day on the git list¹.

¹ https://public-inbox.org/git/alpine.LFD.2.21.1902230756280.24879@localhost.localdomain/
2019-02-24 13:31:08 -05:00
Todd Zullinger
050797604f Update to 2.21.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-24 13:30:39 -05:00
Todd Zullinger
42b4954b73 Update to 2.21.0.rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-19 18:51:40 -05:00
Todd Zullinger
233359ed66 Set SOURCE_DATE_EPOCH and TZ to improve build reproducibility
The documentation tools respect these variables when generating dates in
the man and html docs.  This is a small step toward making the package
builds reproducible.

An alternate method to set SOURCE_DATE_EPOCH would be to set the rpm
%source_date_epoch_from_changelog macro.  Using the version file from
the tarball is a little nicer as the date is printed in the man pages.
We'd still need to set TZ anyway, as the html documentation sets the
'last updated' footer entry based on the timestamp of the corresponding
txt file.

[Note: It is possible to avoid the 'last updated' footer entirely by
setting the asciidoc footer-style attribute to none.  This would need to
be done via sed or a patch, as there's not currently a way to set this
in config.mak -- but perhaps there should be.]

Reference: https://reproducible-builds.org/specs/source-date-epoch/
2019-02-16 14:22:24 -05:00
Todd Zullinger
f506af1ff5 Update to 2.21.0.rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-14 03:32:30 -05:00
Todd Zullinger
aefb419775 Remove %changelog entries prior to 2017
The git history serves as the repository for the old entries.  The
changelog was roughly 40% of the total lines in the spec file.
2019-02-13 22:43:32 -05:00
Todd Zullinger
74154edcfe Update to 2.21.0.rc0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.21.0.txt
2019-02-13 22:41:10 -05:00
Todd Zullinger
a643ff944c Drop unneeded TEST_SHELL_PATH make variable
TEST_SHELL_PATH was added in 62f562d ("Use 'prove' as test harness,
enable shell tracing", 2018-01-18).  Shortly afterward, upstream commit
a5bf824f3b ("t: prevent '-x' tracing from interfering with test helpers'
stderr", 2018-02-25)¹ removed the need to use bash to get the benefits of
running the test suite with '-x' tracing.

¹ a5bf824f3b
2019-02-11 22:59:50 -05:00
Todd Zullinger
95fc1fa70e Use build_cflags/build_ldflags instead of optflags/__global_ldflags
The build_cflags and build_ldflags macros replace the deprecated
optflags and __global_ldflags macros, per buildflags.md in
redhat-rpm-config¹.

Note: EPEL provides these macros for compatibility.

¹ https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/master/f/buildflags.md
2019-02-11 22:59:50 -05:00
Todd Zullinger
10da171608 Fix formatting of contrib/{contacts,subtree} docs
The Makefiles for contrib/{contacts,subtree} don't include various
asciidoc, docbook, and xmlto options which are added to docs built from
the Documentation dir.  Without these options the man page generated
for git-contacts has formatting issues.

Move the contrib/{contacts,subtree} docs to the Documentation dir to be
built along with the other doc files.
2019-02-11 22:59:49 -05:00
Todd Zullinger
fa926617fe Add grep patterns for checking skipped tests
It is useful to check the output of the test suite for skipped tests.
This reveals tests which may have missing BuildRequires or other issues.
Doing so can be tedious due to the many legitimate tests we skip.  Keep
a list of patterns matching tests we skip intentionally.

To use this list to process a build.log, run something like the
following:

    $ egrep '# SKIP|skipped:' build.log | egrep -v -f git.skip-test-patterns

There should be no output.  Any output should be checked and the tests
fixed or added to the skip patterns file.
2019-02-11 22:59:49 -05:00
Todd Zullinger
fcdcff43cd Drop gnupg BuildRequires on fedora >= 30
Now that Fedora 30 defaults to gnupg2 as /bin/gpg we don't need to
install gnupg for the test suite.  We already require gnupg2 to verify
the source files.
2019-02-11 22:59:49 -05:00
Todd Zullinger
37cec08b20 Print config.mak to aid confirmation/verification of settings
Having the output of the config.mak file in the build output is very
convenient, particularly when building in koji or copr where it is not
possible to directly access the buildroot.
2019-02-11 22:59:49 -05:00
Todd Zullinger
c9d5e18948 Work around gpg-agent issues in the test suite
GnuPG2 requires gpg-agent and tries to start it on demand.  The agent
uses a socket for communication and the path to this socket must be
shorter than sun_path [108 characters, per unix(7)].

Adjust the location of the temporary directories used by the test suite
by passing the --root option via GIT_TEST_OPTS.

One potential downside to this is that we use mktemp to create the
directory and this will differ between builds.  If/when we want to make
our builds entirely reproducible we will need to revisit this.  With
luck, gnupg will be better behaved by that time¹.

An alternate solution I tested was to rename the two problematic tests
(t5573 and t7612).  This is a brittle solution as new tests may be added
which cause the same path length issue for gpg-agent.

Also drop the redundant killing of gpg-agent.  This doesn't break
anything but it can only slow the test suite (however slightly).

¹ A ticket was filed to improve gpg-agent's handling of long paths in
  GNUPGHOME (but it's nearly 2 years old): https://dev.gnupg.org/T2964.
2019-02-11 22:59:49 -05:00
Todd Zullinger
a74fadafe7 Add gnupg2-smime and perl JSON BuildRequires for tests
In addition to the gnupg2-smime BR, patch an issue which prevents the
gpgsm tests from running.  Only include gpgsm on Fedora and RHEL > 8.
On RHEL < 8 the gnupg2-smime package is too old to run the tests.
2019-02-11 22:59:49 -05:00
Todd Zullinger
a245ca5676 print-failed-test-output: minor improvements
Drop the subshell used to create the string of dashes (and rename the
variable to "sep" at the same time).  Replace $(cat file) with the
equivalent but faster $(< file).
2019-02-11 22:47:30 -05:00
Todd Zullinger
bb15dc829e Replace gitweb home-link with inline sed
One less patch to manage.
2019-02-11 22:47:10 -05:00
Todd Zullinger
fece8d786b Add additional BuildRequires for i18n locales used in tests
The test suite uses is_IS.UTF-8 and is_IS.ISO8859-1 (via the
GETTEXT_LOCALE and GETTEXT_ISO_LOCALE prereq's.  Ensure these locales
are available.  Installing glibc-langpack-is is insufficient as it does
not provide is_IS.ISO8859-1, glibc-all-langpacks is also needed.

Now that we're installing additional langpacks, update the macro name
which was added in a6a24cf ("Add glibc-langpack-en BuildRequires for
en_US.UTF-8 locale", 2018-11-05).
2019-02-11 22:46:46 -05:00
Todd Zullinger
5aaf62d16f Remove extraneous pcre BuildRequires
The pcre BR was added in 6dc6285 ("Improve test suite coverage",
2017-11-10), which seems to have been an oversight.  The test suite
improvements were worked on over a long period of time.  It is quite
likely that the pcre BR was needed before 6dc6285 was finalized.
Regardless, we began building against pcre2 in 595b682 ("Use pcre2
library", 2017-07-22).

Note that pcre remains in the minimal buildroot due to dependencies in
glib2 and grep.
2019-02-11 22:46:22 -05:00
Fedora Release Engineering
6a5fa7acb3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 22:26:02 +00:00
Todd Zullinger
e38a5c222e Update to 2.20.1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.1.txt
2018-12-15 00:53:32 -05:00
Todd Zullinger
4fe38417f1 Update to 2.20.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.0.txt
2018-12-09 10:18:20 -05:00
Todd Zullinger
c983514258 Update to 2.20.0.rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.0.txt
2018-12-01 13:45:33 -05:00
Todd Zullinger
0b6f68c532 Update to 2.20.0.rc1
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.20.0.txt
2018-11-26 22:51:54 -05:00
Todd Zullinger
e46c99bb3b Update to 2.19.2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.19.2.txt
2018-11-21 23:44:18 -05:00
Todd Zullinger
a6a24cf421 Add glibc-langpack-en BuildRequires for en_US.UTF-8 locale
Fedora 30 will remove glibc-all-langpacks from the default buildroot¹.
Ensure en_US.UTF-8 locale is present for the test suite.  Avoid C.UTF-8
until it is more widely used and tested.

¹ https://fedoraproject.org/wiki/Changes/Remove_glibc-langpacks-all_from_buildroot
2018-11-21 23:40:32 -05:00
Todd Zullinger
314daae243 Avoid 'unexpanded macro' warning in mock srpm builds
When preparing the srpm in mock or other minimal environments, the use
of %{_emacs_version} causes a spurious warning:

  Possible unexpanded macro in: Requires: emacs-filesystem >= %{_emacs_version}

Prevent the warning with a check that the macro is defined before use.

(There is another use of %{_emacs_version}, but it only applies to EL-6
where the warning is not present.  Just ignore it.)
2018-11-21 23:40:32 -05:00
Todd Zullinger
ac594c4ca5 Add comments to %endif statements
Make it easier to tell what %if conditions are being ended.  This is
particularly useful with nested conditions since we lack any indentation
to visually denote the conditional blocks.
2018-11-21 23:40:32 -05:00
Todd Zullinger
ba93b90998 Use %{without ...} macro consistently
The %{without ...} macro is easier to read than '! %{with ...}', use it
consistently.

(Note that using %without_* and %_without_* macros is still not
advised.)
2018-11-21 23:40:32 -05:00
Todd Zullinger
4e0f331329 Simplify gpg verification of Source0
The verification was simplified slightly in 903d8f3 ("Remove EL-5 and
old Fedora conditionals", 2017-07-22).

Further simplifications:

    - do away with unneeded variables
    - drop '--batch' and '>/dev/null' from gpg2 --dearmor
    - check tarball signature via stdin

The "noisy output from GnuPG 2.0" alluded to on EL <= 7 is no longer
present.  This has been tested in mock for el6, el7, and fedora
releases.
2018-11-21 23:40:32 -05:00
Todd Zullinger
a91c5fdb8a Skip test BuildRequires when --without tests is used
The chroot is a bit quicker to create and slightly smaller when building
'--without tests' if the BuildRequires needed to run the tests are
skipped.

Add pod2man dependency when documentation is enabled (the default).
Since git-2.17.0, pod2man is needed to build Git.3pm.  The pod2man
command is in perl-podlators on Fedora and EL >= 7, but in perl on EL-6.
Use %{_bindir}/pod2man to ensure the dependency is found regardless of
what package provides it.

The dependency is only missed when building without the test deps, as
the many perl requirements pulled in for the test suite bring in
pod2man.
2018-11-21 23:40:27 -05:00
Pavel Cahyna
79dbcc83dc Update condition for the t5540-http-push-webdav test for future RHEL 2018-10-22 11:43:21 +02:00
Todd Zullinger
32a31b7090 Update to 2.19.1 (CVE-2018-17456)
From the upstream release announcement:

  These releases fix a security flaw (CVE-2018-17456), which allowed an
  attacker to execute arbitrary code by crafting a malicious .gitmodules
  file in a project cloned with --recurse-submodules.

  When running "git clone --recurse-submodules", Git parses the supplied
  .gitmodules file for a URL field and blindly passes it as an argument
  to a "git clone" subprocess.  If the URL field is set to a string that
  begins with a dash, this "git clone" subprocess interprets the URL as
  an option.  This can lead to executing an arbitrary script shipped in
  the superproject as the user who ran "git clone".

  In addition to fixing the security issue for the user running "clone",
  the 2.17.2, 2.18.1 and 2.19.1 releases have an "fsck" check which can
  be used to detect such malicious repository content when fetching or
  accepting a push. See "transfer.fsckObjects" in git-config(1).

  Credit for finding and fixing this vulnerability goes to joernchen
  and Jeff King, respectively.

References:
https://public-inbox.org/git/xmqqy3bcuy3l.fsf@gitster-ct.c.googlers.com/
2018-10-05 15:18:02 -04:00
Todd Zullinger
1cb6673d8f Update t5551 w/curl-7.61.1 patch
Add a link to the upstream commit and use that patch.  The patch content
is the same -- only the metadata differs.
2018-10-01 23:26:58 -04:00
Todd Zullinger
dc9c346ade Filter rpmlint complaint about %{_emacs_version}
We BR emacs which requires emacs-common and provides %{_emacs_version}.
2018-09-11 03:06:06 -04:00
Todd Zullinger
93e9ed05e4 Update to 2.19.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.19.0.txt
2018-09-10 22:26:10 -04:00
Todd Zullinger
6bd166894f Add --without tests option to skip tests
While rpmbuild and mock have --nocheck to disable the %check section,
'fedpkg mockbuild' lacks this convenient option.

Add %bcond_without tests to allow 'fedpkg mockbuild --without tests' to
not run the test suite.  Disabling the test suite cuts the build time by
approximately 60%, which is very useful while working on changes to the
packaging.
2018-09-10 22:26:10 -04:00
Todd Zullinger
2ed8c8c53d Fix smart-http test due to changes in cookie sort order in curl-7.61.1
With curl-7.61.1 cookies are sorted by creation-time¹.  Sort the output
used in the 'cookies stored in http.cookiefile when http.savecookies
set' test before comparing it to the expected cookies.

¹ e2ef8d6fa ("cookies: support
  creation-time attribute for cookies", 2018-08-28)
2018-09-10 22:26:10 -04:00
Sebastian Kisela
6bf3ed4a31 Fix builds without docs and without cvs and/or p4
When building with options "--without docs --without p4 --without cvs"
the build fails with the following errors:

    error: Installed (but unpackaged) file(s) found:
       /usr/share/doc/git/git-cvsexportcommit.txt
       /usr/share/doc/git/git-cvsimport.txt
       /usr/share/doc/git/git-cvsserver.txt
       /usr/share/doc/git/git-p4.txt
	Installed (but unpackaged) file(s) found:
       /usr/share/doc/git/git-cvsexportcommit.txt
       /usr/share/doc/git/git-cvsimport.txt
       /usr/share/doc/git/git-cvsserver.txt
       /usr/share/doc/git/git-p4.txt

The .txt files were not caught by the %files entry in the main git
package when cvs/p4 were disabled -- from 9cd8ee7 ("Disable CVS support
on EL > 7", 2018-03-14.  Those only applied when documentation was not
disabled.

Remove git-cvs* and git-p4* files from Documentation as well as the
%{buildroot}.  Simplify the find path by dropping %{_bindir} and
%{gitexecdir}.  Tighten the git-p4 glob to avoid unintended matches.
Drop the conditional inclusion of cvs/p4 docs in the main git package in
favor of removing the files entirely.
2018-09-10 22:26:10 -04:00
Sebastian Kisela
f8a83b9ea0 Move instaweb to a subpackage
Gives possibility to add dependencies for git-instaweb http daemon,
without having to install all dependencies at each git install.

Currently, lighttpd is required by the git-instaweb package.
The git-instaweb script supports other httpd daemons (httpd, mongoose,
plackup [in perl(Plack)], and webrick [in rub-libs]).  lighttpd is the
default, works without any configuration, and is only ~1M installed.
2018-09-10 22:26:10 -04:00
Todd Zullinger
3bd04f23dc Drop git-gnome-keyring obsolete for fedora > 30
Add a conditional to allow merging from master to f29.  The obsoletes
should be removed when f29 is EOL.  It was added in 2d1c8b1 ("Remove
obsolete gnome-keyring credential helper", 2018-01-09).  The comment was
improved in 4a06e99 ("clarify comment for obsolete git-gnome-keyring",
2018-09-04).
2018-09-10 22:26:10 -04:00
Todd Zullinger
1fe470a26e Remove python2 contrib scripts if python2 is not available
Avoid shipping scripts which require python2 when building without
python2.  The following scripts/directories are removed:

    contrib/fast-import/import-zips.py
    contrib/hg-to-git
    contrib/svn-fe
2018-09-10 22:26:10 -04:00
Todd Zullinger
601f4c9e87 Obsolete git-cvs if it's disabled
Similar to git-p4 in 5032bef ("bump release", 2018-09-04), add
Obsoletes: for git-cvs when it is disabled.
2018-09-10 22:25:49 -04:00
Todd Zullinger
cf5fc1863f Drop unnecessary Conflicts: when git-p4 is disabled
The Obsoletes: tag is sufficient to ensure git-p4 is removed when
updating to a newer git which lacks a git-p4 subpackage.
2018-09-08 01:30:00 -04:00
Todd Zullinger
2b58811801 Update to 2.19.0.rc2
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.19.0.txt
2018-09-05 00:52:20 -04:00
Todd Zullinger
9c32e2fbfb Ignore rpmlint warning when git-p4 is obsoleted
When python2 is not available the git-p4 package is obsoleted.  Ignore
the subsequent rpmlint "obsolete-not-provided" warning.
2018-09-05 00:51:57 -04:00
Nils Philippsen
5032bef960 bump release 2018-09-04 14:18:29 +02:00
Nils Philippsen
4a06e99217 clarify comment for obsolete git-gnome-keyring 2018-09-04 14:17:41 +02:00
Todd Zullinger
dfcc5ccfe1 Update to 2.19.0.rc1 2018-08-28 16:41:06 -04:00
Todd Zullinger
218c314f1f Update to 2.19.0.rc0 2018-08-23 17:42:20 -04:00
Todd Zullinger
394b8eec1e Restore fixed contrib/credential/netrc tests 2018-08-23 17:42:11 -04:00
Todd Zullinger
8f1e2b63b0 Remove git-remote-testsvn, make git-svn noarch
A future release of git will likely remove contrib/svn-fe and
git-remote-testsvn¹.  The git-remote-testsvn binary is the only noarch
file in the git-svn package.  Seeing that it's utility is very
questionable, remove it so git-svn can return to a noarch package.

¹ https://public-inbox.org/git/20180817190310.GA5360@sigill.intra.peff.net/
2018-08-23 17:37:25 -04:00
Fedora Release Engineering
98b3cc5061 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 02:24:10 +00:00
Petr Písař
3e2a92724a Perl 5.28 rebuild 2018-07-03 12:15:31 +02:00
Jitka Plesnikova
fb90b05714 Perl 5.28 re-rebuild of bootstrapped packages 2018-07-01 09:00:33 +02:00
Jitka Plesnikova
3a186b000a Perl 5.28 rebuild 2018-06-29 21:51:33 +02:00
Pavel Cahyna
bd7ea152d6 fix build --without cvs
9125e65 ("Use new INSTALL_SYMLINKS setting", 2018-05-30) broke builds
using --without cvs. /usr/libexec/git-core/git-cvsserver became a
symlink instead of hardlink. Adapt the find command used to exclude
'git-cvs*' files to detect symlinks as well.
2018-06-27 01:23:50 -04:00
Todd Zullinger
a66569768e Update to 2.18.0
Release notes:
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.18.0.txt
2018-06-21 15:38:42 -04:00
Miro Hrončok
83950a818e Rebuilt for Python 3.7 2018-06-19 10:43:40 +02:00
Todd Zullinger
5cf8e316f1 Apply upstream zlib buffer handling patch (#1582555)
With the patch accepted upstream, apply it to all architectures.
2018-06-13 18:36:50 -04:00
Todd Zullinger
5834e5a5ce Update to 2.18.0-rc2 2018-06-13 18:27:26 -04:00
Todd Zullinger
8169f9d942 lint: fix macro-in-%changelog warnings
These unescaped macros slipped in with 3f3a0b6 ("Use %make_build and
%make_install", 2018-05-30).
2018-06-07 23:40:21 -04:00
Todd Zullinger
c86e52df37 Build git-subtree docs in %build
We want to build all documentation in the %build phase rather than
falling through to the %install phase and building it as a dependency of
install-doc.
2018-06-07 23:34:44 -04:00
Todd Zullinger
2ea451f1f4 Include git-contacts, SubmittingPatches suggests it to users
The git-contacts script was added to SubmittingPatches recently.  Make
it easier for users who read about it in the documentation to make use
of the command.
2018-06-07 23:33:48 -04:00
Todd Zullinger
95447ce86a Drop flaky & out-of-place netrc credential helper tests
The default target in contrib/credential/netrc/Makefile is, and has
always been, test.  Running 'make -C contrib/credential/netrc/' in
%build is not needed.

Additionally, the tests recently were changed and require perl-Git to be
installed before running.  The tests also exit cleanly regardless of any
failures encountered, which makes them unreliable.  A fix for these
issues will be submitted upstream, but rather than apply it here, simply
drop the unneeded 'make' call.

Ideally, the tests will be run in %check once fixed.  This does present
a small wrinkle due to the deletion of contrib/credential in %install.
Cross that bridge when we get there. :)
2018-06-05 13:30:56 -04:00
Todd Zullinger
ce668b9d1e Update to 2.18.0-rc1 2018-06-05 13:30:56 -04:00
Todd Zullinger
572ec3935e add -p: fix counting empty context lines in edited patches
References:
f2cb01d35
https://public-inbox.org/git/20180601174644.13055-1-phillip.wood@talktalk.net/
2018-06-05 13:30:56 -04:00
Todd Zullinger
9125e65273 Use new INSTALL_SYMLINKS setting
Replace NO_CROSS_DIRECTORY_HARDLINKS and NO_INSTALL_HARDLINKS with
INSTALL_SYMLINKS.  The result is slightly improved; all symlinks will
point directly to the target rather than via multiple levels of
symlinks.

The rationale was covered in slightly more detail in d56cfc6 ("Use
symlinks instead of hardlinks for installed binaries", 2018-03-15).

Adjust the dangling-relative-symlink filter in the rpmlint config for
the new target of the git-difftool symlink.
2018-06-05 13:30:56 -04:00
Todd Zullinger
d3cc8ccead Update to 2.18.0-rc0
The USE_LIBPCRE setting now defaults to pcre2; use it.  It's still
valid to set USE_LIBPCRE2, but using the default should be cleaner in
the long-run.

The (long-unmaintained) emacs support has been dropped upstream in favor
of better alternatives.  From the upstream commit¹:

    The git-blame.el mode has been superseded by Emacs's own
    vc-annotate (invoked by C-x v g). Users of the git.el mode are now
    much better off using either Magit or the Git backend for Emacs's own
    VC mode.

    These modes were added over 10 years ago when Emacs's own Git support
    was much less mature, and there weren't other mature modes in the wild
    or shipped with Emacs itself.

    These days these modes have few if any users, and users of git aren't
    well served by us shipping these (some OS's install them alongside git
    by default, which is confusing and leads users astray).

¹ 6d5ed4836d ("git{,-blame}.el: remove old bitrotting Emacs code", 2018-04-11)
  https://git.kernel.org/pub/scm/git/git.git/commit/?id=6d5ed4836d
2018-06-05 13:30:56 -04:00
Todd Zullinger
3f3a0b6309 Use %make_build and %make_install
Also drop DESTDIR and INSTALL from config.mak; they are both handled via
%make_install.

Remove the rpmlint filter for %buildroot usage which was only needed due
to DESTDIR's use in config.mak.
2018-06-05 13:30:49 -04:00
Todd Zullinger
fd929804e7 Disable jgit tests on s390x, they're unreliable
Specifically, t5512-ls-remote.sh has a test which starts a jgit daemon.
This has failed to exit on a number of occasions, only on s390x.  We
could disable just that test with "GIT_SKIP_TESTS=t5512.28", but the
test number can and does change as more ls-remote tests are added.

Dropping the jgit BuildRequires is cleaner and only causes 3 tests to be
skipped, the offending t5512 test and two others in t5310-pack-bitmaps.

Access to s390x might help better debug this, but it does not occur
consistently and may be limited to koji.  The issue could be a problem
in jgit as well.  While looking at a hung build, Kevin Fenzi found a few
errors in t5512-ls-remote.out:

    /usr/bin/build-classpath: Could not find xz-java Java extension for this JVM
    /usr/bin/build-classpath: error: Some specified jars were not found
2018-06-05 13:30:21 -04:00
Todd Zullinger
f179dc950e Use %apply_patch for aarch64 zlib patch, return to %autosetup
Unfortunately, it appears we need to carry this patch longer than
expected.  Return to using %autosetup so other patches are easier to
manage.  Use %apply_patch to manually apply the zlib patch only on
aarch64, as that is the only arch where it is required at this time.
2018-06-05 12:27:41 -04:00
Todd Zullinger
10eda9d47e Update rpmlint config path
The default path was changed from .rpmlint to <module_name>.rpmlintrc in
rpkg (https://pagure.io/rpkg/pull-request/293).
2018-05-29 16:27:44 -04:00
Todd Zullinger
20fad240e8 packfile: Correct zlib buffer handling on aarch64 (#1582555)
A recent zlib build with optimization for ARM exposed an issue in git's
packfile handling.

Thanks to Pavel Cahyna for the initial report and debugging and Jeremy
Linton for further diagnosis and the subsequent patch.

The patch is currently being discussed upstream¹.  Until it is accepted,
apply it only on aarch64 to avoid any unexpected issues with other
arches.

¹ https://public-inbox.org/git/20180525231713.23047-1-lintonrjeremy@gmail.com/T/#u
2018-05-29 14:28:31 -04:00
Todd Zullinger
9a5cabc9ef Update to 2.17.1 (CVE-2018-11233, CVE-2018-11235)
Fixes two security issues, described in the 2.13.7 release notes¹:

 * Submodule "names" come from the untrusted .gitmodules file, but we
   blindly append them to $GIT_DIR/modules to create our on-disk repo
   paths. This means you can do bad things by putting "../" into the
   name. We now enforce some rules for submodule names which will cause
   Git to ignore these malicious names (CVE-2018-11235).

   Credit for finding this vulnerability and the proof of concept from
   which the test script was adapted goes to Etienne Stalmans.

 * It was possible to trick the code that sanity-checks paths on NTFS
   into reading random piece of memory (CVE-2018-11233).

¹ https://mirrors.edge.kernel.org/pub/software/scm/git/docs/RelNotes/2.13.7.txt
2018-05-29 13:08:24 -04:00
Todd Zullinger
676f6fab11 Improve debug output when 'make test' fails
If 'make test' fails before running any tests, the debug output from
print-failed-test-output is confusing:

    + ./print-failed-test-output
    cat: t/test-results/*.exit: No such file or directory
    ./print-failed-test-output: line 6: [: : integer expression expected

    --------------------------------------------------------------------------------
    t/test-results/*.out
    --------------------------------------------------------------------------------
    cat: t/test-results/*.out: No such file or directory

Use the bash failglob option to imrpve the output:

    + ./print-failed-test-output
    ./print-failed-test-output: line 12: no match: t/test-results/*.exit
2018-05-25 10:20:48 -04:00
Todd Zullinger
de617607d0 Move TEST_SHELL_PATH setting to config.mak
There's no need to manually export this.  Set it via the method
documented in the Makefile, like other settings.
2018-05-24 21:44:08 -04:00
Todd Zullinger
b717510550 Fix segfault in rev-parse with invalid input (#1581678) 2018-05-24 21:41:43 -04:00
Todd Zullinger
ebd4261f9f Fix formatting of changelog release string
While it's acceptable with or without the hyphen, all other entries use
a hyphen.  Keep it consistent.
2018-04-22 17:00:14 -04:00
Todd Zullinger
6eb92cebdc Re-enable t5000-tar-tree.sh test on f28
The unknown, but temporary, breakage in fedora-28-x86_64 buildroots
appears to be resolved.

The test was disabled in a998227 ("Disable t5000-tar-tree.sh on x86 in
f28", 2018-01-18).
2018-04-16 14:27:50 -04:00
Todd Zullinger
da74a8e523 Move linkcheck macro to existing fedora/rhel > 7 block
The spec file is a bit easier to read with as few conditional blocks as
required.  Use %bcond_(with|without) to allow easier toggling of the
link checking.
2018-04-16 12:14:49 -04:00
Pavel Cahyna
34c2440884 Update conditions for future RHEL 2018-04-16 11:13:55 -04:00
Pavel Cahyna
1a82d92cd4 Conform to the Packaging Guidelines for Perl
Add BuildRequires: perl-interpreter (or perl on systems that do not
provide perl-interpreter) since perl is invoked during the build
process.

(https://fedoraproject.org/wiki/Packaging:Perl#Build_Dependencies,
https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules)

Probably no functional change, since perl is being brought in via other
deps.
2018-04-14 19:33:46 -04:00
Todd Zullinger
eeb7261573 Require perl-generators on EL > 7
Add a %{use_perl_generators} macro to control this requirement.
2018-04-12 20:45:18 -04:00
Todd Zullinger
c1f934e016 daemon: use --log-destination=stderr with systemd
Using stderr rather than syslog should be a mild improvement with the
systemd journal.  The reasons are detailed in the upstream commit
0c591cacba ("daemon: add --log-destination=(stderr|syslog|none)",
2018-02-04)¹:

    The combination of --inetd with --log-destination=stderr is useful, for
    instance, when running `git daemon` as an instanced systemd service
    (with associated socket unit). In this case, log messages sent via
    syslog are received by the journal daemon, but run the risk of being
    processed at a time when the `git daemon` process has already exited
    (especially if the process was very short-lived, e.g. due to client
    error), so that the journal daemon can no longer read its cgroup and
    attach the message to the correct systemd unit (see systemd/systemd#2913
    [1]). Logging to stderr instead can solve this problem, because systemd
    can connect stderr directly to the journal daemon, which then already
    knows which unit is associated with this stream.

    [1]: https://github.com/systemd/systemd/issues/2913

While here, wrap the git-daemon command line to improve readability.

¹ 0c591cacba
2018-04-11 23:19:00 -04:00
Todd Zullinger
f25fef61e0 daemon: fix condition for redirecting stderr
We don't currently use the --log-destination option in the git-daemon
systemd service or xinetd files.  With this patch in place, we can.
2018-04-11 23:19:00 -04:00
Todd Zullinger
e72bed93ca git-svn: avoid uninitialized value warning
This issue has been present since 2.11.0, but only became visible with
the addition of the 'use warnings' pragma in 2.17.0.
2018-04-11 23:19:00 -04:00
Todd Zullinger
5eb603d7e0 Clean up redundant and unneeded Requires
Move all Requires to their own lines for better readability.

We can safely drop the 'perl(Git)' requires from the cvs and email
packages because the perl rpm dependency generator already add it.

We can also drop 'perl-Git = %{version}-%{release}' from the email
package because it requires 'git = %{version}-%{release}' which in turn
requires the matching 'perl-Git' package.
2018-04-11 23:19:00 -04:00
Todd Zullinger
b5fac2ab8d Remove Git::LoadCPAN to ensure we use only system perl modules
Git tries very hard to rely on as few non-core modules as possible.  The
few that it does (currently Error and Mail::Address) are bundled.  We've
disabled such bundling since it became an option in 2.17.0.

Go a step further and remove the Git::LoadCPAN wrapper.  This allows
rpm's automatic dependency generator to find and add the needed
requirements.

With this change we can remove the manual 'Requires:' for perl(Error)
and perl(Mail::Address).

'Requires: perl(Error)' in the main git package has been unneeded for
many years.  It was added in edddb83 ("Update to latest upstream
release. Fix some bugs at the same time", 2007-11-27), which was
git-1.5.3.6.  It was needed for 'git svn' and 'git remote'.  'git svn'
requires perl(Git), which in turn requires perl(Error).

In git-1.5.5, 'git remote' was converted to a builtin command in C
rather than perl, removing the perl(Error) dependency.

Lastly, move the 'BuildRequires: perl(Error)' from perl-Git to the main
list of BuildRequires.
2018-04-10 10:25:40 -04:00
Todd Zullinger
b3c76729a3 Tighten file exclusion pattern
The bare p4 entry was a bit concerning; it's easy to imagine false
positives from such a short string.  Remove git-remote-(bzr|hg) from the
pattern.  The scripts and placeholders were removed in git-2.0.0.

While here, group all the git-* patterns and be more explicit with the
svn files.
2018-04-10 10:25:04 -04:00
Todd Zullinger
a4b4f7cade Add support for disabling python2
Python 2 end of life is approaching, prepare for dropping it
along with all python2 scripts and subpackages requiring it.

Helped-by: Sebastian Kisela <skisela@redhat.com>
Helped-by: Pavel Cahyna <pcahyna@redhat.com>
2018-04-02 18:10:46 -04:00
Todd Zullinger
07e03fdaa0 Use %bcond_(with|without) to enable/disable python3
The with_python3 macro was added in 7ac1fbc ("Avoid python dependency in
git-core (#1536471)", 2018-01-22) and followed the example from a devel
list request¹.

The %bcond_(with|without) macro allows enabling or disabling of python3
via the command line, modulemd file, etc.  Use it.

¹ https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/UG6XYG3EPLMLA5N47AK63NCF2Y6MDWFJ/
2018-04-02 18:05:55 -04:00
Todd Zullinger
73282c0771 Allow git-p4 subpackage to be toggled via --with/--without
Currently, git-p4 requires python2, which is approaching its end of
life.  Prepare for building on releases without python2.
2018-04-02 16:30:03 -04:00
Todd Zullinger
32f8d8d33b Update to 2.17.0
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.17.0.txt
2018-04-02 16:26:27 -04:00
Todd Zullinger
5cc54546f6 Fix incorrect comment about multimail hook
The multimail contrib hook was moved from git-core to git in 7ac1fbc
("Avoid python dependency in git-core (#1536471)", 2018-01-22).
2018-04-02 16:25:39 -04:00
Todd Zullinger
336bc7765e Update to 2.17.0-rc2 2018-03-28 16:06:32 -04:00
Todd Zullinger
081aa7dea3 Allow cvs subpackage to be toggled via --with/--without
The previous commit disabled the cvs subpackage on EL > 7.  Convert to
the %bcond_with(out) macro to allow the subpackage to be toggled easily
via a --with/--without option at build time.
2018-03-27 16:02:51 -04:00
Joe Orton
9cd8ee74c8 Disable CVS support on EL > 7
The cvs package will be dropped in the next RHEL release.  Disable the
git-cvs subpackage when %{rhel} > 7.
2018-03-27 15:54:43 -04:00
Todd Zullinger
6f88057585 Add missing perl(Mail::Address) requirement (#1561086)
When setting NO_PERL_CPAN_FALLBACKS to avoid bundled perl modules, we
must take care to ensure the dependencies are required.  The code which
handles modules via Git::LoadCPAN prevents the normal perl dependency
generator from identifying them.  Thankfully, there should not be many
modules loaded this way.

Prior to 2.17.0 and NO_PERL_CPAN_FALLBACKS we were falling back to not
using Mail::Address, which is partly why the lack of the dependency
wasn't spotted with rpmdiff with and without NO_PERL_CPAN_FALLBACKS.
2018-03-27 12:38:03 -04:00
Todd Zullinger
c538f21825 Remove unnecessary "chmod +x contrib/hooks/*"
Using a simple glob in contrib/hooks/* to match contributed hook scripts
was valid when it was added in 762cf11 ("Update to git-1.6.3.3 - Move
contributed hooks to %{_datadir}/git-core/contrib/hooks (bug 500137)",
2009-06-28).  With the addition of the multimail directory in git-1.8.4
it was no longer doing what was intended.

However, the scripts in contrib/hooks all ship with the execute bit set,
making the "chmod +x" unnecessary.  If we did descend into the multimail
directory with a chmod (whether via "chmod -R" or "find | xargs ..."),
we would need to exclude the non-script files within that directory.
2018-03-22 02:13:29 -04:00
Todd Zullinger
28cb1fda84 Drop .py extension from contrib/hooks/multimail/git_multimail.py
Fedora 28 prints a deprecation notice if /usr/bin/python is called in an
rpm build¹, which is done by default when byte-compiling python files
outside of %{_libdir}/pythonX.X.

Avoid the issue by dropping the .py extension from the multimail hook
script.  The hook script is not used as a module and therefore has no
need to use the extension or be byte-compiled.

¹ https://fedoraproject.org/wiki/Changes/Avoid_usr_bin_python_in_RPM_Build
2018-03-22 01:38:31 -04:00
Todd Zullinger
ee1ed82969 Update to 2.17.0-rc1 2018-03-21 16:01:18 -04:00
Todd Zullinger
0b3c85937b Add findutils BuildRequires, improve 'find | xargs' calls
Ensure find and xargs are required.  While findutils is currently in the
default buildroot, we should still be explicit about the requirement.

Also improve the 'find | xargs' calls to handle files which may contain
spaces, quotes, or other characters which might cause spurious failures.
2018-03-19 11:08:38 -04:00
Todd Zullinger
440594446e Install contrib/diff-highlight (#1550251)
The script is installed at /usr/share/git-core/contrib/diff-highlight.
Documentation is in /usr/share/doc/git/contrib/diff-highlight/README.
2018-03-19 11:08:38 -04:00
Todd Zullinger
556b4a03d3 Rename gitweb httpd config file
The gitweb httpd config file was added long before git gained support
for smart http, in c97cf8e ("Add git-daemon and gitweb packages",
2007-08-04).

Now, users who want to enable git's smart http support with apache will
often want to use /etc/httpd/conf.d/git.conf as the path.

Make this easier by giving the gitweb httpd config file a more logical
name going forward.  Keep the current config file name in previous
releases.
2018-03-19 11:08:38 -04:00
Todd Zullinger
098a42523b Require git-core rather than git for git-daemon
A git-daemon install should require nothing more than git-core.  This
allows running the daemon on systems or containers with a minimal
install.
2018-03-16 21:56:48 -04:00
Todd Zullinger
f3c13faa20 Update to 2.17.0-rc0
The perl install process was updated to remove the need for
ExtUtils::MakeMaker.  The main change for us is setting perllibdir to
keep the files installed in %{perl_vendorlib}.

Manpages for non-public portions of the Git perl modules are no longer
built.  Anyone who wishes to make use of these modules can read the
source files or use pod2man.

Set NO_PERL_CPAN_FALLBACKS to ensure we don't package the bundled
fallback modules.

Also drop now-unneeded commands to remove *.bs, .packlist, and
perllocal.pod files.  The new install method does not produce these
artifacts.
2018-03-16 21:56:41 -04:00
Todd Zullinger
d56cfc6775 Use symlinks instead of hardlinks for installed binaries
A recent discussion on the git list¹ suggested that using symlinks
should be clearer and have no drawbacks (except on filesystems where
symlinks are not well supported, e.g. on Windows).

This shrinks the git-core package by nearly 25% and saves almost 6MB in
the debuginfo package.

See also 6ef5f1f ("Disable cross-directory hardlinks", 2017-11-10).

¹ https://public-inbox.org/git/87y3iwp2z0.fsf@evledraar.gmail.com/#t
2018-03-16 21:55:46 -04:00
Todd Zullinger
0609eef4e2 Improve hardening flags for EL-6 & EL-7
Ensure all binaries are hardened when building on EL-6 & EL-7.  On EL-7
use the %{_hardened_build} macro.  On EL-6 update %{optflags} and set
%{__global_ldflags}.

For EL-7 this could also be put in the existing Fedora and EL >= 7
condition, e.g.: %{!?_hardened_build: %global _hardened_build 1}.  I
think this is a bit uglier than needed and is better in an %if condition
which only applied to EL-7.
2018-02-24 14:15:30 -05:00
Todd Zullinger
04982344f3 Add gawk, gcc, make, and sed BuildRequires
The guidelines require all required packages to be explicitly listed.
This list may not be complete, but it's a start.

Additionally, a proposed change for Fedora 29 removes gcc from the
default BuildRoot.

While at it, sort a few BuildRequires in alphabetical order.
2018-02-16 14:09:11 -05:00
Todd Zullinger
0164091753 Update to 2.16.2
Release notes: https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.16.2.txt
2018-02-16 13:50:09 -05:00
Todd Zullinger
986b772e55 Split 'git subtree' into a separate package
While 'git subtree' does not pull in any additional dependencies, having
it in a separate package may help avoid confusion that it is a core git
command.  This came up recently on the git list¹.

Another recent thread leaves the impression that 'git subtree' is in
maintenance mode².  This implies that it is unlikely to move out of
contib in the near future.

¹ https://public-inbox.org/git/alpine.LFD.2.21.1802070801470.19185@android-a172fe96dd584b41/
² https://public-inbox.org/git/CADfK3RWXDuE=hYD==4sHXO1iJeOiVDOp7hBqhBtSn7gnQ+x7Qg@mail.gmail.com/
2018-02-09 14:51:34 -05:00
Todd Zullinger
144ee1f802 lint: ignore obsolete-not-provided git-gnome-keyring
The git-gnome-keyring package was obsoleted in 2d1c8b1 ("Remove obsolete
gnome-keyring credential helper", 2018-01-09).  Silence the rpmlint
warning.
2018-02-09 14:51:34 -05:00
Todd Zullinger
cfcd10ad91 Don't package contrib/svn-fe in %doc 2018-02-09 14:51:34 -05:00
Todd Zullinger
ff200cac04 Remove obsolete %defattr
The use of %defattr has been unneeded since rpm-4.4.  It was removed
from the guidelines 6 years ago¹.  It was kept to allow builds on EL-5,
which has been EOL since March of last year.

¹ https://pagure.io/packaging-committee/issue/77
  %defattr is no longer needed in Fedora
2018-02-09 14:50:09 -05:00
Todd Zullinger
f9c3604c48 Order %files and %packages sections by name
Adding new sections or finding existing sections should be easier.  Sort
the %files and %packages sections by name.
2018-02-08 19:02:18 -05:00
Fedora Release Engineering
78864b8eb3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 12:33:55 +00:00
Todd Zullinger
b30f47c653 Drop obsolete BuildRoot, Group, %clean, and buildroot cleanup
No supported releases of Fedora or EPEL require these tags, sections, or
commands.
2018-01-31 15:37:00 -05:00
Todd Zullinger
a51e1362a2 git-svn: avoid segfaults in 'git svn branch'
Re-enable t9128, t9141, and t9167 which were disabled due to these
random segfaults.  The bug has also been reported against the subversion
perl bindings in Debian¹.  Hopefully this will reach upstream subversion
if a fix is made to subversion.

¹ https://bugs.debian.org/888791
2018-01-31 15:31:04 -05:00
Todd Zullinger
7ac1fbccc9 Avoid python dependency in git-core (#1536471)
Move contrib/hooks/multimail from git-core to git and use python3 rather
than python2.

We still use python2 as the default PYTHON_PATH because not all of the
python scripts in git support python3.  None of the other scripts are
included in git-core though.

Primarily, python2 is used by git-p4 and contrib/svn-fe/svnrdump_sim.py
(which is used by t9020-remote-svn.sh).  Converting git-p4 to python3 is
not a trivial matter of fixing a few print statements.  A simple
conversion using python3's 2to3 tool results in a large number of test
failures.

Add a python3-devel BuildRequires for %{__python3} and add python2-devel
to the tests section since t9020-remote-svn.sh uses python2.  (We
already BR python2-devel in git-p4, but having it in the tests section
ensures we don't remove it if/when git-p4 supports python3.)
2018-01-22 14:44:07 -05:00
Todd Zullinger
8368c37a74 Update to 2.16.1
This release fixes an issue which only affects users on case-insensitive
file systems and repositories which contain paths that differ only in
case.  Such circumstances result in a segmentation fault in various git
commands.
2018-01-22 12:46:37 -05:00
Todd Zullinger
a9982274b4 Disable t5000-tar-tree.sh on x86 in f28
This test was passing as recently as last week.  Something seems to have
changed or broken in the x86 arch of f28 since then.  Disable the test
until the issue is determined and resolved.
2018-01-18 10:34:30 -05:00
Todd Zullinger
62f562d630 Use 'prove' as test harness, enable shell tracing
With 'prove' as the test harness the tests can be run in parallel on
EPEL as well as Fedora targets.

Move GIT_TEST_OPTS to config.mak along with the new test options and
enable shell tracing (-x).  The output from failures when tracing is
enabled should allow us to more easily diagnose test failures.

Explicitly use /bin/bash as the shell for the test suite; it allows
using "-x" reliably across the whole test suite.  This is made possible
by changes included in 2.16.0 thanks to Jeff King¹, particularly:

    3f824e91c8 t/Makefile: introduce TEST_SHELL_PATH
    f5ba2de6bc test-lib: make "-x" work with "--verbose-log"
    90c8a1db9d test-lib: silence "-x" cleanup under bash

¹ https://github.com/gitster/git/tree/jk/test-suite-tracing
2018-01-18 01:14:55 -05:00
Todd Zullinger
6adaa76501 Update to 2.16.0
Move fsmonitor-watchman sample hook out of git-core to avoid a perl
dependency.
2018-01-18 01:14:41 -05:00
Todd Zullinger
76ecad7439 Use .in template for git@.service to ensure paths are substituted
The paths don't change often, but if they do this is one less place
which will need to be updated.  It also makes it easier for anyone
rebuilding the packages to change the defaults.
2018-01-13 18:39:53 -05:00
Todd Zullinger
049553f03c Add %{emacs_filesystem} to simplify emacs support
Use a single macro rather than testing for %{fedora} and %{rhel}
versions repeatedly.  The "dist" logic is best kept at the start of the
spec file (as much as possible).

Cleanup a few comments related to "dist" checks while we're at it.
2018-01-13 18:39:53 -05:00
Todd Zullinger
f0946b65f2 Update BuildRequires for tests
The acl and perl(HTTP::Date) requirements are pulled in by other
packages on Fedora so they were not noticed when the test requirements
were updated in 6dc6285 ("Improve test suite coverage", 2017-11-10).

The highlight package is available in EPEL for EL-6 (on all supported
architectures).  Extend the conditional to only exclude it on ppc64 for
EL-7.
2018-01-13 18:39:53 -05:00
Todd Zullinger
2d1c8b10e9 Remove obsolete gnome-keyring credential helper
The gnome-keyring credential helper was removed in Fedora 26, but
remained in builds for older Fedora and EL-7 releases.  No official
release has shipped the gnome-keyring subpackage since 2.11.1-3.

Obsolete it to ensure a clean upgrade path for any users who have it
installed.  The Obsoletes can be removed after rawhide is branched for
Fedora 29.
2018-01-13 18:39:45 -05:00
Todd Zullinger
6af316afb7 Avoid excluding non-existent .py[co] files in %doc
Starting with rpm-build-4.13.0 (in F-22), brp-python-bytecompile
excludes files under /usr/share/doc by default.  Restrict the %files
%exclude to EL <= 7 to avoid spurious 'File not found' warnings from
rpm-build.
2018-01-13 18:16:19 -05:00
Todd Zullinger
6611083041 Explicitly enable tests which may be skipped opportunistically
Ensure these tests are not skipped if some dependency or other condition
is not met.  We prefer to see the failure(s) in order to fix the
underlying issue(s).

Disable t9115-git-svn-dcommit-funky-renames on ppc-arches 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.

Add mod_dav_svn BuildRequires for t9115-git-svn-dcommit-funky-renames
(GIT_SVN_TEST_HTTPD).
2018-01-13 18:15:11 -05:00
Todd Zullinger
cd265cb40c Fix perl requires filtering on EL-6
When building release candidates the path to the perl requires filter
script is wrong.  Correct it.

It's tempting to use the output of `pwd` to avoid future changes to the
build dir breaking it, but the call occurs prior to unpacking and thus
`pwd` is not suitable.
2018-01-13 18:13:13 -05:00
Todd Zullinger
ebf9643f6d Re-enable grep tests on s390x
The tests appear to work reliably now, after a number of test builds. If
not, this is easily reverted.  (The newly added test output may also
help determine the root cause.)
2017-12-22 20:25:29 -05:00
Todd Zullinger
84015970a0 Skip 'git svn branch' tests which fail intermittently
All tests which call 'git svn branch' fail intermittently with SIGSEGV
in the subversion bindings.  The failures are not remotely consistent.
Until we can enable shell tracing (-x) in the test suite by default to
attempt to further debug the failure, disable these tests.
2017-12-22 20:25:29 -05:00
Todd Zullinger
62688d0ccc Run tests in parallel by default on Fedora
An option to enable parallel test runs was added in 6dc6285 ("Improve
test suite coverage", 2017-11-10).  After further improvements it seems
to be reliable for use in koji builds.

It is still disabled for EPEL builds because make lacks support for the
-O (--output-sync) option.  Without this option the output is much less
readable.

In the future we may be able to move to using 'prove' as the default
test harness which might allow us to run in parallel without requiring
the -O option.
2017-12-22 20:25:29 -05:00
Todd Zullinger
db2eb1dae4 Avoid failures in svnserve tests when run in parallel
Setting SVNSERVE_PORT enables several tests which require a local
svnserve daemon to be run (in t9113 & t9126).  The tests share setup of
the local svnserve via `start_svnserve()`.  The function uses svnserve's
`--listen-once` option, which causes svnserve to accept one connection
on the port, serve it, and exit.  When running the tests in parallel
this fails if one test tries to start svnserve while the other is still
running.

Use the test number as the svnserve port (similar to httpd tests) to
avoid port conflicts.  Set GIT_TEST_SVNSERVE to enable these tests.

The change should make it into 2.16 or 2.17.  Until then, setting
GIT_TEST_SVNSERVE will disable the svnserve tests.  There are only a few
tests affected and this allows more testing with parallel test runs, so
it's a reasonable trade.  Once an upstream release with these changes
arrives, we'll begin running these tests without any further changes.
2017-12-22 20:25:29 -05:00
Todd Zullinger
15d075cb09 Mark git-core-docs package noarch
Nothing arch-specific should be included in the git-core-docs package.
2017-12-22 20:25:29 -05:00
Todd Zullinger
675b3bad86 Fix builds using '--without docs'
Use '%bcond_without docs' and the corresponding %{with ...} syntax.  Fix
a number of areas where builds failed due to broken %if conditions.
2017-12-22 20:25:28 -05:00
Todd Zullinger
340e1bd03d Remove second make invocation for doc build/install
In c3202fd ("Use prebuilt documentation on EL-5, where asciidoc is too
old", 2013-01-04) the make targets to build and install the
documentation were split into separate make calls to handle prebuilt
docs on EL-5 where asciidoc was too old to build the documentation.

Support for EL-5 was removed in 903d8f3 ("Remove EL-5 and old Fedora
conditionals", 2017-07-22), making the separate make calls unneeded.
2017-12-21 18:36:32 -05:00
Todd Zullinger
53fdd5334a Use %autosetup macro to unpack and patch source
Using %autosetup frees us from having to manage %patch entries.  It does
require that all patches use the same strip level (-p1 in our case).
There is also a mildly annoying bug in EL-6¹ which chokes on the patch
invocation if a blank line doesn't follow %autosetup.  A comment should
prevent any problems.

The %autosetup -S option is deliberately avoided, to prevent needless
bootstrapping problems.

¹ https://bugzilla.redhat.com/1310704
2017-12-21 18:36:31 -05:00
Todd Zullinger
2e7d4595e5 Include verbose logs in build output for 'make test' failures
When building in koji or copr and a test fails, the verbose output from
the tests can be very useful in determining the cause.  Print the output
from failing tests, borrowing heavily from the upstream code¹ used when
running tests in Travis CI².

This could be done inline in %check rather than in a separate script.
The downside is that rpm would include each command invocation of the
loop in the output, which adds a lot of useless text to the already
copious build output.

¹ https://git.kernel.org/pub/scm/git/git.git/plain/ci/print-test-failures.sh
² https://travis-ci.org/git/git
2017-12-21 18:36:31 -05:00
Ben Harper
4079ad14b1 fix typo in comment 2017-11-30 15:11:44 -05:00
Todd Zullinger
1b01c1c177 Fix debuginfo for gnome-keyring and libsecret credential helpers
We used to remove the contrib/credential tree from the build dir to
avoid binaries and other cruft from ending up in the doc dir.  Doing so
prevented debuginfo from being generated for the credential helpers we
install.  The following warnings were printed during the debuginfo
extraction:

cpio: git-2.15.1/contrib/credential/gnome-keyring: Cannot stat: No such file or directory
cpio: git-2.15.1/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c: Cannot stat: No such file or directory
cpio: git-2.15.1/contrib/credential/libsecret: Cannot stat: No such file or directory
cpio: git-2.15.1/contrib/credential/libsecret/git-credential-libsecret.c: Cannot stat: No such file or directory

Keep contrib/credential in the build dir; remove it from the buildroot
instead.
2017-11-30 15:11:44 -05:00
Todd Zullinger
3baa69d782 Update to 2.15.1
https://www.kernel.org/pub/software/scm/git/docs/RelNotes/2.15.1.txt
2017-11-28 21:27:56 -05:00
Todd Zullinger
0f50b14ee4 Add .mailmap for git shortlog output
Use the name/address from the %changelog where author names on commits
differed.  This makes git shortlog output more consistent.
2017-11-28 21:27:36 -05:00
Todd Zullinger
030dee6148 Enable support for release candidate builds
Building release candidates helps test the upstream code before it's
final.  Make it easier to create such builds by defining an rcrev macro,
which is commented out by default.
2017-11-28 21:27:26 -05:00
Todd Zullinger
08602e223b Add tcl/tk BuildRequires
The git-gui build tries to use tclsh to generate an index file.  It
falls back to a static list, which is why this wasn't noticed before.
It's not a real problem, but git may soon also try to test that wish is
installed before building and installing git-gui and gitk, so this helps
prepare for that future.
2017-11-28 21:26:39 -05:00
Todd Zullinger
99aec7086b Remove stale comment regarding perl YAML::Any filtering
The code to filter the spurious YAML::Any requires was removed in
903d8f3 (Remove EL-5 and old Fedora conditionals, 2017-07-22).  The
comment was simply missed.
2017-11-12 13:15:14 -05:00
Todd Zullinger
2fd0c5cf45 Remove unneeded cleanup of shebang in bash-completion script
In older versions of git, the bash-completion script began with a
needless #!bash, which we removed before installation.

This and other unneeded shebangs were removed upstream in 1.9.0,
11d62145b9 (remove #!interpreter line from shell libraries, 2013-11-25).
2017-11-12 13:15:13 -05:00
Todd Zullinger
6dc6285283 Improve test suite coverage
3041eeb (Run git test suite, 2016-12-16) enabled the test suite, but
many of the tests were skipped due to missing requirements.  Improve the
test suite coverage by ensuring as many requirements are present as
possible.

Also add an option to run the test suite with multiple jobs using the
%{?_smp_mflags} macro.  This cut the test suite run time roughly in
half in local testing.  The -O option to 'make' helps ensure the output
of each job is collected together rather than interspersed with output
from other jobs.  Sadly, the tests fail when run in parallel in koji, so
this is disabled by default.  It is included to speed up local builds.

To enable in rpmbuild and mock, use either "--with parallel_tests" or
"--define 'parallel_tests 1'" arguments.  This is only supported on
Fedora, as it requires make >= 4.0, which neither EL6 nor EL7 satisfy.

Disable 2 failing tests which run with a limited stack on aarch64, arm*,
and ppc* architectures.  Some debugging with the affected hardware is
needed.

Similarly, disable "git svn branch tests" globally for both
t9128-git-svn-cmd-branch and t9167-git-svn-cmd-branch-subproject because
they fail randomly.  The bug seems likely to be in the subversion perl
bindings, but requires more testing.  The failure output from a manual
run (./t9128-git-svn-cmd-branch.sh -v -x -d):

    ++ git svn branch a
    Copying file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk at r2 to file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a...
    Found possible branch point: file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/trunk => file:///home/tmz/rpmbuild/BUILD/git-2.14.2/t/trash%20directory.t9128-git-svn-cmd-branch/svnrepo/branches/a, 2
    Found branch parent: (refs/remotes/origin/a) bb43a88ce94511096d7d774f4d5feae281603eb0
    Following parent with do_switch
    Successfully followed parent
    r3 = 2e27ee45dadc098239114bc13a6ae6cf6122d16f (refs/remotes/origin/a)
    error: git-svn died of signal 11
    + test_eval_ret_=139
    + want_trace
    + test t = t
    + test t = t
    + set +x
    error: last command exited with $?=139
    not ok 3 - git svn branch tests

The failure in t9167-git-svn-cmd-branch-subproject is similar.
2017-11-12 13:15:13 -05:00
Todd Zullinger
339c6b6d5c Move filter-branch out of core, it needs perl now
A change to the git filter-branch command in git-2.15 added a perl
dependency, bd2c79fbfe (filter-branch: stash away ref map in a branch,
2017-09-21)¹.

This dependency is only present when using the option --state-branch,
which means many users of filter-branch will never notice the perl
dependency.

However, without moving the tool from git-core to git, any users running
filter-branch with the --state-branch option might find that the command
fails badly, potentially leaving their repository in a broken state.
This is not an acceptable trade-off, in my opinion.

I'm not sure if it's worthwhile to suggest a patch upstream to better
handle users running with the --state-branch option when perl is not
installed, allowing us to safely ship git filter-branch in git-core for
use on systems without perl.

¹ bd2c79fbfe
2017-11-12 13:15:13 -05:00
Todd Zullinger
cb7fab7e6c Move commands which no longer require perl into git-core
Commands which required perl were moved from git-core to git in 6fdc5e5
(new subpackage git-core, which is perl-less and part of original git
rpm, 2015-06-03).  This was with git-2.4.2.  Since then, a number of
commands have been partially or entirely rewritten upstream and no
longer require perl.  Move them back to git-core.

- git-am was converted to a builtin in 2.6.0, 783d7e865e (builtin-am:
  remove redirection to git-am.sh, 2015-08-04)

- git-submodule's dependence on perl was removed in 2.10.0, 74703a1e4d
  (submodule: rewrite `module_list` shell function in C, 2015-09-02)

- git-relink was removed in 2.12.0, ed21e30fef (relink: retire the
  command, 2017-01-25)

Additionally, two sample hooks (pre-rebase and prepare-commit-msg) were
intended to be excluded from git-core due to their perl dependencies,
but were included due to the way the exclusion via %files lists are
created.  List them explicitly in the git %files section and exclude
them from git-core.
2017-11-12 13:15:13 -05:00
Todd Zullinger
054dd6179a Rename %gitcoredir to %gitexecdir; upstream uses the latter
Using the same variable make it clearer that we're referring to the same
thing as upstream when the Makefile uses gitexecdir.

Remove a stale conditional in git-cvs for handling the case where git's
binaries are stored in %{_bindir}.  This support was dropped after
EL-5's support ended.  Most similar conditionals were removed in 903d8f3
(Remove EL-5 and old Fedora conditionals, 2017-07-22).

Also remove the conditional setting of 'gitexecdir = %{_bindir}' which
was only used on EL-5 to prevent moving the git binaries during the
update to git-1.6.
2017-11-12 13:15:13 -05:00
Todd Zullinger
76189e1ea4 Add rpmlint config to silence unneeded warnings
After this change, the only rpmlint issues are incorrect-fsf-address
errors:

git-gui.noarch: E: incorrect-fsf-address /usr/libexec/git-core/git-gui
git-gui.noarch: E: incorrect-fsf-address /usr/libexec/git-core/git-citool
git.x86_64: E: incorrect-fsf-address /usr/share/emacs/site-lisp/git/git.el
git-core-doc.x86_64: E: incorrect-fsf-address /usr/share/doc/git/contrib/hg-to-git/hg-to-git.py
git-core-doc.x86_64: E: incorrect-fsf-address /usr/share/doc/git/contrib/emacs/git.el
git-core-doc.x86_64: E: incorrect-fsf-address /usr/share/doc/git/contrib/fast-import/import-directories.perl
git-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/git-2.15.0/trace.c

These issues will be fixed in the next upstream release, with the
following commits:

484257925f
63100874c1
2017-11-12 13:15:13 -05:00
Todd Zullinger
d24b9418f8 Fix t9020-remote-svn failure when setting PYTHON_PATH
In ef7ac1a (git-p4: adjust python2 shebang manually, 2017-08-03) we
dropped PYTHON_PATH due to failures in t9020-remote-svn.

Digging deeper, the issue appears to be caused by the test calling a
script which has a hard-coded #!/usr/bin/python shebang.  On newer
fedora releases, /usr/bin/python is python3.

Replacing the shebang in contrib/svn-fe/svnrdump_sim.py (the script the
test calls) with #!%{__python2} allows the test to succeed while setting
PYTHON_PATH in config.mak, as desired.
2017-11-12 13:15:13 -05:00
Todd Zullinger
71cf98e082 Fix shebang in a few places to silence rpmlint complaints 2017-11-12 13:15:08 -05:00
Todd Zullinger
382ccf9f8c Update summary/description of numerous subpackages
Use '%{summary}.' as the %description for all subpackages where the
summary and description matched.  This is one less place to change
if/when we update a summary/description in the future.

While looking at rpmlint complaints, gitk had a spelling warning because
the summary/description used the British  English spelling of
"visualiser." Rather than simply change that to the American English
spelling, change the summary/description to match the gitk
documentation.  Do the same for git-gui.

Using %summary fixes the %description for perl-Git-SVN, which previously
used the %description from perl-Git mistakenly.

Also improve/clarify the summary of git-gnome-keyring, git-send-email,
and git-svn.
2017-11-12 13:09:07 -05:00
Todd Zullinger
aa0ed7a703 Drop ancient obsoletes for git and git-arch
The git-all subpackage added an obsoletes for older git packages in
0c4a11c (git 1.5.4.3 and include krh's change to rename git-core to git,
2008-02-23).

The git-arch subpackage was obsoleted many years ago in 3f997b4
(Obsolete git-arch as needed, 2011-08-05).

We don't need to carry either of these obsoletes any longer.
2017-11-11 18:29:39 -05:00
Todd Zullinger
6ef5f1f723 Disable cross-directory hardlinks
We cannot be sure that users installing the git package have not mounted
the git bin and lib dirs on different file systems.  The cost is a small
amount of extra disk space (1.25M in the current build).
2017-11-11 18:29:39 -05:00
Todd Zullinger
7dbcd332fc Fix git-clone memory exhaustion (CVE-2017-15298)
Cherry-pick upstream patch from a937b37e76 (revision: quit pruning diff
more quickly when possible, 2017-10-13)¹.

Resolves: #1510455, #1510457

¹ a937b37e76
2017-11-07 12:08:47 -05:00
Todd Zullinger
6e4a41c073 Update to 2.15.0 2017-10-30 11:38:18 -04:00
18 changed files with 1781 additions and 1601 deletions

18
.mailmap Normal file
View file

@ -0,0 +1,18 @@
<atkac@redhat.com> <atkac@fedoraproject.org>
<atkac@redhat.com> <vonsch@gmail.com>
<bernie@codewiz.org> <bernie@fedoraproject.org>
<Christian.Iseli@licr.org> <c4chris@fedoraproject.org>
<dennis@ausil.us> <ausil@fedoraproject.org>
<dwmw2@infradead.org> <David.Woodhouse@intel.com>
James Bowes <jbowes@redhat.com> <jbowes@fedoraproject.org>
<jkeating@redhat.com> <jkeating@fedoraproject.org>
Josh Boyer <jwboyer@gmail.com> <jwboyer@fedoraproject.org>
<katzj@redhat.com> <katzj@fedoraproject.org>
<lkundrak@redhat.com> <lkundrak@fedoraproject.org>
<mmaslano@redhat.com> <mmaslano@fedoraproject.org>
<releng@fedoraproject.org> <rel-eng@lists.fedoraproject.org>
<skasal@redhat.com> <kasal@fedoraproject.org>
<tmraz@redhat.com> <tmraz@fedoraproject.org>
<tmz@pobox.com> <tmz@fedoraproject.org>
<ville.skytta@iki.fi> <scop@fedoraproject.org>
<xavier@bachelot.org> <xavierb@fedoraproject.org>

View file

@ -0,0 +1,73 @@
From 89ccbc15948db9ddbf74530e3fd66dd78ae897ae Mon Sep 17 00:00:00 2001
From: Todd Zullinger <tmz@pobox.com>
Date: Sun, 21 Aug 2022 13:49:57 -0400
Subject: [PATCH] t/lib-httpd: try harder to find a port for apache
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When running multiple builds concurrently, tests which run daemons, like
apache httpd, sometimes conflict with each other, leading to spurious
failures:
++ /usr/sbin/httpd -d '/tmp/git-t.ck9I/trash directory.t9118-git-svn-funky-branch-names/httpd' \
-f /builddir/build/BUILD/git-2.37.2/t/lib-httpd/apache.conf -DDAV -DSVN -c 'Listen 127.0.0.1:9118' \
-k start
(98)Address already in use: AH00072: make_sock: could not bind to address 127.0.0.1:9118
no listening sockets available, shutting down
AH00015: Unable to open logs
++ test 1 -ne 0
Try a bit harder to find an open port to use to avoid these intermittent
failures. If we fail to start httpd, increment the port number and try
again. By default, we make 3 attempts. This may be overridden by
setting GIT_TEST_START_HTTPD_TRIES to a different value.
Helped-by: Ondřej Pohořelský <opohorel@redhat.com>
Signed-off-by: Todd Zullinger <tmz@pobox.com>
---
t/lib-httpd.sh | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index 2fb1b2ae56..4afdf5a6aa 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -206,19 +206,26 @@ enable_cgipassauth () {
}
start_httpd() {
- prepare_httpd >&3 2>&4
-
test_atexit stop_httpd
- "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
- -f "$TEST_PATH/apache.conf" $HTTPD_PARA \
- -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \
- >&3 2>&4
- if test $? -ne 0
- then
- cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null
- test_skip_or_die GIT_TEST_HTTPD "web server setup failed"
- fi
+ i=0
+ while test $i -lt ${GIT_TEST_START_HTTPD_TRIES:-3}
+ do
+ i=$(($i + 1))
+ prepare_httpd >&3 2>&4
+ say >&3 "Starting httpd on port $LIB_HTTPD_PORT"
+ "$LIB_HTTPD_PATH" -d "$HTTPD_ROOT_PATH" \
+ -f "$TEST_PATH/apache.conf" $HTTPD_PARA \
+ -c "Listen 127.0.0.1:$LIB_HTTPD_PORT" -k start \
+ >&3 2>&4
+ test $? -eq 0 && return
+ LIB_HTTPD_PORT=$(($LIB_HTTPD_PORT + 1))
+ export LIB_HTTPD_PORT
+ # clean up modules symlink, prepare_httpd will re-create it
+ rm -f "$HTTPD_ROOT_PATH/modules"
+ done
+ cat "$HTTPD_ROOT_PATH"/error.log >&4 2>/dev/null
+ test_skip_or_die GIT_TEST_HTTPD "web server setup failed"
}
stop_httpd() {

View file

@ -0,0 +1,88 @@
From e90e1068ddc9cfa3badd23b16a46c57ed6d8308a Mon Sep 17 00:00:00 2001
From: Todd Zullinger <tmz@pobox.com>
Date: Fri, 26 Aug 2022 18:28:44 -0400
Subject: [PATCH] t/lib-git-daemon: try harder to find a port
As with the previous commit, try harder to find an open port to avoid
intermittent failures on busy/shared build systems.
By default, we make 3 attempts. This may be overridden by setting
GIT_TEST_START_GIT_DAEMON_TRIES to a different value.
Signed-off-by: Todd Zullinger <tmz@pobox.com>
---
t/lib-git-daemon.sh | 60 ++++++++++++++++++++++++++++-----------------
1 file changed, 37 insertions(+), 23 deletions(-)
diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh
index e62569222b..c3e8dda9ff 100644
--- a/t/lib-git-daemon.sh
+++ b/t/lib-git-daemon.sh
@@ -51,30 +51,44 @@ start_git_daemon() {
registered_stop_git_daemon_atexit_handler=AlreadyDone
fi
- say >&3 "Starting git daemon ..."
- mkfifo git_daemon_output
- ${LIB_GIT_DAEMON_COMMAND:-git daemon} \
- --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \
- --reuseaddr --verbose --pid-file="$GIT_DAEMON_PIDFILE" \
- --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
- "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
- >&3 2>git_daemon_output &
- GIT_DAEMON_PID=$!
- {
- read -r line <&7
- printf "%s\n" "$line" >&4
- cat <&7 >&4 &
- } 7<git_daemon_output &&
+ i=0
+ while test $i -lt ${GIT_TEST_START_GIT_DAEMON_TRIES:-3}
+ do
+ say >&3 "Starting git daemon on port $LIB_GIT_DAEMON_PORT ..."
+ mkfifo git_daemon_output
+ ${LIB_GIT_DAEMON_COMMAND:-git daemon} \
+ --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \
+ --reuseaddr --verbose --pid-file="$GIT_DAEMON_PIDFILE" \
+ --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
+ "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
+ >&3 2>git_daemon_output &
+ GIT_DAEMON_PID=$!
+ {
+ read -r line <&7
+ printf "%s\n" "$line" >&4
+ cat <&7 >&4 &
+ } 7<git_daemon_output &&
- # Check expected output
- if test x"$(expr "$line" : "\[[0-9]*\] \(.*\)")" != x"Ready to rumble"
- then
- kill "$GIT_DAEMON_PID"
- wait "$GIT_DAEMON_PID"
- unset GIT_DAEMON_PID
- test_skip_or_die GIT_TEST_GIT_DAEMON \
- "git daemon failed to start"
- fi
+ # Check expected output
+ output="$(expr "$line" : "\[[0-9]*\] \(.*\)")"
+ # Return if found
+ test x"$output" = x"Ready to rumble" && return
+ # Increment port for retry if not found
+ LIB_GIT_DAEMON_PORT=$(($LIB_GIT_DAEMON_PORT + 1))
+ export LIB_GIT_DAEMON_PORT
+ GIT_DAEMON_HOST_PORT=127.0.0.1:$LIB_GIT_DAEMON_PORT
+ GIT_DAEMON_URL=git://$GIT_DAEMON_HOST_PORT
+ # unset GIT_DAEMON_PID; remove the fifo & pid file
+ GIT_DAEMON_PID=
+ rm -f git_daemon_output "$GIT_DAEMON_PIDFILE"
+ done
+
+ # Clean up and return failure
+ kill "$GIT_DAEMON_PID"
+ wait "$GIT_DAEMON_PID"
+ unset GIT_DAEMON_PID
+ test_skip_or_die GIT_TEST_GIT_DAEMON \
+ "git daemon failed to start"
}
stop_git_daemon() {

View file

@ -0,0 +1,85 @@
From 41423d666fd52eaa6aa2b44a0de1b81d0857ca06 Mon Sep 17 00:00:00 2001
From: Todd Zullinger <tmz@pobox.com>
Date: Fri, 26 Aug 2022 18:28:44 -0400
Subject: [PATCH] t/lib-git-svn: try harder to find a port
As with the previous commits, try harder to find an open port to avoid
intermittent failures on busy/shared build systems.
By default, we make 3 attempts. This may be overridden by setting
GIT_TEST_START_SVNSERVE_TRIES to a different value.
Run svnserve in daemon mode and use 'test_atexit' to stop it. This is
cleaner than running in the foreground with --listen-once and having to
manage the PID ourselves.
Signed-off-by: Todd Zullinger <tmz@pobox.com>
---
t/lib-git-svn.sh | 34 +++++++++++++++++++++++++----
t/t9113-git-svn-dcommit-new-file.sh | 1 -
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index ea28971e8e..04e660e2ba 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -17,6 +17,7 @@ fi
GIT_DIR=$PWD/.git
GIT_SVN_DIR=$GIT_DIR/svn/refs/remotes/git-svn
SVN_TREE=$GIT_SVN_DIR/svn-tree
+SVNSERVE_PIDFILE="$PWD"/daemon.pid
test_set_port SVNSERVE_PORT
svn >/dev/null 2>&1
@@ -119,10 +120,35 @@ require_svnserve () {
}
start_svnserve () {
- svnserve --listen-port $SVNSERVE_PORT \
- --root "$rawsvnrepo" \
- --listen-once \
- --listen-host 127.0.0.1 &
+ test_atexit stop_svnserve
+
+ i=0
+ while test $i -lt ${GIT_TEST_START_SVNSERVE_TRIES:-3}
+ do
+ say >&3 "Starting svnserve on port $SVNSERVE_PORT ..."
+ svnserve --listen-port $SVNSERVE_PORT \
+ --root "$rawsvnrepo" \
+ --daemon --pid-file="$SVNSERVE_PIDFILE" \
+ --listen-host 127.0.0.1
+ ret=$?
+ # increment port and retry if unsuccessful
+ if test $ret -ne 0
+ then
+ SVNSERVE_PORT=$(($SVNSERVE_PORT + 1))
+ export SVNSERVE_PORT
+ else
+ break
+ fi
+ done
+}
+
+stop_svnserve () {
+ say >&3 "Stopping svnserve ..."
+ SVNSERVE_PID="$(cat "$SVNSERVE_PIDFILE")"
+ if test -n "$SVNSERVE_PID"
+ then
+ kill "$SVNSERVE_PID" 2>/dev/null
+ fi
}
prepare_utf8_locale () {
diff --git a/t/t9113-git-svn-dcommit-new-file.sh b/t/t9113-git-svn-dcommit-new-file.sh
index e8479cec7a..5925891f5d 100755
--- a/t/t9113-git-svn-dcommit-new-file.sh
+++ b/t/t9113-git-svn-dcommit-new-file.sh
@@ -28,7 +28,6 @@ test_expect_success 'create files in new directory with dcommit' "
echo hello > git-new-dir/world &&
git update-index --add git-new-dir/world &&
git commit -m hello &&
- start_svnserve &&
git svn dcommit
"

View file

@ -1,12 +0,0 @@
diff -up git-1.8.4.2/gitweb/gitweb.perl.orig git-1.8.4.2/gitweb/gitweb.perl
--- git-1.8.4.2/gitweb/gitweb.perl.orig 2013-10-28 14:17:38.000000000 -0400
+++ git-1.8.4.2/gitweb/gitweb.perl 2013-10-29 16:49:07.302747507 -0400
@@ -83,7 +83,7 @@ our $projectroot = "++GITWEB_PROJECTROOT
our $project_maxdepth = "++GITWEB_PROJECT_MAXDEPTH++";
# string of the home link on top of all pages
-our $home_link_str = "++GITWEB_HOME_LINK_STR++";
+our $home_link_str = $ENV{'SERVER_NAME'} ? "git://" . $ENV{'SERVER_NAME'} : "projects";
# extra breadcrumbs preceding the home link
our @extra_breadcrumbs = ();

View file

@ -0,0 +1,275 @@
From 65e88e659008e2cbf79cf44975406ff0d569a3a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ond=C5=99ej=20Poho=C5=99elsk=C3=BD?= <opohorel@redhat.com>
Date: Thu, 20 Nov 2025 12:24:59 +0100
Subject: [PATCH] sideband: mask control characters
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The output of `git clone` is a vital component for understanding what
has happened when things go wrong. However, these logs are partially
under the control of the remote server (via the "sideband", which
typically contains what the remote `git pack-objects` process sends to
`stderr`), and is currently not sanitized by Git.
This makes Git susceptible to ANSI escape sequence injection (see
CWE-150, https://cwe.mitre.org/data/definitions/150.html), which allows
attackers to corrupt terminal state, to hide information, and even to
insert characters into the input buffer (i.e. as if the user had typed
those characters).
To plug this vulnerability, disallow any control character in the
sideband, replacing them instead with the common `^<letter/symbol>`
(e.g. `^[` for `\x1b`, `^A` for `\x01`).
There is likely a need for more fine-grained controls instead of using a
"heavy hammer" like this, which will be introduced subsequently.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
sideband: introduce an "escape hatch" to allow control characters
The preceding commit fixed the vulnerability whereas sideband messages
(that are under the control of the remote server) could contain ANSI
escape sequences that would be sent to the terminal verbatim.
However, this fix may not be desirable under all circumstances, e.g.
when remote servers deliberately add coloring to their messages to
increase their urgency.
To help with those use cases, give users a way to opt-out of the
protections: `sideband.allowControlCharacters`.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
sideband: do allow ANSI color sequences by default
The preceding two commits introduced special handling of the sideband
channel to neutralize ANSI escape sequences before sending the payload
to the terminal, and `sideband.allowControlCharacters` to override that
behavior.
However, some `pre-receive` hooks that are actively used in practice
want to color their messages and therefore rely on the fact that Git
passes them through to the terminal.
In contrast to other ANSI escape sequences, it is highly unlikely that
coloring sequences can be essential tools in attack vectors that mislead
Git users e.g. by hiding crucial information.
Therefore we can have both: Continue to allow ANSI coloring sequences to
be passed to the terminal, and neutralize all other ANSI escape
sequences.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
sideband: default to allowControlCharacters=true
We don't want to change the default Git behaviour, just add the option
to filter control characters.
Signed-off-by: Ondřej Pohořelský <opohorel@redhat.com>
---
Documentation/config.adoc | 2 +
Documentation/config/sideband.adoc | 16 ++++++
sideband.c | 78 ++++++++++++++++++++++++++++-
t/t5409-colorize-remote-messages.sh | 31 ++++++++++++
4 files changed, 125 insertions(+), 2 deletions(-)
create mode 100644 Documentation/config/sideband.adoc
diff --git a/Documentation/config.adoc b/Documentation/config.adoc
index 62eebe7c54..dcea3c0c15 100644
--- a/Documentation/config.adoc
+++ b/Documentation/config.adoc
@@ -523,6 +523,8 @@ include::config/sequencer.adoc[]
include::config/showbranch.adoc[]
+include::config/sideband.adoc[]
+
include::config/sparse.adoc[]
include::config/splitindex.adoc[]
diff --git a/Documentation/config/sideband.adoc b/Documentation/config/sideband.adoc
new file mode 100644
index 0000000000..c9ba24a02c
--- /dev/null
+++ b/Documentation/config/sideband.adoc
@@ -0,0 +1,16 @@
+sideband.allowControlCharacters::
+ By default, control characters that are delivered via the sideband
+ are NOT masked. Use this config setting to prevent potentially
+ unwanted ANSI escape sequences from being sent to the terminal:
++
+--
+ color::
+ Allow ANSI color sequences, line feeds and horizontal tabs,
+ but mask all other control characters.
+ false::
+ Mask all control characters other than line feeds and
+ horizontal tabs.
+ true::
+ Allow all control characters to be sent to the terminal.
+ This is the default.
+--
\ No newline at end of file
diff --git a/sideband.c b/sideband.c
index ea7c25211e..88d1b44a7a 100644
--- a/sideband.c
+++ b/sideband.c
@@ -26,6 +26,12 @@ static struct keyword_entry keywords[] = {
{ "error", GIT_COLOR_BOLD_RED },
};
+static enum {
+ ALLOW_NO_CONTROL_CHARACTERS = 0,
+ ALLOW_ALL_CONTROL_CHARACTERS = 1,
+ ALLOW_ANSI_COLOR_SEQUENCES = 2
+} allow_control_characters = ALLOW_ALL_CONTROL_CHARACTERS;
+
/* Returns a color setting (GIT_COLOR_NEVER, etc). */
static enum git_colorbool use_sideband_colors(void)
{
@@ -39,6 +45,25 @@ static enum git_colorbool use_sideband_colors(void)
if (use_sideband_colors_cached != GIT_COLOR_UNKNOWN)
return use_sideband_colors_cached;
+ switch (repo_config_get_maybe_bool(the_repository, "sideband.allowcontrolcharacters", &i)) {
+ case 0: /* Boolean value */
+ allow_control_characters = i ? ALLOW_ALL_CONTROL_CHARACTERS :
+ ALLOW_NO_CONTROL_CHARACTERS;
+ break;
+ case -1: /* non-Boolean value */
+ if (repo_config_get_string_tmp(the_repository, "sideband.allowcontrolcharacters",
+ &value))
+ ; /* huh? `get_maybe_bool()` returned -1 */
+ else if (!strcmp(value, "color"))
+ allow_control_characters = ALLOW_ANSI_COLOR_SEQUENCES;
+ else
+ warning(_("unrecognized value for `sideband."
+ "allowControlCharacters`: '%s'"), value);
+ break;
+ default:
+ break; /* not configured */
+ }
+
if (!repo_config_get_string_tmp(the_repository, key, &value))
use_sideband_colors_cached = git_config_colorbool(key, value);
else if (!repo_config_get_string_tmp(the_repository, "color.ui", &value))
@@ -66,6 +91,55 @@ void list_config_color_sideband_slots(struct string_list *list, const char *pref
list_config_item(list, prefix, keywords[i].keyword);
}
+static int handle_ansi_color_sequence(struct strbuf *dest, const char *src, int n)
+{
+ int i;
+
+ /*
+ * Valid ANSI color sequences are of the form
+ *
+ * ESC [ [<n> [; <n>]*] m
+ */
+
+ if (allow_control_characters != ALLOW_ANSI_COLOR_SEQUENCES ||
+ n < 3 || src[0] != '\x1b' || src[1] != '[')
+ return 0;
+
+ for (i = 2; i < n; i++) {
+ if (src[i] == 'm') {
+ strbuf_add(dest, src, i + 1);
+ return i;
+ }
+ if (!isdigit(src[i]) && src[i] != ';')
+ break;
+ }
+
+ return 0;
+}
+
+static void strbuf_add_sanitized(struct strbuf *dest, const char *src, int n)
+{
+ int i;
+
+ if (allow_control_characters == ALLOW_ALL_CONTROL_CHARACTERS) {
+ strbuf_add(dest, src, n);
+ return;
+ }
+
+ strbuf_grow(dest, n);
+ for (; n && *src; src++, n--) {
+ if (!iscntrl(*src) || *src == '\t' || *src == '\n')
+ strbuf_addch(dest, *src);
+ else if ((i = handle_ansi_color_sequence(dest, src, n))) {
+ src += i;
+ n -= i;
+ } else {
+ strbuf_addch(dest, '^');
+ strbuf_addch(dest, 0x40 + *src);
+ }
+ }
+}
+
/*
* Optionally highlight one keyword in remote output if it appears at the start
* of the line. This should be called for a single line only, which is
@@ -81,7 +155,7 @@ static void maybe_colorize_sideband(struct strbuf *dest, const char *src, int n)
int i;
if (!want_color_stderr(use_sideband_colors())) {
- strbuf_add(dest, src, n);
+ strbuf_add_sanitized(dest, src, n);
return;
}
@@ -114,7 +188,7 @@ static void maybe_colorize_sideband(struct strbuf *dest, const char *src, int n)
}
}
- strbuf_add(dest, src, n);
+ strbuf_add_sanitized(dest, src, n);
}
diff --git a/t/t5409-colorize-remote-messages.sh b/t/t5409-colorize-remote-messages.sh
index fa5de4500a..2d40d8c640 100755
--- a/t/t5409-colorize-remote-messages.sh
+++ b/t/t5409-colorize-remote-messages.sh
@@ -98,4 +98,35 @@ test_expect_success 'fallback to color.ui' '
grep "<BOLD;RED>error<RESET>: 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 <stderr >decoded &&
+ test_grep RED decoded &&
+ test_grep "\\^G" stderr &&
+ tr -dc "\\007" <stderr >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 <stderr >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 <stderr >decoded &&
+ test_grep RED decoded &&
+ tr -dc "\\007" <stderr >actual &&
+ test_file_not_empty actual
+'
+
test_done
--
2.51.1

View file

@ -1,5 +0,0 @@
;; Git VC backend
(add-to-list 'vc-handled-backends 'GIT t)
(autoload 'git-status "git" "GIT mode." t)
(autoload 'git-blame-mode "git-blame"
"Minor mode for incremental blame for Git." t)

View file

@ -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 @@
<IfDefine DAV>
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
-
+ <IfDirective DavLockDBType>
+ DavLockDBType sdbm
+ </IfDirective>
DAVLockDB DAVLock
<Location /dumb/>
Dav on

42
git.rpmlintrc Normal file
View file

@ -0,0 +1,42 @@
# the dictionary is a bit limited
addFilter("git.* spelling-error %description .* subpackages")
addFilter("git-subtree.* spelling-error %description .* (subdirectory|subproject|subtree)")
# git-core-doc requires git-core, which provides the symlink target
addFilter("git(-core-doc)?\..*: W: dangling-relative-symlink /usr/share/doc/git/contrib/hooks ../../../git-core/contrib/hooks")
# gitk requires git, which provides the symlink target
addFilter("gitk\.noarch: W: dangling-relative-symlink /usr/share/bash-completion/completions/gitk git")
# git-gui requires git, which provides the git binary
addFilter("git-gui.noarch: W: desktopfile-without-binary /usr/share/applications/git-gui.desktop git")
# ignore no binary warning for main git package; making it noarch isn't trivial
# since we have arch-specific subpackages
addFilter("git\..*: E: no-binary$")
# ignore no doc/manpage warnings where we don't expect any documentation
addFilter("git-(all|core|credential-libsecret)\..*: W: no-documentation")
addFilter("perl-Git-SVN.noarch: W: no-documentation")
addFilter("git-core\..*: W: no-manual-page-for-binary")
# nothing provides git-gnome-keyring, it's simply obsolete
# similarly ignore the warning when git-cvs and git-p4 are disabled
addFilter("git.* obsolete-not-provided git-(cvs|gnome-keyring|p4)")
# git-svn has both man and html docs and only a single command
addFilter('git-svn\..*: W: package-with-huge-docs')
# ignore potential "bashisms" in docs
addFilter('git-core-doc\.noarch: W: potential-bashisms /usr/share/doc/git/')
# ignore unused-direct-shlib-dependency for libpcre; while it probably could be
# removed from some binaries, the cost of doing so isn't worth the gain.
addFilter('git-(core|daemon)\..*: W: unused-direct-shlib-dependency .* /lib64/libpcre2-.*')
# ignore duplicate gvimdiff/nvimdiff files; they are only 29 bytes, sourcing the same base
# vimdiff mergetool
addFilter('git-core\..*: W: files-duplicate /usr/libexec/git-core/mergetools/[gn]vimdiff')
# ignore non-standard-dir-in-var for gitweb (#479613)
addFilter('gitweb.noarch: W: non-standard-dir-in-var www')

33
git.skip-test-patterns Normal file
View file

@ -0,0 +1,33 @@
^ok 1 # SKIP enable client-side http/2 \(missing HTTP2\)$
expensive 2GB clone test; enable with GIT_TEST_CLONE_2GB=true
filesystem does not corrupt utf-8
fsmonitor--daemon is not supported on this platform
GIT_SKIP_TESTS
missing AUTOIDENT
missing BUILTIN_TXT_
missing CASE_INSENSITIVE_FS
missing DONTHAVEIT
missing ([!]LONG_IS_64BIT,)?EXPENSIVE
missing FSMONITOR_DAEMON
missing JGIT
missing !?LAZY_(TRUE|FALSE)
missing MINGW
missing NATIVE_CRLF
missing !PCRE
missing !PTHREADS
missing !REFFILES
missing RFC1991
missing RUNTIME_PREFIX
missing SYMLINKS_WINDOWS
missing TAR_NEEDS_PAX_FALLBACK
missing UTF8_NFD_TO_NFC
missing WINDOWS
skipped: skip all tests in t5559
skipping case insensitive tests
skipping git p4 tests
skipping remote-svn tests, python not available
skipping svn-info test
skipping Windows-(only path|specific) tests
Test requiring writable / skipped
used to test external credential helpers
You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test

2501
git.spec

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@ service git
socket_type = stream
wait = no
user = nobody
server = @GITCOREDIR@/git-daemon
server = @GITEXECDIR@/git-daemon
server_args = --base-path=@BASE_PATH@ --export-all --user-path=public_git --syslog --inetd --verbose
log_on_failure += USERID
}

View file

@ -1,8 +0,0 @@
[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)
[Service]
User=nobody
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose
StandardInput=socket

10
git@.service.in Normal file
View file

@ -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

View file

@ -59,108 +59,86 @@ d2ZdUxMgwgcNiQOCW70YWtxf0LF2seSJdLItHDBOu/f3cqKwNGUvcC3d/9qVb0wP
SI1mq18S02MGcvDySsjGtX7o4kujUqE2ZNCW6ORLJUC6zEYu3TRNWrXeS3uAP21x
UrEPkuTiJL7SCS12FYJt5agx5NIUKI7bkIUbLbiuhC4z47MFajW9Y5jUQk86dk7b
jGqVrXYIu92Dhxc2CND2fWaMpYRhwvHR6KQU1yYHYkGVlMHiozM5D+4dCRRVI8x3
p/+ypFBZmZr7yTpv/qD0N8HHl2NAYvGRQdzjyFQOXERwaXuzjCkAEQEAAYkERAQY
AQIADwIbAgUCVB9jPgUJB3dMaAIpwV0gBBkBAgAGBQJOiUo5AAoJELC16IaWr+bL
pKUQAMsAmipqNBx++8jZKqK5pyrUQa8/I7cevHv/6avwMgq4ISlIfdYixmI4t/xN
akHu6ezXu1gJ97hWbNts6zSiAxsbTDAkEwtDXuAQLzIdTc8M8wQgsoq7NXHC4+YC
pKBZCn06OVOTVjc52DzPLom9bmOb3UaiCdryeyScpDXXFuaHeNk7VrDsR9s06eEk
TZl/ED2kW3zsT3ZSrG6dHiDupJPi8eoBL1gLRHWucUndT8Miu0nxmnU5vvEcOVHj
9ZEbbikD5u7EQQdHKFw1R6RYv5zFh81cb/zSoSwJMyGxjleqy/IoVYVxqhIIg+UP
kHW2jbIi7R6OZ4gc6W5870qKQWHDn7a4XDzQ2NEWF2G/+SWVInfyQVisFfs0RBJ2
4LbGA28BRA5wlSBslwKMcmrP0t29eIs2raoCDcYmLsaQ2PsNTuUcsIzk3Sz1FpS+
WIR9Vv4MG3choi+LIdL/38zctLykecz7dYSAhAPWLwiO5N2++DunogweXzCET5Da
+rm2VntE+seHi9hI0hUVyBJm5pwIfd6XaVha1x/kn9SyoQWc6I4FLEFP68wdkfeE
u1cdGfrc4A2fHyXuO2VBH8yXHMshr3v0ALCy4E1kcET9zEmtawuMLlrQwzJP3a8P
QqZnhXkRZ9KAyAaP5tpgb/lDQMUnYo0RM7z0YsETpmv0WsFXCRAg0E5acTZgp74s
D/4rBEPyAk7cmWtyR0XDZpQETY0Sw7Nr4aErdTdQ7AlntHMcn+MWRJpa57S/ea2F
l6SWZ4X09VV/H11lWnYzw0IkSRDsDATxMin+qpy6c7IwxZ9RQ1UT9PhmVBz7rbrs
l3Hnjv+WG9PcMCdlFOMZL4VC2TQEr0hBSXWhV6mDI0rdwuUu+oq84s1cke5g/e5T
joGupTxkaNO/yfDJMf+3dqwGmJDKl23dfKg+XbFh3Y/G321/C5GgvqtjaCoqzCuT
DByEbVXBde7mFB5xQg8ejDgFfuocw57whdNcS3MlGPO/P06nB940QELjwp5O34mM
cVn0qnyhgaioueVW5qzucEa+UfzbkYhinlYdbyljwquJlqIScLPNL0xtzOWo1oWH
Ll7jVklRuRHXFp6Asqan/MovLlYTcBO4OwOJ/rIJBOHkMeLu/vlEIeqC6J5vuD+b
P4XUpHamxOU8U6RVVDIH4cckhEU3zWDTwaD/RTG8TatJzGmjNOOR04imbqFApU7N
OUQ488WNqH11aeZoDOoXWKEvWfE7Cg/fTP0JZH3HaW9LWljWrt68FCyuLtvGVeNy
jHw4NZq89bbqnhKBAX1LS3pl/+nfD8Wx4sldo8RhlOQgUQu+ZJ5sAueLrnd1AmWE
EXvZDFyZqXsrun4cjvZXDmyFFhuaGVis1QzTIumYpUumvIkERAQYAQIADwIbAgUC
WXolxwUJEJR2CwIpwV0gBBkBAgAGBQJOiUo5AAoJELC16IaWr+bLpKUQAMsAmipq
NBx++8jZKqK5pyrUQa8/I7cevHv/6avwMgq4ISlIfdYixmI4t/xNakHu6ezXu1gJ
97hWbNts6zSiAxsbTDAkEwtDXuAQLzIdTc8M8wQgsoq7NXHC4+YCpKBZCn06OVOT
Vjc52DzPLom9bmOb3UaiCdryeyScpDXXFuaHeNk7VrDsR9s06eEkTZl/ED2kW3zs
T3ZSrG6dHiDupJPi8eoBL1gLRHWucUndT8Miu0nxmnU5vvEcOVHj9ZEbbikD5u7E
QQdHKFw1R6RYv5zFh81cb/zSoSwJMyGxjleqy/IoVYVxqhIIg+UPkHW2jbIi7R6O
Z4gc6W5870qKQWHDn7a4XDzQ2NEWF2G/+SWVInfyQVisFfs0RBJ24LbGA28BRA5w
lSBslwKMcmrP0t29eIs2raoCDcYmLsaQ2PsNTuUcsIzk3Sz1FpS+WIR9Vv4MG3ch
oi+LIdL/38zctLykecz7dYSAhAPWLwiO5N2++DunogweXzCET5Da+rm2VntE+seH
i9hI0hUVyBJm5pwIfd6XaVha1x/kn9SyoQWc6I4FLEFP68wdkfeEu1cdGfrc4A2f
HyXuO2VBH8yXHMshr3v0ALCy4E1kcET9zEmtawuMLlrQwzJP3a8PQqZnhXkRZ9KA
yAaP5tpgb/lDQMUnYo0RM7z0YsETpmv0WsFXCRAg0E5acTZgp2XoD/wJiq+drfb+
IljjLScNgQbH2vq5lXub4rD5j83waVfkh60eFCo8hu1dBkaWyHs81gFPKIPRHYJJ
19B6g/nFOW7bZPbzhZzdICTejz2ITi8ipSgTsRGQMeQ+vGzlxH7dItmo0MeU2Pbf
pfTn1tB6wafHtMLaZafDIskh1RkAMFsWoEK305PtyuTSkGDGTKnA9yBX4CpKHZDR
1iYqZU+HQ0aDjiZaEl/m8S2siF6zz1PG1BFDtKDjg7+nKT1wriKfndEIksxrxxY0
Kqfif2rUu1Kzc2FrtRQY6hguz2HASpcPLr3c6ru5e9SXqaWtfBuXkYzQ0temrFnY
3Oj/rlt5PxcB29XVuB4/CxfPgBVCHVaLOMkJtE/C9GQ5Vzb0k8OxAXClF1EXA9bT
Wri0unw/kt64cL04ZqKUlXmPDzzMdASFIq0pvEzfvIFBdrY3xNPFULEuAbxGhFoR
6iOYJzDRXbl6114IsGnVR3MdFbBQVi6isrFn16JC4yXqUXEHB+oTUTrBv5J/bWu3
gq3O4MwAprHyTAviUvC9Iq71orXe3iAGbnaeCkPmdmxL9y5UjwXo3OaYN2Axppwd
B6j3QAIyJOkjjOCJRumQx3mKR0F464Xif3S7gcrelIYthz0JVkXg4bucUj7L/8Rl
cCAAru4p1TL+VpEBciclDjJSBVRX8nX9dLkCDQROhnXsARAA8ZueozuaZ1UR9dwb
Bt/KNag/ZiaaV4X9Jm+nQTkT9W92CTWpJ0LcVT10pVzQGDUrWLPW1sJ/ka2JjhH8
tDFnpKjgaoBwxH+dJLWWs4RXfPXbefCAPliBaOwRZNVyK+FEnUhEHi+z2+KEoOQG
J/AtzpU+0958VgYfWhG2rRH4lDBSopC1VS3WxC+xQcxJMqR30ArJQ5avoIAAFQc6
qzCAZ/4nbaPO1Kxdsf6ndj9jyZfaVH++OKS/cs1/nDW0JXdGH+oEFvf69FFFvwgl
OKqTw78nMhiMd2Oz1fzIwJa3uKib+JIaEhWrAAIw188lCGIcO8jJmgBP5RDlTezO
q3mA74WgwnFnxJ/LIx9N/1mvdr1ce26DMeUQBIfGBNimRxGZADg5VuKZwysmh9/J
Y/KWtHYe+0VwA+l9VzxsIs6Zo36wQTxr1DRrHSKSWmOChGmdPr924b31NA1geHZi
Qd2j8QughbVQNEARnG8Neo1HgPti1CYFjLPOp6R2j8w/fSeEPkpsPZmT38k+Tucs
pmFzsCKedGlI5BgkHB7be44rDZFOdmxQ9iXECa/KOuySHKhTXYTwJ8QvgTdEA7Qs
l0/sMQtVL4fRP/69yTxEA0RHxFG95ft0mq89Sgpty1IcdVxPNmenPerR6KVH4jos
G7cb/vFMqV09p7Sn6a89VHTG+Y8AEQEAAYkCHwQYAQIACQUCToZ17AIbDAAKCRAg
0E5acTZgpxSmD/4+nZhEFmZYlhPJXvUM4dVqk2x3eXpWhibltChkPoPaJFgZIfrC
5T8cU5Nn9G+/T3Oytzj8u/PTnCLK2xw94w6e00vSFaV+5FWZ757bOaFd13CuavOF
wxEKmulCJX4mZGSQsyF/DZEgG79FJpiiiykvgDSBCGQSga1saWMLxtsAaFj5KTb+
ZnRLkfYd6WdWgkmUV8rDJVl6OXDGLmVIWm6zqkzT+XnxJvIgURB8zUqLbIjoR7ru
ziD5r2SU1IzK0dcGTAsPmLjTtpE97fmRU8Qsdmnkc6pyOeS2BUFQaYErGqf7HqkW
X4+4+0gW9m0mwroTXnWwMG95A1knyRsvyDerz3bHNzXbGBSvl/HJ8qQruKWQytiF
PgpFa6v7pEfEzXa6QGHxGF2y6tFxTk9LOIyHI393QLZRlt+oQNACj8NQS93MhBn7
9rKu+YJMNf4yGDFxnPFEScuQH4BCyKztXSIzLJurxRS3h6QKGxD/O1BKaiMibcBC
H1nXFeWB2JpRZBndtS58aX9nQQIeXXODCaWJhWRknEg7U3GAgxFyAk4HnVTreFgm
leZsKT3khM69kzlZundZ1JRgSQlekDzBHcsdN4UZMGkzLYdA/0mAr1K45RkNVQuF
rk73kgYUx+4g64xkqFzSbj9jqvo2/4gH2cbnrY6ShQ+kwjEdAXLP3BGbl7kCDQRU
HbogARAAmJzYPpBprZD5rZEP++T/JS7JYzJPSCMFxppxSCy6RwTP7Tfu8Bg8Tgy2
P6T2dkH5qez2S6+TpOUJ7b/4PmArVWk7uQmo7dkzrMh/gGA6ra44xyLfHdpFZaKu
/TjbAlKIxbWxQ9Z3+VvUpFkIJ7R2EWGNTGgpDXd6FKe+E0LoM5PEOlAQ2pgJ9a+J
35ukDV7LSLaslrAoEIYsVkIuFs0HOIgP/N7fqlCft9rJo5OifqxlG2xB/M0wEl5n
A1mAbj4I6N2BI1ft/6jWq853GJ3iX0F8BUoL3EfaFLgUN8nViXe7H4iJrgJ0HUXx
AvyRW9IkfbCd/eT8OVkHzBLK6dLi/1IoOdpkqxciH2p8YayT+I/gsgnCadU2hSDW
oOf2MB19xs6IpMF1LpG/oSsV8SvVbvBLtoAJShWh7dseUnNw9Xfp69kMjJCE4Quv
3d/l1I4DiDFpAiuXYJLs+q7OtHEUK/GARn+CYJP165JP0owYwZXE8/ZawtOsAUQr
GvtF8QgB5TO4FadB7zJ/oSsfZ8u3T6mqoYPFl7gS9J/MgF1w0oAwIp+eZkW4iqtm
zbjGhCb8CjRVOhDRxkp4E8Pz7egdHW3gdUgVcSTxmxppO+AS/JuVeuym+zAz9OTi
0mbFMjS0AqX0oGLFANeLlRhxP7xOoWj/fw8DC3cifwsUo0CTJPsAEQEAAYkERAQY
AQIADwIbAgUCWXol2AUJCwAGNgIpwV0gBBkBAgAGBQJUHbogAAoJEHWU7sez98rJ
qH8P/Ane/hZ2oajsqBbSSZZ8VVZksrC1v7XqBzLqcibsXtVRw4O/6pEsD/hRSDvb
JptUJecwGL94Qe2RVlaUH/63ODrjcOJG9dMJmLChLlzp9PN7nl79nzupjuiR/jRp
NH6pa4yCWKAj8t5e6evU+7aOUksxxRWHlAvEtnxsOqkOBAz3Nx0WYpD+h9ScrvLq
BjJSXYpgkNiLRqXONOb7vf9LQxzvPTxin+z520o9tT2KYoKc1GQ9NClzCVgdYm/R
g9DRN06SJ3ockLsKZkQ8fzjkP6qiMCNgE+iA0iP9FoHJpPeQ3fbO7z6NpklIKcEz
SXaVKH+o7uxAFmGo9fmkkOOOPt38BNjtfEkKcr/ZxlVK5WExc8gUgBAbhlgVRpCy
yNAos3sFclSjv55zUAyROLANShw/NryH5+K1yk6xZYlZa9m+RI5tu48oafsGChPM
R6E7ZHPRCw2OA5rlJfGZzTNfuxsHVeIzFJ7uAFkE6diOE9VyJ07e1a4z+NcZ9kAv
0hKrpl/jt5tcDtj7oHHeiq4yC1I3XSBt2gm+OoQEk03rnBp28E/z5Ksv6dZEaGx+
a7yO6ld0l7yHzKxcJuhWSlce5K76UON4v1YuqnBz9eRo7LsHo9/AhFphgeewqzyi
C8O5NEk9XiSGLPK34DpqJDU9CrFIpYZj6XPFuYGQ+Gnm/U3nCRAg0E5acTZgpz8Y
D/9Hh8JWHRWhQf2a53WIlCqERNV+J6wWItmACncTyaLjJJkj7f1Ka3iZ8vo1WWWY
463m8y1hf1aNgr2trYZ6kOSwGP+BWKrRakn6/jKaL42QbUvHyR4PnGNuFYyv5thW
7988XsoKRo5GBPQzk/F+6IkKzNDgv1/i1GnVgWJmH1wg1ssMGN1fYlu43z+lKemf
0ss9pQqPtV8W+wrViO4MvWVQ/CcicsDvgA5pM9sLeIBXX3nsdo/TWdEJu4JEvsA8
MN/q09qkGU14Ptzfze2k63nHheA2OnTOo9agQEL7N05a9zzSoXj39CubObjnTjr4
QmqWVkkHPKWV3R1ULQle65U4zELdYfU1wXoH2AZVW+02SNZTGlRjCyoV9O01QSt3
Rlyzajy+3gwDLnczqV0CUF7WgL0V0LYYCavjXhdc+oFsYN6kU3D31ZgOMrxauoIB
LWSzqJ83Fm6tmL0OLJuFpi8FvV9NYkqux3ECL3iTpttyEpWPKo9ZlxEgusrK2uTE
2S6rhy7zkf/3/raGgtEjIQ7E1zuR52ENlIN/djnSfkLf6OmkhgBgSs/HixC4zFtz
Dk2VltUXhUURXRl9Op+8Atrv44JfLpFehdVDjbKrFmOiW948c0LoB0g73ujnjBFO
+qTu3PzPD4ihBUJ3cNLoadoOQ9gzW/I9rkykw5jpk0sCMg==
=z4yI
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
=7hTI
-----END PGP PUBLIC KEY BLOCK-----

26
print-failed-test-output Normal file
View file

@ -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

View file

@ -1,2 +1,2 @@
SHA512 (git-2.14.3.tar.xz) = e32e9ff904cbc2a77d78ca08953e3b69ac527c333a898dd053806e3d7e684ad4ae153ae7663b7ff9c16e2414c3189878a2e6c95fe9320b4af6cb1e7fa5102643
SHA512 (git-2.14.3.tar.sign) = e0b6ab097cb12202fe033fd898a9063b78ac9f650161e24ef059057b3606100d8a847b2b48c7a07ab79af5d46f2ed0193af3d1f6da723851752ba1383d2c483d
SHA512 (git-2.52.0.tar.xz) = 965e5ebb72d1f080d64e34bdb75f0bb1689c9dd41dcf63b020d986bad49808ac09bfb1115962bc0c5b95bac8622367ac4cd09aa89266f73d2137fe94c90dd3ed
SHA512 (git-2.52.0.tar.sign) = a5a68ce131a5763650c477ec01a4de958dd6a946bdea0f613e26bdab41d2df6b3ca63f9028bbe603bf0c834bd415c86e6c616b1ff08cc48aa7c3c61a37b24b74