Blob Blame History Raw
%{?scl:%scl_package eclipse}
%{!?scl:%global pkg_name %{name}}

# Set to 1 to build Eclipse without circular dependency to eclipse-pde, API
# generation and docs will not be built and a second run will be required, but
# this is a way to bootstrap Eclipse on secondary archs.
%global bootstrap       0

Epoch:                  1

%global eclipse_major   4
%global eclipse_minor   5
%global eclipse_micro   2
%global eb_commit       a504d79f37ec4e8d9d57782fbaa9925fbad80e84
%global eclipse_tag     S4_5_2_RC4
%global eclipse_version %{eclipse_major}.%{eclipse_minor}.%{eclipse_micro}

%if 0%{?fedora} >= 24
%global _jetty_version  9.3.7
%global _lucene_version 5.5.0
%else
%if 0%{?fedora} >= 23
%global _jetty_version  9.3.0
%global _lucene_version 5.3.0
%else
%global _jetty_version  9.2.9
%global _lucene_version 4.10.3
%endif
%endif

%ifarch %{ix86}
    %global eclipse_arch x86
%endif
%ifarch %{arm}
    %global eclipse_arch arm
%endif
%ifarch ppc64 ppc64p7
    %global eclipse_arch ppc64
%endif
%ifarch s390 s390x ppc x86_64 aarch64 ppc64le
    %global eclipse_arch %{_arch}
%endif

# See fedora-devel-java-list discussion in September 2008.
#
# Prevent brp-java-repack-jars from being run.
%global __jar_repack %{nil}

Summary:        An open, extensible IDE
Name:           eclipse
Version:        %{eclipse_version}
Release:        10%{?dist}
License:        EPL
URL:            http://www.eclipse.org/

# Tarball generated by calling ./get-eclipse.sh
Source0:        R4_platform-aggregator-%{eclipse_tag}.tar.xz
Source1:        http://git.eclipse.org/c/linuxtools/org.eclipse.linuxtools.eclipse-build.git/snapshot/org.eclipse.linuxtools.eclipse-build-%{eb_commit}.tar.xz

Patch0:         %{pkg_name}-remove-w3c-smil-and-use-glassfish.patch

# Eclipse should not include source for dependencies that are not supplied by this package
# and should not include source for bundles that are not relevant to our platform
Patch1:         %{pkg_name}-no-source-for-dependencies.patch

# This has too many dependencies. We will not build it.
Patch2:         %{pkg_name}-remove-weaving.patch

# https://bugs.eclipse.org/bugs/show_bug.cgi?id=377515
Patch3:         %{pkg_name}-p2-pick-up-renamed-jars.patch

# Patch for this was contributed. Unlikely to be released.
Patch4:         %{pkg_name}-ignore-version-when-calculating-home.patch

# CBI uses timestamps generated from the git commits. We don't have the repo,
# just source, and we don't want additional dependencies.
Patch5:         %{pkg_name}-remove-jgit-provider.patch

# This is for Fedora purposes to have working eclipse-pdebuild script.
Patch6:         %{pkg_name}-pdebuild-add-target.patch

# Strict Fedora purpose, too. We can't build entire product, just base
# and JDT and SDK as update sites, then we can assemble our own packages.
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=386670
Patch7:         %{pkg_name}-change-build-packagings.patch

Patch8:         %{pkg_name}-test-support.patch

Patch9:         %{pkg_name}-secondary-arches.patch

Patch10:        %{pkg_name}-debug-symbols.patch

Patch11:        %{pkg_name}-fix-comaptibility-class.patch

Patch12:        %{pkg_name}-fix-startup-class-refresh.patch

# https://bugs.eclipse.org/bugs/show_bug.cgi?id=408138
Patch13:        %{pkg_name}-fix-dropins.patch

Patch14:        %{pkg_name}-bug-386377.patch

# org.mockito -> org.mockito.mockito-core
Patch16:        %{pkg_name}-mockito.patch

Patch17:        %{pkg_name}-policy-comparators.patch

Patch18:        %{pkg_name}-webkit2-support.patch

Patch19:        %{pkg_name}-support-symlink-bundles.patch

# Feature plugin definitions lock onto version of plugin at build-time.
# If plugin is external, updating it breaks the feature. (version changes)
# Workaround : Change <plugin> definition to a 'requirement' and list
# the plugin in the top-level category so it still gets bundled.
# Also makes the following BSN changes at the same time:
# -com.sun.el
# +javax.el
# -org.apache.jasper.glassfish
# +org.glassfish.web.javax.servlet.jsp
# -javax.annotation
# +javax.annotation-api
# -org.w3c.dom.smil
Patch20:        %{pkg_name}-feature-plugins-to-category-ius.patch
Patch21:        disable-non-linux.patch

%if 0%{?fedora} == 22
# Port to Lucene 4
Patch22: eclipse-lucene-4.patch
%else
# Port to Lucene 5
Patch22: eclipse-lucene-5.patch
%endif

Patch23: %{pkg_name}-javaxannotation-import.patch
Patch24: %{pkg_name}-fix-tests.patch
Patch25: %{pkg_name}-adjust-droplets.patch

# Fix visual glitches when on recent GTK3
# These are backported from upstream master
Patch26: eclipse-editor-scrolling-fix.patch
Patch27: eclipse-bug-480986.patch
Patch28: eclipse-bug-466314.patch
Patch29: eclipse-bug-481122.patch
Patch30: eclipse-bug-466500.patch
Patch31: eclipse-bug-478962.patch
Patch33: eclipse-bug-486368.patch
Patch34: eclipse-bug-484696.patch
Patch35: eclipse-bug-477487.patch
Patch36: eclipse-bug-487712.patch
Patch37: eclipse-bug-488226.patch
Patch38: eclipse-bug-489953.patch
Patch39: eclipse-bug-486069.patch

Patch40: %{pkg_name}-pde-tp-support-droplets.patch

BuildRequires: rsync
BuildRequires: make, gcc
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(nspr)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(cairo)
BuildRequires: zip, unzip
BuildRequires: desktop-file-utils
BuildRequires: java-1.8.0-openjdk-devel
BuildRequires: pkgconfig(xt)
BuildRequires: pkgconfig(xtst)
BuildRequires: pkgconfig(gtk+-2.0)
%if 0%{?fedora}
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(webkit-1.0)
BuildRequires: pkgconfig(webkit2gtk-4.0)
%else
%if 0%{?rhel} >= 7
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(webkitgtk-3.0)
%else
BuildRequires: pkgconfig(webkit-1.0)
%endif
%endif
BuildRequires: icu4j >= 1:54.1.1-2
BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf ant-commons-net
BuildRequires: ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil ant-apache-xalan2 ant-jmf
BuildRequires: jsch >= 0:0.1.46-2
BuildRequires: apache-commons-el >= 1.0-22
BuildRequires: apache-commons-logging
BuildRequires: apache-commons-codec
BuildRequires: apache-commons-jxpath >= 1.3-23
BuildRequires: felix-gogo-command >= 0.14.0-2
BuildRequires: felix-gogo-shell >= 0.10.0-3
BuildRequires: osgi(org.eclipse.jetty.util) >= %{_jetty_version}
BuildRequires: osgi(org.eclipse.jetty.server) >= %{_jetty_version}
BuildRequires: osgi(org.eclipse.jetty.http) >= %{_jetty_version}
BuildRequires: osgi(org.eclipse.jetty.continuation) >= %{_jetty_version}
BuildRequires: osgi(org.eclipse.jetty.io) >= %{_jetty_version}
BuildRequires: osgi(org.eclipse.jetty.security) >= %{_jetty_version}
BuildRequires: osgi(org.eclipse.jetty.servlet) >= %{_jetty_version}
BuildRequires: lucene-core >= %{_lucene_version}
BuildRequires: lucene-analysis >= %{_lucene_version}
BuildRequires: lucene-queryparser >= %{_lucene_version}
BuildRequires: lucene-analyzers-smartcn >= %{_lucene_version}
BuildRequires: junit >= 4.10-5
BuildRequires: hamcrest >= 0:1.3-11
BuildRequires: sat4j >= 2.3.5-1
BuildRequires: objectweb-asm >= 5.0.3-1
BuildRequires: sac >= 1.3-12
BuildRequires: batik-css >= 1.8-0.17
BuildRequires: xml-commons-apis >= 1.4.01-12
BuildRequires: atinject >= 1-18
BuildRequires: atinject-tck >= 1-18
BuildRequires: tycho >= 0.23.0
BuildRequires: tycho-extras >= 0.23.0
BuildRequires: cbi-plugins
BuildRequires: eclipse-ecf-core >= 3.13.1-1
BuildRequires: eclipse-emf-core >= 1:2.11.2-1
BuildRequires: eclipse-license
BuildRequires: glassfish-jsp-api >= 2.2.1-4
BuildRequires: glassfish-jsp >= 2.2.5
BuildRequires: glassfish-servlet-api >= 3.1.0
BuildRequires: xml-maven-plugin
BuildRequires: httpcomponents-core
BuildRequires: httpcomponents-client
BuildRequires: xz-java
BuildRequires: mockito
BuildRequires: osgi(osgi.annotation)
BuildRequires: glassfish-annotation-api
%if ! %{bootstrap}
# Build deps that are excluded when bootstrapping
BuildRequires: eclipse-pde
# Build deps needed for contributor tools
BuildRequires: eclipse-egit >= 4.0.0
BuildRequires: eclipse-emf-runtime
%endif

