# TODO:
# - make use of eclipse-swt package
-# and add proper provides, obsoletes, conflicts etc. where needed.
-# This will make building such things like Azureus possible without having
-# whole Eclipse suite installed.
-# - there are unpackaged source files, -devel?
-#
-%define _ver_major 3.3.1.1
-%define _buildid 200710231652
-#
+
+%include /usr/lib/rpm/macros.java
Summary: Eclipse - an open extensible IDE
Summary(pl.UTF-8): Eclipse - otwarte, rozszerzalne środowisko programistyczne
Name: eclipse
-Version: %{_ver_major}
-Release: 0.1
+Version: 3.3.2
+Release: 2
License: EPL v1.0
Group: Development/Tools
-Source0: http://download.eclipse.org/eclipse/downloads/drops/R-%{_ver_major}-%{_buildid}/%{name}-sourceBuild-srcIncluded-%{_ver_major}.zip
-# Source0-md5: 593b56fce7d1f1f799e87365cafefbef
+Source0: http://archive.eclipse.org/eclipse/downloads/drops/R-%{version}-200802211800/%{name}-sourceBuild-srcIncluded-%{version}.zip
+# Source0-md5: 4b7016cf9aedf07b8f34b39470947799
Source1: %{name}.desktop
+Patch0: %{name}-launcher-set-install-dir-and-shared-config.patch
URL: http://www.eclipse.org/
BuildRequires: ant >= 1.6.1
BuildRequires: ant-apache-regexp
BuildRequires: jdk >= 1.6
+BuildRequires: jpackage-utils
BuildRequires: pkgconfig
+BuildRequires: rpm-javaprov
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.300
-BuildRequires: sed
+BuildRequires: sed >= 4.0
BuildRequires: unzip
BuildRequires: zip
Requires: ant
-Requires: jdk >= 1.4
+Provides: eclipse-jdt = %{version}-%{release}
Obsoletes: eclipse-SDK
-ExclusiveArch: i586 i686 pentium3 pentium4 athlon %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _eclipse_arch %(echo %{_target_cpu} | sed 's/i.86\\|athlon\\|pentium/x86/;s/amd64/x86_64/')
+%define eclipse_arch %(echo %{_target_cpu} | sed 's/i.86\\|athlon\\|pentium/x86/;s/amd64/x86_64/')
%define no_install_post_chrpath 1
# list of script capabilities (regexps) not to be used in Provides
%prep
%setup -q -c
-# Build Id - it's visible in couple places in gui
-# TODO: just patch build.xml not every single file
-find . '(' -name 'config.ini' -o -name 'about.mappings' ')' -type f -print \
- | xargs %{__sed} -i -e 's/=@build@/=PLD %{name}-%{version}-%{release}/'
+# Build Id - it's visible in couple places in GUI
+%{__sed} -i -e 's,buildId=.*,& (PLD Linux %{name}-%{version}-%{release}),' label.properties
+
+# launcher patches
+rm plugins/org.eclipse.platform/launchersrc.zip
+cd features/org.eclipse.equinox.executable
+%patch0 -p0
+# put the configuration directory in an arch-specific location
+sed -i -e 's:/usr/lib/eclipse/configuration:%{_libdir}/%{name}/configuration:' library/eclipse.c
+# make the eclipse binary relocatable
+sed -i -e 's:/usr/share/eclipse:%{_datadir}/%{name}:' library/eclipse.c
+zip -q -9 -r ../../plugins/org.eclipse.platform/launchersrc.zip library
+cd -
%build
unset CLASSPATH || :
export JAVA_HOME=%{java_home}
-./build -os linux -ws gtk -arch %{_eclipse_arch} -target compile
+./build -os linux -ws gtk -arch %{eclipse_arch} -target compile
+
+%ant insertBuildId
export JAVA_INC="-I$JAVA_HOME/include -I$JAVA_HOME/include/linux"
cd -
%install
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_bindir},%{_libdir}/%{name}}
-# place for arch independent plugins
-install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/{features,plugins}
+if [ ! -f makeinstall.stamp -o ! -d $RPM_BUILD_ROOT ]; then
+ rm -rf makeinstall.stamp installed.stamp $RPM_BUILD_ROOT
-unset JAVA_HOME || :
-export JAVA_HOME=%{java_home}
-./build -os linux -ws gtk -arch %{_eclipse_arch} -target install
+ install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_bindir},%{_libdir}/%{name}}
+ # place for arch independent plugins
+ install -d $RPM_BUILD_ROOT%{_datadir}/%{name}/{features,plugins}
-tar xfz result/linux-gtk-%{_eclipse_arch}-sdk.tar.gz -C $RPM_BUILD_ROOT%{_libdir}
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+ unset JAVA_HOME || :
+ export JAVA_HOME=%{java_home}
+ ./build -os linux -ws gtk -arch %{eclipse_arch} -target install
-install plugins/org.eclipse.core.filesystem/natives/unix/linux/lib*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-install plugins/org.eclipse.update.core.linux/src/lib*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
+ tar xfz result/linux-gtk-%{eclipse_arch}-sdk.tar.gz -C $RPM_BUILD_ROOT%{_libdir}
+ touch makeinstall.stamp
+fi
+
+if [ ! -f installed.stamp ]; then
+ install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
+
+ install -p plugins/org.eclipse.core.filesystem/natives/unix/linux/lib*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
+ install -p plugins/org.eclipse.update.core.linux/src/lib*.so $RPM_BUILD_ROOT%{_libdir}/%{name}
-#wrapper
-install -d $RPM_BUILD_ROOT%{_bindir}
-cat > $RPM_BUILD_ROOT%{_bindir}/eclipse << 'EOF'
-#!/bin/sh
-exec %{_libdir}/%{name}/eclipse ${1:+"$@"}
-EOF
+ # wrapper
+ install -d $RPM_BUILD_ROOT%{_bindir}
+ cat > $RPM_BUILD_ROOT%{_bindir}/eclipse <<-'EOF'
+ #!/bin/sh
+ exec %{_libdir}/%{name}/eclipse ${1:+"$@"}
+ EOF
-:> $RPM_BUILD_ROOT%{_datadir}/%{name}/.eclipseextension
+ cat <<-'EOF'> $RPM_BUILD_ROOT%{_datadir}/%{name}/.eclipseextension
+ id=org.eclipse.platform name=Eclipse Platform
+ version=%{version}
+ EOF
-if [ ! -f "$RPM_BUILD_ROOT%{_libdir}/%{name}/icon.xpm" ]; then
- install features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm $RPM_BUILD_ROOT%{_libdir}/%{name}/icon.xpm
+ if [ ! -f $RPM_BUILD_ROOT%{_libdir}/%{name}/icon.xpm ]; then
+ install -p features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm $RPM_BUILD_ROOT%{_libdir}/%{name}/icon.xpm
+ fi
+ install -Dp features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/eclipse-icon.xpm
+
+ # not packaged -- remove
+ %if 0
+ # if we're removing source bundles, we should adjust manifests as well, but
+ # were not doing that, so don't break packaging
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/features/org.eclipse.cvs.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/features/org.eclipse.jdt.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/features/org.eclipse.pde.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/features/org.eclipse.platform.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/features/org.eclipse.rcp.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/javax.servlet.jsp.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/javax.servlet.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.apache.ant.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.apache.commons.el.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.apache.commons.logging.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.apache.jasper.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.apache.lucene.analysis.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.apache.lucene.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.cvs.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.jdt.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.pde.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.platform.source.linux.gtk.*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.platform.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.rcp.source.linux.gtk.*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.rcp.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.junit.source_*
+ rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.mortbay.jetty.source_*
+ %endif
+
+ touch installed.stamp
fi
-install -D features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm $RPM_BUILD_ROOT%{_pixmapsdir}/eclipse-icon.xpm
%clean
rm -rf $RPM_BUILD_ROOT
%{_libdir}/%{name}/features/org.eclipse.rcp_*.*.*
%{_libdir}/%{name}/features/org.eclipse.sdk_*.*.*
%dir %{_libdir}/%{name}/plugins
+%{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_*.*.*
+%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher.gtk.linux.%{eclipse_arch}_*.*.*
%{_libdir}/%{name}/plugins/javax.servlet.jsp_*.*.*
%{_libdir}/%{name}/plugins/javax.servlet_*.*.*
%{_libdir}/%{name}/plugins/com.ibm.icu_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.equinox.jsp.jasper.registry_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.equinox.jsp.jasper_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher_*.*.*
-%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher.gtk.linux.%{_eclipse_arch}_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.equinox.preferences_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.equinox.registry_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.help_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.rcp_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.sdk_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.swt_*.*.*
-%{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{_eclipse_arch}_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.search_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.team.core_*.*.*
%{_libdir}/%{name}/plugins/org.eclipse.team.cvs.core_*.*.*
%{_libdir}/%{name}/plugins/org.junit4_*.*.*
%{_libdir}/%{name}/plugins/org.mortbay.jetty_*.*.*
+%if 1
+%{_libdir}/%{name}/features/org.eclipse.cvs.source_*
+%{_libdir}/%{name}/features/org.eclipse.jdt.source_*
+%{_libdir}/%{name}/features/org.eclipse.pde.source_*
+%{_libdir}/%{name}/features/org.eclipse.platform.source_*
+%{_libdir}/%{name}/features/org.eclipse.rcp.source_*
+%{_libdir}/%{name}/plugins/javax.servlet.jsp.source_*
+%{_libdir}/%{name}/plugins/javax.servlet.source_*
+%{_libdir}/%{name}/plugins/org.apache.ant.source_*
+%{_libdir}/%{name}/plugins/org.apache.commons.el.source_*
+%{_libdir}/%{name}/plugins/org.apache.commons.logging.source_*
+%{_libdir}/%{name}/plugins/org.apache.jasper.source_*
+%{_libdir}/%{name}/plugins/org.apache.lucene.analysis.source_*
+%{_libdir}/%{name}/plugins/org.apache.lucene.source_*
+%{_libdir}/%{name}/plugins/org.eclipse.cvs.source_*
+%{_libdir}/%{name}/plugins/org.eclipse.jdt.source_*
+%{_libdir}/%{name}/plugins/org.eclipse.pde.source_*
+%{_libdir}/%{name}/plugins/org.eclipse.platform.source.linux.gtk.*
+%{_libdir}/%{name}/plugins/org.eclipse.platform.source_*
+%{_libdir}/%{name}/plugins/org.eclipse.rcp.source.linux.gtk.*
+%{_libdir}/%{name}/plugins/org.eclipse.rcp.source_*
+%{_libdir}/%{name}/plugins/org.junit.source_*
+%{_libdir}/%{name}/plugins/org.mortbay.jetty.source_*
+%endif
+
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/features
%dir %{_datadir}/%{name}/plugins