diff --git a/eclipse-add-ppc64-sparc64-s390-s390x.patch b/eclipse-add-ppc64-sparc64-s390-s390x.patch
index c3808eb..b2dd657 100644
--- a/eclipse-add-ppc64-sparc64-s390-s390x.patch
+++ b/eclipse-add-ppc64-sparc64-s390-s390x.patch
@@ -77,7 +77,7 @@ retrieving revision 1.40.2.1
diff -u -r1.40.2.1 feature.xml
--- features/org.eclipse.rcp/feature.xml 1 Aug 2006 17:29:33 -0000 1.40.2.1
+++ features/org.eclipse.rcp/feature.xml 6 Feb 2007 23:44:22 -0000
-@@ -308,5 +308,60 @@
+@@ -308,5 +308,38 @@
install-size="0"
version="0.0.0"
unpack="false"/>
@@ -94,28 +94,6 @@ diff -u -r1.40.2.1 feature.xml
+ unpack="false"/>
+
+
-+
-+
-+
-+
-
-
-+
-+
-+
-+
+@@ -42,4 +42,6 @@
+
+
+
++
++
diff -ru features/org.eclipse.rcp.source/feature.xml features/org.eclipse.rcp.source/feature.xml
--- features/org.eclipse.rcp.source/feature.xml 2007-02-06 19:04:06.000000000 -0500
+++ features/org.eclipse.rcp.source/feature.xml 2007-02-06 19:09:11.000000000 -0500
-@@ -28,4 +28,9 @@
-
-
-
+@@ -30,4 +30,7 @@
+
+
+
+
-+
-+
+
+
diff --git a/eclipse.spec b/eclipse.spec
index e6569f4..682f005 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -19,11 +19,11 @@ Epoch: 1
Summary: An open, extensible IDE
Name: eclipse
Version: %{eclipse_majmin}.%{eclipse_micro}
-Release: 0.2.RC4%{?dist}
+Release: 0.3.RC4%{?dist}
License: Eclipse Public License
Group: Text Editors/Integrated Development Environments (IDE)
URL: http://www.eclipse.org/
-Source0: http://download.eclipse.org/eclipse/downloads/drops/S-3.3RC4-200706081718/eclipse-sourceBuild-srcIncluded-3.3RC4.zip
+Source0: http://download.eclipse.org/eclipse/downloads/drops/S-3.3RC4-200706081718/eclipse-sourceBuild-srcIncluded-3.3RC4.zip
Source1: %{name}-fedora-splash-3.3.0.png
Source2: %{name}.desktop
Source3: eclipse.in
@@ -64,6 +64,7 @@ Patch6: %{name}-tomcat55.patch
Patch7: %{name}-tomcat55-build.patch
# Use ecj for gcj
Patch17: %{name}-ecj-gcj.patch
+Patch24: %{name}-add-ppc64-sparc64-s390-s390x.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: ant
@@ -575,6 +576,29 @@ sed --in-place "s|\(initialValue = request.getDefaultValue\)|// \1|" \
sed --in-place "s|\(value = fRequest.getDefaultValue\)|// \1|" \
plugins/org.eclipse.ant.ui/Remote\ Ant\ Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
+## Nasty hack to get suppport for ppc64, s390{,x} and sparc{,64}
+%patch24 -p0
+# there is only partial support for ppc64 in 3.2 so we have to remove this
+# partial support to get the replacemnt hack to work
+find -name \*ppc64\* | xargs rm -r
+# remove ppc64 support from features/org.eclipse.platform.source/feature.xml
+# replace ppc64 with a fake arch (ppc128) so we don't have duplicate ant targets
+find -type f -name \*.xml -exec sed --in-place "s/\(rootFileslinux_gtk_\)ppc64/\1ppc128/g" "{}" \;
+# remove org.eclipse.platform.source.linux.gtk.ppc64,3.2.0.v20060602-0010-gszCh-8eOaU1uKq
+sed --in-place "s/,.\{38\}ppc64.*macosx/,org.eclipse.platform.source.macosx/g" features/org.eclipse.platform.source/build.xml
+# replace final occurances with an existing arch
+sed --in-place "s/ppc64/x86_64/g" features/org.eclipse.platform.source/build.xml
+# Move all of the ia64 directories to ppc64 or s390{,x} or sparc{,64} dirs and replace
+# the ia64 strings with ppc64 or s390(x)
+%ifarch ppc64 s390 s390x sparc sparc64
+ for f in $(find -name \*ia64\* | grep -v motif | grep -v ia64_32); do
+ mv $f $(echo $f | sed "s/ia64/%{_arch}/")
+ done
+ find -type f ! -name \*.java -a ! -name feature.xml -exec sed --in-place "s/ia64_32/@eye-eh-64_32@/g" "{}" \;
+ find -type f ! -name \*.java -a ! -name feature.xml -exec sed --in-place "s/ia64/%{_arch}/g" "{}" \;
+ find -type f ! -name \*.java -a ! -name feature.xml -exec sed --in-place "s/@eye-eh-64_32@/ia64_32/g" "{}" \;
+%endif
+
# link to the jsch jar
rm plugins/com.jcraft.jsch_0.1.31.jar
ln -s %{_javadir}/jsch.jar plugins/com.jcraft.jsch_0.1.31.jar
@@ -1020,6 +1044,85 @@ build-jar-repository -s -p plugins/org.junit_* junit
rm plugins/com.jcraft.jsch_0.1.31.jar
ln -s %{_javadir}/jsch.jar plugins/com.jcraft.jsch_0.1.31.jar
+# Ensure that the zip files are the same across all builds.
+# This is needed to make these package multilib compatible.
+# FIXME: this needs to be re-written as a separate program
+# warning: big hack!
+mkdir -p ${RPM_BUILD_ROOT}/tmp
+for zip in `find ${RPM_BUILD_ROOT}%{_datadir}/%{name} -type f -name \*.zip -o -type f -name \*.jar`; do
+ # unpack every zip, set the date of the files and directories and repack the zip
+ ZIPNAME=`basename $zip`
+ TMPDIR=`mktemp -d -p ${RPM_BUILD_ROOT}/tmp $ZIPNAME.tmpdir.XXXXXXXXXX`
+ ZIPDIR=`mktemp -d -p ${RPM_BUILD_ROOT}/tmp $ZIPNAME.zipdir.XXXXXXXXXX`
+
+ pushd $TMPDIR
+ unzip -qq -o $zip
+ rm -f $zip
+
+ # check if there are jars or zips inside the zip or jar
+ zipsinside=`find $TMPDIR -type f -name \*.zip -o -name \*.jar`
+ if [ -n "$zipsinside" ]; then
+ for zip2 in $zipsinside; do
+ # unpack every zip, set the date of the files and directories and repack the zip
+ ZIPNAME2=`basename $zip2`
+ TMPDIR2=`mktemp -d -p ${RPM_BUILD_ROOT}/tmp $ZIPNAME2.tmpdir.XXXXXXXXXX`
+ ZIPDIR2=`mktemp -d -p ${RPM_BUILD_ROOT}/tmp $ZIPNAME2.zipdir.XXXXXXXXXX`
+
+ pushd $TMPDIR2
+ unzip -qq -o $zip2
+ rm -f $zip2
+
+ # create the directories first
+ for d in `find -type d | LC_ALL=C sort`; do
+ mkdir -p $ZIPDIR2/$d
+ done
+ # move the contents over to the a new directory in order and set the times.
+ for f in `find -type f | LC_ALL=C sort`; do
+ cp $f $ZIPDIR2/$f
+ touch --date="1970-01-01 UTC" $ZIPDIR2/$f
+ done
+ popd
+
+ # Set the times of the directories.
+ touch --date="1970-01-01 UTC" `find $ZIPDIR2 -type d`
+
+ # make the new zip
+ pushd $ZIPDIR2
+ find -type f -print | LC_ALL=C sort | /usr/bin/zip -q -X -9 $zip2 -@
+ popd
+
+ # Cleanup.
+ rm -rf $TMPDIR2
+ rm -rf $ZIPDIR2
+ done
+ fi
+
+ # now on to the original zip or jar.
+ # create the directories first
+ for d in `find -type d | LC_ALL=C sort`; do
+ mkdir -p $ZIPDIR/$d
+ done
+ # move the contents over to the a new directory in order and set the times.
+ for f in `find -type f | LC_ALL=C sort`; do
+ cp $f $ZIPDIR/$f
+ touch --date="1970-01-01 UTC" $ZIPDIR/$f
+ done
+ popd
+
+ # Set the times of the directories.
+ touch --date="1970-01-01 UTC" `find $ZIPDIR -type d`
+
+ # make the new zip
+ pushd $ZIPDIR
+ find -type f -print | LC_ALL=C sort | /usr/bin/zip -q -X -9 $zip -@
+ popd
+
+ # Cleanup.
+ rm -rf $TMPDIR
+ rm -rf $ZIPDIR
+done
+rm -rf ${RPM_BUILD_ROOT}/tmp
+
# remove this python script so that it is not aot compiled, thus avoiding a
# multilib conflict
ANTPLUGINVERSION=$(ls plugins | grep org.apache.ant_ | sed 's/org.apache.ant_//')
@@ -1493,6 +1596,10 @@ fi
%{_libdir}/%{name}/plugins/org.eclipse.sdk_*
%changelog
+* Wed Jun 27 2007 Ben Konrath 3.3.0-0.3.RC4
+- Restore ppc64, s390{,x} and sparc{,64} support.
+- Restore multilib support.
+
* Tue Jun 19 2007 Ben Konrath 3.3.0-0.2.RC4
- Use icu4j-eclipse sub-package instead of building icu4j here.
- Use exec in binary wrapper.