%description
The Eclipse platform is designed for building integrated development
environments (IDEs), server-side applications, desktop applications, and
everything in between.

%package     swt
Summary:        SWT Library for GTK+
%if 0%{?rhel}
Requires:       jpackage-utils
%if 0%{?rhel} >= 7
Requires:       gtk3
Requires:       webkitgtk3
%else
Requires:       gtk2
Requires:       webkitgtk
%endif
%endif

%description swt
SWT Library for GTK+.

%package      equinox-osgi
Summary:        Eclipse OSGi - Equinox
Requires:       java-headless >= 1:1.7.0
Requires:       javapackages-tools
Provides:       osgi(system.bundle) = %{epoch}:%{eclipse_version}

%description  equinox-osgi
Eclipse OSGi - Equinox

%package        platform
Summary:        Eclipse platform common files
Requires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf ant-commons-net
Requires: ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil ant-apache-xalan2 ant-jmf
Requires: apache-commons-el >= 1.0-23
Requires: apache-commons-logging
Requires: apache-commons-codec
Requires: apache-commons-jxpath >= 1.3-23
Requires: felix-gogo-command >= 0.14.0-2
Requires: felix-gogo-shell >= 0.10.0-3
Requires: osgi(org.eclipse.jetty.util) >= %{_jetty_version}
Requires: osgi(org.eclipse.jetty.server) >= %{_jetty_version}
Requires: osgi(org.eclipse.jetty.http) >= %{_jetty_version}
Requires: osgi(org.eclipse.jetty.continuation) >= %{_jetty_version}
Requires: osgi(org.eclipse.jetty.io) >= %{_jetty_version}
Requires: osgi(org.eclipse.jetty.security) >= %{_jetty_version}
Requires: osgi(org.eclipse.jetty.servlet) >= %{_jetty_version}
Requires: osgi(javax.annotation-api)
Requires: jsch >= 0.1.46-2
Requires: lucene-core >= %{_lucene_version}
Requires: lucene-analysis >= %{_lucene_version}
Requires: lucene-queryparser >= %{_lucene_version}
Requires: lucene-analyzers-smartcn >= %{_lucene_version}
Requires: sat4j >= 2.3.5-1
Requires: sac >= 1.3-12
Requires: batik-css >= 1.8-0.17
Requires: xml-commons-apis >= 1.4.01-12
Requires: atinject >= 1-18
Requires: eclipse-ecf-core >= 3.13.1-1
Requires: eclipse-emf-core >= 1:2.11.2-1
Requires: glassfish-jsp-api >= 2.2.1-4
Requires: glassfish-jsp >= 2.2.5
Requires: glassfish-servlet-api >= 3.1.0
Requires: icu4j >= 1:54.1.1-2
Requires: %{name}-swt = %{epoch}:%{eclipse_version}-%{release}
Requires: %{name}-equinox-osgi = %{epoch}:%{eclipse_version}-%{release}
Requires: httpcomponents-core
Requires: httpcomponents-client
Requires: xz-java

%description    platform
The Eclipse Platform is the base of all IDE plugins.  This does not include the
Java Development Tools or the Plugin Development Environment.

%package        jdt
Summary:        Eclipse Java Development Tools
Provides:       %{name} = %{epoch}:%{eclipse_version}-%{release}
Requires:       %{name}-platform = %{epoch}:%{eclipse_version}-%{release}
Requires:       junit >= 4.10-5
Requires:       hamcrest-core >= 0:1.3-11

%description    jdt
Eclipse Java Development Tools.  This package is required to use Eclipse for
developing software written in the Java programming language.

%package        pde
Summary:        Eclipse Plugin Development Environment
Requires:       %{name}-platform = %{epoch}:%{eclipse_version}-%{release}
Requires:       %{name}-jdt = %{epoch}:%{eclipse_version}-%{release}
Requires:       objectweb-asm >= 5.0.3-1
Recommends:     eclipse-e4-importer
# For PDE Build wrapper script + creating jars
Requires:       zip
Requires:       bash

%description    pde
Eclipse Plugin Development Environment.  This package is required for
developing Eclipse plugins.

%package        p2-discovery
Summary:        Eclipse p2 Discovery
BuildArch:      noarch
Requires:       %{name}-platform = %{epoch}:%{eclipse_version}-%{release}
# Obsoletes added in F22
Obsoletes:      %{name}-p2-discovery < 1:4.5.0-0.10

%description    p2-discovery
The p2 Discovery mechanism provides a simplified and branded front-end for the
p2 provisioning platform. Discovery can be used as a tool to display and
install from existing P2 repositories or as a framework to build branded
installer UIs.

%package        contributor-tools
Summary:        Tools for Eclipse Contributors
Requires:       %{name}-platform = %{epoch}:%{eclipse_version}-%{release}

%description    contributor-tools
This package contains tools specifically for Eclipse contributors. It includes
SWT tools, E4 tools, Rel-Eng tools and Eclipse Test frameworks.

%package        tests
Summary:        Eclipse Tests
Requires:       %{name}-pde = %{epoch}:%{eclipse_version}-%{release}
Requires:       easymock3
Requires:       mockito
Requires:       atinject-tck >= 1-18

%description    tests
Eclipse Tests.

%prep
%setup -q %{SOURCE0} -n R4_platform-aggregator-%{eclipse_tag}

tar --strip-components=1 -xf %{SOURCE1} 

%patch0
%patch1
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9 -p1
%patch10
%patch11
%patch12
%patch13
%patch14
%patch16
%patch17
%patch18
%patch19
%patch20
%patch21
%patch22 -p1
pushd eclipse.platform.ui
%patch23 -p1
popd
%patch24
%patch25
%patch26 -p1
%patch27
pushd eclipse.platform.swt
%patch28 -p1
%patch29 -p1
%patch31 -p1
%patch33 -p1
%patch34 -p1
popd
%patch30 -p1
%patch35 -p1
%patch36 -p1
pushd eclipse.platform.swt
%patch37 -p1
%patch38 -p1
%patch39 -p1
popd

%patch40

# Resolving the target platform requires too many changes, so don't use it
%pom_xpath_remove "pom:configuration/pom:target" eclipse-platform-parent

# Disable as many products as possible to make the build faster, we care only for the IDE
%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_disable_module equinox-sdk eclipse.platform.releng.tychoeclipsebuilder
%pom_disable_module equinox.starterkit.product eclipse.platform.releng.tychoeclipsebuilder

