Blob Blame Raw
Epoch:	1
ExclusiveArch: %{ix86} x86_64 ppc

%define gcj_support 	1
%define pkg_summary     An open, extensible IDE
%define section         free
%define swt_version     3128
%define eclipse_major   3
%define eclipse_minor   1
%define eclipse_majmin  %{eclipse_major}.%{eclipse_minor}
%define eclipse_micro   0
%define eclipse_oldmajminmic  3.0.0
%define libname         libswt3
%define build_id        I20050401-1645

# All arches line up except i386 -> x86
%ifarch %{ix86}
%define eclipse_arch    x86
%else
%define eclipse_arch   %{_arch}
%endif

Summary:        %{pkg_summary}
Name:           eclipse
Version:        %{eclipse_majmin}.%{eclipse_micro}_fc
Release:        0.M6.22
License:        EPL
Group:          Text Editors/Integrated Development Environments (IDE)
URL:            http://www.eclipse.org/
Source0: 	http://download.eclipse.org/eclipse/downloads/drops/S-3.1M6-200504011645/eclipse-sourceBuild-srcIncluded-3.1M6.zip
Source1:        %{name}.script
Source2:        %{name}.desktop
Source5:        %{name}-48.png
Source6:        %{name}.conf
Source7:        %{name}-jdt.install
Source8:        %{name}-pde.install     
Source9:        %{name}-platform.install
Source10:       %{libname}-gtk2.install
# this should be replaced with:
# Source11:	%{name}-native-splash-3.1.png
# when Eclipse 3.1 comes out.
Source11:	%{name}-native-splash-3.1-M6.png
Source16:       %{name}-copy-platform.sh
Source17:       %{name}-efj-wrapper.sh

# Build libswt-mozilla
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=71637
Patch0:         %{name}-make-linux.patch
# Work around libgcj #19132
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19132
Patch1:		%{name}-textsearch.patch
# Build JNI libs
# FIXME:  these should be built by upstream build method
# http://people.redhat.com/bkonrath/eclipse/buildable-source-zips.html
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=71637
Patch2:		%{name}-build.patch
Patch3:	        %{name}-swt-libgcjawt.patch
Patch4:		%{name}-libupdatebuild.patch
Patch5:		%{name}-libupdatebuild2.patch
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=86848
Patch10:	%{name}-icon.patch
# Use installed mozilla libs and headers
Patch11:	%{name}-libswt-mozilla.patch
# Copy over the source files first
Patch12:	%{name}-libswt-mozilla2.patch
# We can't really commit to doing builds for these arches upstream, but we
# need at least eclipse-ecj to run on them as it's our bytecode compiler for
# Fedora.
Patch13:	%{name}-s390ands390x.patch
# Stupid spaces in directories ...
Patch14:	%{name}-s390ands390x2.patch
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=82916
Patch15:	%{name}-build-activeHelpSample.jar.patch
# Make find work.  See
# https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=111736
Patch16:	%{name}-find.patch
# Build swttools.jar
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=90364
Patch18: 	%{name}-swttools.patch
# Add command-line source code formatter
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=75333
Patch19: 	%{name}-efj.patch
# GNU-style JDT formatter
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=91770
Patch20: 	%{name}-gnuformatterjdt.patch
Patch21: 	%{name}-gnuformatterjdtui.patch
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=90630
Patch22: 	%{name}-updatehomedir.patch
#https://bugs.eclipse.org/bugs/show_bug.cgi?id=82988
Patch23:	%{name}-importArchivedProj.patch
#https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=155853
#FIXME: should be removed for 3.1M7
Patch24: 	%{name}-combo-bug-backport.patch
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=88364
Patch25: 	%{name}-ecj-options.patch

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires:  ant
BuildRequires:  perl
BuildRequires:  jpackage-utils >= 0:1.5, make, gcc
BuildRequires:  gnome-vfs2-devel
BuildRequires:  gtk2-devel
BuildRequires:  glib2-devel
BuildRequires:  gcc-c++
BuildRequires:  mozilla >= 37:1.7.8
BuildRequires:  mozilla-devel >= 37:1.7.8
BuildRequires:  mozilla-nspr-devel >= 37:1.7.8
BuildRequires:  xorg-x11-devel
%if %{gcj_support}
BuildRequires:	gcc-java >= 4.0.0-2
BuildRequires:	java-1.4.2-gcj-compat-devel >= 1.4.2.0-40jpp_24rh
BuildRequires:  dos2unix
%else
BuildRequires:	java-devel >= 1.4.2
%endif

BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging
#BuildRequires: ant-apache-bsf ant-commons-net lucene 
BuildRequires: ant-jdepend ant-jmf ant-junit ant-nodeps ant-swing ant-trax ant-jsch
BuildRequires: jsch >= 0:0.1.18-1jpp
BuildRequires: jakarta-commons-beanutils jakarta-commons-collections jakarta-commons-digester jakarta-commons-logging jakarta-commons-modeler mx4j
#BuildRequires: servlet lucene-demo jasper4 tomcat4
BuildRequires: regexp 
BuildRequires: junit >= 3.8.1-3jpp
%if %{gcj_support}
Requires(post,postun): java-1.4.2-gcj-compat
%endif

%description
The Eclipse Platform is designed for building integrated development
environments (IDEs) that can be used to create applications as diverse
as web sites, embedded Java(tm) programs, C++ programs, and Enterprise
JavaBeans(tm).

%package        ecj
Summary:        Eclipse Compiler for Java
Group:          Development/Languages
Obsoletes:	ecj
Provides:	ecj
%if %{gcj_support}
Requires:	libgcj >= 4.0.0-2
Requires(post,postun): java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_24rh
%else
Requires:	java >= 1.4.2
%endif

%description    ecj
Eclipse compiler for Java.

%package        platform
Summary:        Eclipse platform common files
Group:          Text Editors/Integrated Development Environments (IDE)
Provides:       %{name} = %{epoch}:%{version}-%{release}
Obsoletes:	%{name}-sdk %{name}-ui %{name}-gtk2 eclipse
Provides:	%{name}-sdk = %{epoch}:%{version}-%{release}
Provides:       %{name}-ui = %{epoch}:%{version}-%{release}
Provides:       %{name}-gtk2 = %{epoch}:%{version}-%{release}
%if %{gcj_support}
Requires:	java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_24rh
Requires:	libgcj >= 4.0.0-2
Requires(post,postun): java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_24rh
%else
Requires:	java >= 1.4.2
%endif
Requires:       %{libname}-gtk2 = %{epoch}:%{version}-%{release}
Requires:       /usr/bin/perl
Requires:       /usr/bin/mozilla
PreReq:         gtk2 >= 2.6

Requires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging
#Requires: ant-apache-bsf ant-commons-net lucene 
Requires: ant-jdepend ant-jmf ant-junit ant-nodeps ant-swing ant-trax ant-jsch
Requires: jsch >= 0:0.1.18-1jpp
Requires: jakarta-commons-beanutils jakarta-commons-collections jakarta-commons-digester jakarta-commons-logging jakarta-commons-modeler mx4j
#Requires: servlet lucene-demo jasper4 tomcat4
Requires: regexp

%description    platform
Eclipse platform common files.  This package now contains the GTK2 UI (the
former eclipse-gtk2 package).

%package        platform-devel
Summary:        Eclipse platform Source
Group:          Text Editors/Integrated Development Environments (IDE)
Requires:       %{name}-platform = %{epoch}:%{version}-%{release}

%description    platform-devel
Source for Eclipse platform for use within Eclipse.

