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
This commit is contained in:
Todd Zullinger 2019-05-13 21:13:24 -04:00
parent 8d801b24a1
commit 51610991b8
3 changed files with 48 additions and 2 deletions

View File

@ -0,0 +1,40 @@
From aeb950b03f0ef22bdfee09b505349521e68b7e54 Mon Sep 17 00:00:00 2001
From: Todd Zullinger <tmz@pobox.com>
Date: Tue, 14 May 2019 01:47:25 +0000
Subject: [PATCH] test-lib: try harder to ensure a working jgit
The JGIT prereq uses 'type jgit' to determine whether jgit is present.
While this should be sufficient, if the jgit found is broken we'll waste
time running tests which fail due to no fault of our own.
Use 'jgit --version' instead, to catch some badly broken jgit
installations.
Signed-off-by: Todd Zullinger <tmz@pobox.com>
---
I ran into such a broken jgit on Fedora >= 30¹. This is clearly a
problem in the Fedora jgit package which will hopefully be resolved
soon. But it may be good to avoid wasting time debugging tests which
fail due to such a broken tool which is outside of our control.
¹ https://bugzilla.redhat.com/1709624
t/test-lib.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 908ddb9c46..599fd70e14 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -1522,7 +1522,7 @@ test_lazy_prereq NOT_ROOT '
'
test_lazy_prereq JGIT '
- type jgit
+ jgit --version
'
# SANITY is about "can you correctly predict what the filesystem would
--
2.20.1

View File

@ -5,6 +5,7 @@ missing CASE_INSENSITIVE_FS
missing CLONE_2GB
missing DONTHAVEIT
missing EXPENSIVE
missing JGIT
missing !?LAZY_(TRUE|FALSE)
missing MINGW
missing NATIVE_CRLF

View File

@ -120,6 +120,10 @@ Source99: print-failed-test-output
# https://bugzilla.redhat.com/490602
Patch0: git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
# https://bugzilla.redhat.com/1709624
# https://public-inbox.org/git/20190514020520.GI3654@pobox.com/
Patch1: 0001-test-lib-try-harder-to-ensure-a-working-jgit.patch
%if %{with docs}
# pod2man is needed to build Git.3pm
BuildRequires: %{_bindir}/pod2man
@ -195,9 +199,9 @@ BuildRequires: gnupg2-smime
BuildRequires: highlight
%endif # fedora, el-6, or el7-ppc64
BuildRequires: httpd
%if 0%{?fedora} && %{_arch} != s390x
%if 0%{?fedora} && ! ( %{_arch} == i386 || %{_arch} == s390x )
BuildRequires: jgit
%endif # fedora (except s390x)
%endif # fedora (except i386 and s390x)
BuildRequires: mod_dav_svn
BuildRequires: perl(App::Prove)
BuildRequires: perl(CGI)
@ -958,6 +962,7 @@ rmdir --ignore-fail-on-non-empty "$testdir"
* Mon May 13 2019 Todd Zullinger <tmz@pobox.com> - 2.22.0-0.0.rc0
- Update to 2.22.0-rc0
- Ensure a consistent format for test output
- Improve JGIT test prereq (jgit on Fedora >= 30 is broken)
* Sun Feb 24 2019 Todd Zullinger <tmz@pobox.com> - 2.21.0-1
- Update to 2.21.0