# Disable bundles that we don't ship as part of the remaining products
%pom_disable_module bundles/org.eclipse.equinox.region.tests rt.equinox.bundles
%pom_disable_module features/org.eclipse.equinox.weaving.sdk rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.cm.test rt.equinox.bundles
%pom_disable_module features/org.eclipse.equinox.sdk rt.equinox.bundles
%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.aspectj 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 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 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 bundles/ie.wombat.jbdiff rt.equinox.p2
%pom_disable_module bundles/ie.wombat.jbdiff.test rt.equinox.p2
%pom_disable_module tests/com.google.code.atinject.tck eclipse.platform.runtime

# We don't need support for Eclipse 2.x style plugins
%pom_disable_module features/org.eclipse.osgi.compatibility.plugins.feature rt.equinox.framework
%pom_disable_module bundles/org.eclipse.osgi.compatibility.plugins rt.equinox.framework
%pom_xpath_remove "feature[@id='org.eclipse.osgi.compatibility.plugins.feature']" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml
sed -i -e '/OldStylePluginTests/d' ./rt.equinox.framework/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/AutomatedTests.java

# This part generates secondary fragments using primary fragments
for dir in eclipse.platform.swt.binaries/bundles \
           rt.equinox.framework/bundles rt.equinox.binaries ; do
  utils/ensure_arch.sh "$dir" x86 arm
  utils/ensure_arch.sh "$dir" x86_64 aarch64
done

# Remove platform-specific stuff that we don't care about to reduce build time
# (i.e., all bundles that are not applicable to the current build platform --
# this reduces the build time on arm by around 20 minutes per architecture that
# we are not currently building)
TYCHO_ENV="<environment><os>linux</os><ws>gtk</ws><arch>%{eclipse_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 b in `ls eclipse.platform.swt.binaries/bundles | grep -P -e 'org.eclipse.swt\.(?!gtk\.linux.%{eclipse_arch}$)'` ; do
  module=$(grep ">bundles/$b<" eclipse.platform.swt.binaries/pom.xml || :)
  if [ -n "$module" ] ; then
    %pom_disable_module bundles/$b eclipse.platform.swt.binaries
    %pom_xpath_inject "pom:excludes" "<plugin id='$b'/>" eclipse.platform.ui/features/org.eclipse.e4.rcp
    %pom_xpath_remove "plugin[@id='$b']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml
  fi
done
for b in `ls rt.equinox.framework/bundles | grep -P -e 'org.eclipse.equinox.launcher\.(?!gtk\.linux.%{eclipse_arch}$)'` ; do
  module=$(grep ">bundles/$b<" rt.equinox.framework/pom.xml || :)
  if [ -n "$module" ] ; then
    %pom_disable_module bundles/$b rt.equinox.framework
    if [ -n "$(grep $b eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml)" ] ; then
      %pom_xpath_remove "plugin[@id='$b']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml
    fi
    if [ -n "$(grep $b rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml)" ] ; then
      %pom_xpath_remove "plugin[@id='$b']" rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml
    fi
  fi
done
for b in `ls eclipse.platform.team/bundles/org.eclipse.core.net/fragments/ | grep -P -e 'org.eclipse.core.net\.(?!linux.%{eclipse_arch}$)'` ; do
  %pom_disable_module bundles/org.eclipse.core.net/fragments/$b eclipse.platform.team
  %pom_xpath_remove "plugin[@id='$b']" eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml
done
for b in `ls eclipse.platform.resources/bundles/ | grep -P -e 'org.eclipse.core.filesystem\.(?!linux\.%{eclipse_arch}$|java7$)'` ; do
  module=$(grep ">bundles/$b<" eclipse.platform.resources/pom.xml || :)
  if [ -n "$module" ] ; then
    %pom_disable_module bundles/$b eclipse.platform.resources
    %pom_xpath_remove "plugin[@id='$b']" eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml
  fi
done
%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 bundles/org.eclipse.equinox.security.macosx rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.security.win32.x86 rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.equinox.security.win32.x86_64 rt.equinox.bundles
%pom_disable_module bundles/org.eclipse.compare.win32 eclipse.platform.team
%pom_disable_module bundles/org.eclipse.e4.ui.workbench.renderers.swt.cocoa eclipse.platform.ui
%pom_disable_module bundles/org.eclipse.ui.cocoa eclipse.platform.ui
%pom_disable_module bundles/org.eclipse.ui.win32 eclipse.platform.ui
%pom_disable_module bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.aix.ppc eclipse.platform.resources
%pom_disable_module bundles/org.eclipse.core.filesystem/fragments/org.eclipse.core.filesystem.aix.ppc64 eclipse.platform.resources
%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 examples/org.eclipse.swt.examples.ole.win32 eclipse.platform.swt

# Disable contributor tools that have external dependencies during bootstrap
%if %{bootstrap}
%pom_disable_module eclipse.platform.ui.tools
%pom_disable_module features/org.eclipse.releng.tools eclipse.platform.releng
%pom_disable_module bundles/org.eclipse.releng.tools eclipse.platform.releng
%pom_disable_module bundles/org.eclipse.releng.tests eclipse.platform.releng
%pom_xpath_remove "feature[@id='org.eclipse.e4.core.tools.feature.source']" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml
%pom_xpath_remove "feature[@id='org.eclipse.releng.tools']" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/category.xml
%pom_xpath_remove "pom:execution[pom:id[text()='mirror-org.eclipse.releng.tools']]" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository
%endif

# Include some extra features with the product that some other projects may need at
# build time as part of their target platform definitions
sed -i -e '169i<feature id="org.eclipse.core.runtime.feature"/>' \
  eclipse.platform.releng.tychoeclipsebuilder/platform/platform.product

# Don't mirror stuff to the repo that we haven't built
%pom_xpath_remove "pom:execution[pom:id[text()='mirror-build-emf']]" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository
%pom_xpath_remove "pom:execution[pom:id[text()='mirror-build-ecf']]" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository
%pom_xpath_remove "pom:execution[pom:id[text()='mirror-org.eclipse.rcp']]" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository
%pom_xpath_remove "pom:execution[pom:id[text()='mirror-org.eclipse.rcp.source']]" \
  eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository

# Since Tycho 0.22.0 resources get copied into generated eclipse-repository.
# We place some content in ${project.build.directory} and use that to place
# it into some other assembled zip.
# With 0.22.0 it will get placed also into the eclipse-repository zip.
# Let's be careful where we place them to avoid duplication.
%pom_xpath_remove "pom:resources" eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests
%pom_remove_plugin :maven-resources-plugin eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests
sed -i 's|\${project.build.directory}/resources|\${project.basedir}/src/main/resources|' eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/src/main/assembly/assembly.xml eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/pom.xml

# Don't set perms on files for platforms that aren't linux
for f in \
    rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties; do
  grep '^root\.linux\.gtk\.%{eclipse_arch}[.=]' $f > tmp
  sed -i -e '/^root\./d' $f && cat tmp >> $f
done

# Hack - this can go away once upstream grows arm and aarch64 support
mkdir -p rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/%{eclipse_arch}

#pdebuild script should point to dropins
sed -i -e "s|@DATADIR@|%{_datadir}|g" eclipse.pde.build/org.eclipse.pde.build/templates/package-build/build.properties

# Ensure that bundles with native artifacts are dir-shaped, so no *.so is extracted into user.home
for f in `find eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.* -name MANIFEST.MF` ; do 
    echo -e "Eclipse-BundleShape: dir\n\n" >> $f; 
done
for f in `find eclipse.platform.resources/bundles/org.eclipse.core.filesystem.linux.* -name MANIFEST.MF` ; do 
    echo -e "Eclipse-BundleShape: dir\n\n" >> $f; 
done
for f in `find eclipse.platform.team/bundles/org.eclipse.core.net/fragments -name MANIFEST.MF` ; do 
    echo -e "Eclipse-BundleShape: dir\n\n" >> $f; 
done

%if 0%{?rhel} == 6
# No GTK3 on EL 6
sed -i '/machine_gtk3/d' eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.%{eclipse_arch}/pom.xml
%endif

#fake dependencies that don't exist in fedora
./dependencies/fake_ant_dependency.sh .m2/p2/repo-sdk/plugins/org.apache.ant_* -makejar