%package        jdt
Summary:        Eclipse Java development tools
Group:          Text Editors/Integrated Development Environments (IDE)
Requires:       %{name}-platform = %{epoch}:%{version}-%{release}
Requires:       %{name}-ecj = %{epoch}:%{version}-%{release}
Requires:	junit >= 3.8.1-3jpp
%if %{gcj_support}
Requires:	libgcj >= 4.0.0-2
Requires(post,postun): java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_24rh
%endif

%description    jdt
Eclipse Java developments tools.

%package        jdt-devel
Summary:        Eclipse JDT Source
Group:          Text Editors/Integrated Development Environments (IDE)
Requires:       %{name}-jdt = %{epoch}:%{version}-%{release}

%description    jdt-devel
Source for JDT for use within Eclipse.

%package        pde
Summary:        Eclipse PDE
Group:          Text Editors/Integrated Development Environments (IDE)
Requires:       %{name}-jdt = %{epoch}:%{version}-%{release}
Requires:       %{name}-platform-devel = %{epoch}:%{version}-%{release}
%if %{gcj_support}
Requires(post,postun): java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_24rh
Requires:	libgcj >= 4.0.0-2
%endif

%package        pde-devel
Summary:        Eclipse PDE Source
Group:          Text Editors/Integrated Development Environments (IDE)
Requires:       %{name}-pde = %{epoch}:%{version}-%{release}
Requires:       %{name}-jdt-devel = %{epoch}:%{version}-%{release}
Obsoletes:	%{name}-source
Provides:       %{name}-source = %{epoch}:%{version}-%{release}

%description    pde-devel
Source for PDE for use within Eclipse.

%description    pde
Eclipse PDE.

%package     -n %{libname}-gtk2
Summary:        SWT Library for GTK2
Group:          Text Editors/Integrated Development Environments (IDE)
%if %{gcj_support}
Requires(post,postun): java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_24rh
Requires:	libgcj >= 4.0.0-2
%endif

%description -n %{libname}-gtk2
SWT Library for GTK2.

%prep
%setup -q -c

# I hate spaces in paths with patch!
pushd plugins/org.eclipse.swt/Eclipse\ SWT\ PI/gtk/library
%patch0 -p0
%patch11 -p0
%if %{gcj_support}
%patch3 -p0
%patch14 -p0
%endif
popd
%if %{gcj_support}
%patch1 -p0
%endif
%patch2 -p0
%patch4 -p0
%patch5 -p0
%patch10 -p0
%patch12 -p0
%if %{gcj_support}
%patch13 -p1
%endif
pushd plugins/org.eclipse.platform.doc.isv
rm -f activeHelpSample.jar
%patch15 -p0
popd
%if %{gcj_support}
%patch16 -p0
%endif
pushd plugins/org.eclipse.swt.gtk64
%patch18 -p0
popd
pushd plugins/org.eclipse.jdt.core
%patch19 -p0
%patch20 -p0
popd
pushd plugins/org.eclipse.jdt.ui
%patch21 -p0
popd
pushd plugins/org.eclipse.update.ui
%patch22 -p0
popd
pushd plugins/org.eclipse.ui.ide
%patch23 -p0
popd
pushd plugins/org.eclipse.swt/Eclipse\ SWT
%patch24 -p0
popd
pushd plugins/org.eclipse.jdt.core
%patch25 -p0
popd

%if %{gcj_support}
  # Fedora splash screen.
  pushd plugins/org.eclipse.platform
  cp %{SOURCE11} splash.bmp
  popd

  # we need to add the ecj-options patch to the bootstrap compiler
  pushd jdtcoresrc/src
  unzip jdtcore.zip
  mv jdtcore.zip{,.orig}
  dos2unix org/eclipse/jdt/internal/compiler/batch/Main.java
  dos2unix org/eclipse/jdt/internal/compiler/batch/messages.properties
%patch25 -p1
  zip -9 -r jdtcore.zip *
  rm -r org
  popd
%endif

# Remove existing .sos
find -name \*.so -exec rm "-f" "{}" ";"

# Symlinks

