diff --git a/eclipse-addrootfiles.patch b/eclipse-addrootfiles.patch new file mode 100644 index 0000000..21a3f4e --- /dev/null +++ b/eclipse-addrootfiles.patch @@ -0,0 +1,11 @@ +diff -up ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties.nonupstreamarches ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties +--- ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties.nonupstreamarches 2008-07-29 09:36:30.000000000 -0400 ++++ ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties 2008-07-29 09:37:19.000000000 -0400 +@@ -21,6 +21,7 @@ root.linux.motif.x86=eclipse,libcairo-sw + root.linux.gtk.x86=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm + root.linux.gtk.x86_64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm + root.linux.gtk.ia64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm ++root.linux.gtk.s390x=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm + root.linux.gtk.ppc=eclipse + root.macosx.carbon.ppc=eclipse,Eclipse.app/ + root.macosx.carbon.ppc.link=Eclipse.app/Contents/MacOS/eclipse,eclipse,../../../MacOS,Eclipse.app/Contents/Resources/Splash.app/Contents/MacOS diff --git a/eclipse-mv-Platform.sh b/eclipse-mv-Platform.sh index 693acef..ee66993 100644 --- a/eclipse-mv-Platform.sh +++ b/eclipse-mv-Platform.sh @@ -12,6 +12,14 @@ mv $baseDir/notice.html . mv $baseDir/readme/ . mv $baseDir/features/org.eclipse.platform_* features mv $baseDir/features/org.eclipse.help_* features +mv $baseDir/features/org.eclipse.cvs_* features +mv $baseDir/plugins/org.eclipse.cvs_* plugins +mv $baseDir/plugins/org.eclipse.team.cvs.core_* plugins +mv $baseDir/plugins/org.eclipse.team.cvs.ssh_* plugins +mv $baseDir/plugins/org.eclipse.team.cvs.ssh2_* plugins +mv $baseDir/plugins/org.eclipse.team.cvs.ui_* plugins +mv $baseDir/features/org.eclipse.equinox.p2.user.ui_* features +mv $baseDir/features/org.fedoraproject* features mv $baseDir/features/org.eclipse.equinox.p2.user.ui_* features mv $baseDir/features/org.fedoraproject* features mv $baseDir/plugins/org.fedoraproject* plugins @@ -83,6 +91,7 @@ mv $baseDir/plugins/org.eclipse.rcp_* plugins mv $baseDir/plugins/org.eclipse.core.contenttype_* plugins mv $baseDir/plugins/org.eclipse.equinox.app_* plugins mv $baseDir/plugins/org.eclipse.equinox.common_* plugins +mv $baseDir/plugins/org.eclipse.equinox.initializer_* plugins mv $baseDir/plugins/org.eclipse.equinox.preferences_* plugins mv $baseDir/plugins/org.eclipse.equinox.registry_* plugins mv $baseDir/plugins/org.eclipse.equinox.launcher_* plugins diff --git a/eclipse-pde.build-add-package-build.patch b/eclipse-pde.build-add-package-build.patch index 77f347d..9aa754e 100644 --- a/eclipse-pde.build-add-package-build.patch +++ b/eclipse-pde.build-add-package-build.patch @@ -1,22 +1,89 @@ -Index: templates/package-build/build.properties +### Eclipse Workspace Patch 1.0 +#P org.eclipse.pde.build +Index: templates/package-build/prepare-build-dir.sh =================================================================== -RCS file: templates/package-build/build.properties -diff -N templates/package-build/build.properties +RCS file: templates/package-build/prepare-build-dir.sh +diff -N templates/package-build/prepare-build-dir.sh --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ templates/package-build/build.properties 1 Jan 1970 00:00:00 -0000 -@@ -0,0 +1,12 @@ -+buildDirectory=${sourceDirectory}/build -+buildLabel=rpmBuild -+archivePrefix=eclipse -+skipFetch=true -+javacFailOnError=true -+collectingFolder=eclipse -+archivesFormat=*,*,*-zip -+zipargs=-y -+javacDebugInfo=true -+archiveName=${id}.zip -+runPackager=false -+baseLocation=/usr/share/eclipse ++++ templates/package-build/prepare-build-dir.sh 1 Jan 1970 00:00:00 -0000 +@@ -0,0 +1,77 @@ ++#!/bin/sh ++ ++if [ $# -ne 2 ]; then ++ echo "usage: $0 " ++ exit 1 ++fi ++ ++if [ ! -d $1 ]; then ++ echo "usage: $0 " ++ exit 1 ++fi ++ ++SOURCEDIR=$1 ++BUILDDIR=$2 ++ ++echo "preparing files in $1 for buildfile generation ..." ++mkdir -p $BUILDDIR ++ ++# make some ant build files to extract the id from the feature.xml, plugin.xml or the fragment.xml ++mkdir -p $BUILDDIR/tmp ++BUILDFILE=$BUILDDIR/tmp/build.xml ++ ++echo " ++ ++ ++ ++ ++ ++" > $BUILDFILE ++ ++for type in feature plugin fragment; do ++ CURBUILDFILE=$BUILDDIR/tmp/$type-build.xml ++ cat $BUILDFILE | sed "s|@type@|$type|" > $CURBUILDFILE ++done ++ ++# make the directories eclipse is expecting ++echo " making the 'features' and 'plugins' directories" ++mkdir -p $BUILDDIR/features $BUILDDIR/plugins ++ ++# make symlinks for the features ++FEATURES=$(find $SOURCEDIR -name feature.xml) ++for f in $FEATURES; do ++ PROJECTDIR=$(dirname $f) ++ PROJECTNAME=$(ant -Dbasedir=$PROJECTDIR -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7) ++ if [ -z $PROJECTNAME ]; then ++ echo "ERROR: could not determine the feature id for $PROJECTDIR" ++ exit 1 ++ fi ++ ++ echo " making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR" ++ ln -sf $PROJECTDIR $BUILDDIR/features/$PROJECTNAME ++done ++ ++# make symlinks for plugins and fragments ++PLUGINDIRS=$(find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq) ++for dir in $PLUGINDIRS; do ++ PROJECTNAME="" ++ if [ -e $dir/META-INF/MANIFEST.MF ]; then ++ PROJECTNAME=$(grep Bundle-SymbolicName $dir/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2) ++ elif [ -e $dir/plugin.xml ]; then ++ PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/plugin-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7) ++ elif [ -e $dir/fragment.xml ]; then ++ PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/fragment-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7) ++ fi ++ ++ if [ -z $PROJECTNAME ]; then ++ echo "ERROR: could not determine the plugin or fragment id for $dir" ++ exit 1 ++ fi ++ ++ echo " making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir" ++ ln -sf $dir $BUILDDIR/plugins/$PROJECTNAME ++ ++done ++ ++rm -rf $BUILDDIR/tmp ++echo done Index: templates/package-build/customTargets-assemble-target.xml =================================================================== RCS file: templates/package-build/customTargets-assemble-target.xml @@ -42,7 +109,7 @@ RCS file: templates/package-build/customTargets.xml diff -N templates/package-build/customTargets.xml --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ templates/package-build/customTargets.xml 1 Jan 1970 00:00:00 -0000 -@@ -0,0 +1,144 @@ +@@ -0,0 +1,147 @@ + + + @@ -114,6 +181,9 @@ diff -N templates/package-build/customTargets.xml + the fetch stage, we have to manually arrange the files --> + + ++ ++ ++ + + + @@ -187,87 +257,50 @@ diff -N templates/package-build/customTargets.xml + + + -Index: templates/package-build/prepare-build-dir.sh +Index: templates/package-build/build.properties =================================================================== -RCS file: templates/package-build/prepare-build-dir.sh -diff -N templates/package-build/prepare-build-dir.sh +RCS file: templates/package-build/build.properties +diff -N templates/package-build/build.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 -+++ templates/package-build/prepare-build-dir.sh 1 Jan 1970 00:00:00 -0000 -@@ -0,0 +1,77 @@ -+#!/bin/sh ++++ templates/package-build/build.properties 1 Jan 1970 00:00:00 -0000 +@@ -0,0 +1,12 @@ ++buildDirectory=${sourceDirectory}/build ++buildLabel=rpmBuild ++archivePrefix=eclipse ++skipFetch=true ++javacFailOnError=true ++collectingFolder=eclipse ++archivesFormat=*,*,*-zip ++zipargs=-y ++javacDebugInfo=true ++archiveName=${id}.zip ++runPackager=false ++baseLocation=/usr/share/eclipse +Index: templates/package-build/symlink-deps.sh +=================================================================== +RCS file: templates/package-build/symlink-deps.sh +diff -N templates/package-build/symlink-deps.sh +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ templates/package-build/symlink-deps.sh 1 Jan 1970 00:00:00 -0000 +@@ -0,0 +1,21 @@ ++#!/bin/sh -x + +if [ $# -ne 2 ]; then -+ echo "usage: $0 " ++ echo "usage: $0 " + exit 1 +fi + +if [ ! -d $1 ]; then -+ echo "usage: $0 " ++ echo "usage: $0 " + exit 1 +fi + -+SOURCEDIR=$1 -+BUILDDIR=$2 -+ -+echo "preparing files in $1 for buildfile generation ..." -+mkdir -p $BUILDDIR -+ -+# make some ant build files to extract the id from the feature.xml, plugin.xml or the fragment.xml -+mkdir -p $BUILDDIR/tmp -+BUILDFILE=$BUILDDIR/tmp/build.xml -+ -+echo " -+ -+ -+ -+ -+ -+" > $BUILDFILE ++BUILDDIR=$1 ++DEPENDENCIESDIR=$2 + -+for type in feature plugin fragment; do -+ CURBUILDFILE=$BUILDDIR/tmp/$type-build.xml -+ cat $BUILDFILE | sed "s|@type@|$type|" > $CURBUILDFILE -+done -+ -+# make the directories eclipse is expecting -+echo " making the 'features' and 'plugins' directories" -+mkdir -p $BUILDDIR/features $BUILDDIR/plugins -+ -+# make symlinks for the features -+FEATURES=$(find $SOURCEDIR -name feature.xml) -+for f in $FEATURES; do -+ PROJECTDIR=$(dirname $f) -+ PROJECTNAME=$(ant -Dbasedir=$PROJECTDIR -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7) -+ if [ -z $PROJECTNAME ]; then -+ echo "ERROR: could not determine the feature id for $PROJECTDIR" -+ exit 1 -+ fi -+ -+ echo " making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR" -+ ln -sf $PROJECTDIR $BUILDDIR/features/$PROJECTNAME -+done -+ -+# make symlinks for plugins and fragments -+PLUGINDIRS=$(find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq) -+for dir in $PLUGINDIRS; do -+ PROJECTNAME="" -+ if [ -e $dir/META-INF/MANIFEST.MF ]; then -+ PROJECTNAME=$(grep Bundle-SymbolicName $dir/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2) -+ elif [ -e $dir/plugin.xml ]; then -+ PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/plugin-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7) -+ elif [ -e $dir/fragment.xml ]; then -+ PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/fragment-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7) -+ fi -+ -+ if [ -z $PROJECTNAME ]; then -+ echo "ERROR: could not determine the plugin or fragment id for $dir" -+ exit 1 -+ fi -+ -+ echo " making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir" -+ ln -sf $dir $BUILDDIR/plugins/$PROJECTNAME -+ -+done -+ -+rm -rf $BUILDDIR/tmp -+echo done ++pushd $BUILDDIR/plugins ++ for dep in `ls $DEPENDENCIESDIR`; do ++ echo "ln -s $DEPENDENCIESDIR/$dep" ++ ln -s $DEPENDENCIESDIR/$dep ++ done ++popd diff --git a/eclipse-pdebuild.sh b/eclipse-pdebuild.sh index 820d4ac..a81db23 100755 --- a/eclipse-pdebuild.sh +++ b/eclipse-pdebuild.sh @@ -1,6 +1,6 @@ #!/bin/bash -# args: [-f ] [-d ] [-a ] [-j ] [-v] [-D] +# args: [-f ] [-d ] [-a ] [-j ] [-v] [-D] [-o ] function usage { cat << _EOF_ @@ -17,13 +17,14 @@ Optional arguments: -j VM arguments (ex. -DJ2SE-1.5=%{_jvmdir}/java/jre/lib/rt.jar) -v Be verbose -D Debug platform itself (passes -consolelog -debug to Eclipse) + -o Orbit dependencies _EOF_ } function copyPlatform { # This seems silly but I was running into issues with empty strings # counting as arguments to copy-platform -- overholt, 2008-03 - if [ -z $dependencies ]; then + if [ -z "$dependencies" ]; then if [ $verbose -eq 1 ]; then echo "/bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse" /bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse @@ -74,9 +75,8 @@ sourceDir=$PWD buildDir=$PWD/build SDK=$buildDir/SDK homeDir=$buildDir/home -libdir=`rpm --eval "%{_libdir}"` -datadir=`rpm --eval "%{_datadir}"` -pdeBuildDir=$datadir/eclipse/plugins/org.eclipse.pde.build +datadir=`rpm --eval "%{_libdir}"` +pdeBuildDir=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_@PDEBUILDVERSION@ featureId= dependencies= @@ -85,9 +85,10 @@ vmArgs= verbose=0 dryRun=0 debugPlatform=0 +orbitDepsDir= # See above. r = dry run (used for testing) -while getopts “hf:d:a:j:vrD” OPTION +while getopts “hf:d:a:j:vrDo:” OPTION do case $OPTION in h) @@ -115,6 +116,9 @@ do D) debugPlatform=1 ;; + o) + orbitDepsDir=$OPTARG + ;; ?) usage exit @@ -171,7 +175,6 @@ echo "Starting build:" echo " java -cp $SDK/startup.jar \ --Dosgi.sharedConfiguration.area=$libdir/eclipse/configuration \ org.eclipse.core.launcher.Main \ -application org.eclipse.ant.core.antRunner \ $debugPlatformArgs \ @@ -180,7 +183,8 @@ $debugPlatformArgs \ -DbaseLocation=$SDK \ -DsourceDirectory=$sourceDir \ -DbuildDirectory=$buildDir \ --Dbuilder=$datadir/eclipse/plugins/org.eclipse.pde.build/templates/package-build \ +-Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_@PDEBUILDVERSION@/templates/package-build \ +-DorbitDepsDir="$orbitDepsDir" \ $additionalArgs \ -f $pdeBuildDir/scripts/build.xml \ -vmargs \ @@ -190,7 +194,6 @@ $vmArgs if [ $dryRun -ne 1 ]; then java -cp $SDK/startup.jar \ - -Dosgi.sharedConfiguration.area=$libdir/eclipse/configuration \ org.eclipse.core.launcher.Main \ -application org.eclipse.ant.core.antRunner \ $debugPlatformArgs \ @@ -199,7 +202,8 @@ if [ $dryRun -ne 1 ]; then -DbaseLocation=$SDK \ -DsourceDirectory=$sourceDir \ -DbuildDirectory=$buildDir \ - -Dbuilder=$datadir/eclipse/plugins/org.eclipse.pde.build/templates/package-build \ + -Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_@PDEBUILDVERSION@/templates/package-build \ + -DorbitDepsDir=\""$orbitDepsDir"\" \ $additionalArgs \ -f $pdeBuildDir/scripts/build.xml \ -vmargs \ diff --git a/eclipse.spec b/eclipse.spec index 0b9f96d..cb30622 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -1,11 +1,11 @@ # TODO: # - update icu4j and jasper to use %%{_libdir}/eclipse and not %%{_datadir}/eclipse after we build 3.4 -# - generate content.xml for > platform sub-sets -# - move > platform bits to dropins/ along with content.xml for each # - update ecj-rpmdebuginfo patch # - look at startup script and launcher patches # - get Ganymede update site pre-configured # - investigate bi-arch requirements +# - investigate need for copy-platform +# - see why about.html isn't being copied on non-x86{,_64} platforms Epoch: 1 %define eclipse_major 3 @@ -14,6 +14,9 @@ Epoch: 1 %define eclipse_micro 0 %define swtver 3.4.0.v3448f +# Prevent brp-java-repack-jars from being run. +%define __jar_repack 0 + # All arches line up between Eclipse and Linux kernel names except i386 -> x86 %ifarch %{ix86} %define eclipse_arch x86 @@ -24,7 +27,7 @@ Epoch: 1 Summary: An open, extensible IDE Name: eclipse Version: %{eclipse_majmin}.%{eclipse_micro} -Release: 9%{?dist} +Release: 10%{?dist} License: EPL Group: Text Editors/Integrated Development Environments (IDE) URL: http://www.eclipse.org/ @@ -100,6 +103,7 @@ Patch15: %{name}-pde.build-add-package-build.patch Patch24: %{name}-add-ppc64-sparc64-s390-s390x.patch Patch28: %{name}-add-ppc64-sparc64-s390-s390x-2.patch Patch30: %{name}-addfragmentsforotherplatforms.patch +Patch38: %{name}-addrootfiles.patch #FIXME: file a bug upstream Patch26: %{name}-launcher-fix-java-home.patch # Default max heap size too low for lots of people. Bump to 512 MB. @@ -284,6 +288,10 @@ Requires(postun): %{name}-pde-runtime = %{epoch}:%{version}-%{release} Requires: objectweb-asm # For PDE Build wrapper script Requires: bash +Provides: %{name}-pde-runtime = 1:%{version}-%{release} +# The 20 is more than the currently (2008-06-25) latest 3.3.2 package +# but I want to leave some room in case we need to do an F9 update. +Obsoletes: %{name}-pde-runtime < 1:3.3.2-20 %description pde Eclipse Plugin Development Environment. This package is required for @@ -406,6 +414,7 @@ sed --in-place "s/$swt_frag_ver_s390x/$swt_frag_ver/g" plugins/org.eclipse.swt.g %patch28 %patch30 %patch31 -p1 +%patch38 # replace ppc64 with a fake arch (ppc128) so we don't have duplicate ant targets sed -i "s/\(rootFileslinux_gtk_\)ppc64/\1ppc128/g" \ @@ -744,6 +753,7 @@ profileId=PlatformProfile mkdir $installDir pushd $installDir sh %{SOURCE28} $sdkDir +mv plugins/*.source* $sdkDir/plugins popd # Generate metadata for the platform @@ -763,6 +773,73 @@ org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \ -artifactRepositoryName "Fedora Eclipse" \ -metadataRepositoryName "Fedora Eclipse" +# JDT +jdtDir=$sdkDir-JDT +jdtMetadata=$jdtDir/metadata-JDT + +mkdir $jdtDir +pushd $jdtDir +mkdir features plugins +mv $sdkDir/features/org.eclipse.jdt_* features +for plugin in org.eclipse.jdt \ + org.eclipse.ant.ui \ + org.eclipse.jdt.apt.core \ + org.eclipse.jdt.apt.ui \ + org.eclipse.jdt.apt.pluggable.core \ + org.eclipse.jdt.compiler.apt \ + org.eclipse.jdt.compiler.tool \ + org.eclipse.jdt.core \ + org.eclipse.jdt.core.manipulation \ + org.eclipse.jdt.debug.ui \ + org.eclipse.jdt.debug \ + org.eclipse.jdt.junit \ + org.eclipse.jdt.junit.runtime \ + org.eclipse.jdt.junit4.runtime \ + org.eclipse.jdt.launching \ + org.eclipse.jdt.ui \ + org.junit \ + org.junit4 \ + org.eclipse.jdt.doc.user; do + mv $sdkDir/plugins/${plugin}_* plugins +done +popd + +# Generate metadata for JDT +java \ +-cp $installDir/plugins/org.eclipse.equinox.launcher_$LAUNCHERVERSION \ +org.eclipse.core.launcher.Main \ +-application \ +org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \ +-metadataRepository file:$jdtMetadata \ +-artifactRepository file:$jdtMetadata \ +-source $jdtDir \ +-root "Fedora Eclipse JDT" \ +-rootVersion %{version} \ +-flavor tooling \ +-append \ +-artifactRepositoryName "Fedora Eclipse" \ +-metadataRepositoryName "Fedora Eclipse" + +# SDK +sdkMetadata=$sdkDir/metadata-SDK + +# Generate metadata for SDK +java \ +-cp $installDir/plugins/org.eclipse.equinox.launcher_$LAUNCHERVERSION \ +org.eclipse.core.launcher.Main \ +-application \ +org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \ +-metadataRepository file:$sdkMetadata \ +-artifactRepository file:$sdkMetadata \ +-source $sdkDir \ +-root "Fedora Eclipse SDK" \ +-rootVersion %{version} \ +-flavor tooling \ +-publishArtifacts \ +-append \ +-artifactRepositoryName "Fedora Eclipse" \ +-metadataRepositoryName "Fedora Eclipse" + # Director config.ini mv $installDir/configuration/config.ini{,.bak} cp -p %{SOURCE22} $installDir/configuration/config.ini @@ -790,12 +867,21 @@ org.eclipse.equinox.p2.director.app.application \ -bundlepool $provisionDir # Stuff in JDT, PDE, SDK -for f in about* \.eclipseproduct epl-v10.html notice.html readme; do - mv $installDir/$f $provisionDir +for f in about.html about_files \.eclipseproduct epl-v10.html notice.html readme; do + if [ -e $installDir/$f ]; then + mv $installDir/$f $provisionDir + fi done -mv $sdkDir/features/* $provisionDir/features -mv $sdkDir/plugins/* $provisionDir/plugins -rm -rf $metadataDir $sdkDir $installDir +dropins=$provisionDir/dropins +mkdir $dropins/jdt $dropins/sdk +mv $jdtDir/features $dropins/jdt +mv $jdtDir/plugins $dropins/jdt +mv $jdtMetadata/content.xml $dropins/jdt + +mv $sdkDir/features $dropins/sdk +mv $sdkDir/plugins $dropins/sdk +mv $sdkMetadata/content.xml $dropins/sdk +rm -rf $metadataDir $jdtDir $sdkDir $installDir mv $provisionDir $sdkDir # Fix paths in p2 data @@ -846,6 +932,7 @@ rm -r $sdkDir/configuration/org.eclipse.update rm -r $sdkDir/configuration/org.eclipse.core.runtime rm -r $sdkDir/configuration/org.eclipse.equinox.app rm -r $sdkDir/configuration/.settings +rm -rf $sdkDir/configuration/*.log dataDirs=$(find $sdkDir/configuration \ -type d -name data) for dataDir in $dataDirs; do @@ -891,23 +978,23 @@ popd # Install symlinks to the SWT JNI shared libraries in %%{_libdir}/eclipse pushd $RPM_BUILD_ROOT%{_libdir}/%{name} for lib in $(find configuration -name libswt\*.so); do - ln -s %{_libdir}/%{name}/$lib `basename $lib` + ln -s $lib `basename $lib` done popd # Install the SWT jar symlinks in libdir 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 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 ln -s swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar swt.jar ln -s ../%{name}/swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar ../java/swt.jar popd # Install the eclipse-ecj.jar symlink for java-1.4.2-gcj-compat's "javac" -JDTCORESUFFIX=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins | grep jdt.core_ | sed "s/org.eclipse.jdt.core_//") +JDTCORESUFFIX=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/jdt/plugins | grep jdt.core_ | sed "s/org.eclipse.jdt.core_//") install -d -m 755 $RPM_BUILD_ROOT%{_javadir} -ln -s %{_libdir}/%{name}/plugins/org.eclipse.jdt.core_$JDTCORESUFFIX \ +ln -s %{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core_$JDTCORESUFFIX \ $RPM_BUILD_ROOT%{_javadir}/eclipse-ecj-%{version}.jar ln -s %{_javadir}/eclipse-ecj-%{version}.jar \ $RPM_BUILD_ROOT%{_javadir}/eclipse-ecj.jar @@ -920,13 +1007,6 @@ ln -s %{_javadir}/eclipse-ecj-%{version}.jar \ ln -s %{_javadir}/ecj-%{version}.jar \ $RPM_BUILD_ROOT%{_javadir}/ecj.jar -# FIXME: get rid of this by putting logic in package build to know what version -# of pde.build it's using -# Install a versionless pde.build -pushd $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/ -ln -s org.eclipse.pde.build_* org.eclipse.pde.build -popd - # Icons install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps ln -s %{_libdir}/%{name}/plugins/org.fedoraproject.ide.platform/eclipse48.png \ @@ -960,28 +1040,43 @@ install -p -D -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/applications/%{name}. cp -p %{SOURCE16} copy-platform ( cd $RPM_BUILD_ROOT%{_libdir}/%{name} - ls -d * | egrep -v '^(plugins|features|links|about_files)$' - ls -d plugins/* features/* links/* + ls -d * | egrep -v '^(plugins|features|about_files)$' + ls -d plugins/* features/* ) | sed -e's,^\(.*\),[ ! -e \1 ] \&\& ln -s $eclipse/\1 \1,' >> copy-platform - mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts cp -p copy-platform $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts +copyPlatform=$RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/copy-platform +pushd $RPM_BUILD_ROOT%{_libdir}/%{name} +for p in $(ls -d dropins/jdt/plugins/*); do + plugin=$(basename $p) + echo $p | sed -e"s,^\(.*\),[ ! -e plugins/$plugin ] \&\& ln -s \$eclipse/\1 plugins/$plugin," >> $copyPlatform +done +for p in $(ls -d dropins/sdk/plugins/*); do + plugin=$(basename $p) + echo $p | sed -e"s,^\(.*\),[ ! -e plugins/$plugin ] \&\& ln -s \$eclipse/\1 plugins/$plugin," >> $copyPlatform +done +popd # Install the PDE Build wrapper script. install -p -D -m0755 %{SOURCE21} \ $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/pdebuild +PDEBUILDVERSION=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/sdk/plugins \ + | grep org.eclipse.pde.build_ | \ + sed 's/org.eclipse.pde.build_//') +sed -i "s/@PDEBUILDVERSION@/$PDEBUILDVERSION/g" \ + $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/pdebuild pushd $RPM_BUILD_ROOT%{_libdir}/%{name} rm plugins/org.sat4j* ln -s %{_javadir}/org.sat4j.core_* plugins/ ln -s %{_javadir}/org.sat4j.pb_* plugins/ -ASMPLUGINVERSION=$(ls plugins | grep org.objectweb.asm_ | \ +ASMPLUGINVERSION=$(ls dropins/sdk/plugins | grep org.objectweb.asm_ | \ sed 's/org.objectweb.asm_//') -rm plugins/org.objectweb.asm_$ASMPLUGINVERSION +rm dropins/sdk/plugins/org.objectweb.asm_$ASMPLUGINVERSION ln -s %{_javadir}/objectweb-asm/asm-all.jar \ - plugins/org.objectweb.asm_$ASMPLUGINVERSION + dropins/sdk/plugins/org.objectweb.asm_$ASMPLUGINVERSION ## BEGIN ANT ## ANTDIR=plugins/$(ls plugins | grep org.apache.ant_) @@ -1019,11 +1114,13 @@ JETTYPLUGINVERSION=$(ls plugins | grep org.mortbay.jetty_5 | sed 's/org.mortbay. rm plugins/org.mortbay.jetty_$JETTYPLUGINVERSION ln -s %{_javadir}/jetty/jetty.jar plugins/org.mortbay.jetty_$JETTYPLUGINVERSION +pushd dropins/jdt build-jar-repository -s -p plugins/org.junit_* junit JUNIT4VERSION=$(ls plugins | grep org.junit4_ | sed 's/org.junit4_//') rm plugins/org.junit4_$JUNIT4VERSION/junit.jar ln -s %{_javadir}/junit4.jar plugins/org.junit4_$JUNIT4VERSION/junit.jar +popd JSCHVERSION=$(ls plugins | grep com.jcraft.jsch_ | sed 's/com.jcraft.jsch_//') rm plugins/com.jcraft.jsch_$JSCHVERSION @@ -1098,8 +1195,10 @@ fi %files ecj %defattr(-,root,root) %dir %{_libdir}/%{name} -%dir %{_libdir}/%{name}/plugins -%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_* +%dir %{_libdir}/%{name}/dropins +%dir %{_libdir}/%{name}/dropins/jdt +%dir %{_libdir}/%{name}/dropins/jdt/plugins +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core_* %{_javadir}/eclipse-ecj*.jar %{_javadir}/jdtcore*.jar %{_javadir}/ecj*.jar @@ -1132,7 +1231,9 @@ fi #%{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info %{_libdir}/%{name}/notice.html %{_libdir}/%{name}/epl-v10.html +%ifarch %{ix86} x86_64 %{_libdir}/%{name}/about.html +%endif %ifarch x86_64 %{_libdir}/%{name}/about_files %endif @@ -1174,6 +1275,7 @@ fi %{_datadir}/pixmaps/* %{_datadir}/icons/*/*/apps/* %{_libdir}/%{name}/eclipse +%dir %{_libdir}/%{name}/dropins %{_libdir}/%{name}/features/org.eclipse.platform_* %{_libdir}/%{name}/plugins/com.jcraft.jsch_* %{_libdir}/%{name}/plugins/javax.servlet_* @@ -1293,86 +1395,53 @@ fi %{_libdir}/%{name}/plugins/org.sat4j.pb_* # Put this in -platform since we're putting the p2 stuff here %{_libdir}/%{name}/artifacts.xml -# FIXME: should we ship content.xml? +# FIXME: should we ship content.xml for the platform? #%{_libdir}/%{name}/metadata %{_libdir}/%{name}/p2 %files jdt %defattr(-,root,root) %{_bindir}/efj -%{_libdir}/%{name}/features/org.eclipse.jdt_* -%{_libdir}/%{name}/plugins/org.eclipse.ant.ui_* -%{_libdir}/%{name}/plugins/org.junit_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.doc.user_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.apt.core_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.debug_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit4.runtime_* -%{_libdir}/%{name}/plugins/org.junit4_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.launching_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.core.manipulation_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.apt.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit.runtime_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.debug.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.apt.pluggable.core_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.compiler.apt_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.compiler.tool_* +%{_libdir}/%{name}/dropins/jdt/content.xml +%{_libdir}/%{name}/dropins/jdt/features +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.ant.ui_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.apt.core_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.apt.ui_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.apt.pluggable.core_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.compiler.apt_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.compiler.tool_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core.manipulation_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.debug.ui_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.debug_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.junit_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.junit.runtime_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.junit4.runtime_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.launching_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.ui_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.junit_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.junit4_* +%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.doc.user_* %files pde %defattr(-,root,root) -%{_libdir}/%{name}/features/org.eclipse.sdk_* -%{_libdir}/%{name}/features/org.eclipse.pde_* -%{_libdir}/%{name}/features/org.eclipse.pde.p2_* -%{_libdir}/%{name}/features/org.eclipse.pde.p2.source_* -%{_libdir}/%{name}/features/org.eclipse.equinox.p2.user.ui.source_* -%{_libdir}/%{name}/features/org.eclipse.help.source_* -%{_libdir}/%{name}/features/org.eclipse.pde.source_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.doc.user_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.build_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.build -%{_libdir}/%{name}/plugins/org.eclipse.pde_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.core_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.junit.runtime_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.ui_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.ui.templates_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.p2.ui_* -%{_libdir}/%{name}/features/org.eclipse.rcp.source_* -#%{_libdir}/%{name}/plugins/org.eclipse.rcp.source.linux.gtk.%{eclipse_arch}* -%{_libdir}/%{name}/features/org.eclipse.cvs.source_* -%{_libdir}/%{name}/plugins/org.eclipse.sdk_* -%{_libdir}/%{name}/features/org.eclipse.jdt.source_* -%{_libdir}/%{name}/plugins/org.eclipse.jdt.doc.isv_* -%{_libdir}/%{name}/features/org.eclipse.platform.source_* -%{_libdir}/%{name}/plugins/org.eclipse.platform.doc.isv_* -#%{_libdir}/%{name}/plugins/org.eclipse.platform.source.linux.gtk.%{eclipse_arch}_* -%{_libdir}/%{name}/plugins/org.eclipse.ui.views.log_* %{_libdir}/%{name}/buildscripts -%{_libdir}/%{name}/plugins/org.eclipse.pde.api.tools_* -%{_libdir}/%{name}/plugins/org.eclipse.pde.api.tools.ui_* -%{_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.junit.source_* -%{_libdir}/%{name}/plugins/org.junit4.source_* -%{_libdir}/%{name}/plugins/org.mortbay.jetty.source_* -%{_libdir}/%{name}/plugins/org.objectweb.asm_* -%{_libdir}/%{name}/plugins/org.objectweb.asm.source_* -%{_libdir}/%{name}/plugins/org.eclipse.*.source_* +%{_libdir}/%{name}/dropins/sdk # FIXME: where should this go? -%{_libdir}/%{name}/configuration/org.eclipse.equinox.source/source.info - -%files pde-runtime -%defattr(-,root,root) -%{_libdir}/%{name}/plugins/org.eclipse.pde.runtime_* +%{_libdir}/%{name}/configuration/org.eclipse.equinox.source %changelog +* Mon Jul 28 2008 Andrew Overholt 3.4.0-10 +- Move JDT and PDE/SDK bits to dropins/{jdt,sdk} +- Drop versionless PDE Build symlink (put logic into pdebuild script) +- Make SWT JAR symlinks relative +- Fold pde-runtime into pde +- Add patch to add root files for non-upstream arches + +* Fri Jul 25 2008 Andrew Overholt 3.4.0-10 +- Add ability for pdebuild (-o) to work with Orbit-style dependencies + * Fri Jul 25 2008 Andrew Overholt 3.4.0-9 - Collapse patches to build SWT native bits into two - Copy about* from x86 to all non-x86{_64} platforms