Commit Graph

600 Commits

Author SHA1 Message Date
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:
https://github.com/gitster/git/commit/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.

¹ https://github.com/git/git/commit/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