## BEGIN ANT ##
ln -sf %{_javadir}/ant/ant-antlr.jar plugins/org.apache.ant/lib/ant-antlr.jar
ln -sf %{_javadir}/ant/ant-apache-bcel.jar plugins/org.apache.ant/lib/ant-apache-bcel.jar
#ln -sf %{_javadir}/ant/ant-apache-bsf.jar plugins/org.apache.ant/lib/ant-apache-bsf.jar
ln -sf %{_javadir}/ant/ant-apache-log4j.jar plugins/org.apache.ant/lib/ant-apache-log4j.jar
ln -sf %{_javadir}/ant/ant-apache-oro.jar plugins/org.apache.ant/lib/ant-apache-oro.jar
ln -sf %{_javadir}/ant/ant-apache-regexp.jar plugins/org.apache.ant/lib/ant-apache-regexp.jar
ln -sf %{_javadir}/ant/ant-apache-resolver.jar plugins/org.apache.ant/lib/ant-apache-resolver.jar
ln -sf %{_javadir}/ant/ant-commons-logging.jar plugins/org.apache.ant/lib/ant-commons-logging.jar
#ln -sf %{_javadir}/ant/ant-commons-net.jar plugins/org.apache.ant/lib/ant-commons-net.jar
# ------------------------------------------------------------------------
# FIXME:  can we just remove these?
#rm -f plugins/org.apache.ant/lib/ant-icontract.jar
##ln -sf %{_javadir}/ant/ant-icontract.jar plugins/org.apache.ant/lib/ant-icontract.jar
#rm -f plugins/org.apache.ant/lib/ant-jai.jar
##ln -sf %{_javadir}/ant/ant-jai.jar plugins/org.apache.ant/lib/ant-jai.jar
#ln -sf %{_javadir}/ant.jar plugins/org.apache.ant/lib/ant.jar
#rm -f plugins/org.apache.ant/lib/ant-javamail.jar
##ln -sf %{_javadir}/ant/ant-javamail.jar plugins/org.apache.ant/lib/ant-javamail.jar
# ------------------------------------------------------------------------
ln -sf %{_javadir}/ant/ant-jdepend.jar plugins/org.apache.ant/lib/ant-jdepend.jar
ln -sf %{_javadir}/ant/ant-jmf.jar plugins/org.apache.ant/lib/ant-jmf.jar
ln -sf %{_javadir}/ant/ant-jsch.jar plugins/org.apache.ant/lib/ant-jsch.jar
ln -sf %{_javadir}/ant/ant-junit.jar plugins/org.apache.ant/lib/ant-junit.jar
ln -sf %{_javadir}/ant-launcher.jar plugins/org.apache.ant/lib/ant-launcher.jar
# ------------------------------------------------------------------------
ln -sf %{_javadir}/ant/ant-nodeps.jar plugins/org.apache.ant/lib/ant-nodeps.jar
# ------------------------------------------------------------------------
## FIXME:  can we just remove these?
#rm -f plugins/org.apache.ant/lib/ant-starteam.jar
##ln -sf %{_javadir}/ant/ant-starteam.jar plugins/org.apache.ant/lib/ant-starteam.jar
#rm -f plugins/org.apache.ant/lib/ant-stylebook.jar
##ln -sf %{_javadir}/ant/ant-stylebook.jar plugins/org.apache.ant/lib/ant-stylebook.jar
# ------------------------------------------------------------------------
ln -sf %{_javadir}/ant/ant-swing.jar plugins/org.apache.ant/lib/ant-swing.jar
ln -sf %{_javadir}/ant/ant-trax.jar plugins/org.apache.ant/lib/ant-trax.jar
# ------------------------------------------------------------------------
# FIXME:  can we just remove these?
#rm -f plugins/org.apache.ant/lib/ant-vaj.jar
##ln -sf %{_javadir}/ant/ant-vaj.jar plugins/org.apache.ant/lib/ant-vaj.jar
#rm -f plugins/org.apache.ant/lib/ant-weblogic.jar
##ln -sf %{_javadir}/ant/ant-weblogic.jar plugins/org.apache.ant/lib/ant-weblogic.jar
#rm -f plugins/org.apache.ant/lib/ant-xalan1.jar
##ln -sf %{_javadir}/ant/ant-xalan1.jar plugins/org.apache.ant/lib/ant-xalan1.jar
#rm -f plugins/org.apache.ant/lib/ant-xslp.jar
##ln -sf %{_javadir}/ant/ant-xslp.jar plugins/org.apache.ant/lib/ant-xslp.jar
# ------------------------------------------------------------------------
## END ANT ##
#ln -sf %{_javadir}/lucene.jar plugins/org.apache.lucene/lucene-1.4.3.jar
#ln -sf %{_datadir}/lucene/lucene-demos-1.4.3.jar plugins/org.apache.lucene/parser.jar
# plugins/org.eclipse.core.boot/boot.jar
ln -sf %{_javadir}/ant.jar plugins/org.eclipse.core.resources/lib/ant.jar
# plugins/org.eclipse.core.resources/lib/antsupport.jar
# plugins/org.eclipse.osgi/osgi/collx.jar
# plugins/org.eclipse.osgi/osgi/ee.foundation.jar
# plugins/org.eclipse.osgi/osgi/ee.minimum.jar
# plugins/org.eclipse.osgi/osgi/exceptions.jar
# plugins/org.eclipse.osgi/osgi/osgi-r3-jdk131-notsigned.jar
#ln -sf %{_javadir}/xml-commons-apis.jar plugins/org.eclipse.osgi/osgi/xmlParserAPIs.jar
# plugins/org.eclipse.osgi.services/services.jar
# plugins/org.eclipse.osgi.util/util.jar
ln -sf %{_javadir}/jsch.jar plugins/org.eclipse.team.cvs.ssh2/jsch-0.1.18.jar
# plugins/org.eclipse.text/text.jar
# ------------------------------------------------------------------------
# FIXME:  need tomcat4 rpm
## BEGIN TOMCAT4 ##
#ln -sf %{tomcat4dir}/bin/bootstrap.jar plugins/org.eclipse.tomcat/bootstrap.jar
#ln -sf %{tomcat4dir}/server/lib/catalina.jar plugins/org.eclipse.tomcat/catalina.jar
#ln -sf %{_javadir}/commons-beanutils.jar plugins/org.eclipse.tomcat/commons-beanutils.jar
#ln -sf %{_javadir}/commons-collections.jar plugins/org.eclipse.tomcat/commons-collections.jar
#ln -sf %{_javadir}/commons-digester.jar plugins/org.eclipse.tomcat/commons-digester.jar
#ln -sf %{_javadir}/commons-logging-api.jar plugins/org.eclipse.tomcat/commons-logging-api.jar
#ln -sf %{_javadir}/commons-logging.jar plugins/org.eclipse.tomcat/commons-logging.jar
#ln -sf %{_javadir}/commons-modeler.jar plugins/org.eclipse.tomcat/commons-modeler.jar
#ln -sf %{_javadir}/regexp.jar plugins/org.eclipse.tomcat/jakarta-regexp-1.3.jar
#ln -sf %{_javadir}/jasper4-compiler.jar  plugins/org.eclipse.tomcat/jasper-compiler.jar
#ln -sf %{_javadir}/jasper4-runtime.jar plugins/org.eclipse.tomcat/jasper-runtime.jar
#ln -sf %{_javadir}/mx4j/mx4j-jmx.jar plugins/org.eclipse.tomcat/mx4j-jmx.jar
#ln -sf %{tomcat4dir}/common/lib/naming-common.jar plugins/org.eclipse.tomcat/naming-common.jar
#ln -sf %{tomcat4dir}/common/lib/naming-factory.jar plugins/org.eclipse.tomcat/naming-factory.jar
#ln -sf %{tomcat4dir}/common/lib/naming-resources.jar plugins/org.eclipse.tomcat/naming-resources.jar
#ln -sf %{_javadir}/servlet.jar plugins/org.eclipse.tomcat/servlet.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-common.jar plugins/org.eclipse.tomcat/servlets-common.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-default.jar plugins/org.eclipse.tomcat/servlets-default.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-invoker.jar plugins/org.eclipse.tomcat/servlets-invoker.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-manager.jar plugins/org.eclipse.tomcat/servlets-manager.jar
#ln -sf %{tomcat4dir}/server/lib/tomcat-coyote.jar plugins/org.eclipse.tomcat/tomcat-coyote.jar
#ln -sf %{tomcat4dir}/server/lib/tomcat-http11.jar plugins/org.eclipse.tomcat/tomcat-http11.jar
#ln -sf %{tomcat4dir}/server/lib/tomcat-util.jar plugins/org.eclipse.tomcat/tomcat-util.jar
## END TOMCAT4 ##
# ------------------------------------------------------------------------
ln -sf %{_javadir}/junit.jar plugins/org.junit/junit.jar

rm -f *.jar
# /usr/lib -> /usr/lib64
pushd plugins/org.eclipse.swt/Eclipse\ SWT\ PI/gtk/library
  perl -pe 's|/usr/lib/|%{_libdir}/|g' \
    build.sh > build.sh.patched
  mv build.sh.patched build.sh
popd

%build
ORIGCLASSPATH=$CLASSPATH

%if %{gcj_support}
  # Bootstrapping is 3 parts:
  # 1. Build ecj with gcj -C 
  # 2. Build ecj with gcj-built ecj ("javac")
  # 3. Re-build ecj with output of 2.
  
  # Unzip the "stable compiler" source into a temp dir and build it.
  # Note:  we don't want to build the CompilerAdapter.
  mkdir ecj-bootstrap-tmp
  unzip -qq -d ecj-bootstrap-tmp jdtcoresrc/src/jdtcore.zip
  rm -f ecj-bootstrap-tmp/org/eclipse/jdt/core/JDTCompilerAdapter.java
  
  # 1a. Build ecj with gcj -C
  pushd ecj-bootstrap-tmp
  for f in `find -name '*.java' | cut -c 3-`; do
      gcj -Wno-deprecated -C $f
  done
  find -name '*.class' -or -name '*.properties' -or -name '*.rsc' |\
      xargs jar cf ../ecj-bootstrap.jar
  popd
  
  # Delete our modified jdtcore
  rm -rf ecj-bootstrap-tmp
  
  ## 1b. Natively-compile it
  #gcj -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \
  #  -o ecj-bootstrap.jar.so ecj-bootstrap.jar
  #
  #gcj-dbtool -n ecj-bootstrap.db 30000
  #gcj-dbtool -a ecj-bootstrap.db ecj-bootstrap.jar{,.so}
  #
  ## 2a. Build ecj
  export CLASSPATH=ecj-bootstrap.jar:$ORIGCLASSPATH
  #export GCJ_PROPERTIES="gnu.gcj.precompiled.db.path=`pwd`/ecj-bootstrap.db"
%endif
ant -buildfile jdtcoresrc/compilejdtcorewithjavac.xml

