eclipse/eclipse.spec
2020-03-14 13:07:53 -04:00

582 lines
31 KiB
RPMSpec

Name: eclipse
Epoch: 1
Version: 4.9.0
Release: 3
Summary: Eclipse is an open source, Java-based, extensible development platform.
License: EPL-2.0
URL: http://www.eclipse.org/
Source0: http://download.eclipse.org/eclipse/downloads/drops4/I20180906-0745/eclipse-platform-sources-I20180906-0745.tar.xz
Source1: http://git.eclipse.org/c/linuxtools/org.eclipse.linuxtools.eclipse-build.git/snapshot/org.eclipse.linuxtools.eclipse-build-44643cbda3dfd6f00fbf1b346dae7068df2a9ef9.tar.xz
Patch0000: eclipse-no-source-for-dependencies.patch
Patch0001: eclipse-p2-pick-up-renamed-jars.patch
Patch0002: eclipse-ignore-version-when-calculating-home.patch
Patch0003: eclipse-remove-jgit-provider.patch
Patch0004: eclipse-secondary-arches.patch
Patch0005: eclipse-debug-symbols.patch
Patch0006: eclipse-fix-dropins.patch
Patch0007: eclipse-mockito.patch
Patch0008: eclipse-support-symlink-bundles.patch
Patch0009: eclipse-feature-plugins-to-category-ius.patch
Patch0010: eclipse-fix-tests.patch
Patch0011: eclipse-adjust-droplets.patch
Patch0012: eclipse-pde-tp-support-droplets.patch
Patch0013: eclipse-swt-disable-gtk2.patch
Patch0014: eclipse-disable-uses-constraints.patch
Patch0016: eclipse-make-droplets-runnable.patch
Patch0017: eclipse-disable-droplets-in-dropins.patch
Patch0018: prefer_x11_backend.patch
Patch0019: fix_ant_build.patch
Patch0020: eclipse-hide-droplets-from-install-wizard.patch
BuildRequires: gdb-headless maven-local tycho tycho-extras cbi-plugins maven-assembly-plugin
BuildRequires: maven-antrun-plugin maven-dependency-plugin maven-enforcer-plugin maven-install-plugin
BuildRequires: maven-shade-plugin xml-maven-plugin rhino sonatype-oss-parent rsync make gcc zip
BuildRequires: unzip desktop-file-utils pkgconfig(glib-2.0) pkgconfig(gio-2.0) pkgconfig(nspr)
BuildRequires: pkgconfig(glu) pkgconfig(gl) pkgconfig(cairo) pkgconfig(xt) pkgconfig(xtst)
BuildRequires: pkgconfig(libsecret-1) pkgconfig(gtk+-2.0) pkgconfig(gtk+-3.0) pkgconfig(webkit2gtk-4.0)
BuildRequires: icu4j >= 1:62.1 ant >= 1.10.5 ant-antlr ant-apache-bcel ant-apache-log4j
BuildRequires: ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf
BuildRequires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil
BuildRequires: jsch >= 0:0.1.46-2 ant-apache-xalan2 ant-jmf ant-xz ant-junit5 apache-commons-logging
BuildRequires: apache-commons-el >= 1.0-22 apache-commons-codec apache-commons-jxpath
BuildRequires: apache-commons-fileupload osgi(org.apache.felix.gogo.shell) >= 1.1.0
BuildRequires: osgi(org.apache.felix.gogo.command) >= 1.0.2
BuildRequires: osgi(org.apache.felix.gogo.runtime) >= 1.1.0
BuildRequires: osgi(org.apache.felix.scr) >= 2.0.14 osgi(org.eclipse.jetty.util) >= 9.4.11
BuildRequires: osgi(org.eclipse.jetty.server) >= 9.4.11 osgi(org.eclipse.jetty.http) >= 9.4.11
BuildRequires: osgi(org.eclipse.jetty.continuation) >= 9.4.11
BuildRequires: osgi(org.eclipse.jetty.io) >= 9.4.11 osgi(org.eclipse.jetty.security) >= 9.4.11
BuildRequires: osgi(org.eclipse.jetty.servlet) >= 9.4.11 lucene-core >= 7.1.0
BuildRequires: lucene-analysis >= 7.1.0 lucene-queryparser >= 7.1.0 lucene-analyzers-smartcn >= 7.1.0
BuildRequires: junit >= 4.12 junit5 apiguardian hamcrest sat4j objectweb-asm >= 6.1.1 sac
BuildRequires: batik >= 1.10 batik-css >= 1.10 xmlgraphics-commons >= 2.2 xml-commons-apis atinject
BuildRequires: eclipse-ecf-core >= 3.14.1-2 eclipse-emf-core >= 1:2.15.0-0.2 eclipse-license2
BuildRequires: glassfish-el-api >= 3.0.1 glassfish-el >= 3.0.1 glassfish-jsp-api >= 2.2.1-4
BuildRequires: glassfish-jsp >= 2.2.5 glassfish-servlet-api >= 3.1.0 httpcomponents-core
BuildRequires: httpcomponents-client jsoup xz-java mockito osgi(osgi.annotation)
BuildRequires: eclipse-pde eclipse-egit eclipse-emf-runtime eclipse-jgit
%description
Eclipse is an integrated development environment (IDE) used in computer programming.
It contains a base workspace and an extensible plug-in system for customizing the environment.
%package swt
Summary: Provides SWT Library for GTK+
Requires: java-headless >= 1:1.8.0 javapackages-tools gtk3 webkitgtk4
%description swt
This package provides SWT Library for GTK+.
%package equinox-osgi
Summary: Open Service Gateway Initiative(OSGi) in eclipse
Requires: java-headless >= 1:1.8.0 javapackages-tools
Provides: osgi(system.bundle) = 1:4.9.0
%description equinox-osgi
This package provides the open Service Gateway Initiative(OSGi) in eclipse - Equinox
%package platform
Summary: Provides eclipse platform common files
Recommends: eclipse-abrt eclipse-usage
Requires: ant >= 1.10.5 ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro
Requires: ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf
Requires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch
Requires: ant-testutil ant-apache-xalan2 ant-jmf ant-xz ant-junit5
Requires: jsch >= 0.1.46-2 apache-commons-el >= 1.0-23 apache-commons-logging
Requires: apache-commons-codec apache-commons-jxpath osgi(org.apache.felix.gogo.shell) >= 1.0.0
Requires: osgi(org.apache.felix.gogo.command) >= 1.0.2
Requires: osgi(org.apache.felix.gogo.runtime) >= 1.0.4
Requires: osgi(org.apache.felix.scr) >= 2.0.14
Requires: osgi(org.eclipse.jetty.util) >= 9.4.11
Requires: osgi(org.eclipse.jetty.server) >= 9.4.11
Requires: osgi(org.eclipse.jetty.http) >= 9.4.11
Requires: osgi(org.eclipse.jetty.continuation) >= 9.4.11
Requires: osgi(org.eclipse.jetty.io) >= 9.4.11
Requires: osgi(org.eclipse.jetty.security) >= 9.4.11
Requires: osgi(org.eclipse.jetty.servlet) >= 9.4.11
Requires: lucene-core >= 7.1.0 lucene-analysis >= 7.1.0 lucene-queryparser >= 7.1.0
Requires: lucene-analyzers-smartcn >= 7.1.0 sat4j sac batik >= 1.10 batik-css >= 1.10
Requires: xmlgraphics-commons >= 2.2 xml-commons-apis atinject eclipse-ecf-core >= 3.14.0-1
Requires: eclipse-emf-core >= 1:2.14.0-1 glassfish-el-api >= 3.0.1 glassfish-el >= 3.0.1
Requires: glassfish-jsp-api >= 2.2.1-4 glassfish-jsp >= 2.2.5 glassfish-servlet-api >= 3.1.0
Requires: icu4j >= 1:62.1 eclipse-swt = 1:4.9.0-3 osgi(org.tukaani.xz)
Requires: eclipse-equinox-osgi = 1:4.9.0-3 httpcomponents-core httpcomponents-client
Provides: eclipse-nls = 4.9.0-3
Obsoletes: eclipse-nls < 4.9.0-3
%description platform
The eclipse-platform is just the base of eclipse,
it provides some common files.
%package jdt
Summary: Provides Development Tools for Java
BuildArch: noarch
Provides: eclipse = 1:4.9.0-3
Requires: eclipse-platform = 1:4.9.0-3 osgi(org.junit) >= 4.12 osgi(org.hamcrest.core)
Recommends: eclipse-recommenders
%description jdt
This package Provides Development Tools for Java
%package pde
Summary: Provides Eclipse Plugin Development Environment
Requires: eclipse-platform = 1:4.9.0-3 eclipse-jdt = 1:4.9.0-3 objectweb-asm >= 6.1.1
%description pde
The eclipse-pde package is necessary for developing Eclipse plugins.
%package p2-discovery
Summary: Provides Eclipse p2 Discovery
BuildArch: noarch
Requires: eclipse-platform = 1:4.9.0-3
%description p2-discovery
The eclipse-p2-discovery package is a tool to display and install
from existing P2 repositories or as a framework to build branded
installer UIs.
%package contributor-tools
Summary: Provides Eclipse Contributors Tools
Requires: eclipse-platform = 1:4.9.0-3 easymock mockito
%description contributor-tools
The eclipse-contributor-tools consists of SWT tools, E4 tools,
Rel-Eng tools and Eclipse Test frameworks. And all these specifically for Eclipse contributors.
%package tests
Summary: Provides Eclipse Tests
Requires: eclipse-contributor-tools = 1:4.9.0-3
%description tests
This package provides a large number of test cases to ensure the smooth running of eclipse
%prep
%autosetup %{SOURCE0} -n eclipse-platform-sources-I20180906-0745 -p1
tar --strip-components=1 -xf %{SOURCE1}
find . ! -path "*/JCL/*" ! -name "rtstubs*.jar" ! -name "java10api.jar" ! -name "j9stubs.jar" \
-type f -name *.jar -delete
for file_type in class so dll jnilib ; do
find . -type f -name *.$file_type -delete ;
done
rm -rf rt.equinox.binaries/org.eclipse.equinox.executable/{bin,contributed}/
%pom_xpath_remove "pom:configuration/pom:target" eclipse-platform-parent
%pom_disable_module bundles/org.eclipse.equinox.console.jaas.fragment rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.console.ssh rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.ip rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.transforms.xslt rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.transforms.hook rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.weaving.caching.j9 rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.weaving.caching rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.weaving.hook rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.cm.test rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.p2.tests.reconciler.product rt.equinox.p2
%pom_disable_module bundles/org.eclipse.equinox.p2.artifact.optimizers rt.equinox.p2
%pom_disable_module bundles/org.eclipse.equinox.p2.artifact.processors rt.equinox.p2
%pom_disable_module equinox-sdk eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module equinox.starterkit.product eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module eclipse.platform.repository eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module features/org.eclipse.equinox.sdk rt.equinox.bundles
%pom_disable_module features/org.eclipse.equinox.compendium.sdk rt.equinox.bundles
%pom_disable_module features/org.eclipse.equinox.core.sdk rt.equinox.bundles
%pom_disable_module features/org.eclipse.equinox.p2.sdk rt.equinox.p2
%pom_disable_module features/org.eclipse.equinox.server.p2 rt.equinox.bundles
%pom_disable_module features/org.eclipse.equinox.serverside.sdk rt.equinox.bundles
%pom_disable_module org.eclipse.jdt.annotation_v1 eclipse.jdt.core
%pom_disable_module platform.sdk eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module rcp eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module rcp.sdk eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module rcp.config eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module sdk eclipse.platform.releng.tychoeclipsebuilder
%pom_xpath_remove "plugin[@version='1.1.300.qualifier']" eclipse.jdt/org.eclipse.jdt-feature/feature.xml
sed -i -e '/org\.eclipse\.jdt\.annotation;bundle-version="\[1\.1\.0,2\.0\.0)"/d' \
eclipse.jdt.core/org.eclipse.jdt.core.tests.{model,builder,compiler}/META-INF/MANIFEST.MF \
eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/META-INF/MANIFEST.MF \
eclipse.jdt.ui/org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF
%pom_disable_module bundles/org.eclipse.sdk.examples eclipse.platform.releng
%pom_disable_module features/org.eclipse.sdk.examples-feature eclipse.platform.releng
%pom_disable_module examples/org.eclipse.swt.examples.ole.win32 eclipse.platform.swt
%pom_disable_module bundles/org.eclipse.equinox.http.servletbridge rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.servletbridge rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.servletbridge.template rt.equinox.bundles
utils/ensure_arch.sh rt.equinox.binaries x86 arm
utils/ensure_arch.sh rt.equinox.framework/bundles x86 arm
utils/ensure_arch.sh eclipse.platform.swt.binaries/bundles x86 arm
utils/ensure_arch.sh rt.equinox.binaries x86_64 aarch64 ppc64
utils/ensure_arch.sh rt.equinox.framework/bundles x86_64 aarch64 ppc64
utils/ensure_arch.sh eclipse.platform.swt.binaries/bundles x86_64 aarch64 ppc64
TYCHO_ENV="<environment><os>linux</os><ws>gtk</ws><arch>%{_arch}</arch></environment>"
%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse-platform-parent
%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests
%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse.platform.ui/bundles/org.eclipse.e4.ui.swt.gtk
for ids in `ls eclipse.platform.swt.binaries/bundles | grep -P -e 'org.eclipse.swt\.(?!gtk\.linux.%{_arch}$)'` ; do
module=$(grep ">bundles/$ids<" eclipse.platform.swt.binaries/pom.xml || :)
if [ -n "$module" ] ; then
%pom_disable_module bundles/$ids eclipse.platform.swt.binaries
%pom_xpath_inject "pom:excludes" "<plugin id='$ids'/>" eclipse.platform.ui/features/org.eclipse.e4.rcp
fi
done
for ids in `ls rt.equinox.framework/bundles | grep -P -e 'org.eclipse.equinox.launcher\.(?!gtk\.linux.%{_arch}$)'` ; do
module=$(grep ">bundles/$ids<" rt.equinox.framework/pom.xml || :)
if [ -n "$module" ] ; then
%pom_disable_module bundles/$ids rt.equinox.framework
%pom_xpath_remove -f "plugin[@id='$ids']" rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml
fi
done
for ids in `(cd rt.equinox.bundles/bundles && ls -d *{macosx,win32,linux}*) | grep -P -e 'org.eclipse.equinox.security\.(?!linux\.%{_arch}$)'` ; do
%pom_disable_module bundles/$ids rt.equinox.bundles
%pom_xpath_remove "plugin[@id='$ids']" rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/feature.xml
done
for ids in `ls eclipse.platform.team/bundles/org.eclipse.core.net/fragments/ | grep -P -e 'org.eclipse.core.net\.(?!linux.%{_arch}$)'` ; do
%pom_disable_module bundles/org.eclipse.core.net/fragments/$ids eclipse.platform.team
done
for ids in `ls eclipse.platform.resources/bundles/ | grep -P -e 'org.eclipse.core.filesystem\.(?!linux\.%{_arch}$)'` ; do
module=$(grep ">bundles/$ids<" eclipse.platform.resources/pom.xml || :)
if [ -n "$module" ] ; then
%pom_disable_module bundles/$ids eclipse.platform.resources
%pom_xpath_remove -f "plugin[@id='$ids']" eclipse.platform.resources/tests/org.eclipse.core.tests.filesystem.feature/feature.xml
fi
done
%pom_disable_module bundles/org.eclipse.compare.win32 eclipse.platform.team
%pom_disable_module bundles/org.eclipse.core.resources.win32.x86 eclipse.platform.resources
%pom_disable_module bundles/org.eclipse.core.resources.win32.x86_64 eclipse.platform.resources
%pom_disable_module org.eclipse.jdt.launching.macosx eclipse.jdt.debug
%pom_disable_module org.eclipse.jdt.launching.ui.macosx eclipse.jdt.debug
%pom_disable_module org.eclipse.e4.ui.workbench.renderers.swt.cocoa eclipse.platform.ui/bundles
%pom_disable_module org.eclipse.ui.cocoa eclipse.platform.ui/bundles
%pom_disable_module org.eclipse.ui.win32 eclipse.platform.ui/bundles
for xml_name in eclipse.jdt/org.eclipse.jdt-feature/feature.xml \
eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml \
eclipse.platform.releng/features/org.eclipse.rcp/feature.xml \
eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml ; do
%pom_xpath_remove -f "plugin[@os='macosx']" $xml_name
%pom_xpath_remove -f "plugin[@os='win32']" $xml_name
%pom_xpath_remove -f "plugin[@ws='win32']" $xml_name
for arch in x86 x86_64 arm aarch64 ppc64 ppc64le s390x ; do
if [ "$arch" != "%{_arch}" ] ; then
%pom_xpath_remove -f "plugin[@arch='$arch']" $xml_name
fi
done
done
fix_files=$(grep -lr 3.107.100 eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.*)
sed -i -e "s/3.107.100/3.108.0/" $fix_files
fix_files=$(grep -lr '1\.1\.[67]00' rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.*)
sed -i -e "s/1\.1\.[67]00/1.1.800/" -e "/Fragment-Host/s/\(bundle-version=\).*/\1\"1.0.0\"/" $fix_files
%pom_disable_module tests/org.eclipse.swt.tests.fragments.feature eclipse.platform.swt
%pom_xpath_remove "pom:dependency-resolution" eclipse.platform.swt/tests/org.eclipse.swt.tests{,.gtk}
sed -i -e '/<features>/a<feature id="org.eclipse.core.runtime.feature"/>' \
eclipse.platform.releng.tychoeclipsebuilder/platform/platform.product
sed -i -e '/org.eclipse.ui.themes/i<plugin id="org.eclipse.jdt.core.compiler.batch" download-size="0" install-size="0" version="0.0.0" unpack="false"/>' \
eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml
sed -i -e '/<\/excludes>/i<plugin id="org.eclipse.jdt.core.compiler.batch"/>' \
eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml
%pom_xpath_remove "plugin[@id='org.hamcrest']" eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml
%pom_xpath_remove "plugin[@id='org.hamcrest.text']" eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml
%pom_xpath_remove "plugin[@id='org.mockito']" eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml
%pom_xpath_inject "feature" '<plugin id="org.mockito.mockito-core" download-size="0" install-size="0" version="0.0.0" unpack="false"/>' eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml
%pom_xpath_inject "feature" '<plugin id="net.sf.cglib.core" download-size="0" install-size="0" version="0.0.0" unpack="false"/>' eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml
%pom_xpath_remove "plugin[@id='org.eclipse.core.tests.harness']" eclipse.platform.releng/features/org.eclipse.test-feature/feature.xml
%pom_xpath_set "pom:plugin[pom:artifactId = 'tycho-packaging-plugin']/pom:configuration/pom:archive/pom:addMavenDescriptor" "true" eclipse-platform-parent
for props in rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties; do
grep '^root\.linux\.gtk\.%{_arch}[.=]' $props > tmp
sed -i -e '/^root\./d' $props && cat tmp >> $props
done
install -d rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/%{_arch}
for mf_file in rt.equinox.bundles/bundles/org.eclipse.equinox.security.linux.*/META-INF/MANIFEST.MF \
eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.*/META-INF/MANIFEST.MF \
eclipse.platform.resources/bundles/org.eclipse.core.filesystem.linux.*/META-INF/MANIFEST.MF \
eclipse.platform.team/bundles/org.eclipse.core.net/fragments/org.eclipse.core.net.linux.*/META-INF/MANIFEST.MF ; do
echo -e "Eclipse-BundleShape: dir\n\n" >> $mf_file;
done
%pom_xpath_inject "pom:pluginManagement/pom:plugins/pom:plugin[pom:artifactId='tycho-compiler-plugin']/pom:dependencies" \
"<dependency><groupId>org.eclipse</groupId><artifactId>java10api</artifactId><version>10</version></dependency>" eclipse-platform-parent
dependencies/fake_ant_dependency.sh
sed -i '/javax\.servlet\.jsp/ s/2\.3/2\.4/' rt.equinox.bundles/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF
find -name feature.xml | xargs sed -i -e 's|"javax.servlet"|"javax.servlet-api"|'
sed -i -e "2iRequire-Bundle: javax.servlet-api" rt.equinox.bundles/bundles/org.eclipse.equinox.http.{jetty,servlet}/META-INF/MANIFEST.MF
sed -i -e '/org.apache.felix.service.command/s/;status=provisional//' rt.equinox.bundles/bundles/org.eclipse.equinox.console{,.ssh}/META-INF/MANIFEST.MF
%pom_remove_plugin org.eclipse.jetty:jetty-jspc-maven-plugin eclipse.platform.ua/org.eclipse.help.webapp
for files in rt.equinox.framework/bundles/org.eclipse.osgi/osgi/ \
rt.equinox.framework/bundles/org.eclipse.osgi.services/lib/ \
rt.equinox.framework/bundles/org.eclipse.osgi.util/lib/ \
rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/osgi/ \
rt.equinox.bundles/bundles/org.eclipse.equinox.coordinator/lib/ \
rt.equinox.bundles/bundles/org.eclipse.equinox.log.stream/osgi/ ;do
ln -s $(build-classpath osgi-annotation) $files;
done
rm eclipse.platform.swt/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug421127_Clipping_is_wrong.java
%mvn_package "::pom::" __noinstall
%mvn_package ":*tests*" tests
%mvn_package ":org.eclipse.equinox.frameworkadmin.test" tests
%mvn_package ":org.eclipse.equinox.p2.installer" tests
%mvn_package ":org.eclipse.jface.examples.databinding" tests
%mvn_package ":org.eclipse.pde.tools.versioning" tests
%mvn_package ":org.eclipse.update.core" tests
%mvn_package "org.eclipse.test:org.eclipse.test" contributor-tools
%mvn_package ":*examples*" __noinstall
%mvn_package "::jar:sources{,-feature}:" sdk
%mvn_package ":org.eclipse.jdt.doc.isv" sdk
%mvn_package ":org.eclipse.platform.doc.isv" sdk
%mvn_package ":org.eclipse.equinox.executable" sdk
%mvn_package "org.eclipse.jdt{,.feature}:" jdt
%mvn_package ":org.eclipse.ant.{launching,ui}" jdt
%mvn_package ":org.eclipse.equinox.p2.discovery.{feature,compatibility}" p2-discovery
%mvn_package ":org.eclipse.equinox.p2{,.ui}.discovery" p2-discovery
%mvn_package ":org.eclipse.e4{,.core}.tools*" contributor-tools
%mvn_package ":org.eclipse.releng.tools" contributor-tools
%mvn_package ":org.eclipse.swt.tools*" contributor-tools
%mvn_package "org.eclipse.test{,.feature}:" contributor-tools
%mvn_package ":org.eclipse.ant.optional.junit" contributor-tools
%mvn_package "org.eclipse.cvs{,.feature}:" cvs
%mvn_package "org.eclipse.team:org.eclipse.team.cvs*" cvs
%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 ":" __noinstall
%build
export MAVEN_OPTS="-Xmx1024m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}"
export JAVA_HOME=%{_jvmdir}/java
sed -i -e '/createSourcesJar/d' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml
(cd eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent && xmvn -o -B clean verify)
mv eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/target/javaagent-shaded.jar \
eclipse.jdt.debug/org.eclipse.jdt.launching/lib
QUALIFIER=$(date -u -d"$(stat --format=%y %{SOURCE0})" +v%Y%m%d-%H%M)
%mvn_build -j -f -- -DforceContextQualifier=$QUALIFIER \
-Declipse.javadoc=/usr/bin/javadoc -Dnative=gtk.linux.%{_arch} \
-Dtycho.local.keepTarget \
-Dfedora.p2.repos=$(pwd)/.m2/p2/repo-sdk/plugins -DbuildType=X
product="eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}"
dependencies/fake_ant_dependency.sh $product/eclipse/plugins/org.apache.ant_*
dependencies/replace_platform_plugins_with_symlinks.sh $product/eclipse %{_javadir} %{_jnidir}
pushd $product/eclipse
rm -rf configuration/org.eclipse.core.runtime
rm -rf configuration/org.eclipse.equinox.app
rm -rf configuration/org.eclipse.update
rm -rf configuration/org.eclipse.osgi
rm -rf p2/org.eclipse.equinox.p2.core/cache/*
rm -f icon.xpm
rm -rf features/org.eclipse.emf.* plugins/org.eclipse.emf.* \
features/org.eclipse.ecf.* plugins/org.eclipse.ecf.* plugins/org.eclipse.ecf_*
pushd p2/org.eclipse.equinox.p2.engine/.settings
sed -i -e "/repositories\/file/d" -e "/repositories\/memory/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs
popd
sed -i -e "s|-Xms40m|-Xms512m|g" -e "s|-Xmx512m|-Xmx1024m|g" -e '1i-protect\nroot' eclipse.ini
cat >> eclipse.ini <<EOF
-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith
-XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,<init>
-XX:CompileCommand=exclude,org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates,instantiateTemplate
-XX:CompileCommand=exclude,org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage,addBinding
-XX:CompileCommand=exclude,org/python/pydev/editor/codecompletion/revisited/PythonPathHelper,isValidSourceFile
-XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=%{_datadir}/eclipse/dropins
-Dp2.fragments=%{_prefix}/lib/eclipse/droplets,%{_datadir}/eclipse/droplets
-Declipse.p2.skipMovedInstallDetection=true
-Dosgi.resolver.usesMode=ignore
EOF
popd
%install
%mvn_install
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir} $RPM_BUILD_ROOT%{_jnidir} \
$RPM_BUILD_ROOT%{_javadir}/eclipse $RPM_BUILD_ROOT%{_mavenpomdir} $RPM_BUILD_ROOT%{_bindir}
install -D eclipse.platform/platform/org.eclipse.platform/eclipse32.png \
$RPM_BUILD_ROOT/usr/share/icons/hicolor/32x32/apps/eclipse.png
install -D eclipse.platform/platform/org.eclipse.platform/eclipse48.png \
$RPM_BUILD_ROOT/usr/share/icons/hicolor/48x48/apps/eclipse.png
install -D eclipse.platform/platform/org.eclipse.platform/eclipse256.png \
$RPM_BUILD_ROOT/usr/share/icons/hicolor/256x256/apps/eclipse.png
install -d $RPM_BUILD_ROOT/usr/share/pixmaps
ln -s /usr/share/icons/hicolor/256x256/apps/eclipse.png \
$RPM_BUILD_ROOT/usr/share/pixmaps/eclipse.png
sed -i -e 's/Exec=eclipse/Exec=eclipse/g' desktopintegration/eclipse.desktop
sed -i -e 's/Name=Eclipse/Name=Eclipse/g' desktopintegration/eclipse.desktop
sed -i -e 's/Icon=eclipse/Icon=eclipse/g' desktopintegration/eclipse.desktop
install -m644 -D desktopintegration/eclipse.desktop $RPM_BUILD_ROOT/usr/share/applications/eclipse.desktop
desktop-file-validate $RPM_BUILD_ROOT/usr/share/applications/eclipse.desktop
for xml_file in eclipse.appdata.xml eclipse-jdt.metainfo.xml eclipse-pde.metainfo.xml ;
do
install -m644 -D desktopintegration/$xml_file $RPM_BUILD_ROOT%{_datadir}/appdata/$xml_file ;
done
LOCAL_PWD=`pwd`
cd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile/
for gz_file in `ls | grep "profile.gz"` ; do \
gunzip $gz_file ; \
sed -i -e "s@${LOCAL_PWD}/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}/eclipse@%{_prefix}/lib/eclipse@g" *.profile ; \
gzip *.profile ; \
done
cd -
rsync -vrpl eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}/eclipse \
%{buildroot}%{_prefix}/lib
cd %{buildroot}%{_bindir}
ln -s %{_prefix}/lib/eclipse/eclipse
cd -
cd %{buildroot}/%{_sysconfdir}/
ln -s %{_prefix}/lib/eclipse/eclipse.ini
cd -
cd %{buildroot}%{_prefix}/lib/eclipse/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|')
cd -
location=%{_prefix}/lib/eclipse/plugins
while [ "$location" != "/" ] ; do
location=$(dirname $location)
updir="$updir../"
done
cd %{buildroot}%{_javadir}/eclipse
for J in $EQUINOX_JARS core.contenttype core.jobs core.net core.runtime ; do
DIR=$updir%{_prefix}/lib/eclipse/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
cd -
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
for J in $OSGI_JARS ; do
JAR=%{buildroot}%{_prefix}/lib/eclipse/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
JAR=%{buildroot}%{_prefix}/lib/eclipse/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"
JAR=%{buildroot}%{_prefix}/lib/eclipse/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.%{_arch}/target/org.eclipse.swt.gtk.linux.%{_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
cd %{buildroot}/%{_prefix}/lib/eclipse/
ln -s $(abs2rel %{_jnidir}/swt.jar %{_prefix}/lib/eclipse)
cd -
unzip eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/eclipse-junit-tests-bundle.zip \
-d $RPM_BUILD_ROOT/%{_datadir}/ -x eclipse-testing/runtests.bat eclipse-testing/runtestsmac.sh
cp utils/splitter.xsl $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing
rm $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/eclipse-junit-tests-*.zip
sed -i '/org.eclipse.equinox.p2.reconciler.test/ d' $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/equinoxp2tests.properties
cp -r testbundle-to-eclipse-test $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/testbundle
mv $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/testbundle/eclipse-runTestBundles $RPM_BUILD_ROOT/%{_bindir}/eclipse-runTestBundles
find $RPM_BUILD_ROOT/%{_prefix}/lib/eclipse -name *.so -exec chmod a+x {} \;
install -d -m 755 %{buildroot}%{_prefix}/lib/eclipse/.pkgs
echo "4.9.0-3" > %{buildroot}%{_prefix}/lib/eclipse/.pkgs/Distro%{?dist}
%post platform
touch --no-create /usr/share/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
gtk-update-icon-cache -q /usr/share/icons/hicolor
fi
%postun platform
touch --no-create /usr/share/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
gtk-update-icon-cache -q /usr/share/icons/hicolor
fi
%files swt -f .mfiles-swt
%{_prefix}/lib/eclipse/plugins/org.eclipse.swt*
%{_prefix}/lib/eclipse/swt.jar
%{_jnidir}/swt.*
%files platform -f .mfiles-platform
%{_bindir}/eclipse
%{_prefix}/lib/eclipse/eclipse
%{_prefix}/lib/eclipse/.*p*
%config %{_prefix}/lib/eclipse/eclipse.ini
%config %{_sysconfdir}/eclipse.ini
/usr/share/*
%{_datadir}/appdata/eclipse.appdata.xml
%dir %{_prefix}/lib/eclipse/configuration/
%dir %{_prefix}/lib/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/
%{_prefix}/lib/eclipse/configuration/*
%{_prefix}/lib/eclipse/features/org.eclipse.*
%{_prefix}/lib/eclipse/plugins/*
%{_prefix}/lib/eclipse/artifacts.xml
%{_prefix}/lib/eclipse/p2
%doc %{_prefix}/lib/eclipse/readme
%{_javadir}/eclipse/core*
%{_javadir}/eclipse/equinox*
%exclude %{_prefix}/lib/eclipse/plugins/org.eclipse.osgi*
%exclude %{_prefix}/lib/eclipse/plugins/org.eclipse.swt*
%files jdt -f .mfiles-jdt
%{_datadir}/appdata/eclipse-jdt.metainfo.xml
%files pde -f .mfiles-pde -f .mfiles-cvs -f .mfiles-sdk
%{_prefix}/lib/eclipse/droplets/eclipse-sdk/features/org.eclipse.equinox.executable_*
%{_datadir}/appdata/eclipse-pde.metainfo.xml
%files p2-discovery -f .mfiles-p2-discovery
%files contributor-tools -f .mfiles-contributor-tools
%files tests -f .mfiles-tests
%{_bindir}/eclipse-runTestBundles
%{_datadir}/eclipse-testing
%files equinox-osgi -f .mfiles-equinox-osgi
%{_prefix}/lib/eclipse/plugins/org.eclipse.osgi*
%changelog
* Fri Nov 22 2019 sunguoshuai <sunguoshuai@huawei.com> - 1:4.9.0-3
- Package init.