[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