From d4a43f6b6146c958c55a42644760df220c2dfcf2 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Nov 20 2017 14:01:19 +0000 Subject: Make java 9 api stubs available for use Migrate away from deprecated maven depmap macros --- diff --git a/eclipse.spec b/eclipse.spec index 859c972..f86c1c5 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -38,7 +38,7 @@ Epoch: 1 Summary: An open, extensible IDE Name: eclipse Version: 4.7.1 -Release: 7%{?dist} +Release: 8%{?dist} License: EPL URL: http://www.eclipse.org/ @@ -600,14 +600,19 @@ for f in rt.equinox.bundles/bundles/org.eclipse.equinox.security.linux.*/META-IN echo -e "Eclipse-BundleShape: dir\n\n" >> $f; done -%if 0%{?rhel} -# Manually place rhino at correction location in reactor cache -mkdir rhino -pushd rhino -xmvn -B -o install:install-file -Dfile=%{_root_datadir}/java/rhino.jar -Dpackaging=jar \ - -DgroupId=org.mozilla -DartifactId=rhino -Dversion=1.7.7.1 +# Java 9 API stubs must be available at build time +mkdir java9api +pushd java9api +xmvn -B -o install:install-file -Dfile=../eclipse.jdt.core/org.eclipse.jdt.compiler.apt/lib/java9api.jar \ + -Dpackaging=jar -DgroupId=org.eclipse -DartifactId=java9api -Dversion=9 popd -%endif + +# Add dep on Java 9 API stubs when compiling with JDT +%pom_xpath_inject "pom:pluginManagement/pom:plugins/pom:plugin[pom:artifactId='tycho-compiler-plugin']/pom:dependencies" \ + "org.eclipsejava9api9" eclipse-platform-parent + +# Make Java 9 API stubs available for other packages +%mvn_artifact "org.eclipse:java9api:jar:9" eclipse.jdt.core/org.eclipse.jdt.compiler.apt/lib/java9api.jar # Build fake ant bundle that contains symlinks to system jars dependencies/fake_ant_dependency.sh @@ -669,6 +674,7 @@ ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.bundles/bundles %mvn_package "org.eclipse.pde{,.ui,.feature}:" pde %mvn_package "org.eclipse.ui:org.eclipse.ui.{views.log,trace}" pde %mvn_package "org.eclipse.sdk{,.feature}:" sdk +%mvn_package "org.eclipse:java9api" jdt %mvn_package ":" __noinstall %build @@ -791,58 +797,76 @@ popd #installation itself - copy it into right location rsync -vrpl eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{eclipse_arch}/eclipse \ - $RPM_BUILD_ROOT%{_prefix}/lib - -# SWT is a directory, but we need to provide jars for others that depend on it -pushd $RPM_BUILD_ROOT/%{_eclipsedir}/plugins -SWT_JAR=$(ls | grep swt.gtk.linux) -(cd ${SWT_JAR} && zip -r "../../swt.jar" * ) -popd - -# Symlink SWT jar -pushd $RPM_BUILD_ROOT/%{_jnidir}/ - ln -s $(abs2rel %{_eclipsedir}/swt.jar %{_jnidir}) -popd + %{buildroot}%{_prefix}/lib # Symlink eclipse binary -pushd $RPM_BUILD_ROOT%{_bindir} +pushd %{buildroot}%{_bindir} ln -s %{_eclipsedir}/eclipse popd # Symlink eclipse ini -pushd $RPM_BUILD_ROOT/%{_sysconfdir}/ +pushd %{buildroot}/%{_sysconfdir}/ ln -s %{_eclipsedir}/eclipse.ini popd # List jars to be symlinked into javadir -pushd $RPM_BUILD_ROOT%{_eclipsedir}/plugins +pushd %{buildroot}%{_eclipsedir}/plugins EQUINOX_JARS=$(ls . | grep -P '^org.eclipse.equinox(?!.*\.ui[\._])' | sed -e 's|^org\.eclipse\.\(.*\)_.*|\1|') OSGI_JARS=$(ls . | grep '^org.eclipse.osgi' | sed -e 's|^org\.eclipse\.\(.*\)_.*|\1|') popd # Symlink jars into javadir -for J in $EQUINOX_JARS $OSGI_JARS core.contenttype core.jobs core.net core.runtime ; do - pushd $RPM_BUILD_ROOT%{_javadir}/eclipse - DIR=%{?scl:../../../../}../../../..%{_eclipsedir} - [ -e "`ls $DIR/plugins/org.eclipse.${J}_*.jar`" ] && ln -s $DIR/plugins/org.eclipse.${J}_*.jar ${J}.jar - popd - # Install pom file if there is one - if [ -e "externalpoms/org.eclipse.${J}.pom" ] ; then - VER=$(echo $RPM_BUILD_ROOT%{_eclipsedir}/plugins/org.eclipse.${J}_*.jar | sed -e "s/.*${J}_\(.*\)\.jar/\1/") - sed -i -e "s/@VERSION@/$VER/" externalpoms/org.eclipse.${J}.pom - install -m 0644 externalpoms/org.eclipse.${J}.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.eclipse-${J}.pom +location=%{_eclipsedir}/plugins +while [ "$location" != "/" ] ; do + location=$(dirname $location) + updir="$updir../" +done +pushd %{buildroot}%{_javadir}/eclipse +for J in $EQUINOX_JARS core.contenttype core.jobs core.net core.runtime ; do + DIR=$updir%{_eclipsedir}/plugins + if [ "$J" != "equinox.http.servlet" ] ; then + [ -e "`ls $DIR/org.eclipse.${J}_*.jar`" ] && ln -s $DIR/org.eclipse.${J}_*.jar ${J}.jar fi done +popd + +# Generate addition Maven metadata +rm -rf .xmvn/ .xmvn-reactor +%mvn_package "org.eclipse.osgi:" equinox-osgi +%mvn_package "org.eclipse.equinox.http:" platform +%mvn_package "org.eclipse.swt:" swt # Install Maven metadata for OSGi jars -%add_maven_depmap JPP.eclipse-osgi.pom eclipse/osgi.jar -a "org.eclipse:osgi,org.eclipse.tycho:org.eclipse.osgi" -f equinox-osgi -%add_maven_depmap JPP.eclipse-osgi.compatibility.state.pom eclipse/osgi.compatibility.state.jar -a "org.eclipse.osgi:compatibility.state,org.eclipse.tycho:org.eclipse.osgi.compatibility.state" -f equinox-osgi -%add_maven_depmap JPP.eclipse-osgi.services.pom eclipse/osgi.services.jar -a "org.eclipse.osgi:services" -f equinox-osgi -%add_maven_depmap JPP.eclipse-osgi.util.pom eclipse/osgi.util.jar -a "org.eclipse.osgi:util" -f equinox-osgi -%add_maven_depmap JPP.eclipse-equinox.http.servlet.pom eclipse/equinox.http.servlet.jar -a "org.eclipse.equinox.http:servlet" -f platform -# Maven metadata for SWT (no POM) -VER=$(echo $RPM_BUILD_ROOT%{_eclipsedir}/plugins/org.eclipse.swt_*.jar | sed -e "s/.*_\(.*\)\.jar/\1/") -%add_maven_depmap org.eclipse.swt:org.eclipse.swt:$VER swt.jar -a org.eclipse.swt:swt -f swt +for J in $OSGI_JARS ; do + JAR=%{buildroot}%{_eclipsedir}/plugins/org.eclipse.${J}_*.jar + VER=$(echo $JAR | sed -e "s/.*${J}_\(.*\)\.jar/\1/") + %mvn_artifact "org.eclipse.osgi:$J:jar:$VER" $JAR + if [ "$J" = "osgi" ] ; then + %mvn_alias "org.eclipse.osgi:$J" "org.eclipse.osgi:org.eclipse.$J" "org.eclipse.tycho:org.eclipse.$J" "org.eclipse:$J" + else + %mvn_alias "org.eclipse.osgi:$J" "org.eclipse.osgi:org.eclipse.$J" "org.eclipse.tycho:org.eclipse.$J" + fi +done + +# Install Maven metadata for Equinox HTTP Servlet +JAR=%{buildroot}%{_eclipsedir}/plugins/org.eclipse.equinox.http.servlet_*.jar +VER=$(echo $JAR | sed -e "s/.*_\(.*\)\.jar/\1/") +%mvn_artifact "org.eclipse.equinox.http:equinox.http.servlet:jar:$VER" $JAR +%mvn_alias "org.eclipse.equinox.http:equinox.http.servlet" "org.eclipse.equinox.http:servlet" + +# Install Maven metadata for SWT +JAR=%{buildroot}%{_eclipsedir}/plugins/org.eclipse.swt_*.jar +VER=$(echo $JAR | sed -e "s/.*_\(.*\)\.jar/\1/") +%mvn_artifact "org.eclipse.swt:org.eclipse.swt:jar:$VER" ./eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.%{eclipse_arch}/target/org.eclipse.swt.gtk.linux.%{eclipse_arch}-*-SNAPSHOT.jar +%mvn_alias "org.eclipse.swt:org.eclipse.swt" "org.eclipse.swt:swt" +%mvn_file "org.eclipse.swt:org.eclipse.swt" swt + +%mvn_install + +# Symlink SWT jar +pushd %{buildroot}/%{_eclipsedir}/ + ln -s $(abs2rel %{_jnidir}/swt.jar %{_eclipsedir}) +popd # Tests framework unzip eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/eclipse-junit-tests-bundle.zip \ @@ -1083,6 +1107,10 @@ fi %{_eclipsedir}/plugins/org.eclipse.osgi.util_* %changelog +* Fri Nov 17 2017 Mat Booth - 1:4.7.1-8 +- Make java 9 api stubs available for use +- Migrate away from deprecated maven depmap macros + * Wed Oct 18 2017 Mat Booth - 1:4.7.1-7 - Update to 4.7.1a release