diff --git a/0001-Ensure-the-correct-classpath-is-set-for-the-jgit-com.patch b/0001-Ensure-the-correct-classpath-is-set-for-the-jgit-com.patch new file mode 100644 index 0000000..5b98a88 --- /dev/null +++ b/0001-Ensure-the-correct-classpath-is-set-for-the-jgit-com.patch @@ -0,0 +1,26 @@ +From 5f1d7c576160b1682a5787018c1aa82b8cb0e747 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Fri, 7 Dec 2018 10:04:44 +0000 +Subject: [PATCH 1/2] Ensure the correct classpath is set for the jgit command + line tool + +--- + org.eclipse.jgit.pgm/jgit.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/org.eclipse.jgit.pgm/jgit.sh b/org.eclipse.jgit.pgm/jgit.sh +index e263782..4086e37 100644 +--- a/org.eclipse.jgit.pgm/jgit.sh ++++ b/org.eclipse.jgit.pgm/jgit.sh +@@ -60,7 +60,7 @@ esac + this_script=`which "$0" 2>/dev/null` + [ $? -gt 0 -a -f "$0" ] && this_script="$0" + cp=$this_script +- ++export JGIT_CLASSPATH="$(build-classpath jgit slf4j/api slf4j/simple args4j jzlib jsch commons-compress xz-java javaewah httpcomponents/httpcore httpcomponents/httpclient commons-logging commons-codec eddsa apache-sshd/sshd-osgi apache-sshd/sshd-sftp)" + platform="`uname`" + if [ -n "$JGIT_CLASSPATH" ] + then +-- +2.20.1 + diff --git a/0002-Ensure-all-packages-are-exported.patch b/0002-Ensure-all-packages-are-exported.patch new file mode 100644 index 0000000..7fd1416 --- /dev/null +++ b/0002-Ensure-all-packages-are-exported.patch @@ -0,0 +1,45 @@ +From 77a7644525c260098740a6670bf389b3957b746a Mon Sep 17 00:00:00 2001 +From: Matthias Sohn +Date: Sun, 16 Jun 2019 02:30:10 +0200 +Subject: [PATCH 2/2] Ensure all packages are exported + +This wasn't the case for the bundles +- org.eclipse.jgit.ant +- org.eclipse.jgit.archive + +Change-Id: Ibefcc82174fe23a9c1afb765099957414ac3556b +Signed-off-by: Matthias Sohn --- + org.eclipse.jgit.ant/META-INF/MANIFEST.MF | 4 ++-- + org.eclipse.jgit.archive/META-INF/MANIFEST.MF | 3 ++- + 2 files changed, 4 insertions(+), 3 deletions(-) +--- + org.eclipse.jgit.ant/META-INF/MANIFEST.MF | 4 ++-- + org.eclipse.jgit.archive/META-INF/MANIFEST.MF | 3 ++- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF +index bb61635..7b24bf6 100644 +--- a/org.eclipse.jgit.ant/META-INF/MANIFEST.MF ++++ b/org.eclipse.jgit.ant/META-INF/MANIFEST.MF +@@ -9,5 +9,5 @@ Import-Package: org.apache.tools.ant, + org.eclipse.jgit.storage.file;version="[5.4.0,5.5.0)" + Bundle-Localization: plugin + Bundle-Vendor: %Provider-Name +-Export-Package: org.eclipse.jgit.ant.tasks;version="5.4.0"; +- uses:="org.apache.tools.ant.types,org.apache.tools.ant" ++Export-Package: org.eclipse.jgit.ant, ++ org.eclipse.jgit.ant.tasks;version="5.4.0";uses:="org.apache.tools.ant.types,org.apache.tools.ant" +diff --git a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF +index 1fa5e8c..0eabf1f 100644 +--- a/org.eclipse.jgit.archive/META-INF/MANIFEST.MF ++++ b/org.eclipse.jgit.archive/META-INF/MANIFEST.MF +@@ -25,4 +25,5 @@ Export-Package: org.eclipse.jgit.archive;version="5.4.0"; + uses:="org.eclipse.jgit.lib, + org.eclipse.jgit.api, + org.apache.commons.compress.archivers, +- org.osgi.framework" ++ org.osgi.framework", ++ org.eclipse.jgit.archive.internal;x-internal:=true +-- +2.20.1 + diff --git a/0003-Remove-dependency-on-javax.xml.bind-package.patch b/0003-Remove-dependency-on-javax.xml.bind-package.patch new file mode 100644 index 0000000..f9672cc --- /dev/null +++ b/0003-Remove-dependency-on-javax.xml.bind-package.patch @@ -0,0 +1,86 @@ +From 0d1cc8f8d3adb99f75fce180d857077ada3a19ee Mon Sep 17 00:00:00 2001 +From: David Ostrovsky +Date: Mon, 17 Jun 2019 23:28:52 +0200 +Subject: [PATCH 3/3] Remove dependency on javax.xml.bind package + +Replace javax.xml.bind.DatatypeConverter, that is not available any +more in Java 11 and later with Hex utility from non optional Bouncy +Castle library. + +Bug: 540790 +Change-Id: I9903c00ecc1a434e9795b8ba9267f02628fdc0e9 +Signed-off-by: David Ostrovsky +--- + BUILD | 7 ------- + org.eclipse.jgit/BUILD | 4 ---- + .../src/org/eclipse/jgit/transport/WalkEncryption.java | 7 +++---- + 3 files changed, 3 insertions(+), 15 deletions(-) + +diff --git a/BUILD b/BUILD +index 5fea669..be6dd76 100644 +--- a/BUILD ++++ b/BUILD +@@ -1,12 +1,5 @@ + package(default_visibility = ["//visibility:public"]) + +-config_setting( +- name = "jdk9", +- values = { +- "java_toolchain": "@bazel_tools//tools/jdk:toolchain_jdk9", +- }, +-) +- + genrule( + name = "all", + testonly = 1, +diff --git a/org.eclipse.jgit/BUILD b/org.eclipse.jgit/BUILD +index b67bfac..814ecec 100644 +--- a/org.eclipse.jgit/BUILD ++++ b/org.eclipse.jgit/BUILD +@@ -14,10 +14,6 @@ RESOURCES = glob(["resources/**"]) + java_library( + name = "jgit", + srcs = SRCS, +- javacopts = select({ +- "//:jdk9": ["--add-modules=java.xml.bind"], +- "//conditions:default": [], +- }), + resource_strip_prefix = "org.eclipse.jgit/resources", + resources = RESOURCES, + deps = [ +diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java +index b4248ee..7a973af 100644 +--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java ++++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java +@@ -66,8 +66,8 @@ + import javax.crypto.spec.PBEKeySpec; + import javax.crypto.spec.PBEParameterSpec; + import javax.crypto.spec.SecretKeySpec; +-import javax.xml.bind.DatatypeConverter; + ++import org.bouncycastle.util.encoders.Hex; + import org.eclipse.jgit.internal.JGitText; + import org.eclipse.jgit.util.Base64; + +@@ -301,7 +301,7 @@ InputStream decrypt(InputStream in) throws IOException { + String DEFAULT_KEY_ALGO = JetS3tV2.ALGORITHM; + String DEFAULT_KEY_SIZE = Integer.toString(JetS3tV2.KEY_SIZE); + String DEFAULT_KEY_ITER = Integer.toString(JetS3tV2.ITERATIONS); +- String DEFAULT_KEY_SALT = DatatypeConverter.printHexBinary(JetS3tV2.SALT); ++ String DEFAULT_KEY_SALT = Hex.toHexString(JetS3tV2.SALT); + + String EMPTY = ""; //$NON-NLS-1$ + +@@ -377,8 +377,7 @@ static GeneralSecurityException securityError(String message) { + + final byte[] salt; + try { +- salt = DatatypeConverter +- .parseHexBinary(keySalt.replaceAll(REGEX_WS, EMPTY)); ++ salt = Hex.decode(keySalt.replaceAll(REGEX_WS, EMPTY)); + } catch (Exception e) { + throw securityError(X_KEY_SALT + EMPTY + keySalt); + } +-- +2.20.1 + diff --git a/jgit-5.4.0.201906121030-r.tar.xz b/jgit-5.4.0.201906121030-r.tar.xz new file mode 100644 index 0000000..7aadcb5 Binary files /dev/null and b/jgit-5.4.0.201906121030-r.tar.xz differ diff --git a/jgit.spec b/jgit.spec new file mode 100644 index 0000000..e2c7a28 --- /dev/null +++ b/jgit.spec @@ -0,0 +1,98 @@ +%global gittag 5.4.0.201906121030-r +%bcond_with tests +Name: jgit +Version: 5.4.0 +Release: 1 +Summary: A pure java implementation of git +License: BSD +URL: https://www.eclipse.org/jgit/ +Source0: https://git.eclipse.org/c/jgit/jgit.git/snapshot/jgit-%{gittag}.tar.xz +Patch0: 0001-Ensure-the-correct-classpath-is-set-for-the-jgit-com.patch +Patch1: 0002-Ensure-all-packages-are-exported.patch +Patch2: 0003-Remove-dependency-on-javax.xml.bind-package.patch +BuildArch: noarch +BuildRequires: maven-local mvn(args4j:args4j) mvn(com.google.code.gson:gson) +BuildRequires: mvn(com.googlecode.javaewah:JavaEWAH) mvn(com.jcraft:jsch) +BuildRequires: mvn(com.jcraft:jzlib) mvn(javax.servlet:javax.servlet-api) mvn(junit:junit) +BuildRequires: mvn(net.i2p.crypto:eddsa) mvn(org.apache.ant:ant) +BuildRequires: mvn(org.apache.commons:commons-compress) +BuildRequires: mvn(org.apache.httpcomponents:httpclient) +BuildRequires: mvn(org.apache.httpcomponents:httpcore) +BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) +BuildRequires: mvn(org.apache.sshd:sshd-osgi) >= 2.2.0 mvn(org.apache.sshd:sshd-sftp) >= 2.2.0 +BuildRequires: mvn(org.bouncycastle:bcpg-jdk15on) >= 1.61 +BuildRequires: mvn(org.bouncycastle:bcpkix-jdk15on) >= 1.61 +BuildRequires: mvn(org.bouncycastle:bcprov-jdk15on) >= 1.61 +BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) +BuildRequires: mvn(org.eclipse.jetty:jetty-servlet) mvn(org.osgi:osgi.core) +BuildRequires: mvn(org.slf4j:slf4j-api) mvn(org.slf4j:slf4j-simple) mvn(org.tukaani:xz) +%if %{with tests} +BuildRequires: git mvn(org.hamcrest:hamcrest-library) mvn(org.mockito:mockito-core) +%endif +Requires: bouncycastle >= 1.61 apache-sshd >= 1:2.2.0 +%description +A pure Java implementation of the Git version control system and command +line interface. + +%package javadoc +Summary: API documentation for %{name} +%description javadoc +%{summary}. + +%prep +%setup -n jgit-%{gittag} -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +rm .mvn/maven.config +%pom_xpath_remove "pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:executions/pom:execution[pom:id='compile-with-errorprone']" pom.xml +%pom_xpath_remove "pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:executions/pom:execution[pom:id='default-compile']/pom:configuration" pom.xml +%pom_xpath_remove "pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:dependencies" pom.xml +%pom_change_dep -r org.osgi:org.osgi.core org.osgi:osgi.core:provided +%pom_disable_module org.eclipse.jgit.coverage +%pom_remove_plugin :jacoco-maven-plugin +%pom_remove_plugin :maven-javadoc-plugin +%pom_remove_plugin -r :maven-source-plugin +%pom_remove_plugin :maven-enforcer-plugin +%pom_remove_plugin -r :japicmp-maven-plugin +sed -i -e 's/@{argLine}//' $(find -name pom.xml) +%pom_remove_plugin org.codehaus.mojo:build-helper-maven-plugin org.eclipse.jgit.pgm +%pom_remove_plugin :spring-boot-maven-plugin org.eclipse.jgit.pgm +%pom_xpath_remove "pom:plugins/pom:plugin/pom:executions/pom:execution[pom:id='create_jgit']" org.eclipse.jgit.pgm +sed -i -e 's/org\.springframework\.boot\.loader\.JarLauncher/org.eclipse.jgit.pgm.Main/' \ + org.eclipse.jgit.pgm/jgit.sh +%pom_remove_dep log4j:log4j . org.eclipse.jgit.pgm +%pom_change_dep org.slf4j:slf4j-log4j12 org.slf4j:slf4j-simple . org.eclipse.jgit.pgm +%if %{without tests} +sed -i -e '/\.test<\/module>/d' pom.xml +%endif +%mvn_package ":*.test" __noinstall + +%build +%if %{without tests} +%mvn_build -f -- -Pjavac +%else +%mvn_build -- -Pjavac -Dmaven.test.failure.ignore=true +%endif + +%install +%mvn_install +install -dm 755 %{buildroot}%{_bindir} +install -m 755 org.eclipse.jgit.pgm/jgit.sh %{buildroot}%{_bindir}/jgit +install -dm 755 %{buildroot}%{_sysconfdir}/ant.d +cat > %{buildroot}%{_sysconfdir}/ant.d/jgit < - 5.4.0-1 +- Package init diff --git a/jgit.yaml b/jgit.yaml new file mode 100644 index 0000000..00bbaf0 --- /dev/null +++ b/jgit.yaml @@ -0,0 +1,4 @@ +version_control: NA +src_repo: NA +tag_prefix: NA +seperator: NA