%if %{gcj_support}
#  # 2b. Natively-compile ecj
#  gcj -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \
#    -o jdtcoresrc/jdtcore.jar.so jdtcoresrc/jdtcore.jar
#  
#  gcj-dbtool -n jdtcoresrc/jdtcore.db 30000
#  gcj-dbtool -a jdtcoresrc/jdtcore.db jdtcoresrc/jdtcore.jar{,.so}
#  export GCJ_PROPERTIES="gnu.gcj.precompiled.db.path=`pwd`/jdtcoresrc/jdtcore.db"
  
  # Remove our gcj-built ecj
  #rm ecj-bootstrap.db ecj-bootstrap.jar
  rm ecj-bootstrap.jar
%endif

# 3. Use this ecj to rebuild itself
export CLASSPATH=`pwd`/jdtcoresrc/jdtcore.jar:$ORIGCLASSPATH
ant -buildfile jdtcoresrc/compilejdtcore.xml

%if %{gcj_support}
#  # Natively-compile it
#  gcj -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \
#    -o jdtcore.jar.so jdtcore.jar
#  gcj-dbtool -n jdtcore.db 30000
#  gcj-dbtool -a jdtcore.db jdtcore.jar{,.so}
#  export GCJ_PROPERTIES="gnu.gcj.precompiled.db.path=`pwd`/jdtcore.db"
#  
#  # Remove old native bits
#  rm jdtcoresrc/jdtcore.db jdtcoresrc/jdtcore.jar.so
%endif

# Build the rest of Eclipse
export CLASSPATH=`pwd`/jdtcore.jar:$ORIGCLASSPATH
ant \
  -Dnobootstrap=true \
  -DinstallOs=linux -DinstallWs=gtk -DinstallArch=%{eclipse_arch} \
  -Dlibsconfig=true

%if %{gcj_support}
  pushd result
  # De-compress resulting tarball
  tar zxf org.eclipse.sdk-%{build_id}-linux.gtk.%{eclipse_arch}.tar.gz
  
  pushd eclipse
  
  # Remove the jars that we're using from other packages so that we don't
  # natively-compile them again
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-antlr.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-apache-bcel.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-apache-log4j.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-apache-oro.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-apache-regexp.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-apache-resolver.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-commons-logging.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-jdepend.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-jmf.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-jsch.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-junit.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-launcher.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-nodeps.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-swing.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant-trax.jar
  rm -f plugins/org.apache.ant_1.6.2/lib/ant.jar
  rm -f plugins/org.eclipse.team.cvs.ssh2_3.1.0/jsch-0.1.18.jar
  rm -f plugins/org.junit_3.8.1/junit.jar
  
  # Native build -- do -O2 on x86 and ppc only (for now)
  # see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20606, for example
  %ifarch %{ix86} ppc
    mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}
    for j in `find -name \*.jar`; do
        d=".%{_libdir}/%{name}/`dirname $j | sed 's:\./::'`";
        mkdir -p $d;
        gcj -g -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic -O2 \
          -o $d/`basename $j`.so $j;
    done
  %else
    mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}
    for j in `find -name \*.jar`; do
        d=".%{_libdir}/%{name}/`dirname $j | sed 's:\./::'`";
        mkdir -p $d;
        gcj -g -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic -O1 \
          -o $d/`basename $j`.so $j;
    done
  %endif
  
  # FIXME:  temporarily disable org.eclipse.ui.workbench_3.1.0.jar.so
  # see:  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=151919
  mv \
    .%{_libdir}/%{name}/plugins/org.eclipse.ui.workbench_%{eclipse_majmin}.%{eclipse_micro}.jar.so{,.bak}
  # FIXME:  temporarily disable org.eclipse.ui.forms_3.1.0.jar.so 
  # see:  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=146463
  mv \
    .%{_libdir}/%{name}/plugins/org.eclipse.ui.forms_%{eclipse_majmin}.%{eclipse_micro}.jar.so{,.bak}
  
  pushd .%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0
    gcj -g -O2 --main=org.eclipse.jdt.internal.compiler.batch.Main \
      -Wl,-R,%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0 \
      jdtcore.jar.so jdtCompilerAdapter.jar.so -o ecj
  popd
  
  # Tar up the native libs
  tar czf ../%{name}-nativelycompiledjars.tar.gz .%{_libdir}/%{name}
  
  popd
  
  # Remove expanded eclipse build
  rm -rf eclipse

  popd
%endif

%install
rm -rf $RPM_BUILD_ROOT

install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}

tar -C $RPM_BUILD_ROOT%{_datadir} -zxf \
  result/org.eclipse.sdk-%{build_id}-linux.gtk.%{eclipse_arch}.tar.gz

# Binaries, libraries, and natively-built shared libraries
install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}

%if %{gcj_support}
# Natively-compiled jars (shared libraries)
tar -C $RPM_BUILD_ROOT -zxf result/%{name}-nativelycompiledjars.tar.gz
%endif

install -d -m 755 $RPM_BUILD_ROOT%{_bindir}

%if %{gcj_support}
# Install ecj binary
mv $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0/ecj \
  $RPM_BUILD_ROOT%{_bindir}
chmod a+x $RPM_BUILD_ROOT%{_bindir}/ecj

# Directory to hold all the .jar->.so mapping dbs
install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`
install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`.d
%endif

# Eclipse binary
mv $RPM_BUILD_ROOT%{_datadir}/%{name}/eclipse \
  $RPM_BUILD_ROOT%{_libdir}/%{name}/eclipse

pushd $RPM_BUILD_ROOT%{_datadir}/%{name}
ln -sf %{_libdir}/%{name}/eclipse eclipse

## JNI libraries
#cp -p plugins/org.eclipse.update.core.linux_%{eclipse_oldmajminmic}/os/linux/%{eclipse_arch}/libupdate.so \
#  $RPM_BUILD_ROOT%{_libdir}/%{name}/
#cp -p plugins/org.eclipse.core.resources.linux_%{eclipse_oldmajminmic}/os/linux/%{eclipse_arch}/libcore_*.so \
#  $RPM_BUILD_ROOT%{_libdir}/%{name}/
#suff=
#%ifarch alpha ia64 ppc64 sparc64 x86_64
#suff=64
#%endif
#cp -p plugins/org.eclipse.swt.gtk${suff}_%{eclipse_majmin}.%{eclipse_micro}/os/linux/%{eclipse_arch}/libswt*.so \
#  $RPM_BUILD_ROOT%{_libdir}/%{name}/
popd

pushd $RPM_BUILD_ROOT%{_libdir}/%{name}
chmod -R 755 eclipse *.so
popd

#### begin libswt-gtk2 symlinks
#pushd $RPM_BUILD_ROOT%{_libdir}
#for base in awt-gtk mozilla-gtk atk-gtk gnome-gtk gtk pi-gtk; do
#  ln -sf %{_libdir}/%{name}/libswt-${base}-%{swt_version}.so \
#         libswt-${base}-%{swt_version}.so
#done
#popd

install -d -m 755 $RPM_BUILD_ROOT%{_javadir}

pushd $RPM_BUILD_ROOT%{_javadir}
ln -sf %{_datadir}/%{name}/plugins/org.eclipse.swt.gtk${suff}_%{eclipse_majmin}.%{eclipse_micro}.jar swt-gtk-%{version}.jar
#ln -sf %{_datadir}/%{name}/plugins/org.eclipse.swt.gtk${suff}_%{eclipse_majmin}.%{eclipse_micro}/ws/gtk/swt-pi.jar swt-pi-gtk-%{version}.jar
#ln -sf %{_datadir}/%{name}/plugins/org.eclipse.swt.gtk${suff}_%{eclipse_majmin}.%{eclipse_micro}/ws/gtk/swt-mozilla.jar swt-mozilla-%{version}.jar
#ln -sf %{_datadir}/%{name}/plugins/org.eclipse.swt.gtk${suff}_%{eclipse_majmin}.%{eclipse_micro}/ws/gtk/swt-cairo.jar swt-cairo-%{version}.jar
popd
### end libswt-gtk2 symlinks