# Allow usage of javax.servlet.jsp 2.3.
sed -i '/javax\.servlet\.jsp/ s/2\.3/2\.4/' rt.equinox.bundles/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF

# Use com.sun.el.java.el (Glassfish) instead of javax.el (Tomcat)
sed -i 's/javax\.el/com\.sun\.el\.javax\.el/' \
  eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml \
  eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml

# Use javax.servlet-api (Glassfish) instead of javax.servlet (Tomcat)
find -name feature.xml | xargs sed -i -e 's|"javax.servlet"|"javax.servlet-api"|'
sed -i -e "s|<id>javax.servlet</id>|<id>javax.servlet-api</id>|g" eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml
sed -i -e "2iRequire-Bundle: javax.servlet-api" rt.equinox.bundles/bundles/org.eclipse.equinox.http.{jetty9,servlet}/META-INF/MANIFEST.MF

%pom_remove_plugin  org.mortbay.jetty:jetty-jspc-maven-plugin  eclipse.platform.ua/org.eclipse.help.webapp

# Fix tycho failures caused by mis-named Java 1.9 profile
sed -i -e 's/JavaSE-1\.9/JavaSE-9\.0/' ./rt.equinox.framework/bundles/org.eclipse.osgi/profile.list

# Remove generated files not present during bootstrap build
# org.eclipse.platform.doc.isv, org.eclipse.jdt.doc.isv, org.eclipse.pde.doc.user
%if %{bootstrap}
sed -i '18,47d' eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/src/main/assembly/assembly.xml
%endif

# Use system osgi.annotation lib
ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.framework/bundles/org.eclipse.osgi/osgi/
ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.framework/bundles/org.eclipse.osgi.services/lib/
ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/osgi/
ln -s %{_javadir}/osgi-annotation/osgi.annotation.jar rt.equinox.bundles/bundles/org.eclipse.equinox.coordinator/lib/

# It would be nice if upstream were refactored to make selecting features by maven groupId easier...
%mvn_package "::pom::" __noinstall
%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{,.feature}" contributor-tools
%mvn_package "org.eclipse.test{,.feature}:" contributor-tools
%mvn_package ":org.eclipse.ant.optional.junit" contributor-tools
%mvn_package "*:*" __noinstall

%build
#This is the lowest value where the build succeeds. 512m is not enough.
export MAVEN_OPTS="-Xmx1000m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}"
export JAVA_HOME=%{java_home}

%mvn_build -j -f -- -DforceContextQualifier=$(date -u +v%Y%m%d-%H00) \
%if %{bootstrap}
   -P !api-generation,!build-docs \
%endif
   -Declipse.javadoc=/usr/bin/javadoc -Dnative=gtk.linux.%{eclipse_arch} \
   -Dtycho.local.keepTarget \
   -Dfedora.p2.repos=`pwd`/.m2/p2/repo-sdk/plugins -DbuildType=Z

# Location that the product is materialised
product="eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{eclipse_arch}"

#ant again
dependencies/fake_ant_dependency.sh $product/eclipse/plugins/org.apache.ant_*

# JDT and PDE are built as update sites.
# Initialize them and move into dropins.
utils/move_JDT_PDE_to_dropins.sh $product/ \
  `pwd`/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/repository \
  "jdt cvs sdk"

# Symlink necessary plugins that are provided by other packages
dependencies/replace_platform_plugins_with_symlinks.sh $product/eclipse %{_javadir}

pushd $product/eclipse

#clean up
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/*
# no icon needed
rm -f icon.xpm

# EMF and ECF are packaged separately
rm -rf features/org.eclipse.emf.* plugins/org.eclipse.emf.* \
  features/org.eclipse.ecf.* plugins/org.eclipse.ecf.* plugins/org.eclipse.ecf_*

#delete all local repositories. We want to have only "original" by default.
pushd p2/org.eclipse.equinox.p2.engine/.settings
    sed -i "/repositories\/file/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs
    sed -i "/repositories\/memory/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs
popd

# ini file adjustements
sed -i "s|-Xms40m|-Xms128m|g" eclipse.ini
sed -i "s|-Xmx512m|-Xmx1024m|g" eclipse.ini
sed -i '1i-protect\nmaster' eclipse.ini

# Use GTK3 by default on Fedora or RHEL 7 and newer
%if 0%{?rhel} == 6
sed -i '5i--launcher.GTK_version\n2' eclipse.ini
%else
sed -i '5i--launcher.GTK_version\n3' eclipse.ini
%endif

# Temporary fix until https://bugs.eclipse.org/294877 is resolved
cat >> eclipse.ini <<EOFINI
-Dorg.eclipse.swt.browser.UseWebKitGTK=true
-Dhelp.lucene.tokenizer=standard
-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=%{_datadir}/eclipse/droplets,%{_libdir}/eclipse/droplets
-Declipse.p2.skipMovedInstallDetection=true
EOFINI

popd #eclipse

%install
%mvn_install

# Some directories we need
install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}
install -d -m 755 $RPM_BUILD_ROOT%{_jnidir}
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/eclipse
install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/eclipse/buildscripts
install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
install -d -m 755 $RPM_BUILD_ROOT%{_bindir}

# Install icons
install -D eclipse.platform/platform/org.eclipse.platform/eclipse32.png \
    $RPM_BUILD_ROOT/usr/share/icons/hicolor/32x32/apps/%{name}.png
install -D eclipse.platform/platform/org.eclipse.platform/eclipse48.png \
    $RPM_BUILD_ROOT/usr/share/icons/hicolor/48x48/apps/%{name}.png
install -D eclipse.platform/platform/org.eclipse.platform/eclipse256.png \
    $RPM_BUILD_ROOT/usr/share/icons/hicolor/256x256/apps/%{name}.png
install -d $RPM_BUILD_ROOT/usr/share/pixmaps
ln -s /usr/share/icons/hicolor/256x256/apps/%{name}.png \
    $RPM_BUILD_ROOT/usr/share/pixmaps/%{name}.png

# Install desktop file
%{?scl: sed -i -e 's/Exec=eclipse/Exec=scl enable %{scl_name} eclipse/g' desktopintegration/eclipse.desktop}
%{?scl: sed -i -e 's/Name=Eclipse/Name=DTS Eclipse/g' desktopintegration/eclipse.desktop}
sed -i -e 's/Icon=eclipse/Icon=%{name}/g' desktopintegration/eclipse.desktop
install -m644 -D desktopintegration/eclipse.desktop $RPM_BUILD_ROOT/usr/share/applications/%{name}.desktop
desktop-file-validate $RPM_BUILD_ROOT/usr/share/applications/%{name}.desktop

# Install appstream appdata
install -m644 -D desktopintegration/eclipse.appdata.xml      $RPM_BUILD_ROOT%{_datadir}/appdata/eclipse.appdata.xml
install -m644 -D desktopintegration/eclipse-jdt.metainfo.xml $RPM_BUILD_ROOT%{_datadir}/appdata/eclipse-jdt.metainfo.xml
install -m644 -D desktopintegration/eclipse-pde.metainfo.xml $RPM_BUILD_ROOT%{_datadir}/appdata/eclipse-pde.metainfo.xml

LOCAL_PWD=`pwd`
#change the installation p2 files
pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{eclipse_arch}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile/
for i in `ls | grep "profile.gz"` ; do  \
        echo $i ; \
        gunzip $i ; \
        sed -i -e "s@${LOCAL_PWD}/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{eclipse_arch}/eclipse@%{_libdir}/eclipse@g" *.profile ; \
        gzip *.profile ; \
    done 
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%{_libdir}


#eclipse compiler
install -m 755 jdtcompilatorscript/efj.sh $RPM_BUILD_ROOT%{_bindir}/efj
TARGET_LAUNCHER=%{_libdir}/eclipse/plugins/`ls eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{eclipse_arch}/eclipse/plugins | grep launcher_[0-9]*`
sed -i -e "s,@LAUNCHER@,${TARGET_LAUNCHER}," $RPM_BUILD_ROOT%{_bindir}/efj

# Symlink eclipse binary
pushd $RPM_BUILD_ROOT%{_bindir}
    ln -s %{_libdir}/eclipse/eclipse
popd 

# SWT is a directory, but we need to provide jars for others that depend on it
pushd $RPM_BUILD_ROOT/%{_libdir}/eclipse/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 %{_libdir}/eclipse/swt.jar %{_jnidir})
popd

# Symlink eclipse ini
pushd $RPM_BUILD_ROOT/%{_sysconfdir}/
    ln -s %{_libdir}/eclipse/eclipse.ini
popd

# List jars to be symlinked into javadir
pushd $RPM_BUILD_ROOT%{_libdir}/eclipse/plugins
EQUINOX_JARS=$(ls . | grep '^org.eclipse.equinox' | 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 core.runtime.compatibility ; do
  pushd $RPM_BUILD_ROOT%{_javadir}/eclipse
    DIR=%{?scl:../../../../}../../../..%{_libdir}/eclipse
    [ -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%{_libdir}/eclipse/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
  fi
done

# 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%{_libdir}/eclipse/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

# Install the Copy Platform script
install -p -D -m0755 pdebuildscripts/eclipse-copy-platform.sh \
  $RPM_BUILD_ROOT%{_libdir}/eclipse/buildscripts/copy-platform
sed -i -e "s|@DATADIR@|%{_datadir}|g" \
  $RPM_BUILD_ROOT%{_libdir}/eclipse/buildscripts/copy-platform

# Install the PDE Build wrapper script
install -p -D -m0755 pdebuildscripts/eclipse-pdebuild.sh \
  $RPM_BUILD_ROOT%{_bindir}/eclipse-pdebuild
sed -i "s|@LIBDIR@|%{_libdir}|g" \
  $RPM_BUILD_ROOT%{_bindir}/eclipse-pdebuild

#fix pde permissions
chmod a+x  $RPM_BUILD_ROOT%{_libdir}/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_*/templates/package-build/*.sh
#replace pde reference
sed -i "s@/usr/share/eclipse@%{libdir}/eclipse@" $RPM_BUILD_ROOT%{_libdir}/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_*/templates/package-build/build.properties

