[eclipse-jgit] Build/install eclipse plugin with mvn_build/mvn_install
Mat Booth
mbooth at fedoraproject.org
Mon Nov 10 18:47:08 UTC 2014
commit 97ed2d36b03c8c46fa6cf5f26366f2b3165ec12f
Author: Mat Booth <mat.booth at redhat.com>
Date: Mon Nov 10 13:38:45 2014 +0000
Build/install eclipse plugin with mvn_build/mvn_install
eclipse-jgit-413163.patch | 68 +++++++++++++++++------
eclipse-jgit.spec | 131 +++++++++++++++++----------------------------
fix_category.patch | 27 ---------
3 files changed, 99 insertions(+), 127 deletions(-)
---
diff --git a/eclipse-jgit-413163.patch b/eclipse-jgit-413163.patch
index a5597b2..b6186ac 100644
--- a/eclipse-jgit-413163.patch
+++ b/eclipse-jgit-413163.patch
@@ -1,4 +1,4 @@
-From db03b9787cb8c71d9c035a628ecae17581bcc390 Mon Sep 17 00:00:00 2001
+From 964fdccf525e3be7eaf77747a0326920a84e67e4 Mon Sep 17 00:00:00 2001
From: Robin Stocker <robin at nibor.org>
Date: Thu, 18 Jul 2013 19:08:29 +0200
Subject: [PATCH] Fix compilation errors with args4j 2.0.23 and later
@@ -12,6 +12,7 @@ Bug: 413163
Change-Id: I4bb951e9fab5f4ae4271bd7e11be799dc234ab80
---
.../tst/org/eclipse/jgit/pgm/RmTest.java | 80 ++++++++++++++++++++++
+ .../src/org/eclipse/jgit/pgm/Checkout.java | 2 +-
.../src/org/eclipse/jgit/pgm/Daemon.java | 8 +--
.../src/org/eclipse/jgit/pgm/Diff.java | 2 +-
.../src/org/eclipse/jgit/pgm/DiffTree.java | 2 +-
@@ -19,9 +20,11 @@ Change-Id: I4bb951e9fab5f4ae4271bd7e11be799dc234ab80
.../org/eclipse/jgit/pgm/RevWalkTextBuiltin.java | 2 +-
.../src/org/eclipse/jgit/pgm/Rm.java | 4 +-
.../src/org/eclipse/jgit/pgm/Show.java | 2 +-
+ .../src/org/eclipse/jgit/pgm/Status.java | 2 +-
.../org/eclipse/jgit/pgm/debug/DiffAlgorithms.java | 4 +-
.../eclipse/jgit/pgm/debug/TextHashFunctions.java | 6 +-
- 10 files changed, 95 insertions(+), 17 deletions(-)
+ .../org/eclipse/jgit/pgm/opt/CmdLineParser.java | 3 +-
+ 13 files changed, 98 insertions(+), 21 deletions(-)
create mode 100644 org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/RmTest.java
diff --git a/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/RmTest.java b/org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/RmTest.java
@@ -110,6 +113,19 @@ index 0000000..00a1a9a
+ assertFalse(b.exists());
+ }
+}
+diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java
+index 8f911fd..e424bf7 100644
+--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java
++++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java
+@@ -75,7 +75,7 @@
+ private String name;
+
+ @Argument(index = 1)
+- @Option(name = "--", metaVar = "metaVar_paths", multiValued = true, handler = StopOptionHandler.class)
++ @Option(name = "--", metaVar = "metaVar_paths", handler = StopOptionHandler.class)
+ private List<String> paths = new ArrayList<String>();
+
+ @Override
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java
index 04182d6..9ef8e49 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Daemon.java
@@ -149,10 +165,10 @@ index 8f05168..3db8ce2 100644
// BEGIN -- Options shared with Log
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/DiffTree.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/DiffTree.java
-index 018bad0..ec23f11 100644
+index d89053c..90d7c06 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/DiffTree.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/DiffTree.java
-@@ -68,7 +68,7 @@ void tree_0(final AbstractTreeIterator c) {
+@@ -69,7 +69,7 @@ void tree_0(final AbstractTreeIterator c) {
@Argument(index = 1, metaVar = "metaVar_treeish", required = true)
private final List<AbstractTreeIterator> trees = new ArrayList<AbstractTreeIterator>();
@@ -162,10 +178,10 @@ index 018bad0..ec23f11 100644
@Override
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsTree.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsTree.java
-index 4fb560b..0110935 100644
+index 4b16ed8..4da8e09 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsTree.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/LsTree.java
-@@ -65,7 +65,7 @@
+@@ -67,7 +67,7 @@
private AbstractTreeIterator tree;
@Argument(index = 1)
@@ -175,10 +191,10 @@ index 4fb560b..0110935 100644
@Override
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
-index 4327403..ba0493a 100644
+index d6063c3..a223587 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevWalkTextBuiltin.java
-@@ -124,7 +124,7 @@ void enableBoundary(final boolean on) {
+@@ -126,7 +126,7 @@ void enableBoundary(final boolean on) {
@Argument(index = 0, metaVar = "metaVar_commitish")
private final List<RevCommit> commits = new ArrayList<RevCommit>();
@@ -218,11 +234,24 @@ index a33a2d4..bcff628 100644
protected TreeFilter pathFilter = TreeFilter.ALL;
// BEGIN -- Options shared with Diff
+diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Status.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Status.java
+index 2ae950b..0bab32e 100644
+--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Status.java
++++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Status.java
+@@ -75,7 +75,7 @@
+ @Option(name = "--porcelain", usage = "usage_machineReadableOutput")
+ protected boolean porcelain;
+
+- @Option(name = "--", metaVar = "metaVar_path", multiValued = true)
++ @Option(name = "--", metaVar = "metaVar_path")
+ protected List<String> filterPaths;
+
+ @Override
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
-index 3efe884..af3915b 100644
+index 91b5917..ed2818d 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
-@@ -109,13 +109,13 @@ DiffAlgorithm create() {
+@@ -111,13 +111,13 @@ DiffAlgorithm create() {
//
//
@@ -239,10 +268,10 @@ index 3efe884..af3915b 100644
@Option(name = "--count", metaVar = "LIMIT", usage = "Number of file revisions to be compared")
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java
-index e43c9a6..274a89c 100644
+index 4205140..72425f1 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java
-@@ -248,16 +248,16 @@ public int fold(int hash, int bits) {
+@@ -250,16 +250,16 @@ public int fold(int hash, int bits) {
//
//
@@ -262,17 +291,20 @@ index e43c9a6..274a89c 100644
List<File> gitDirs = new ArrayList<File>();
@Override
---
-1.8.3.1
---- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java.bak 2013-10-03 10:47:24.000000000 +0200
-+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java 2013-10-03 10:57:14.418101625 +0200
-@@ -184,8 +184,7 @@
+diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java
+index 3f77aa6..b5d8d48 100644
+--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java
++++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java
+@@ -184,8 +184,7 @@ public RevWalk getRevWalkGently() {
static class MyOptionDef extends OptionDef {
public MyOptionDef(OptionDef o) {
- super(o.usage(), o.metaVar(), o.required(), o.handler(), o
- .isMultiValued());
-+ super(o.usage(), o.metaVar(), o.required(), o.hidden(), o.handler(), o.isMultiValued());
++ super(o.usage(), o.metaVar(), o.required(), o.help(), o.hidden(), o.handler(), o.isMultiValued());
}
@Override
+--
+2.1.0
+
diff --git a/eclipse-jgit.spec b/eclipse-jgit.spec
index 6f3cb2e..fef8a97 100644
--- a/eclipse-jgit.spec
+++ b/eclipse-jgit.spec
@@ -1,13 +1,11 @@
-%global install_loc %{_datadir}/eclipse/dropins/jgit
%global version_suffix 201409260305-r
%{?scl:%scl_package eclipse-jgit}
%{!?scl:%global pkg_name %{name}}
-
Name: %{?scl_prefix}eclipse-jgit
Version: 3.5.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Eclipse JGit
License: BSD
@@ -15,31 +13,21 @@ URL: http://www.eclipse.org/egit/
Source0: http://git.eclipse.org/c/jgit/jgit.git/snapshot/jgit-%{version}.%{version_suffix}.tar.bz2
Patch0: fix_jgit_sh.patch
Patch1: eclipse-jgit-413163.patch
-Patch2: fix_category.patch
BuildArch: noarch
-BuildRequires: java-devel
-BuildRequires: %{?scl_prefix}eclipse-pde >= 1:3.5.0
-BuildRequires: javapackages-tools
+BuildRequires: %{?scl_prefix}eclipse-pde >= 1:3.5.0
BuildRequires: maven-local
BuildRequires: maven-shade-plugin
BuildRequires: tycho
-BuildRequires: eclipse-equinox-osgi
-BuildRequires: eclipse-platform
BuildRequires: args4j >= 2.0.12
BuildRequires: apache-commons-compress
BuildRequires: xz-java >= 1.1-2
BuildRequires: javaewah
-BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
-BuildRequires: feclipse-maven-plugin >= 0.0.3
BuildRequires: jacoco-maven-plugin
%{?scl:Requires: %scl_runtime}
-Requires: %{?scl_prefix}eclipse-platform >= 3.5.0
-Requires: javaewah
-Requires: args4j
-Requires: apache-commons-compress
-Requires: xz-java
+Requires: %{?scl_prefix}eclipse-platform >= 3.5.0
+Requires: %{?scl_prefix}jgit = %{version}-%{release}
%description
A pure Java implementation of the Git version control system.
@@ -65,108 +53,87 @@ Command line Git tool built entirely in Java.
%patch0
%patch1 -p1
-%patch2 -b .sav
#javaewah change
-sed -i -e "s/javaewah/com.googlecode.javaewah.JavaEWAH/g" org.eclipse.jgit.packaging/org.eclipse.jgit.feature/feature.xml
+sed -i -e "s/javaewah/com.googlecode.javaewah.JavaEWAH/g" org.eclipse.jgit.packaging/org.eclipse.jgit{,.pgm}.feature/feature.xml
#don't try to get it from local *maven* repo, use tycho resolved one
%pom_remove_dep com.googlecode.javaewah:JavaEWAH
-%pom_remove_dep org.eclipse.jgit:org.eclipse.jgit.junit.http org.eclipse.jgit.packaging/org.eclipse.jgit.repository
#those bundles don't compile with latest jetty
%pom_disable_module org.eclipse.jgit.http.test
%pom_disable_module org.eclipse.jgit.pgm.test
%pom_disable_module org.eclipse.jgit.junit.http
+%pom_disable_module org.eclipse.jgit.ant.test
+%pom_disable_module org.eclipse.jgit.java7.test
+%pom_disable_module org.eclipse.jgit.test
+
+# Don't need target platform or repository modules with xmvn
%pom_disable_module org.eclipse.jgit.target org.eclipse.jgit.packaging
+%pom_disable_module org.eclipse.jgit.repository org.eclipse.jgit.packaging
%pom_xpath_remove "pom:build/pom:pluginManagement/pom:plugins/pom:plugin/pom:configuration/pom:target" org.eclipse.jgit.packaging/pom.xml
+for p in $(find org.eclipse.jgit.packaging -name pom.xml) ; do
+ grep -q dependencies $p && %pom_xpath_remove "pom:dependencies" $p
+done
%pom_disable_module org.eclipse.jgit.junit.feature org.eclipse.jgit.packaging
-%pom_disable_module org.eclipse.jgit.pgm.feature org.eclipse.jgit.packaging
+%pom_disable_module org.eclipse.jgit.source.feature org.eclipse.jgit.packaging
%pom_disable_module org.eclipse.jgit.pgm.source.feature org.eclipse.jgit.packaging
%pom_disable_module org.eclipse.jgit.http.apache.feature org.eclipse.jgit.packaging
-sed -i -e 's/\, multiValued = true//' org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Status.java
-sed -i -e 's/\, multiValued = true//' org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Checkout.java
+# Relax version restriction for javaewah
sed -i -e 's/0.7.9,0.8.0/0.7.9,0.9.0/g' org.eclipse.jgit/META-INF/MANIFEST.MF
sed -i -e 's/0.7.9,0.8.0/0.7.9,0.9.0/g' org.eclipse.jgit.test/META-INF/MANIFEST.MF
-sed -i -e 's/o.hidden()/o.help(),o.hidden()/g' org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/opt/CmdLineParser.java
+# Don't attach shell script artifact
+%pom_remove_plugin org.codehaus.mojo:build-helper-maven-plugin org.eclipse.jgit.pgm
%build
-xmvn -o -Dmaven.repo.local=$(pwd)/.m2 -Dmaven.test.skip=true install
-xmvn -o -Dmaven.test.skip=true -f org.eclipse.jgit.packaging/pom.xml verify
+# Due to a current limitation of Tycho it is not possible to mix pom-first and
+# manifest-first builds in the same reactor build hence two separate invocations
+
+# First invocation installs jgit so the second invocation will succeed
+%mvn_build -f --post install:install \
+ -- -Dmaven.repo.local=$(pwd)/org.eclipse.jgit.packaging/.m2
+
+# Second invocation builds the eclipse plugin
+pushd org.eclipse.jgit.packaging
+%mvn_build -j -f
+popd
%install
-install -d -m 755 %{buildroot}%{install_loc}
-
-xmvn -o org.fedoraproject:feclipse-maven-plugin:install \
- -DsourceRepo=`pwd`/org.eclipse.jgit.packaging/org.eclipse.jgit.repository/target/repository \
- -DtargetLocation=%{buildroot}%{install_loc}/eclipse
-
-pushd %{buildroot}%{install_loc}/eclipse/plugins
- rm com.jcraft.jsch_*.jar
- rm com.googlecode.javaewah.JavaEWAH_*.jar
- rm org.apache.commons.compress_*.jar
-#to the future maintainers - dont forget to add those jars to the fix_jgit_sh.patch
- ln -s %{_javadir}/args4j.jar
- ln -s %{_javadir}/commons-compress.jar
- ln -s %{_javadir}/xz-java.jar
- ln -s %{_javadir}/javaewah/JavaEWAH.jar
+# The macro does not allow us to change the "namespace" value, but here we want to
+# set it to something other than the SRPM name, so explode the macro
+xmvn-install -R .xmvn-reactor -n jgit -d %{buildroot}
+install -dm755 %{buildroot}%{_javadocdir}/jgit
+cp -pr .xmvn/apidocs/* %{buildroot}%{_javadocdir}/jgit
+echo '%{_javadocdir}/jgit' >>.mfiles-javadoc
+
+pushd org.eclipse.jgit.packaging
+%mvn_install
popd
-#giant hack - for some reason source bundle is in the repo, install the proper one
-cp org.eclipse.jgit/target/org.eclipse.jgit-*-r.jar %{buildroot}%{install_loc}/eclipse/plugins
-
-# JARs
-install -d -m 0755 %{buildroot}%{_javadir}/jgit
-install -m 644 org.eclipse.jgit/target/org.eclipse.jgit-%{version}.%{version_suffix}.jar %{buildroot}%{_javadir}/jgit/jgit.jar
-install -m 644 org.eclipse.jgit.ui/target/org.eclipse.jgit.ui-%{version}.%{version_suffix}.jar %{buildroot}%{_javadir}/jgit/ui.jar
-install -m 644 org.eclipse.jgit.java7/target/org.eclipse.jgit.java7-%{version}.%{version_suffix}.jar %{buildroot}%{_javadir}/jgit/java7.jar
-install -m 644 org.eclipse.jgit.console/target/org.eclipse.jgit.console-%{version}.%{version_suffix}.jar %{buildroot}%{_javadir}/jgit/console.jar
-install -m 644 org.eclipse.jgit.pgm/target/org.eclipse.jgit.pgm-%{version}.%{version_suffix}.jar %{buildroot}%{_javadir}/jgit/pgm.jar
-# Javadocs
-install -d -m 755 %{buildroot}%{_javadocdir}/jgit
-cp -rp org.eclipse.jgit/target/apidocs %{buildroot}%{_javadocdir}/jgit
-cp -rp org.eclipse.jgit.ui/target/apidocs %{buildroot}%{_javadocdir}/jgit
-cp -rp org.eclipse.jgit.console/target/apidocs %{buildroot}%{_javadocdir}/jgit
-# POM Files
-install -d -m 755 %{buildroot}%{_mavenpomdir}
-install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-jgit-parent.pom
-install -pm 644 org.eclipse.jgit/pom.xml %{buildroot}%{_mavenpomdir}/JPP.jgit-jgit.pom
-install -pm 644 org.eclipse.jgit.ui/pom.xml %{buildroot}%{_mavenpomdir}/JPP.jgit-ui.pom
-install -pm 644 org.eclipse.jgit.java7/pom.xml %{buildroot}%{_mavenpomdir}/JPP.jgit-java7.pom
-install -pm 644 org.eclipse.jgit.console/pom.xml %{buildroot}%{_mavenpomdir}/JPP.jgit-console.pom
-install -pm 644 org.eclipse.jgit.pgm/pom.xml %{buildroot}%{_mavenpomdir}/JPP.jgit-pgm.pom
-
-%add_maven_depmap JPP.jgit-jgit.pom jgit/jgit.jar
-%add_maven_depmap JPP.jgit-ui.pom jgit/ui.jar
-%add_maven_depmap JPP.jgit-java7.pom jgit/java7.jar
-%add_maven_depmap JPP.jgit-console.pom jgit/console.jar
-%add_maven_depmap JPP.jgit-pgm.pom jgit/pgm.jar
-%add_maven_depmap JPP-jgit-parent.pom
# Binary
install -dm 755 %{buildroot}%{_bindir}
install -m 755 org.eclipse.jgit.pgm/jgit.sh %{buildroot}%{_bindir}/jgit
-%files
-%doc LICENSE
-%doc README.md
-%{install_loc}
+%files -f org.eclipse.jgit.packaging/.mfiles
+%doc LICENSE README.md
-%files -n %{?scl_prefix}jgit -f .mfiles
+%files -n jgit -f .mfiles
%{_bindir}/jgit
-%{_javadir}/jgit
-%doc LICENSE
-%doc README.md
+%dir %{_javadir}/jgit
+%dir %{_mavenpomdir}/jgit
+%doc LICENSE README.md
-%files -n %{?scl_prefix}jgit-javadoc
-%{_javadocdir}/jgit
-%doc LICENSE
-%doc README.md
+%files -n jgit-javadoc -f .mfiles-javadoc
+%doc LICENSE README.md
%changelog
+* Fri Nov 07 2014 Mat Booth <mat.booth at redhat.com> - 3.5.0-2
+- Build/install eclipse plugin with mvn_build/mvn_install
+
* Fri Oct 03 2014 Mat Booth <mat.booth at redhat.com> - 3.5.0-1
- Update to latest upstream release 3.5.0
More information about the scm-commits
mailing list