diff --git a/eclipse-build.patch b/eclipse-build.patch index 973e3df..b185340 100644 --- a/eclipse-build.patch +++ b/eclipse-build.patch @@ -5,16 +5,13 @@ retrieving revision 1.9 diff -u -r1.9 build.xml --- build.xml 11 May 2006 20:51:39 -0000 1.9 +++ build.xml 26 May 2006 23:06:38 -0000 -@@ -95,6 +95,21 @@ +@@ -95,6 +95,18 @@ + + + -+ -+ -+ + + + @@ -27,7 +24,7 @@ diff -u -r1.9 build.xml -@@ -265,8 +280,8 @@ +@@ -265,8 +277,8 @@ diff --git a/eclipse-pde.build-add-package-build.patch b/eclipse-pde.build-add-package-build.patch index 95b9ae1..2d0b04b 100644 --- a/eclipse-pde.build-add-package-build.patch +++ b/eclipse-pde.build-add-package-build.patch @@ -16,7 +16,7 @@ diff -N templates/package-build/build.properties +javacDebugInfo=true +archiveName=${id}.zip +runPackager=false -+baseLocation=@eclipse_base@ ++baseLocation=/usr/share/eclipse Index: templates/package-build/customTargets-assemble-target.xml =================================================================== RCS file: templates/package-build/customTargets-assemble-target.xml diff --git a/eclipse.spec b/eclipse.spec index f63c76b..25ef2f3 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -1,22 +1,15 @@ -# TODO: -# - migrate compare API patch (patch33) to 3.2 final -# - migrate cairo patch (patch43) to 3.2 final -# - migrate GNU formatter patches (patch20, patch21) to 3.2 final -# - comment on this bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=126648 - Epoch: 1 %define gcj_support 1 %define tomcatsharedir %{_datadir}/tomcat5 %define tomcatlibdir %{_var}/lib/tomcat5 -%define section free %define eclipse_major 3 %define eclipse_minor 2 %define eclipse_majmin %{eclipse_major}.%{eclipse_minor} %define eclipse_micro 1 %define libname libswt3 -# All arches line up except i386 -> x86 +# All arches line up between Eclipse and Linux kernel names except i386 -> x86 %ifarch %{ix86} %define eclipse_arch x86 %else @@ -26,108 +19,100 @@ Epoch: 1 Summary: An open, extensible IDE Name: eclipse Version: %{eclipse_majmin}.%{eclipse_micro} -Release: 23%{?dist} +Release: 24%{?dist} License: EPL Group: Text Editors/Integrated Development Environments (IDE) URL: http://www.eclipse.org/ -Source0: http://download.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945/eclipse-sourceBuild-srcIncluded-3.2.1.zip +Source0: http://download.eclipse.org/eclipse/downloads/drops/R-3.2.1-200609210945/eclipse-sourceBuild-srcIncluded-3.2.1.zip Source2: %{name}.desktop -Source5: %{name}-48.png -# FIXME: this should be in its own package -Source7: ftp://ftp.software.ibm.com/software/globalization/icu/icu4j/3.4.5/icu4jsrc_3_4_5.jar -Source11: %{name}-fedora-splash-3.2.1.png +# The icu4j bits will be moved out into their own package for Fedora 7. See: +# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=199504 +Source7: ftp://ftp.software.ibm.com/software/globalization/icu/icu4j/3.4.5/icu4jsrc_3_4_5.jar +Source11: %{name}-fedora-splash-3.2.1.png Source16: %{name}-copy-platform.sh Source17: efj.sh.in -Source18: ecj.sh.in -# https://bugs.eclipse.org/bugs/show_bug.cgi?id=90535 +Source18: ecj.sh.in +# This file contains the types of files we'd like to extract from the jars +# when using the FileInitializer Source19: %{name}-filenamepatterns.txt # cvs -d :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse co equinox-incubator/org.eclipse.equinox.initializer # tar cjf eclipse-fileinitializerapp.tar.bz2 equinox-incubator/ # (generated 2006-11-01 18:48 UTC) Source20: %{name}-fileinitializerapp.tar.bz2 - -# Build libswt-mozilla and libswt-cairo and use O2 -# https://bugs.eclipse.org/bugs/show_bug.cgi?id=71637 -Patch0: %{name}-libswt-enableallandO2.patch -# Build JNI libs -# FIXME: these should be built by upstream build method -# http://www.bagu.org/eclipse/plugin-source-drops.html -# https://bugs.eclipse.org/bugs/show_bug.cgi?id=71637 -# https://bugs.eclipse.org/bugs/show_bug.cgi?id=86848 -# GNU XML issue identified by Michael Koch -Patch2: %{name}-build.patch -Patch3: %{name}-icu4j-build-files.patch -Patch4: %{name}-libupdatebuild.patch -Patch5: %{name}-libupdatebuild2.patch +# Build liblocalfile and libupdate JNI libs in the main SDK build.xml +Patch0: %{name}-build.patch +# We need this because icu4j's Eclipse bits are dependent upon Eclipse +# but we don't want the icu4j RPM needing Eclipse to build +Patch1: %{name}-icu4j-build-files.patch +# These two patches need to go upstream +Patch2: %{name}-libupdatebuild.patch +Patch3: %{name}-libupdatebuild2.patch # Build swttools.jar # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90364 -Patch18: %{name}-swttools.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=114001 -Patch38: %{name}-helpindexbuilder.patch -Patch40: %{name}-usebuiltlauncher.patch -## Build cairo native libs -#Patch43: %{name}-libswt-cairo1.0-3.patch -Patch46: %{name}-libswt-xpcomgcc4.patch -Patch47: %{name}-launcher-set-install-dir-and-shared-config.patch +Patch4: %{name}-swttools.patch +# This is fixed post-3.3M1 +Patch10: %{name}-helpindexbuilder.patch +# This needs to go upstream +Patch11: %{name}-usebuiltlauncher.patch +# This does two things: +# 1. allows the launcher to be in /usr/bin and +# 2. ensures that the OSGi configuration directory +# (which contains the JNI .sos) is in %{_libdir} +# We should investigate whether or not this can go upstream +Patch12: %{name}-launcher-set-install-dir-and-shared-config.patch # Don't attempt to link to Sun's javadocs -Patch48: %{name}-javadoclinks.patch +# FIXME: could use sed instead +Patch13: %{name}-javadoclinks.patch # Always generate debug info when building RPMs (Andrew Haley) -Patch49: %{name}-ecj-rpmdebuginfo.patch +# This needs to be investigated for getEnv changes +Patch14: %{name}-ecj-rpmdebuginfo.patch # generic releng plugins that can be used to build plugins -# see this thread for deails: +# see this thread for details: # https://www.redhat.com/archives/fedora-devel-java-list/2006-April/msg00048.html -Patch53: %{name}-pde.build-add-package-build.patch +# This needs to be submitted upstream +Patch15: %{name}-pde.build-add-package-build.patch # We need to disable junit4 and apt until GCJ can handle Java5 code -Patch55: %{name}-disable-junit4-apt.patch - -# These patches need to go upstream +Patch16: %{name}-disable-junit4-apt.patch +# This tomcat stuff will change when they move to the equinox jetty provider # https://bugs.eclipse.org/bugs/show_bug.cgi?id=98371 -Patch28: %{name}-tomcat55.patch -Patch29: %{name}-tomcat55-build.patch -Patch31: %{name}-webapp-tomcat55.patch -# https://bugs.eclipse.org/bugs/show_bug.cgi?id=98707 -# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=178726 -Patch33: %{name}-compare-create-api.patch +Patch6: %{name}-tomcat55.patch +Patch7: %{name}-tomcat55-build.patch +Patch8: %{name}-webapp-tomcat55.patch # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90630 -Patch22: %{name}-updatehomedir.patch +Patch5: %{name}-updatehomedir.patch # JPackage []s in names of symlinks ... # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=162177 -Patch34: %{name}-ecj-square-bracket-classpath.patch +Patch9: %{name}-ecj-square-bracket-classpath.patch # Use ecj for gcj -Patch57: %{name}-ecj-gcj.patch +# The patch to Main.java can go away with 3.2.2. +Patch17: %{name}-ecj-gcj.patch # Build against firefox: # - fix swt profile include path # - don't compile the mozilla 1.7 / firefox profile library -- build it inline # - don't use symbols not in our firefox builds -# FIXME: add reference(s) to discussion(s) and bug(s) +# https://bugs.eclipse.org/bugs/show_bug.cgi?id=161310 # Note: I made this patch from within Eclipse and then did the following to # it due to spaces in the paths: # sed --in-place "s/Eclipse\ SWT\ Mozilla/Eclipse_SWT_Mozilla/g" eclipse-swt-firefox.patch # sed --in-place "s/Eclipse\ SWT\ PI/Eclipse_SWT_PI/g" eclipse-swt-firefox.patch -Patch59: %{name}-swt-firefox.patch -Patch60: %{name}-swt-firefox.2.patch +Patch18: %{name}-swt-firefox.patch +Patch19: %{name}-swt-firefox.2.patch # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=209393 # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29853 -Patch61: %{name}-workaround-plugin.xml-parsing-bug-gcc-bz29853.patch -Patch100: customBuildCallbacks.xml-add-pre.gather.bin.parts.patch +Patch20: %{name}-workaround-plugin.xml-parsing-bug-gcc-bz29853.patch +# This is already upstream in 3.3 builds. It *may* get into 3.2.2. +Patch21: customBuildCallbacks.xml-add-pre.gather.bin.parts.patch # Add ppc64 to the list of arches with gre64.conf # part of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=207016 -Patch101: %{name}-ppc64gre64.patch -# This allows us to remove the configuration platform.xml in /usr/share/eclipse -# yet still maintain user-installed plugins in ~/.eclipse -Patch102: %{name}-launcher-addplatformtotildeeclipse.patch - - -%if %{gcj_support} -%else -ExclusiveArch: %{ix86} x86_64 ppc ia64 sparc sparc64 -%endif -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot +Patch22: %{name}-ppc64gre64.patch +# This patch allowed us to remove +# /usr/share/eclipse/configuration/org.eclipse.update/platform.xml -- which +# fixed a number of update-related bugs -- in an FC6 update. +# We can remove this patch for Fedora 8. +Patch23: %{name}-launcher-addplatformtotildeeclipse.patch + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: ant BuildRequires: jpackage-utils >= 0:1.5, make, gcc BuildRequires: gnome-vfs2-devel @@ -153,10 +138,10 @@ BuildRequires: gjdoc >= 0.7.7-14 BuildRequires: java-devel >= 1.4.2 %endif -#BuildRequires: ant-antlr ant-apache-bcel ant-apache-bsf ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging -BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging +# Need to investigate why we don't build ant-apache-bsf or ant-commons-net in +# Fedora. When that's done, add it here and symlink below. # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180642 -#BuildRequires: ant-commons-net +BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging BuildRequires: ant-javamail ant-jdepend ant-junit ant-nodeps ant-swing ant-trax ant-jsch BuildRequires: jsch >= 0:0.1.28-1jpp BuildRequires: jakarta-commons-beanutils jakarta-commons-collections jakarta-commons-digester jakarta-commons-dbcp jakarta-commons-el jakarta-commons-fileupload jakarta-commons-launcher jakarta-commons-logging jakarta-commons-modeler jakarta-commons-pool @@ -165,6 +150,7 @@ BuildRequires: tomcat5 >= 5.5.17 BuildRequires: tomcat5-jasper >= 5.5.17 BuildRequires: tomcat5-servlet-2.4-api >= 5.5.17 BuildRequires: lucene +BuildRequires: lucene-devel BuildRequires: regexp BuildRequires: junit >= 3.8.1-3jpp %if %{gcj_support} @@ -193,23 +179,25 @@ Requires: java >= 1.4.2 Eclipse compiler for Java. %package -n %{libname}-gtk2 -Summary: SWT Library for GTK2 +Summary: SWT Library for GTK+-2.0 Group: Text Editors/Integrated Development Environments (IDE) %if %{gcj_support} Requires: libgcj >= 4.0.2 Requires(post,postun): java-gcj-compat >= 1.0.64 %endif +Requires: gtk2 Requires: firefox Conflicts: mozilla %description -n %{libname}-gtk2 -SWT Library for GTK2. +SWT Library for GTK+-2.0. %package rcp Summary: Eclipse Rich Client Platform Group: Development/Languages Requires: %{libname}-gtk2 = %{epoch}:%{version}-%{release} -Requires: %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_3.2.1.v3235.jar +# This file-level requirement is for the bi-arch multilib case +Requires: %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_3.2.1.v3235.jar Requires(post,postun): %{libname}-gtk2 = %{epoch}:%{version}-%{release} %if %{gcj_support} Requires: libgcj >= 4.0.2 @@ -222,102 +210,83 @@ Requires: java >= 1.4.2 Eclipse Rich Client Platform %package rcp-sdk -Summary: Eclipse RCP Source +Summary: Eclipse Rich Client Platform SDK Group: Text Editors/Integrated Development Environments (IDE) -# FIXME: these Provides and Obsoletes can be removed when FC-5 goes into legacy -Provides: %{name}-rcp-devel -Obsoletes: %{name}-rcp-devel Requires: %{name}-rcp = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-rcp = %{epoch}:%{version}-%{release} -#FIXME: fix description to include docs %description rcp-sdk -Source for RCP for use within Eclipse. - +Source for Eclipse Rich Client Platform for use within Eclipse. %package platform Summary: Eclipse platform common files Group: Text Editors/Integrated Development Environments (IDE) %if %{gcj_support} -Requires: libgcj >= 4.0.2 -Requires: java-gcj-compat >= 1.0.64 Requires(post,postun): java-gcj-compat >= 1.0.64 -%else -Requires: java >= 1.4.2 %endif -Requires: %{name}-rcp = %{epoch}:%{version}-%{release} +Requires: %{name}-rcp = %{epoch}:%{version}-%{release} +# This file-level requirement is for the bi-arch multilib case Requires: %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_3.2.1.v3235.jar Requires(post,postun): %{name}-rcp = %{epoch}:%{version}-%{release} -BuildRequires: gtk2 >= 2.6 -Requires: 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-antlr ant-apache-bcel ant-apache-bsf ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging +# Need to investigate why we don't build ant-apache-bsf or ant-commons-net in +# Fedora. When that's done, add it here and symlink below. # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180642 -#Requires: ant-commons-net +#Requires: ant-apache-bsf ant-commons-net +Requires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging Requires: ant-javamail ant-jdepend ant-junit ant-nodeps ant-swing ant-trax ant-jsch Requires: jakarta-commons-beanutils jakarta-commons-collections jakarta-commons-digester jakarta-commons-dbcp jakarta-commons-el jakarta-commons-fileupload jakarta-commons-launcher jakarta-commons-logging jakarta-commons-modeler jakarta-commons-pool Requires: mx4j >= 2.1 Requires: tomcat5 >= 5.5.17 Requires: tomcat5-jasper >= 5.5.17 Requires: tomcat5-servlet-2.4-api >= 5.5.17 -Requires: lucene +Requires: lucene, lucene-devel Requires: regexp %description platform -Eclipse platform common files. This package now contains the GTK2 UI (the -former eclipse-gtk2 package). +The Eclipse Platform is the base of all IDE plugins. This does not include the +Java Development Tools or the Plugin Development Environment. %package platform-sdk -Summary: Eclipse platform Source +Summary: Eclipse Platform SDK Group: Text Editors/Integrated Development Environments (IDE) -# FIXME: these Provides and Obsoletes can be removed when FC-5 goes into legacy -Provides: %{name}-platform-devel -Obsoletes: %{name}-platform-devel Requires: %{name}-platform = %{epoch}:%{version}-%{release} Requires: %{name}-rcp-sdk = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-platform = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-rcp-sdk = %{epoch}:%{version}-%{release} -Requires: java-javadoc -#FIXME: fix description to include docs %description platform-sdk -Source for Eclipse platform for use within Eclipse. +Source and docs for Eclipse Platform for use within Eclipse. %package jdt -Summary: Eclipse Java development tools +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(post,postun): %{name}-platform = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-ecj = %{epoch}:%{version}-%{release} Requires: junit >= 3.8.1-3jpp +Requires: java-javadoc %if %{gcj_support} -Requires: libgcj >= 4.0.2 Requires(post,postun): java-gcj-compat >= 1.0.64 %endif %description jdt -Eclipse Java developments tools. +Eclipse Java Development Tools. This package is required to use Eclipse for +developing software written in the Java programming language. %package jdt-sdk -Summary: Eclipse JDT Source +Summary: Eclipse Java Development Tools SDK Group: Text Editors/Integrated Development Environments (IDE) -# FIXME: these Provides and Obsoletes can be removed when FC-5 goes into legacy -Provides: %{name}-jdt-devel -Obsoletes: %{name}-jdt-devel Requires: %{name}-jdt = %{epoch}:%{version}-%{release} Requires: %{name}-platform-sdk = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-jdt = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-platform-sdk = %{epoch}:%{version}-%{release} -Requires: java-javadoc - -#FIXME: fix description to include docs %description jdt-sdk -Source for JDT for use within Eclipse. +Source and docs for Eclipse Java Development Tools for use within Eclipse. %package pde -Summary: Eclipse PDE +Summary: Eclipse Plugin Development Environment Group: Text Editors/Integrated Development Environments (IDE) Requires: %{name}-jdt = %{epoch}:%{version}-%{release} Requires: %{name}-pde-runtime = %{epoch}:%{version}-%{release} @@ -326,44 +295,39 @@ Requires(post,postun): %{name}-jdt = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-pde-runtime = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-platform-sdk = %{epoch}:%{version}-%{release} %if %{gcj_support} -Requires: libgcj >= 4.0.2 Requires(post,postun): java-gcj-compat >= 1.0.64 %endif %description pde -Eclipse Plug-in Development Environment. +Eclipse Plugin Development Environment. This package is required for +developing Eclipse plugins. %package pde-runtime -Summary: Eclipse PDE runtime plugin. +Summary: Eclipse Plugin Development Environment runtime plugin. Group: Text Editors/Integrated Development Environments (IDE) Requires: %{name}-platform = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-platform = %{epoch}:%{version}-%{release} %if %{gcj_support} -Requires: libgcj >= 4.0.2 -Requires(post): java-gcj-compat >= 1.0.64 -Requires(postun): java-gcj-compat >= 1.0.64 +Requires(post,postun): java-gcj-compat >= 1.0.64 %endif %description pde-runtime -Eclipse Plug-in Development Environment runtime plugin (org.eclipse.pde.runtime). +Eclipse Plugin Development Environment runtime plugin (org.eclipse.pde.runtime). %package pde-sdk -Summary: Eclipse PDE Source +Summary: Eclipse Plugin Development Environment SDK Group: Text Editors/Integrated Development Environments (IDE) Requires: %{name}-pde = %{epoch}:%{version}-%{release} Requires: %{name}-jdt-sdk = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-pde = %{epoch}:%{version}-%{release} -#FIXME: fix description to include docs %description pde-sdk -Source for Eclipse Plug-in Development Environment for use within Eclipse. +Source and docs for Eclipse Plugin Development Environment for use within +Eclipse. %package sdk -Summary: Eclipse PDE Source +Summary: Eclipse SDK Group: Text Editors/Integrated Development Environments (IDE) -# FIXME: these Provides and Obsoletes can be removed when FC-5 goes into legacy -Provides: %{name}-pde-devel -Obsoletes: %{name}-pde-devel Requires: %{name}-platform-sdk = %{epoch}:%{version}-%{release} Requires: %{name}-jdt-sdk = %{epoch}:%{version}-%{release} Requires: %{name}-pde-sdk = %{epoch}:%{version}-%{release} @@ -373,135 +337,131 @@ Requires(post,postun): %{name}-jdt-sdk = %{epoch}:%{version}-%{release} # This file requirement is to deal with the biarch installation case Requires(post,postun): %{_libdir}/%{name}/configuration/config.ini %if %{gcj_support} -Requires: libgcj >= 4.0.2 Requires(post,postun): java-gcj-compat >= 1.0.64 %endif -#FIXME: fix description to be better %description sdk -The Eclipse Plug-in Development Environment SDK. This package allows you -to create an IDE based on Eclipse. - +The Eclipse SDK. This package is similar to a meta-package which brings in +the Eclipse Platform SDK, the Eclipse Java Development Tools SDK, and the +Eclipse Plugin Development Environment SDK. It also contains the +org.eclipse.sdk plugin and feature. This package is only needed if you intend +to create Eclipse applications. %prep %setup -q -c -# I hate spaces in paths with patch! -pushd plugins/org.eclipse.swt/Eclipse\ SWT\ PI/gtk/library %patch0 -p0 -popd - %patch2 -p0 -%patch4 -p0 -%patch5 -p0 +%patch3 -p0 +# FIXME: investigate why we are pushd'ing here +# Build swttools.jar pushd plugins/org.eclipse.swt.gtk.linux.x86_64 -%patch18 -p0 +%patch4 -p0 popd -%patch22 -p0 +%patch5 -p0 # tomcat patches pushd plugins/org.eclipse.tomcat -%patch28 -p0 -%patch29 -p0 +%patch6 -p0 +%patch7 -p0 popd sed --in-place "s/4.1.130/5.5.17/" \ features/org.eclipse.platform/build.xml \ plugins/org.eclipse.tomcat/build.xml \ assemble.*.xml pushd plugins/org.eclipse.help.webapp -%patch31 -p0 -popd -pushd plugins/org.eclipse.compare -#%patch33 -p0 +%patch8 -p0 popd + pushd plugins/org.eclipse.jdt.core -%patch34 -p0 -%patch57 -p0 -popd -%patch38 -p0 -%patch40 -p0 -#%patch43 -pushd plugins/org.eclipse.swt/Eclipse\ SWT\ Mozilla/common/library -%patch46 +%patch9 -p0 +%patch17 -p0 popd +%patch10 -p0 +%patch11 -p0 # Because the launcher source is zipped up, we need to unzip, patch, and re-pack # FIXME: figure out why we need to patch and sed twice and fix upstream mkdir launchertmp unzip -qq -d launchertmp plugins/org.eclipse.platform/launchersrc.zip pushd launchertmp -%patch47 -p0 -%patch101 -p0 -%patch102 -p0 -# put the configuration directory in an arch specific location +%patch12 -p0 +%patch22 -p0 +%patch23 -p0 +# put the configuration directory in an arch-specific location sed --in-place "s:/usr/lib/eclipse/configuration:%{_libdir}/%{name}/configuration:" library/eclipse.c -# make the eclipse install relocatable +# make the eclipse binary relocatable sed --in-place "s:/usr/share/eclipse:%{_datadir}/%{name}:" library/eclipse.c zip -q -9 -r ../launchersrc.zip * popd mv launchersrc.zip plugins/org.eclipse.platform rm -rf launchertmp pushd features/org.eclipse.platform.launchers -%patch47 -p0 -%patch101 -p0 -%patch102 -p0 -# put the configuration directory in an arch specific location +%patch12 -p0 +%patch22 -p0 +%patch23 -p0 + +# put the configuration directory in an arch-specific location sed --in-place "s:/usr/lib/eclipse:%{_libdir}/%{name}:" library/eclipse.c -# make the eclipse install relocatable +# make the eclipse binary relocatable sed --in-place "s:/usr/share/eclipse:%{_datadir}/%{name}:" library/eclipse.c popd # Link against our system-installed javadocs -%patch48 -p0 +%patch13 -p0 sed --in-place "s:/usr/share/:%{_datadir}/:g" \ plugins/org.eclipse.jdt.doc.isv/jdtOptions.txt \ plugins/org.eclipse.pde.doc.user/pdeOptions.txt \ plugins/org.eclipse.pde.doc.user/pdeOptions \ plugins/org.eclipse.platform.doc.isv/platformOptions.txt -%patch49 -p0 +%patch14 -p0 pwd pushd plugins/org.eclipse.pde.build -%patch53 -sed --in-place "s:@eclipse_base@:%{_datadir}/%{name}:" templates/package-build/build.properties +%patch15 +sed --in-place "s:/usr/share/eclipse:%{_datadir}/%{name}:" templates/package-build/build.properties popd -%patch55 -p0 +# Remove apt and junit4 until we have 1.5 +%patch16 -p0 rm plugins/org.junit4/junit-4.1.jar -# I love directories with spaces in their names +# Build against our firefox packages pushd plugins/org.eclipse.swt mv "Eclipse SWT Mozilla" Eclipse_SWT_Mozilla mv "Eclipse SWT PI" Eclipse_SWT_PI -%patch59 +%patch18 mv Eclipse_SWT_Mozilla "Eclipse SWT Mozilla" mv Eclipse_SWT_PI "Eclipse SWT PI" popd pushd plugins/org.eclipse.swt.tools mv "JNI Generation" JNI_Generation -%patch60 +%patch19 mv JNI_Generation "JNI Generation" popd -# workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29853 +# workaround for GNU XML bug when parsing plugin.xml +# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29853 pushd plugins/org.eclipse.pde.core -%patch61 +%patch20 popd -# FIXME check if this has been applied upstream +# customcallbacks fixes. They are upstream already. pushd plugins/org.eclipse.platform.doc.isv -%patch100 -p0 +%patch21 -p0 popd pushd plugins/org.eclipse.platform.doc.user -%patch100 -p0 +%patch21 -p0 popd +# Splashscreen pushd plugins/org.eclipse.platform cp %{SOURCE11} splash.bmp popd # FIXME this should be patched upstream with a flag to turn on and off # all output should be directed to stdout +# https://bugs.eclipse.org/bugs/show_bug.cgi?id=144942 find -type f -name \*.xml -exec sed --in-place -r "s/output=\".*(txt|log).*\"//g" "{}" \; # Remove existing .sos @@ -566,7 +526,7 @@ rm plugins/org.apache.ant/lib/ant-xalan1.jar rm plugins/org.apache.ant/lib/ant-xalan1src.zip rm plugins/org.apache.ant/lib/ant-xslp.jar rm plugins/org.apache.ant/lib/ant-xslpsrc.zip -# FIXME use build-jar-repository +# FIXME: use build-jar-repository ln -s %{_javadir}/ant/ant-antlr.jar plugins/org.apache.ant/lib/ant-antlr.jar ln -s %{_javadir}/ant/ant-apache-bcel.jar plugins/org.apache.ant/lib/ant-apache-bcel.jar #ln -s %{_javadir}/ant/ant-apache-bsf.jar plugins/org.apache.ant/lib/ant-apache-bsf.jar @@ -576,7 +536,7 @@ ln -s %{_javadir}/ant/ant-apache-regexp.jar plugins/org.apache.ant/lib/ant-apach ln -s %{_javadir}/ant/ant-apache-resolver.jar plugins/org.apache.ant/lib/ant-apache-resolver.jar ln -s %{_javadir}/ant/ant-commons-logging.jar plugins/org.apache.ant/lib/ant-commons-logging.jar # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180642 -# the symlinks that are commented out are not currently shipped on Fedora +# the symlinks that are commented-out are not currently shipped on Fedora #ln -s %{_javadir}/ant/ant-commons-net.jar plugins/org.apache.ant/lib/ant-commons-net.jar #ln -s %{_javadir}/ant/ant-icontract.jar plugins/org.apache.ant/lib/ant-icontract.jar #ln -s %{_javadir}/ant/ant-jai.jar plugins/org.apache.ant/lib/ant-jai.jar @@ -598,15 +558,14 @@ ln -s %{_javadir}/ant/ant-trax.jar plugins/org.apache.ant/lib/ant-trax.jar #ln -s %{_javadir}/ant/ant-xalan1.jar plugins/org.apache.ant/lib/ant-xalan1.jar #ln -s %{_javadir}/ant/ant-xslp.jar plugins/org.apache.ant/lib/ant-xslp.jar ## END ANT ## + # BEGIN LUCENE ## rm plugins/org.apache.lucene/lucene-1.4.3.jar -# FIXME: Remove this zip until we have a lucene-devel package containing it. -# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=170343 rm plugins/org.apache.lucene/lucene-1.4.3-src.zip +ln -s %{_usr}/src/lucene/lucene-1.4.3.jar plugins/org.apache.lucene/lucene-1.4.3-src.zip ln -s %{_javadir}/lucene.jar plugins/org.apache.lucene/lucene-1.4.3.jar # END LUCENE ## - ## BEGIN TOMCAT ## rm plugins/org.eclipse.tomcat/commons-beanutils.jar rm plugins/org.eclipse.tomcat/commons-collections.jar @@ -670,11 +629,10 @@ sed --in-place "s:/usr/lib/:%{_libdir}/:g" build.sh sed --in-place "s:-L\$(AWT_LIB_PATH):-L%{_jvmdir}/java/jre/lib/%{_arch}:" make_linux.mak popd -# FIXME: figure out what's going on with build.index +# FIXME: figure out what's going on with build.index. This is a gjdoc problem. find plugins -type f -name \*.xml -exec sed --in-place "s/\(\)/<\!-- \1 -->/" "{}" \; # the swt version is set to HEAD on ia64 but shouldn't be -# FIXME: file a bug about this # get swt version SWT_MAJ_VER=$(grep maj_ver plugins/org.eclipse.swt/Eclipse\ SWT/common/library/make_common.mak | cut -f 2 -d =) SWT_MIN_VER=$(grep min_ver plugins/org.eclipse.swt/Eclipse\ SWT/common/library/make_common.mak | cut -f 2 -d =) @@ -685,15 +643,15 @@ sed --in-place "s/$swt_frag_ver_ia64/$swt_frag_ver/g" plugins/org.eclipse.swt.gt assemble.org.eclipse.sdk.linux.gtk.ia64.xml \ features/org.eclipse.rcp/build.xml -# nasty hack to get suppport for ppc64, s390(x) and sparc(64) -# move all of the ia64 directories to ppc64 or s390(x) or sparc(64) dirs and replace +# Nasty hack to get suppport for ppc64, s390{,x} and sparc{,64} +# 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 # 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 remove ppc64 support from features/org.eclipse.platform.source/feature.xml + # 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 @@ -701,11 +659,11 @@ sed --in-place "s/$swt_frag_ver_ia64/$swt_frag_ver/g" plugins/org.eclipse.swt.gt # replace final occurances with an existing arch sed --in-place "s/ppc64/x86_64/g" features/org.eclipse.platform.source/build.xml - # remove remove ppc64 support from features/org.eclipse.platform.source/feature.xml + # remove ppc64 support from features/org.eclipse.platform.source/feature.xml mv features/org.eclipse.platform.source/feature.xml features/org.eclipse.platform.source/feature.xml.orig grep -v ppc64 features/org.eclipse.platform.source/feature.xml.orig > features/org.eclipse.platform.source/feature.xml - # finally the replacement hack + # finally, the replacement hack for f in $(find -name \*ia64\* | grep -v motif | grep -v ia64_32); do mv $f $(echo $f | sed "s/ia64/%{_arch}/") done @@ -722,16 +680,7 @@ for f in `find .. -name \*.java`; do done popd -# setup the jsch plugin build -rm plugins/org.eclipse.team.cvs.ssh2/com.jcraft.jsch_*.jar -# FIXME remove version number, file a bug about this -pushd baseLocation/plugins -# get the Manifest file -unzip -qq -o -d com.jcraft.jsch_0.1.28.jar-build com.jcraft.jsch_*.jar -x com\* -rm com.jcraft.jsch_*.jar -popd - -# setup with the icu4j plugins for building +# set the icu4j plugins for building pushd baseLocation/plugins rm com.ibm.icu.base_3.4.5.jar \ com.ibm.icu_3.4.5.jar \ @@ -742,7 +691,7 @@ mkdir -p icu4j-build-temp pushd icu4j-build-temp unzip -qq %{SOURCE7} sed --in-place "s/ .*bootclasspath=.*//g" build.xml -ant -d eclipseProjects +ant eclipseProjects popd mkdir -p icu4j-build @@ -752,7 +701,7 @@ rm -r icu4j-build-temp # add build.xml patches pushd icu4j-build -%patch3 -p1 +%patch1 -p1 popd popd @@ -762,7 +711,8 @@ popd rm plugins/org.eclipse.swt.win32.win32.x86/swt.jar \ plugins/org.eclipse.swt/extra_jars/exceptions.jar \ plugins/org.eclipse.swt.tools/swttools.jar \ - features/org.eclipse.platform.launchers/bin/startup.jar + features/org.eclipse.platform.launchers/bin/startup.jar \ + plugins/org.eclipse.team.cvs.ssh2/com.jcraft.jsch_*.jar # make sure there are no jars left JARS="" @@ -772,7 +722,7 @@ for j in $(find -name \*.jar); do fi done if [ ! -z "$JARS" ]; then - echo "These jar should be deleted and symlinked to system jars: $JARS" + echo "These jars should be deleted and symlinked to system jars: $JARS" #FIXME: enable exit 1 fi @@ -782,24 +732,28 @@ tar jxf %{SOURCE20} env ORIGCLASSPATH=$CLASSPATH -# finish the jsch plugin build -# FIXME remove version numbers +# Build jsch +pushd baseLocation/plugins +# extract the Manifest file +unzip -qq -o -d com.jcraft.jsch_0.1.28.jar-build com.jcraft.jsch_*.jar -x com\* +rm com.jcraft.jsch_*.jar +popd # FIXME jar -V does not work for proprietary VMs pushd baseLocation/plugins/com.jcraft.jsch_0.1.28.jar-build unzip -qq %{_javadir}/jsch.jar -x META-INF\* sed --in-place "s/$(grep Created-By: META-INF/MANIFEST.MF)/Created-By: $(jar -V | head -1)/" META-INF/MANIFEST.MF jar -Mcf ../com.jcraft.jsch_0.1.28.jar * popd -# FXIME don't delete this, do what icu4j does +# FIXME don't delete this, do what icu4j does rm -r baseLocation/plugins/com.jcraft.jsch_0.1.28.jar-build -# finish the icu4j build +# Finish the icu4j build pushd baseLocation/plugins -# build the icu.base plugin +# Build the icu.base plugin zipfile=$PWD/com.ibm.icu.base.source_3.4.5/src/com.ibm.icu.base_3.4.5/src.zip pushd icu4j-build/com.ibm.icu.base/src -find -name \*.java | xargs touch --date=1/1/1970 +find -name \*.java | xargs touch --date=1/1/1980 zip -X -9 -r $zipfile . -i \*.java popd pushd icu4j-build/com.ibm.icu.base @@ -807,10 +761,10 @@ ant build.update.jar popd mv icu4j-build/com.ibm.icu.base/com.ibm.icu.base_3.4.5.jar . -# build the icu plugin +# Build the icu plugin zipfile=$PWD/com.ibm.icu.source_3.4.5/src/com.ibm.icu_3.4.5/src.zip pushd icu4j-build/com.ibm.icu/src -find -name \*.java | xargs touch --date=1/1/1970 +find -name \*.java | xargs touch --date=1/1/1980 zip -X -9 -r $zipfile . -i \*.java popd pushd icu4j-build/com.ibm.icu @@ -896,27 +850,6 @@ ant \ -DinstallOs=linux -DinstallWs=gtk -DinstallArch=%{eclipse_arch} \ -Dlibsconfig=true -# Hack to get the -debuginfo source code references -# to be pointing to the right place: -# Hardlink all the org.* source we can find -# Presumably, all the zipped source gets unzipped before compilation? -#src_root=$PWD/plugins -#pushd result -#mkdir -p eclipse/org -#collected_src_dir=$PWD/eclipse -#cat >copyallsrc <<-EOF -# #! /bin/bash -peu -# cd "\$1" -# echo "Copying all .java source files from \$1 to $collected_src_dir..." -# find . -type f -name '*.java' -print0 \ -# | xargs -0 -r cp -l --parents --target-directory=$collected_src_dir/org -#EOF -#chmod u+x copyallsrc -## Special case logic for SWT - only copy linux-gtk source -#find $src_root -type d -a \( -name org.eclipse.swt -prune -o -name org -print0 \) | xargs -l -0 ./copyallsrc -#./copyallsrc $src_root/org.eclipse.swt/Eclipse\ SWT/gtk/org -#popd - # Build the FileInitializer application SDK=$(cd eclipse && pwd) PDEPLUGINVERSION=$(ls $SDK/plugins | grep pde.build | sed 's/org.eclipse.pde.build_//') @@ -925,6 +858,7 @@ mkdir -p build mkdir -p home homedir=$(cd home && pwd) +# This can go away when package build handles plugins (not just features) echo "" > build/assemble.org.eclipse.equinox.initializer.all.xml echo "" > build/package.org.eclipse.equinox.initializer.all.xml @@ -952,52 +886,62 @@ popd %install rm -rf $RPM_BUILD_ROOT -# get swt version +# Get swt version SWT_MAJ_VER=$(grep maj_ver plugins/org.eclipse.swt/Eclipse\ SWT/common/library/make_common.mak | cut -f 2 -d =) SWT_MIN_VER=$(grep min_ver plugins/org.eclipse.swt/Eclipse\ SWT/common/library/make_common.mak | cut -f 2 -d =) SWT_VERSION=$SWT_MAJ_VER$SWT_MIN_VER +# Some directories we need install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name} +install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/links +install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name} +install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins +install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/features + +# Explode the resulting SDK tarball tar -C $RPM_BUILD_ROOT%{_datadir} -zxf result/linux-gtk-%{eclipse_arch}-sdk.tar.gz +# The FileInitializer app isn't part of the SDK (yet?) but we want it to be +# around for other RPMs cp equinox-incubator/org.eclipse.equinox.initializer/org.eclipse.equinox.initializer_*.jar \ $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins -install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name} - -# Install the platform specific fragments in an arch specific dir -install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/links +# Set up an extension location and a link file for the arch-specific dir echo "path:$RPM_BUILD_ROOT%{_libdir}" > $RPM_BUILD_ROOT%{_datadir}/%{name}/links/fragments.link echo "name=Eclipse Platform" > $RPM_BUILD_ROOT%{_libdir}/%{name}/.eclipseextension echo "id=org.eclipse.platform" >> $RPM_BUILD_ROOT%{_libdir}/%{name}/.eclipseextension echo "version=%{eclipse_majmin}.%{eclipse_micro}" >> $RPM_BUILD_ROOT%{_libdir}/%{name}/.eclipseextension -install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins -install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/features -# Install the platform specific fragments in an arch specific dir -install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins +# Install the platform-specific fragments in an arch-specific dir mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/*%{eclipse_arch}* $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins -# platform.source has the launcher src zip which is platform specific + +# platform.source has the launcher src zip which is platform-specific PLATFORMSOURCEVERSION=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep platform.source_ | sed 's/org.eclipse.platform.source_//') mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.platform.source_$PLATFORMSOURCEVERSION \ $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins + # help.webapp generates web.xml with Apache Jakarta Tomcat JspC. This file is # generated differently for different arches. FIXME investigate this. HELPWEBAPPVERSION=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep help.webapp_ | sed 's/org.eclipse.help.webapp_//') mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.help.webapp_$HELPWEBAPPVERSION \ $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins + # update.core.linux is a fragment # FIXME: make a patch for upstream to change to swt fragment notation UPDATECORELINUXVERSION=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep update.core.linux_ | sed 's/org.eclipse.update.core.linux_//') mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.update.core.linux_$UPDATECORELINUXVERSION \ $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins + # FIXME: icu4j generates res_index.txt differently on different arches - possible libgcj bug. mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/com.ibm.icu_3.4.5.jar $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/com.ibm.icu.source_3.4.5 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins -# FIXME: there is a problem with gjdoc with this plugin + +# FIXME: there is a problem with gjdoc generating different HTML on different +# architectures. This happens with this plugin. PLATFORMDOCISVVERSION=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep platform.doc.isv_ | sed 's/org.eclipse.platform.doc.isv_//') mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.platform.doc.isv_$PLATFORMDOCISVVERSION \ $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins + # To ensure that the product is org.eclipse.sdk.ide when eclipse-sdk is # installed, we must check for its presence at %%post{,un} time. This does not # work in the biarch case, though, if it is not in an arch-specific location. @@ -1005,14 +949,17 @@ mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.platform.doc.isv_$PLAT # better than always appearing in the about dialog as the Eclipse Platform with # the platform plugin version number instead of the actual SDK version number. # -- overholt, 2006-11-03 -mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.sdk_* $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins -mv $RPM_BUILD_ROOT%{_datadir}/%{name}/features/org.eclipse.sdk_* $RPM_BUILD_ROOT%{_libdir}/%{name}/features +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.sdk_* \ + $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/features/org.eclipse.sdk_* \ + $RPM_BUILD_ROOT%{_libdir}/%{name}/features -mkdir -p home -homedir=$(cd home && pwd) # FIXME: investigate why it doesn't work to set this -- configuration data is -# always written to /usr/share/eclipse/configuration -# -Dosgi.sharedConfiguration.area=$RPM_BUILD_ROOT%{_libdir}/%{name}/configuration \ +# always written to /usr/share/eclipse/configuration, even with +# -Dosgi.sharedConfiguration.area=$RPM_BUILD_ROOT%{_libdir}/%{name}/configuration +# Note (2006-12-05): upon looking at this again, we (bkonrath, overholt) don't +# know what we're doing with $libdir_path :) It requires some investigation. +# # Extract .so files # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90535 pushd $RPM_BUILD_ROOT @@ -1035,8 +982,6 @@ echo "path:/usr/lib64" > $RPM_BUILD_ROOT%{_datadir}/%{name}/links/fragments64.li mv $RPM_BUILD_ROOT%{_datadir}/%{name}/configuration $RPM_BUILD_ROOT%{_libdir}/%{name} rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.update rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.core.runtime -# Where did these go? -#rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/*.log # Set config.ini for the platform; no benefit to having it be sdk sed --in-place "s/eclipse.product=org.eclipse.sdk.ide/eclipse.product=org.eclipse.platform.ide/" \ @@ -1071,9 +1016,9 @@ done popd # Install the SWT symlinks in libdir -swtjarversion=$(grep v$SWT_VERSION plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}/build.xml | sed "s:.*<.*\"\(.*\)\"/>:\1:") +SWTJARVERSION=$(grep v$SWT_VERSION plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}/build.xml | sed "s:.*<.*\"\(.*\)\"/>:\1:") pushd $RPM_BUILD_ROOT%{_libdir}/%{name} -ln -s %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_$swtjarversion.jar swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar +ln -s %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_$SWTJARVERSION.jar swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar ln -s swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar swt-gtk-%{eclipse_majmin}.jar popd @@ -1090,22 +1035,28 @@ pushd $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/ ln -s org.eclipse.pde.build_* org.eclipse.pde.build popd -# rh/freedesktop.org icons -install -p -D -m0644 %{SOURCE5} \ +# Icons +PLATFORMSUFFIX=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep eclipse.platform_ | sed "s/org.eclipse.platform_//") +install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps +ln -s %{_datadir}/%{name}/plugins/org.eclipse.platform_$PLATFORMSUFFIX/eclipse48.png \ $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 \ +install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps +ln -s %{_datadir}/%{name}/plugins/org.eclipse.platform_$PLATFORMSUFFIX/eclipse32.png \ $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 \ +install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps +ln -s ../../../../%{name}/plugins/org.eclipse.platform_$PLATFORMSUFFIX/eclipse.png \ $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/%{name}.png +install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/pixmaps +ln -s %{_datadir}/icons/hicolor/48x48/apps/%{name}.png \ + $RPM_BUILD_ROOT%{_datadir}/pixmaps +%ifarch %{ix86} x86_64 # Remove unused icon.xpm +# This should be fixed in 3.3. +# see https://bugs.eclipse.org/bugs/show_bug.cgi?id=86848 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/icon.xpm +%endif -# install the efj wrapper script +# Install the efj wrapper script 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 @@ -1118,18 +1069,20 @@ sed --in-place "s:@JAVADIR@:%{_javadir}:" $RPM_BUILD_ROOT%{_bindir}/ecj desktop-file-validate %{SOURCE2} # freedesktop.org menu entry -install -p -D -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop +install -p -D -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop +SDKPLUGINVERSION=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins | grep eclipse.sdk_ | sed "s/org.eclipse.sdk_//") # Put Fedora Core version into about.mappings of org.eclipse.sdk and # org.eclipse.platform to show it in # Eclipse about dialog. (courtesy Debian # Eclipse packagers) # FIXME use the third id -pushd $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.sdk_%{eclipse_majmin}.* -OS_VERSION=`cat /etc/*-release | head -n 1` +pushd $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.sdk_$SDKPLUGINVERSION +OS_VERSION=$(cat /etc/*-release | head -n 1) sed -e "s/\(0=.*\)/\1 ($OS_VERSION)/" < about.mappings > about.mappings.tmp mv about.mappings.tmp about.mappings popd -pushd $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.platform_%{eclipse_majmin}.* +PLATFORMPLUGINVERSION=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep eclipse.platform_ | sed "s/org.eclipse.platform_//") +pushd $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.platform_$PLATFORMPLUGINVERSION sed -e "s/\(0=.*\)/\1 ($OS_VERSION)/" < about.mappings > about.mappings.tmp mv about.mappings.tmp about.mappings popd @@ -1209,14 +1162,20 @@ ln -s %{_javadir}/ant/ant-trax.jar plugins/org.apache.ant_1.6.5/lib/ant-trax.jar #ln -s %{_javadir}/ant/ant-xalan1.jar plugins/org.apache.ant_1.6.5/lib/ant-xalan1.jar #ln -s %{_javadir}/ant/ant-xslp.jar plugins/org.apache.ant_1.6.5/lib/ant-xslp.jar ## END ANT ## + # BEGIN LUCENE ## -# FIXME: rm -f in ln -#rm plugins/org.apache.lucene_*/lucene-1.4.3.jar -ln -sf %{_javadir}/lucene.jar plugins/org.apache.lucene_*/lucene-1.4.3.jar +LUCENEPLUGINVERSION=$(ls plugins | grep lucene | sed 's/org.apache.lucene_//') +rm plugins/org.apache.lucene_$LUCENEPLUGINVERSION/lucene-1.4.3.jar +ln -s %{_javadir}/lucene.jar \ + plugins/org.apache.lucene_$LUCENEPLUGINVERSION/lucene-1.4.3.jar +# org.eclipse.platform.source is in the arch-specific location +pushd $RPM_BUILD_ROOT%{_libdir}/%{name} +PLATFORMSOURCEVERSION=$(ls plugins | grep platform.source_ | sed 's/org.eclipse.platform.source_//') +rm plugins/org.eclipse.platform.source_$PLATFORMSOURCEVERSION/src/org.apache.lucene_$LUCENEPLUGINVERSION/lucene-1.4.3-src.zip +ln -s %{_usr}/src/lucene/lucene-1.4.3.jar \ + plugins/org.eclipse.platform.source_$PLATFORMSOURCEVERSION/src/org.apache.lucene_$LUCENEPLUGINVERSION/lucene-1.4.3-src.zip +popd # END LUCENE ## -# FIXME -#rm plugins/org.eclipse.team.cvs.ssh2_*/jsch-0.1.18.jar -#ln -s %{_javadir}/jsch.jar plugins/org.eclipse.team.cvs.ssh2_*/jsch-0.1.18.jar ## BEGIN TOMCAT ## TOMCATPLUGINVERSION=$(ls plugins | grep tomcat | sed 's/org.eclipse.tomcat_//') @@ -1254,19 +1213,6 @@ build-jar-repository -s -p plugins/org.eclipse.tomcat_$TOMCATPLUGINVERSION/lib s build-jar-repository -s -p plugins/org.junit_* junit -# FIXME: due to aot-compile-rpm smarts, the required resource bundles aren't -# being compiled so this truly native ecj binary isn't possible -#%if %{gcj_support} -# # Build and install ecj binary -# pushd $RPM_BUILD_ROOT%{_libdir}/gcj/%{name} -# gcj -g -O2 --main=org.eclipse.jdt.internal.compiler.batch.Main \ -# -Wl,-R,%{_libdir}/gcj/%{name} \ -# org.eclipse.jdt.core_3.1.2.jar.so -o \ -# $RPM_BUILD_ROOT%{_bindir}/ecj -# popd -# chmod a+x $RPM_BUILD_ROOT%{_bindir}/ecj -#%else - # 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 @@ -1363,7 +1309,10 @@ rm -rf $RPM_BUILD_ROOT %post platform %if %{gcj_support} -%{_bindir}/rebuild-gcj-db +if [ -x %{_bindir}/rebuild-gcj-db ] +then + %{_bindir}/rebuild-gcj-db +fi %endif touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then @@ -1372,7 +1321,10 @@ fi %postun platform %if %{gcj_support} -%{_bindir}/rebuild-gcj-db +if [ -x %{_bindir}/rebuild-gcj-db ] +then + %{_bindir}/rebuild-gcj-db +fi %endif touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then @@ -1381,7 +1333,10 @@ fi %post sdk %if %{gcj_support} -%{_bindir}/rebuild-gcj-db +if [ -x %{_bindir}/rebuild-gcj-db ] +then + %{_bindir}/rebuild-gcj-db +fi %endif if [ -f %{_libdir}/%{name}/configuration/config.ini ]; then sed --in-place "s/[#]*eclipse.product=.*/eclipse.product=org.eclipse.sdk.ide/" \ @@ -1390,7 +1345,10 @@ fi %postun sdk %if %{gcj_support} -%{_bindir}/rebuild-gcj-db +if [ -x %{_bindir}/rebuild-gcj-db ] +then + %{_bindir}/rebuild-gcj-db +fi %endif # Only set the product back to platform.ide if the sdk is actually removed for # this arch. This SDKDIR check is to deal with the ordering of new %%post @@ -1424,14 +1382,6 @@ fi %postun pde-sdk -p %{_bindir}/rebuild-gcj-db %endif -# This is to deal with my stupidity that manifested itself as -# rebuild-sdk-features -- overholt -%triggerpostun rcp -- eclipse-rcp < 1:3.2.1, eclipse-rcp-devel < 1:3.2.1, eclipse-pde < 1:3.2.1, eclipse-pde-devel < 1:3.2.1, eclipse-jdt < 1:3.2.1, eclipse-jdt-devel < 1:3.2.1, eclipse-platform < 1:3.2.1, eclipse-platform-devel < 1:3.2.1 -# Remove crap from rebuild-sdk-features -rm -rf %{_datadir}/%{name}/features/org.eclipse.sdk_3.1.2 -# Remove pre-configured, unnecessary platform.xml created by rebuild-sdk-features -rm -f %{_datadir}/%{name}/configuration/org.eclipse.update/platform.xml* - %files ecj %defattr(-,root,root) %dir %{_datadir}/%{name} @@ -1748,6 +1698,10 @@ rm -f %{_datadir}/%{name}/configuration/org.eclipse.update/platform.xml* %{_libdir}/%{name}/plugins/org.eclipse.sdk_* %changelog +* Tue Dec 5 2006 Andrew Overholt 3.2.1-24 +- Specfile review with Ben Konrath. +- Lots of cleanups. + * Tue Nov 28 2006 Andrew Overholt 3.2.1-23 - Move back to ~/.eclipse for update site pending upstream comments. - Add patch to add platform to ~/.eclipse's platform.xml. This maintains