# Launching script
mkdir -p $RPM_BUILD_ROOT%{_bindir}
perl -pe \
  's|/usr/lib/eclipse/|%{_libdir}/%{name}/|g ;
   s|/etc/|%{_sysconfdir}/|g ;
   s|/usr/bin/|%{_bindir}/|g' \
  %{SOURCE1} > $RPM_BUILD_ROOT%{_bindir}/eclipse
chmod a+x $RPM_BUILD_ROOT%{_bindir}/eclipse

# Default config
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
perl -pe 's|/usr/lib/eclipse/|%{_datadir}/%{name}/|g' \
  %{SOURCE6} > $RPM_BUILD_ROOT%{_sysconfdir}/eclipse.conf

# rh/freedesktop.org icons
install -p -D -m0644 %{SOURCE5} \
  $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
install -d -m0755 $RPM_BUILD_ROOT%{_datadir}/pixmaps
ln -s ../icons/hicolor/48x48/apps/%{name}.png \
  $RPM_BUILD_ROOT%{_datadir}/pixmaps
install -d -m0755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps
ln -s ../../../../%{name}/plugins/org.eclipse.platform_%{eclipse_majmin}.%{eclipse_micro}/eclipse32.gif \
  $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
install -d -m0755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps
ln -s ../../../../%{name}/plugins/org.eclipse.platform_%{eclipse_majmin}.%{eclipse_micro}/eclipse.gif \
  $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
# Remove unused icon.xpm
rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/icon.xpm

# install the efj wrapper script and change the Eclipse installation dir
install -p -D -m0755 %{SOURCE17} $RPM_BUILD_ROOT%{_bindir}/efj
sed --in-place "s:startup.jar:%{_datadir}/%{name}/startup.jar:" \
  $RPM_BUILD_ROOT%{_bindir}/efj 

# A sanity check.
desktop-file-validate %{SOURCE2}

# freedesktop.org menu entry
install -p -D -m0644 %{SOURCE2} \
  $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop

cat %{SOURCE7} > %{name}-jdt.install
cat %{SOURCE8} > %{name}-pde.install
cat %{SOURCE9} > %{name}-platform.install
cat %{SOURCE10} > %{libname}-gtk2.install

cat >> $RPM_BUILD_ROOT%{_datadir}/%{name}/.eclipseproduct << EOF
name=Eclipse Platform
id=org.eclipse.platform
version=%{eclipse_majmin}.%{eclipse_micro}
EOF