##############
# Tests
##############

# Since Tycho 0.22.0 resources get copied into generated eclipse-repository.
# We place some content in ${project.build.directory} and use that to place
# it into some other assembled zip.
# With 0.22.0 it will get placed also into the eclipse-repository zip.
# Let's just exclude label.properties, and equinoxp2test.properties from
# the second extraction to avoid the issue entirely.

unzip eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/eclipse-junit-tests-bundle.zip -d $RPM_BUILD_ROOT/%{_javadir}/
unzip $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/eclipse-junit-tests-*.zip -d $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing -x label.properties equinoxp2tests.properties
cp eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/src/main/scripts/JUNIT.XSL $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing
cp eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/src/main/scripts/library.xml $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing
cp utils/splitter.xsl $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing
rm $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/eclipse-junit-tests-*.zip
rm $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/runtests.bat

pushd $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/plugins
 f=`ls | grep -e "^com.google.code.atinject.tck_"`
 rm -rf $f
 ln -s %{_javadir}/atinject-tck.jar ${f%.jar}.jar
 f=`ls | grep -e "^org.easymock_"`
 rm -rf $f
 ln -s %{_javadir}/easymock.jar ${f%.jar}.jar
 f=`ls | grep -e "^org.mockito.mockito-core_"`
 rm -rf $f
 ln -s %{_javadir}/mockito/mockito-core.jar ${f%.jar}.jar
 f=`ls | grep -e "^org.objenesis_"`
 rm -rf $f
 ln -s %{_javadir}/objenesis/objenesis.jar ${f%.jar}.jar
 for ham in core text library integration ; do
  f=`ls | grep -e "^org.hamcrest.${ham}_"`
  rm -rf $f
  ln -s %{_javadir}/hamcrest/${ham}.jar ${f%.jar}.jar
 done
 # These are already present in the platform
 rm -rf org.junit_*
popd

sed -i -e "s#@libdir@#%{_libdir}#" $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/runtests.sh
sed -i -e "s#@USR@#%{?_scl_root}%{_usr}#" $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/runtests.sh
touch $RPM_BUILD_ROOT%{_bindir}/eclipse-runEclipsePackageTests
chmod a+x  $RPM_BUILD_ROOT/%{_bindir}/eclipse-runEclipsePackageTests
echo '#!/bin/sh' >>  $RPM_BUILD_ROOT/%{_bindir}/eclipse-runEclipsePackageTests
echo 'echo "results in /tmp/eclipse-tests-directory/results/"' >>  $RPM_BUILD_ROOT/%{_bindir}/eclipse-runEclipsePackageTests
echo 'export testslocation="%{_javadir}/eclipse-testing/"' >> $RPM_BUILD_ROOT/%{_bindir}/eclipse-runEclipsePackageTests
echo "pushd %{_javadir}/eclipse-testing;./runtests.sh -os linux -ws gtk -arch %{eclipse_arch} ; popd;" >>  $RPM_BUILD_ROOT/%{_bindir}/eclipse-runEclipsePackageTests

# These properties are not correct and nested properties won't get resolved
sed -i '/org.eclipse.equinox.p2.reconciler.test/ d' $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/equinoxp2tests.properties

# Package testbundle-to-eclipse-test
cp -r testbundle-to-eclipse-test $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/testbundle

pushd $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/testbundle

# Set the proper paths for scripts
sed -i 's|\.\+/\(gatherBundles\.sh\)|%{_javadir}/eclipse-testing/testbundle/\1|' prepRuntimeLocation.sh
sed -i 's|\.\+/\(genRepo\.sh\)|%{_javadir}/eclipse-testing/testbundle/\1|' prepAllTestBundles.sh
sed -i 's|\.\+/\(prepRuntimeLocation\.sh\)|%{_javadir}/eclipse-testing/testbundle/\1|' eclipse-runTestBundles
sed -i 's|\.\+/\(prepAllTestBundles\.sh\)|%{_javadir}/eclipse-testing/testbundle/\1|' eclipse-runTestBundles
sed -i 's|cp swtbot-library.xml alltest.xml updateTestBundleXML.sh target/|cp %{_javadir}/eclipse-testing/testbundle/{swtbot-library.xml,alltest.xml,updateTestBundleXML.sh} target/|' prepRuntimeLocation.sh

for file in genRepo.sh gatherBundles.sh ;do
  sed -i 's|scl_root=|scl_root=%{?_scl_root}|' ${file}
done

mv $RPM_BUILD_ROOT/%{_javadir}/eclipse-testing/testbundle/eclipse-runTestBundles $RPM_BUILD_ROOT/%{_bindir}/eclipse-runTestBundles
popd

#fix so permissions
find $RPM_BUILD_ROOT/%{_libdir}/eclipse -name *.so -exec chmod a+x {} \;

%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
%{_libdir}/%{pkg_name}/plugins/org.eclipse.swt_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.swt.gtk.linux.*
%{_libdir}/%{pkg_name}/swt.jar
%{_jnidir}/swt.jar

%files platform -f .mfiles-platform
%{_bindir}/%{pkg_name}
%{_libdir}/%{pkg_name}/.eclipseproduct
%config %{_libdir}/%{pkg_name}/eclipse.ini
%config %{_sysconfdir}/eclipse.ini
/usr/share/applications/*
/usr/share/pixmaps/*
/usr/share/icons/*/*/apps/*
%{_datadir}/appdata/eclipse.appdata.xml
%{_libdir}/%{pkg_name}/eclipse
%dir %{_libdir}/%{pkg_name}/configuration/
%dir %{_libdir}/%{pkg_name}/configuration/org.eclipse.equinox.simpleconfigurator/
%{_libdir}/%{pkg_name}/configuration/config.ini
%{_libdir}/%{pkg_name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
%{_libdir}/%{pkg_name}/features/org.eclipse.core.runtime.feature_*
%{_libdir}/%{pkg_name}/features/org.eclipse.e4.rcp_*
%{_libdir}/%{pkg_name}/features/org.eclipse.equinox.core.feature_*
%{_libdir}/%{pkg_name}/features/org.eclipse.help_*
%{_libdir}/%{pkg_name}/features/org.eclipse.platform_*
%{_libdir}/%{pkg_name}/features/org.eclipse.rcp_*
%{_libdir}/%{pkg_name}/plugins/com.ibm.icu_*
%if 0%{?fedora} >= 24
%{_libdir}/%{pkg_name}/plugins/com.spatial4j_*
%endif
%{_libdir}/%{pkg_name}/plugins/com.jcraft.jsch_*
%{_libdir}/%{pkg_name}/plugins/javax.servlet-api_*
%{_libdir}/%{pkg_name}/plugins/javax.servlet.jsp_*
%{_libdir}/%{pkg_name}/plugins/javax.xml_*
%{_libdir}/%{pkg_name}/plugins/com.sun.el.javax.el_*
%{_libdir}/%{pkg_name}/plugins/javax.inject_*.jar
%{_libdir}/%{pkg_name}/plugins/org.apache.*
%{_libdir}/%{pkg_name}/plugins/javax.annotation-api_*
%{_libdir}/%{pkg_name}/plugins/org.glassfish.web.javax.servlet.jsp_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ant.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.compare_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.compare.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.commands_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.contenttype_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.databinding.beans_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.databinding.observable_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.databinding.property_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.databinding_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.expressions_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.externaltools_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.filebuffers_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.filesystem*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.jobs_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.net*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.resources_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.runtime_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.runtime.compatibility_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.runtime.compatibility.registry_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.core.variables_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.debug.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.debug.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.ds_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.event_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.http.jetty_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.http.registry_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.http.servlet_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.jsp.jasper_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.jsp.jasper.registry_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.help_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.help.base_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.help.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.help.webapp_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jdt.core.compiler.batch_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jface.text_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jsch.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jsch.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ltk.core.refactoring_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ltk.ui.refactoring_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.platform_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.platform.doc.user_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.search_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.team.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.team.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.text_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.browser_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.cheatsheets_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.console_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.editors_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.externaltools_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.forms_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.ide_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.ide.application_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.intro_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.intro.universal_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.monitoring_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.navigator_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.navigator.resources_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.net_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.themes_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.views_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.views.properties.tabbed_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.workbench_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.ui.workbench.texteditor_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.core.commands_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.core.contexts_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.core.di.annotations_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.core.di.extensions_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.core.di_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.core.services_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.emf.xpath_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.bindings_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.css.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.css.swt.theme_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.css.swt_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.di_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.dialogs_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.model.workbench_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.services_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.swt.gtk_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.widgets_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.workbench.addons.swt_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.workbench.renderers.swt_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.workbench.swt_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.workbench3_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.e4.ui.workbench_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.util_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.server_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.http_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.continuation_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.io_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.security_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jetty.servlet_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.frameworkadmin_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.frameworkadmin.equinox_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_*
%{_libdir}/%{pkg_name}/features/org.eclipse.equinox.p2.core.feature_*
%{_libdir}/%{pkg_name}/features/org.eclipse.equinox.p2.extras.feature_*
%{_libdir}/%{pkg_name}/features/org.eclipse.equinox.p2.rcp.feature_*
%{_libdir}/%{pkg_name}/features/org.eclipse.equinox.p2.user.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.director_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.core_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.engine_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.jarprocessor_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.metadata_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.metadata.repository_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.artifact.repository_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.touchpoint.natives_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.console_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.operations_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.transport.ecf_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.ui.importexport_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.ui.sdk_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.ui.sdk.scheduler_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.updatechecker_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.garbagecollector_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.directorywatcher_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.publisher_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.publisher.eclipse_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.repository_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.repository.tools_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.reconciler.dropins_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.updatesite_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.security_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.security.ui_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.extensionlocation_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.p2.director.app_*
%{_libdir}/%{pkg_name}/plugins/org.sat4j.core_*
%{_libdir}/%{pkg_name}/plugins/org.sat4j.pb_*
%{_libdir}/%{pkg_name}/plugins/org.tukaani.xz_*
%{_libdir}/%{pkg_name}/plugins/org.w3c.css.sac_*
%{_libdir}/%{pkg_name}/plugins/org.w3c.dom.svg_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.app_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.bidi_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.common_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.concurrent_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.console_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.launcher.gtk.linux.*_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.launcher_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.preferences_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.registry_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.simpleconfigurator_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.equinox.util_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jface.databinding_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.jface_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.rcp_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.update.configurator_*
%{_libdir}/%{pkg_name}/readme
%{_libdir}/%{pkg_name}/artifacts.xml
%{_libdir}/%{pkg_name}/p2
%{_javadir}/%{pkg_name}/core*
%{_javadir}/%{pkg_name}/equinox*

%files jdt
%{_bindir}/efj
%{_datadir}/appdata/eclipse-jdt.metainfo.xml
%{_libdir}/%{pkg_name}/dropins/jdt

%files pde
%{_bindir}/%{pkg_name}-pdebuild
%{_datadir}/appdata/eclipse-pde.metainfo.xml
%{_libdir}/%{pkg_name}/buildscripts
%{_libdir}/%{pkg_name}/dropins/sdk
%{_libdir}/%{pkg_name}/dropins/cvs

%files p2-discovery -f .mfiles-p2-discovery

%files contributor-tools -f .mfiles-contributor-tools

%files tests
%{_bindir}/%{pkg_name}-runEclipsePackageTests
%{_bindir}/%{pkg_name}-runTestBundles
%{_javadir}/%{pkg_name}-testing

%files equinox-osgi -f .mfiles-equinox-osgi
%dir %{_javadir}/%{pkg_name}
%{_libdir}/%{pkg_name}/plugins/org.eclipse.osgi_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.osgi.services_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.osgi.util_*
%{_libdir}/%{pkg_name}/plugins/org.eclipse.osgi.compatibility.state_*

%changelog
* Sat Apr 16 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-10
- Rebuild for new ECF

* Thu Apr 07 2016 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.2-9
- Support reading BundleInfo from p2 Droplets enabled installations.

* Tue Mar 29 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-8
- Backport patch for ebz#486069, NPE in SWT when running on Wayland
- Eliminate more test failures due to missing resources

* Fri Mar 25 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-7
- Update e-b snapshot for updated ant dependency

* Thu Mar 24 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-6
- Fix failure to run tests and backport patch for ebz#489953 in order to fix
  some unit tests

* Wed Mar 16 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-5
- Rebuild for ECF and disable the build of some bundles that are not shipped

* Fri Mar 04 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-4
- Backport patch for ebz#488226 for incorrect content assist colors,
  fixes rhbz#1253651 and rhbz#1196736
- Fix broken link to mockito in tests

* Wed Mar 02 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-3
- Fix mis-named Java 1.9 profile

* Mon Feb 29 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-2
- Fix Lucene patch on F22

* Mon Feb 29 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.2-1
- Update to Mars.2 release
- Update eclipse-build snapshot

* Mon Feb 29 2016 Michael Simacek <msimacek@redhat.com> - 1:4.5.1-17
- Rebuild for lucene-5.5.0

* Mon Feb 29 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.1-16
- Rebuild for httpcomponents-client 4.5.2

* Thu Feb 25 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-15
- Make BRs portable (thanks to Nicolas L├ęcureuil)

* Wed Feb 24 2016 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.1-14
- Gracefully handle broken symbolic links on initialization.

* Wed Feb 17 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-13
- Preserve more test data that we cannot generate from source
- Eliminate unnecessary manual requires from swt package

* Wed Feb 17 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-12
- Make test framework correctly delete symlinks so that test suites may complete
  when e.g. pydev is installed rhbz#1290685
- Backport patch to fix a webkit crash ebz#487712

* Mon Feb 08 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-11
- Fix java declaration view rhbz#1305107

* Wed Feb 03 2016 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-10
- Fix symlinks for new lucene
- Use %%global instead of %%define and other macro improvements

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.5.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Thu Jan 21 2016 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.1-8
- Rebuild for Lucene 5.4.0.

* Mon Jan 04 2016 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.1-7
- [GTK3.16+] gtk_widget_override_background_color is deprecated.
- [GTK3] Eclipse IDE consumes CPU when idle
- [GTK] Empty repositories view links have white backgrounds
- Resolves: rhbz#1294697, rhbz#1269892
- ebz#483096, ebz#484696, ebz#484729

* Sat Dec 05 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-6
- Fix issues with background colour in some dialogs
- ebz#478962, ebz#479998
- Rebuild for new eclipse-ecf
- Preserve jars containing runtime stubs used in tests

* Fri Nov 27 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-5
- Fix some visual glitches when on recent versions of GTK
- ebz#466314, ebz#481122, ebz#466500

* Tue Nov 03 2015 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.1-4
- Fix "Workspace chooser won't launch" on Wayland.
- Resolves: rhbz#1277594

* Mon Nov  2 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.1-3
- Rebuild for new eclipse-ecf

* Tue Oct 13 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-2
- Add patch for editor scrolling problem, rhbz#1198217

* Wed Sep 30 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.1-1
- Update to Mars.1
- Fix JDT javafx and annotation processor tests

* Wed Sep 16 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.0-19
- Rebuild for new eclipse-ecf

* Wed Sep  9 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.0-18
- Rebuild for new eclipse-ecf

* Mon Sep 07 2015 Michael Simacek <msimacek@redhat.com> - 1:4.5.0-17
- Rebuild for httpcomponents-core-4.4.2

* Tue Sep 01 2015 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.0-16
- Modify copy-platform script to support p2 Droplets.

* Thu Aug 27 2015 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.0-15
- Add support for p2 Droplets.

* Wed Aug 26 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-14
- Rebuild for new ECF

* Thu Aug 20 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-13
- Add patch for rhbz#1255150
- Always use UTC timestamps to prevent rpmdiff failures
- Move eclipse provides away from PDE rhbz#1253898

* Tue Aug 11 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-12
- Rebuild for new ECF

* Thu Aug 6 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-11
- Update to newer e-b snapshot fixing appdata validation.

* Thu Jul 30 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-10
- Preserve JDT core test data

* Wed Jul 22 2015 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.0-9
- Fix JDT Feature path for TargetDefinitionPersistenceTests (PDE)
- SimpleConfiguratorUtils should handle base == null for tests
- Locate the compressed platform archive for p2 AbstractReconcilerTest

* Mon Jul 20 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-8
- Disable tests for Eclipse 2.x style plug-in support that we don't ship

* Fri Jul 17 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-7
- Less PermSize settings - simply ignored in Java 8.

* Thu Jul 16 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-6
- Eclipse.ini has no place in swt subpackage.

* Wed Jul  15 2015 Sopot Cela <scela@redhat.com> 1:4.5.0-5
- Replaced javax.annotation provider from geronimo to glassfish

* Tue Jul  7 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.0-4
- Add Maven metadata for SWT

* Thu Jul 02 2015 Sopot Cela <scela@redhat.com> 1:4.5.0-3
- Patch dark theme patch to work on rawhide

* Wed Jul 01 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-2
- Organise BR/Rs and drop ancient provides/obsoletes on rcp package

* Fri Jun 26 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-1
- Update to tagged 4.5 release.
- Switch to new e-b snapshot that properly symlinks all new deps.

* Thu Jun 25 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.33.git201506012000
- Rebuild to include all deps of Lucene.

* Wed Jun 24 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.32.git201506012000
- Non-boostrap build.

* Tue Jun 23 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.31.git201506012000
- Rebuild against Lucene 5.x in bootstrap mode.

* Fri Jun 19 2015 Roland Grunberg <rgrunber@redhat.com> - 1:4.5.0-0.30.git201506012000
- Fix Eclipse test framework.

* Fri Jun 19 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.29.git201506012000
- Rebuild after the F23 mass rebuild to get metadata correct.

* Mon Jun 15 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.28.git201506012000
- Non-bootstrap build

* Thu Jun 11 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.27.git201506012000
- Include p2 directives for non-upstream arches

* Wed Jun 10 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.26.git201506012000
- Add patch for stricter feature packaging.
- Avoid incorrect servlet-api when building on F22
- Add recommends on e4-importer
- Bootstrap build to get the ball rolling again.

* Thu Jun 04 2015 Michael Simacek <msimacek@redhat.com> - 1:4.5.0-0.25.git201506012000
- Rebuild after ecf rebuild

* Tue Jun 02 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.24.git201506012000
- Fix pattern matching for x86/x86_64 arches

* Tue Jun 02 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.23.git201506012000
- Update to latest I-build
- Don't build contributor tools with external deps during bootstrap builds
- Build only for the current architecture
- Rebuild for EMF update

* Sun May 31 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.22.git201505272010
- Rebuild after emf change.

* Fri May 29 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.21.git201505272010
- Fix building without tomcat-servlet again.

* Fri May 29 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.20.git201505272010
- BR gcc not gcc-c++ as there is no cpp sources built.

* Thu May 28 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.19.git201505272010
- Update to latest I-build
- Require latest egit for the releng tools.

* Tue May 19 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.5.0-0.18.git201505172000
- Update to latest I-build.
- Drop unneeded env variable export.

* Wed May 13 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.17.git201505122100
- Rebuild for ECF 3.10.0
- Update to latest I-build

* Tue May 05 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.16.git201505042000
- Update to latest I-build to fix bundle dep cycle in PDE builds
- Add test framework to contributor tools subpackage
- Update eclipse-build snapshot to symlink and require xz-java

* Wed Apr 29 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.15.git201504280100
- Contibutor-tools subpackage should be archful due to native methods

* Wed Apr 22 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.14.git201504280100
- Rebuilt to eliminate optional dependencies of jxpath
- Update to latest I-build

* Wed Apr 08 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.13.git201504081100
- Update to latest I-build
- Update eclipse-build snapshot
- Simplify installation of PDE build scripts
- Drop upstreamed hamcrest patch

* Wed Apr 01 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.12.git201503310800
- Organise patches

* Wed Apr 01 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.11.git201503310800
- Begin using mvn_install for installing dropins
- This allows us to make sub-packages noarch

* Tue Mar 31 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.10.git201503310800
- Update for latest I-build
- New sub-package for contributor-tools
- Unbundle osgi.annotations compile time dep
- Rebuild for new eclipse-ecf/httpcomponents
- Revert "Use better AppData screenshots" this is fixed upstream
- Update eclipse-build snapshot

* Tue Mar 31 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.0-0.9.git201503172000
- Rebuild for eclipse-ecf update

* Mon Mar 30 2015 Richard Hughes <rhughes@redhat.com> - 1:4.5.0-0.8.git201503172000
- Use better AppData screenshots

* Wed Mar 25 2015 Michael Simacek <msimacek@redhat.com> - 1:4.5.0-0.7.git201503172000
- Rebuild for jetty update

* Thu Mar 19 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 1:4.5.0-0.6.git201503172000
- Rebuild for eclipse-ecf update

* Tue Mar 17 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.5.git201503172000
- Update to latest I-build

* Wed Mar 04 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.4.git201503030800
- Update to latest I-build
- JDT requires only hamcrest-core
- Rebuild for SR2 release of EMF

* Wed Feb 25 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.3.git201502240800
- Update to latest I-build
- Require jetty 9.2.9
- Fix arm-build

* Wed Feb 18 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.2.git201502170800
- Update to latest I-build
- Unbundle third party libs from tests subpackage rhbz#1150185
- Rebuild for new eclipse-ecf/httpcomponents

* Fri Jan 30 2015 Mat Booth <mat.booth@redhat.com> - 1:4.5.0-0.1.git201502100800
- Update to latest 4.5.0 I-build
- Drop upstreamed jetty9/servlet and workspace picker patches
- Drop upstreamed patches for bug 903537 and bug 444143
- Update eclipse-build snapshot for ant dependency
- Ship missing features used by some other projects' target platform
- Build with mvn_build macro
- Some spec file clean-up

* Fri Jan 23 2015 Michael Simacek <msimacek@redhat.com> - 1:4.4.1-17
- Rebuild against new jetty

* Mon Jan 19 2015 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-16
- Rebuild for new eclipse-ecf/httpcomponents
- Add patch to explicitly require hamcrest bundle from tests

* Mon Jan 12 2015 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.1-15
- Require newer batik with fixed obsoletes.

* Wed Dec 10 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.1-14
- Rebuild for new eclipse-ecf.

* Tue Dec 9 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.1-13
- Move to slimmer batik-css BR/R.

* Sat Nov 29 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.1-12
- Make changes necessary for Tycho 0.22.0.

* Thu Nov 27 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-11
- Update eclipse-build snapshot
- Rebuild for ECF symlink changes

* Wed Nov 19 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-10
- Update eclipse-build snapshot
- Rebuild for EMF and icu4j symlink changes
- Don't own dirs owned by eclipse-filesystem

* Tue Nov 18 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-9
- Update dep on icu4j/ECF

* Mon Nov 17 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-8
- Increase max heap size to 1024m
  - But don't do this as a patch, it doesn't work
- Fix build ID to always be lexigraphically higher that upstream

* Wed Nov 12 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-7
- Backport patch to make workspace selection dialog visible in the task manager
- Tidy up SWT symlinks

* Wed Oct 29 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.1-6
- Change external plugin references to requirements.
- List external plugin references in the top-level category.

* Fri Oct 24 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.1-5
- Rebuild for latest lucene.

* Mon Oct 20 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.1-4
- Support loading symlinked bundles when location changes.

* Wed Oct 01 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-3
- Require latest EMF

* Wed Oct 01 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-2
- Fix s390 launcher build

* Fri Sep 26 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.1-1
- Update to Luna SR1
- Drop upstreamed patch and fix permissions on appdata files

* Tue Sep 16 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-19
- Fix for autocomplete selection color.
- Rebuild for latest jetty.

* Tue Sep 09 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-18
- Symlink more equinox and some core jars into javadir
- Enables tycho to unbundle it's eclipse platform jars
- Update dep on lucene

* Sat Sep 6 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-17
- Rebuild for lucene update.

* Thu Aug 28 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.0-16
- Non-bootstrap build.

* Wed Aug 27 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.0-15
- Build Eclipse bootstrapped.

* Tue Aug 26 2014 Sami Wagiaalla <swagiaal@edhat.com> - 1:4.4.0-15
- Build agianst webkitgtk4.

* Tue Aug 19 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-14
- Rebuild against new ECF

* Mon Aug 18 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-13
- Drop custom buildId, to keep it lexographically greater than upstream's

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.4.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Mon Jul 28 2014 Sami Wagiaalla <swagiaal@redhat.com> 1:4.4.0-11
- Add patch for webkit2 support.

* Mon Jul 28 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.0-10
- Provide org.eclipse.tycho:org.eclipse.osgi.compatibility.state.

* Mon Jul 21 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-9
- Rebuild for new ecf and asm.

* Wed Jul 16 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-8
- Update eclipse-build snapshot
- Tighten up deps on asm

* Tue Jul 15 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-7
- Add appstream addon metadata for JDT and PDE plugins
- Only use GTK3 by default on F22 or newer, rhbz1118317

* Tue Jul 15 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-6
- Backport fix for eclipse bz438992
- Only assemble products for current running target environment
- Tidy up some unnecessary SCL bits

* Tue Jul 08 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-5
- Make GTK3 the default SWT implementation in eclipse.ini

* Wed Jul 02 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-4
- Package the equinox.p2.discovery feature, obsolete the separate package
- Update e-b snapshot
- BR/R: gogo-command >= 0.14
- Symlink mockito to system jar in testing package

* Fri Jun 27 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.0-3
- Fix sed delimeter when dealing with paths.

* Thu Jun 26 2014 Roland Grunberg <rgrunber@redhat.com> - 1:4.4.0-2
- Update eclipse-build with improvements to bundle testing.

* Wed Jun 25 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-1
- Update to final Luna release
- Rebuild against newer dependencies

* Tue Jun 24 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.31.git201406042000
- Non bootstrap build.

* Tue Jun 24 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.30.git201406042000
- Bootstrap build for aarch64.

* Fri Jun 13 2014 Michael Simacek <msimacek@redhat.com> - 1:4.4.0-0.29.git201406042000
- Rebuild against new jetty

* Tue Jun 10 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.28.git201406042000
- Drop jdt mvn depmaps.

* Thu Jun 05 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.27.git201406042000
- Remove pre-built launcher binaries
- Remove last uses of tomcat

* Tue Jun 03 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.26.git201406022000
- Update to latest I-build

* Fri May 30 2014 Michael Simacek <msimacek@redhat.com> - 1:4.4.0-0.25.git201405252000
- Rebuild against new jetty

* Tue May 27 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.24.git201405252000
- Pass eclipse.javadoc as param to mvn call to fix javadoc generation.

* Tue May 27 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.23.git201405252000
- Update to latest I-build.

* Fri May 23 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.22.git201405112000
- Rebuild for new lucene/junit metadata.

* Wed May 21 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.21.git201405112000
- Drop tomcat BR/Rs.

* Wed May 21 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.20.git201405112000
- Drop cglib dep.
- Apply jetty 9 patch unconditionally.

* Mon May 19 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.19.git201405112000
- Drop unnecessary BRs
- Update e-b snapshot for new felix-gogo-* jar locations

* Mon May 12 2014 Alexander Kurtakov <akurtako@redhat.com> 1:4.4.0-0.18.git201405112000
- Update to latest I-build.
- Move pre-luna changelog to separate file.

* Wed May 07 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.17.git201405062000
- Update to latest I-build of Luna 4.4.0
- New e-b snapshot for updated gnome appdata
- Rebuilt for new dependency versions.

* Thu May 01 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.16.git201405010200
- Update to latest I-build of Luna 4.4.0

* Mon Apr 28 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.15.git201404280800
- Don't mirror emf and ecf into the final p2 repository

* Mon Apr 28 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.14.git201404280800
- Update to latest I-build of Luna 4.4.0

* Thu Apr 24 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.13.git201404220800
- Drop the use of custom jdtpde repository build from e-b
- Don't use a custom product ID
- Add BR on mockito
- Fix pixmaps directory ownership

* Tue Apr 22 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.12.git201404220800
- Update to latest I-build of Luna 4.4.0
- Enable Java 8 specific bundles
- Rebuild for updated lucene dependency

* Tue Apr 15 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.11.git201404150800
- Update to latest I-build of Luna 4.4.0
- Fix missing copy resource step on ppc64le
- Don't build bundles that are only applicable on non-linux platforms

* Thu Apr 10 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.10.git201404081645
- Drop unnecessary BR on GConf2-devel
- Drop unneeded patch: fix-swt-build-in-rawhide

* Thu Apr 10 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.9.git201404081645
- Make globbing work on arches that don't have platform specific fragments.

* Tue Apr 08 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.8.git201404081645
- Update to latest I-build of Luna 4.4.0
- Don't unnecessarily create platform specific fragments for o.e.core.net and
  o.e.core.filesystem.
- Accomodate for ppc64le architecture.
- Drop upstreamed patch: objectweb-asm

* Thu Apr 03 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.7.git201404011500
- Fix symlinking junit when it is a directory.

* Thu Apr 03 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.6.git201404011500
- Non-bootstrap build.

* Wed Apr 02 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.5.git201404011500
- Add patch for org.ojectweb.asm -> org.ojectweb.asm.all

* Wed Apr 02 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.4.git201404011500
- Move secondary-arch fragment generation into e-b.

* Wed Apr 02 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.3.git201404011500
- Update eclipse-build snapshot

* Tue Apr 01 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.2.git201404011500
- Update to latest I-build of Luna 4.4.0
- Require objectweb-asm >= 5.0.1

* Mon Mar 24 2014 Mat Booth <mat.booth@redhat.com> - 1:4.4.0-0.1.M6
- Update to M6 pre-release of Luna 4.4.0
- Bootstrap build
- Drop upstreamed patches: do-not-run-as-root, bug-408505,
  bug-404448, osgi-unpack-sources
- Add patch to use mockito-core 1.9