# Create a script that can be used to make a symlink tree of the
# eclipse platform.
cp %{SOURCE16} copy-platform
(
  cd $RPM_BUILD_ROOT%{_datadir}/%{name}
  ls -d * | egrep -v '^(plugins|features)$'
  ls -d plugins/* features/*
) |
sed -e's/^\(.*\)$/\1 \1/' -e's,^,ln -s $eclipse/,' >> copy-platform

mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/buildscripts
cp copy-platform $RPM_BUILD_ROOT%{_datadir}/%{name}/buildscripts

pushd $RPM_BUILD_ROOT%{_datadir}/%{name}
## BEGIN ANT ##
ln -sf %{_javadir}/ant/ant-antlr.jar plugins/org.apache.ant_*/lib/ant-antlr.jar
ln -sf %{_javadir}/ant/ant-apache-bcel.jar plugins/org.apache.ant_*/lib/ant-apache-bcel.jar
#ln -sf %{_javadir}/ant/ant-apache-bsf.jar plugins/org.apache.ant_*/lib/ant-apache-bsf.jar
ln -sf %{_javadir}/ant/ant-apache-log4j.jar plugins/org.apache.ant_*/lib/ant-apache-log4j.jar
ln -sf %{_javadir}/ant/ant-apache-oro.jar plugins/org.apache.ant_*/lib/ant-apache-oro.jar
ln -sf %{_javadir}/ant/ant-apache-regexp.jar plugins/org.apache.ant_*/lib/ant-apache-regexp.jar
ln -sf %{_javadir}/ant/ant-apache-resolver.jar plugins/org.apache.ant_*/lib/ant-apache-resolver.jar
ln -sf %{_javadir}/ant/ant-commons-logging.jar plugins/org.apache.ant_*/lib/ant-commons-logging.jar
#ln -sf %{_javadir}/ant/ant-commons-net.jar plugins/org.apache.ant_*/lib/ant-commons-net.jar
#ln -sf %{_javadir}/ant/ant-icontract.jar plugins/org.apache.ant_*/lib/ant-icontract.jar
#ln -sf %{_javadir}/ant/ant-jai.jar plugins/org.apache.ant_*/lib/ant-jai.jar
ln -sf %{_javadir}/ant.jar plugins/org.apache.ant_*/lib/ant.jar
#ln -sf %{_javadir}/ant/ant-javamail.jar plugins/org.apache.ant_*/lib/ant-javamail.jar
ln -sf %{_javadir}/ant/ant-jdepend.jar plugins/org.apache.ant_*/lib/ant-jdepend.jar
ln -sf %{_javadir}/ant/ant-jmf.jar plugins/org.apache.ant_*/lib/ant-jmf.jar
ln -sf %{_javadir}/ant/ant-jsch.jar plugins/org.apache.ant_*/lib/ant-jsch.jar
ln -sf %{_javadir}/ant/ant-junit.jar plugins/org.apache.ant_*/lib/ant-junit.jar
ln -sf %{_javadir}/ant-launcher.jar plugins/org.apache.ant_*/lib/ant-launcher.jar
ln -sf %{_javadir}/ant/ant-nodeps.jar plugins/org.apache.ant_*/lib/ant-nodeps.jar
#ln -sf %{_javadir}/ant/ant-starteam.jar plugins/org.apache.ant_*/lib/ant-starteam.jar
#ln -sf %{_javadir}/ant/ant-stylebook.jar plugins/org.apache.ant_*/lib/ant-stylebook.jar
ln -sf %{_javadir}/ant/ant-swing.jar plugins/org.apache.ant_*/lib/ant-swing.jar
ln -sf %{_javadir}/ant/ant-trax.jar plugins/org.apache.ant_*/lib/ant-trax.jar
#ln -sf %{_javadir}/ant/ant-vaj.jar plugins/org.apache.ant_*/lib/ant-vaj.jar
#ln -sf %{_javadir}/ant/ant-weblogic.jar plugins/org.apache.ant_*/lib/ant-weblogic.jar
#ln -sf %{_javadir}/ant/ant-xalan1.jar plugins/org.apache.ant_*/lib/ant-xalan1.jar
#ln -sf %{_javadir}/ant/ant-xslp.jar plugins/org.apache.ant_*/lib/ant-xslp.jar
## END ANT ##
#ln -sf %{_javadir}/lucene.jar plugins/org.apache.lucene_*/lucene-1.4.3.jar
#ln -sf %{_datadir}/lucene/lucene-demos-1.4.3.jar plugins/org.apache.lucene_*/parser.jar
# plugins/org.eclipse.core.boot_*/boot.jar
###ln -sf %{_javadir}/ant.jar plugins/org.eclipse.core.resources_*/lib/ant.jar
# plugins/org.eclipse.core.resources_*/lib/antsupport.jar
# plugins/org.eclipse.osgi_*/osgi/collx.jar
# plugins/org.eclipse.osgi_*/osgi/ee.foundation.jar
# plugins/org.eclipse.osgi_*/osgi/ee.minimum.jar
# plugins/org.eclipse.osgi_*/osgi/exceptions.jar
# plugins/org.eclipse.osgi_*/osgi/osgi-r3-jdk131-notsigned.jar
###ln -sf %{_javadir}/xml-commons-apis.jar plugins/org.eclipse.osgi_*/osgi/xmlParserAPIs.jar
# plugins/org.eclipse.osgi.services_*/services.jar
# plugins/org.eclipse.osgi.util_*/util.jar
ln -sf %{_javadir}/jsch.jar plugins/org.eclipse.team.cvs.ssh2_*/jsch-0.1.18.jar
# plugins/org.eclipse.text/text_*.jar
## BEGIN TOMCAT4 ##
##ln -sf %{tomcat4dir}/bin/bootstrap.jar plugins/org.eclipse.tomcat_*/bootstrap.jar
#ln -sf %{tomcat4dir}/server/lib/catalina.jar plugins/org.eclipse.tomcat_*/catalina.jar
#ln -sf %{_javadir}/commons-beanutils.jar plugins/org.eclipse.tomcat_*/commons-beanutils.jar
#ln -sf %{_javadir}/commons-collections.jar plugins/org.eclipse.tomcat_*/commons-collections.jar
#ln -sf %{_javadir}/commons-digester.jar plugins/org.eclipse.tomcat_*/commons-digester.jar
#ln -sf %{_javadir}/commons-logging-api.jar plugins/org.eclipse.tomcat_*/commons-logging-api.jar
#ln -sf %{_javadir}/commons-logging.jar plugins/org.eclipse.tomcat_*/commons-logging.jar
#ln -sf %{_javadir}/commons-modeler.jar plugins/org.eclipse.tomcat_*/commons-modeler.jar
#ln -sf %{_javadir}/regexp.jar plugins/org.eclipse.tomcat_*/jakarta-regexp-1.3.jar
#ln -sf %{_javadir}/jasper4-compiler.jar  plugins/org.eclipse.tomcat_*/jasper-compiler.jar
#ln -sf %{_javadir}/jasper4-runtime.jar plugins/org.eclipse.tomcat_*/jasper-runtime.jar
#ln -sf %{_javadir}/mx4j/mx4j-jmx.jar plugins/org.eclipse.tomcat_*/mx4j-jmx.jar
#ln -sf %{tomcat4dir}/common/lib/naming-common.jar plugins/org.eclipse.tomcat_*/naming-common.jar
#ln -sf %{tomcat4dir}/common/lib/naming-factory.jar plugins/org.eclipse.tomcat_*/naming-factory.jar
#ln -sf %{tomcat4dir}/common/lib/naming-resources.jar plugins/org.eclipse.tomcat_*/naming-resources.jar
#ln -sf %{_javadir}/servlet.jar plugins/org.eclipse.tomcat_*/servlet.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-common.jar plugins/org.eclipse.tomcat_*/servlets-common.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-default.jar plugins/org.eclipse.tomcat_*/servlets-default.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-invoker.jar plugins/org.eclipse.tomcat_*/servlets-invoker.jar
#ln -sf %{tomcat4dir}/server/lib/servlets-manager.jar plugins/org.eclipse.tomcat_*/servlets-manager.jar
#ln -sf %{tomcat4dir}/server/lib/tomcat-coyote.jar plugins/org.eclipse.tomcat_*/tomcat-coyote.jar
#ln -sf %{tomcat4dir}/server/lib/tomcat-http11.jar plugins/org.eclipse.tomcat_*/tomcat-http11.jar
#ln -sf %{tomcat4dir}/server/lib/tomcat-util.jar plugins/org.eclipse.tomcat_*/tomcat-util.jar
## END TOMCAT4 ##
ln -sf %{_javadir}/junit.jar plugins/org.junit_*/junit.jar

# Copy jdtcore.jar to %{_datadir}/java for eclipse-ecj
mkdir -p $RPM_BUILD_ROOT%{_datadir}/java
ln -s %{_datadir}/%{name}/plugins/org.eclipse.jdt.core_%{eclipse_majmin}.%{eclipse_micro}/jdtcore.jar \
  $RPM_BUILD_ROOT%{_datadir}/java/jdtcore.jar

%if %{gcj_support}
# Create the gcj dbs for libswt, ecj, platform, jdt, and pde
gcjdbdir=$RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`.d
mkdir -p $gcjdbdir
gcj-dbtool -n $gcjdbdir/%{name}-ecj.db 80000
gcj-dbtool -n $gcjdbdir/libswt3-gtk2.db 80000
gcj-dbtool -n $gcjdbdir/%{name}-platform.db 80000
gcj-dbtool -n $gcjdbdir/%{name}-jdt.db 80000
gcj-dbtool -n $gcjdbdir/%{name}-pde.db 80000

# ecj db
gcj-dbtool -f $gcjdbdir/%{name}-ecj.db \
  $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.jdt.core_%{eclipse_majmin}.%{eclipse_micro}/jdtcore.jar \
  %{_libdir}/%{name}/plugins/org.eclipse.jdt.core_%{eclipse_majmin}.%{eclipse_micro}/jdtcore.jar.so
gcj-dbtool -f $gcjdbdir/%{name}-ecj.db \
  $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.jdt.core_%{eclipse_majmin}.%{eclipse_micro}/jdtCompilerAdapter.jar \
  %{_libdir}/%{name}/plugins/org.eclipse.jdt.core_%{eclipse_majmin}.%{eclipse_micro}/jdtCompilerAdapter.jar.so

# jdt db
for dir in `cat %{SOURCE7}`; do
    for j in `find $RPM_BUILD_ROOT/$dir -name \*.jar`; do
	lib=`echo $j | sed "s:%{_datadir}:%{_libdir}:"`.so;
	if [ -f $lib ]; then
	  gcj-dbtool -f $gcjdbdir/%{name}-jdt.db \
	    $j `echo $lib | sed "s:$RPM_BUILD_ROOT/::"`;
	fi;
    done;
done

# pde db
for dir in `cat %{SOURCE8}`; do
    for j in `find $RPM_BUILD_ROOT/$dir -name \*.jar`; do
	lib=`echo $j | sed "s:%{_datadir}:%{_libdir}:"`.so;
	if [ -f $lib ]; then
	  gcj-dbtool -f $gcjdbdir/%{name}-pde.db \
	    $j `echo $lib | sed "s:$RPM_BUILD_ROOT/::"`;
	fi;
    done;
done

# platform db
for dir in `cat %{SOURCE9}`; do
    for j in `find $RPM_BUILD_ROOT/$dir -name \*.jar`; do
	lib=`echo $j | sed "s:%{_datadir}:%{_libdir}:"`.so;
	if [ -f $lib ]; then
	  gcj-dbtool -f $gcjdbdir/%{name}-platform.db \
	    $j `echo $lib | sed "s:$RPM_BUILD_ROOT/::"`;
	fi;
    done;
done

# swt db
for dir in `cat %{SOURCE10}`; do
    for j in `find $RPM_BUILD_ROOT/$dir -name \*.jar`; do
	lib=`echo $j | sed "s:%{_datadir}:%{_libdir}:"`.so;
	if [ -f $lib ]; then
	  gcj-dbtool -f $gcjdbdir/libswt3-gtk2.db \
	    $j `echo $lib | sed "s:$RPM_BUILD_ROOT/::"`;
	fi;
    done;
done
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%if %{gcj_support}
%post ecj
%{_bindir}/rebuild-gcj-db %{_libdir}

%post jdt
%{_bindir}/rebuild-gcj-db %{_libdir}

%post pde
%{_bindir}/rebuild-gcj-db %{_libdir}

%post -n %{libname}-gtk2
%{_bindir}/rebuild-gcj-db %{_libdir}
%endif

%post platform
%if %{gcj_support}
%{_bindir}/rebuild-gcj-db %{_libdir}
%endif
touch --no-create %{_datadir}/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  gtk-update-icon-cache -q %{_datadir}/icons/hicolor
fi

%if %{gcj_support}
%postun ecj
%{_bindir}/rebuild-gcj-db %{_libdir}

%postun jdt
%{_bindir}/rebuild-gcj-db %{_libdir}

%postun pde
%{_bindir}/rebuild-gcj-db %{_libdir}

%postun -n %{libname}-gtk2
%{_bindir}/rebuild-gcj-db %{_libdir}
%endif

%postun platform
%if %{gcj_support}
%{_bindir}/rebuild-gcj-db %{_libdir}
%endif
touch --no-create %{_datadir}/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
  gtk-update-icon-cache -q %{_datadir}/icons/hicolor
fi

%files ecj
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/plugins
%dir %{_datadir}/%{name}/features
%dir %{_datadir}/%{name}/configuration
%{_datadir}/%{name}/plugins/org.eclipse.jdt.core_3.*
%{_datadir}/java/jdtcore*.jar
%if %{gcj_support}
# Native bits
%{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-ecj.db
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0
%{_bindir}/ecj
%endif

%files -n %{libname}-gtk2 -f %{libname}-gtk2.install
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/plugins
%dir %{_datadir}/%{name}/features
%dir %{_datadir}/%{name}/configuration
#%{_libdir}/%{name}/libswt-gnome-gtk-*.so
#%{_libdir}/%{name}/libswt-gtk-*.so
#%{_libdir}/%{name}/libswt-pi-gtk-*.so
#%{_libdir}/%{name}/libswt-atk-gtk-*.so
#%{_libdir}/%{name}/libswt-awt-gtk-*.so
#%{_libdir}/%{name}/libswt-mozilla-gtk-*.so
#%{_libdir}/libswt-*.so
%{_javadir}/swt-gtk*.jar
#%{_javadir}/swt-pi-gtk*.jar
#%{_javadir}/swt-mozilla*.jar
#%{_javadir}/swt-cairo*.jar
%if %{gcj_support}
# Native bits
%{_libdir}/gcj-4.0.0/classmap.db.d/libswt3-gtk2.db
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
%{_libdir}/%{name}/plugins/org.eclipse.swt_3.1.0.jar.so
%ifarch alpha ia64 ppc64 sparc64 x86_64
%{_libdir}/%{name}/plugins/org.eclipse.swt.gtk64_3.1.0.jar.so
%else
%{_libdir}/%{name}/plugins/org.eclipse.swt.gtk_3.1.0.jar.so
%endif
%{_libdir}/%{name}/plugins/org.eclipse.jface_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.jface.text_3.1.0
%endif

%files jdt -f %{name}-jdt.install
%{_bindir}/efj
%if %{gcj_support}
# Native bits
%{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-jdt.db
%{_libdir}/%{name}/plugins/org.eclipse.jdt.debug.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.jdt.debug_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit.runtime_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.jdt.launching_3.1.0
%dir %{_libdir}/%{name}/plugins/org.eclipse.jdt.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.jdt.ui_3.1.0
#%{_libdir}/%{name}/plugins/org.junit_3.8.1/junit.jar.so
%endif

%files jdt-devel
%{_datadir}/%{name}/plugins/org.eclipse.jdt.source_3.*
%{_datadir}/%{name}/features/org.eclipse.jdt.source_3.*

%files pde -f %{name}-pde.install
%if %{gcj_support}
# Native bits
%{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-pde.db
%{_libdir}/%{name}/plugins/org.eclipse.pde.build_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.pde.core_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.pde.junit.runtime_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.pde.runtime_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.pde.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.pde_3.1.0
%endif

%files pde-devel
%{_datadir}/%{name}/plugins/org.eclipse.pde.source_3.*
%{_datadir}/%{name}/features/org.eclipse.pde.source_3.*

%files platform -f %{name}-platform.install
%{_datadir}/%{name}/.eclipseproduct
%{_datadir}/%{name}/startup.jar
%{_datadir}/%{name}/buildscripts
%{_libdir}/%{name}/eclipse
#%{_libdir}/%{name}/libcore*
#%{_libdir}/%{name}/libupdate*
%{_datadir}/%{name}/eclipse
%{_bindir}/eclipse
%{_datadir}/applications/*
%{_datadir}/pixmaps/*
%{_datadir}/icons/*/*/apps/*
%config(noreplace) %{_sysconfdir}/eclipse.conf
%if %{gcj_support}
# Native bits
%{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-platform.db
%{_libdir}/%{name}/startup.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.core.commands_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.core.expressions_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.core.runtime_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.help.base_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.help.ui_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.help.appserver_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.help_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.ui.forms_3.1.0.jar.so.bak
%{_libdir}/%{name}/plugins/org.eclipse.ui.ide_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.ui.intro_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.ui_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.ui.workbench_3.1.0.jar.so.bak
%{_libdir}/%{name}/plugins/org.eclipse.ui.presentations.r21_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.ui.views_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.update.configurator_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.update.core_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.update.scheduler_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.update.ui_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.osgi_3.1.0.jar.so
%{_libdir}/%{name}/plugins/org.eclipse.ant.core_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.compare_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.core.boot_3.0.0
%{_libdir}/%{name}/plugins/org.eclipse.core.filebuffers_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.core.resources_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.core.variables_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.debug.core_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.debug.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ltk.ui.refactoring_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ltk.core.refactoring_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.osgi.services_3.0.0
%{_libdir}/%{name}/plugins/org.eclipse.osgi.util_3.0.0
%{_libdir}/%{name}/plugins/org.eclipse.platform.doc.isv_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.platform_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.search_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.team.core_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.team.cvs.core_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.team.cvs.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.team.cvs.ssh_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.team.cvs.ssh2_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.team.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.text_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.browser_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.cheatsheets_3.0.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.externaltools_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.workbench.compatibility_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.core.resources.compatibility_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.core.runtime.compatibility_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.workbench.texteditor_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.editors_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ant.ui_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.help.webapp_3.1.0
%{_libdir}/%{name}/plugins/org.eclipse.ui.console_3.1.0
# FIXME build packages for these so we don't have their jars and jar.sos in
# eclipse-platform
%{_libdir}/%{name}/plugins/org.apache.lucene_1.4.3
%{_libdir}/%{name}/plugins/org.eclipse.tomcat_4.1.30.1
%{_libdir}/%{name}/plugins/org.apache.ant_1.6.2
%endif

%files platform-devel
%{_datadir}/%{name}/plugins/org.eclipse.platform.source_3.*
%{_datadir}/%{name}/features/org.eclipse.platform.source_3.*
%{_datadir}/%{name}/plugins/org.eclipse.platform.source.linux.gtk.*_3.1.0

%changelog
* Sun May 22 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.22
- Bump required version of java-gcj-compat to the latest (-40jpp_24rh).
- Add patch to make swt use libgcjawt instead of libjawt for gcj.

* Fri May 20 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.21
- Add ecj-options patch to bootstrap source.
- Make embedded browser widget work (Robin Green).

* Thu May 19 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.20
- Add ecj-options patch.

* Tue May 17 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M6.19
- Add Epoch on eclipse-platform.
- Use %%{_bindir} in post and postun scripts.

* Tue May 17 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.18
- Add Epoch to jsch requires.

* Mon May 16 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.17
- Update libswt-mozilla patches and require mozilla 1.7.8.
 
* Fri May 13 2005 Andrew Overholt <overholt@redhat.com>
- Use %%{ix86} macro in ExclusiveArch rather than i386 (jorton).

* Wed May 11 2005 Ben Konrath <bkonrath@redhat.com>
- Add jsch >= 0.1.18-1jpp.
- Remove Fedora specific part of junit version.
- Temporarily disable org.eclipse.ui.forms_3.1.0.jar.so (rh#146463).

* Mon May 09 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.16
- Add Requires junit >= 3.8.1-3jpp_4fc to JDT.
- Add -g to gcj calls.

* Thu May 05 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M6.15
- Rebuild with new gjdoc (rh#152049).

* Wed May 4 2005 Ben Konrath <bkonrath@redhat.com>
- Re-enable jdt.ui/jdt.jar.so and require gcj 4.0.0-2 (rh#151296).

* Mon May 2 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.14
- Replace temporary patch to debug.ui with upstream patch to swt (rh#155853).

* Sat Apr 30 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.13
- Add patch to temporarily stop an NPE in debug.ui (rh#155853).

* Thu Apr 28 2005 Phil Muldoon <pmuldoon@redhat.com>
- Allow multiple optional arguments in eclipse-copy-platform.sh 

* Wed Apr 27 2005 Andrew Overholt <overholt@redhat.com>
- Include epoch in mozilla BuildRequires.
- Remove last remaining gij-specific option from eclipse.script.

* Wed Apr 27 2005 Jeremy Katz <katzj@redhat.com> 3.1.0_fc-0.M6.12
- silence %%post

* Sun Apr 24 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M6.11
- Re-add osgi.jar.so since gcj fix is in our gcc RPMs.
- Bump gcc requirements accordingly.
- Add gcc-c++ to BuildRequires (for SWT Mozilla).
- Add specific java-1.4.2-gcj-compat nvr requirement (rh#151866).

* Fri Apr 22 2005 Aaron Luchko <aluchko@redhat.com> 3.1.0_fc-0.M6.10
- Import archived projects (e.o#82988)

* Fri Apr 22 2005 Andrew Overholt <overholt@redhat.com>
- Add Requires(post,postun): java-1.4.2-gcj-compat for each sub-package and use
  full path (Joe Orton).
- Make /usr/bin/eclipse executable again (rh#155715).
- Bump jsch version.

* Thu Apr 21 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M6.9
- Use upstream icons (not RHDS ones) (rh#146484).
- Add plugin directories to %files sections.
- Rework %files sections a bit.
- Fix SWT symlink (bkonrath).
- Temporarily remove jdt.ui/jdt.jar.so.

* Thu Apr 21 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.8
- Fix updatesite patch.
- Temporarily remove org.eclipse.ui.workbench_3.1.0.jar.so (r.c#151919)

* Mon Apr 18 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M6.7
- Add %if %%{gcj_support} blocks.
- Add %%{_libdir}/%%{name}/plugins to native %files section of each sub-rpm.
- Add GNU-style JDT code formatting option (e.o#91770).
- Add patch to install plugins from update site in home dir (e.o#90630).
- Change gcc-java requirements to libgcj as gcj-dbtool is now in the latter.

* Mon Apr 18 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.6
- Bump version number. 

* Mon Apr 18 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.5
- Update mozilla patch.

* Sat Apr 16 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M6.4
- Update to 3.1M6.
- Change bootstrap procedure to match the upstream method.
- Remove patches that were fixed upstream. 
- Add efj wrapper script.

* Wed Apr 13 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M5.20
- Fix the bootstrap patch (the ecj jar was missing some files).

* Tue Apr 12 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.19
- Add Requires(post,postun): java-1.4.2-gcj-compat for rebuild-gcj-db (Joe
  Orton).
- Add ecj binary.

* Wed Apr 06 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.18
- Fix typo in gcj db building loops.
- Add -O1 to x86_64 jar.so compilation.
- Add EFJ (Eclipse Formatter for Java) patches (bkonrath) (e.o#75333).
- Add patch to build swttools.jar (e.o#90364).
- Symlink out to ant-jsch now that we have that.

* Mon Apr 04 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.17
- Actually insert .jar-.jar.so combinations into sub-dbs.

* Thu Mar 31 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.16
- Fix eclipse.script to not leave a sh process around (Joe Orton)
- Use proper sub-dbs.
- Don't compile jars that are symlinked from elsewhere.
- Add jar-so combinations to .db based on .jar.so existence (not .jar).
- Rename sub-dbs to be eclipse-*.db.
- Use rebuild-gcj-db script.

* Mon Mar 28 2005 Christopher Aillon <caillon@redhat.com>
- rebuilt

* Fri Mar 25 2005 Christopher Aillon <caillon@redhat.com> 3.1.0_fc-0.M5.14
- Update the GTK+ theme icon cache on (un)install

* Fri Mar 18 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.13
- Re-add compilation of resources.jar.
- Backport bootstrapping patch.
- Add Requires: java-1.4.2-gcj-compat.
- Modified find patch courtesy Ziga Mahkovec (RH#149927#).
- Compile with -O2 on ppc as well.
- Add jsch, jakarta-commons-modeler, and mx4j symlinking.
- Make use of gcj-dbtool -f to create databases in install.
- Use system-wide classmap.db.
- Remove *.jarswithnativelibs from files sections.
- Update mozilla dependency.

* Mon Mar 07 2005 Ben Konrath <bkonrath@redhat.com> 3.1.0_fc-0.M5.12
- Add activeHelpSample.jar patch.
- Change to Fedora M-build splash screen.
- Add find patch courtesy Ziga Mahkovec (RH#149927#)
- Build native stuff with -O2 on i386.

* Mon Mar 07 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.11
- Add s390 and s390x patches.
- Don't build for them, though, due to gcc bug and Eclipse building issue.
- Add xorg-x11-devel BuildRequires.

* Fri Mar 04 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.10
- Add proper mozilla version.
- Don't build eclipseAdaptor.jar.so in order to work around plugin building
  problems.

* Thu Mar 03 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.9
- Add patch to build libswt-mozilla.
- Build libswt-awt.
- Add 64-bit swt lib list.

* Tue Mar 01 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.8
- Add ppc.
- Add patch to copy over icon for unsupported (upstream) platforms but don't
  include the source for the launcher.
- gcc4 -> gcc changes.
- Add swt-cairo to 64-bit platforms' %files.

* Fri Feb 25 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.7
- Add tar args patch (e.o #86571).
- New build bootstrapping patches.

* Fri Feb 25 2005 Andrew Overholt <overholt@redhat.com> 3.1.0_fc-0.M5.6
- Re-work how we do the gcj-dbtool magic.
- Don't remove ant-netrexx (need to find an RPM if we can).

* Sun Feb 20 2005 Andrew Overholt <overholt@redhat.com> 1:3.1_fc-0.M5.5
- Build for just i386 and x86_64 for now due to upstream gcc bugs.

* Sun Feb 20 2005 Andrew Overholt <overholt@redhat.com> 1:3.1_fc-0.M5.1
- New 3.1M5a build using upstream build method.
- Re-organize sub-packages (ecj, platform, platform-devel, jdt, jdt-devel, pde,
  pde-devel, fold gtk2 package into platform).
- Move jface and org.eclipse.text into libswt3-gtk2.
- Bring in JPackage symlinks for packages we have in Fedora (David Walluck) and
  put in %%prep.
- Work around x86_64 filename differences.
- Remove xerces, xalan, and xml-commons-apis requirement (and LD_PRELOAD from
  script).
- Bootstrap build.