From 12c70d7699716064624928f9b53c67ce508e4b4e Mon Sep 17 00:00:00 2001 From: Ben Konrath Date: Jun 14 2007 06:23:49 +0000 Subject: - 3.3RC4. --- diff --git a/3.3-TODO.txt b/3.3-TODO.txt index 18d31d2..f7a0d54 100644 --- a/3.3-TODO.txt +++ b/3.3-TODO.txt @@ -1,8 +1,5 @@ -* check for correct files listings -- may need to add another sub-package -* re-enable timestamp squashing * enable ecj on ppc64, s390{,x}, sparc{,64} * icu4j 3.6.0 -* update package build * splashscreen * junit 4.1 * ant 1.7 diff --git a/eclipse-pde.build-add-package-build.patch b/eclipse-pde.build-add-package-build.patch index 2d0b04b..77f347d 100644 --- a/eclipse-pde.build-add-package-build.patch +++ b/eclipse-pde.build-add-package-build.patch @@ -193,42 +193,9 @@ 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/prepare-build-dir.sh 1 Jan 1970 00:00:00 -0000 -@@ -0,0 +1,83 @@ +@@ -0,0 +1,77 @@ +#!/bin/sh + -+ -+make_links() -+{ -+ TYPE=$1 -+ TYPEDIR=$2 -+ shift; shift; -+ XMLFILES=$@ -+ -+ CURBUILDFILE=$BUILDDIR/tmp/$TYPE-build.xml -+ cat $BUILDFILE | sed "s|@type@|$TYPE|" > $CURBUILDFILE -+ -+ for f in $XMLFILES; do -+ PROJECTDIR=$(dirname $f) -+ PROJECTNAME=$(ant -Dbasedir=$PROJECTDIR -f $CURBUILDFILE 2>&1 | grep echo | cut --delimiter=' ' -f 7) -+ if [ -z $PROJECTNAME ]; then -+ if [ ! -e $PROJECTDIR/META-INF/MANIFEST.MF ]; then -+ echo "ERROR: could not determine the feature id for $PROJECTDIR" -+ exit 1 -+ fi -+ PROJECTNAME=$(grep Bundle-SymbolicName $PROJECTDIR/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2) -+ if [ -z $PROJECTNAME ]; then -+ echo "ERROR: could not determine the feature id for $PROJECTDIR" -+ exit 1 -+ fi -+ fi -+ -+ echo " making symlink: $BUILDDIR/$TYPEDIR/$PROJECTNAME -> $PROJECTDIR" -+ ln -sf $PROJECTDIR $BUILDDIR/$TYPEDIR/$PROJECTNAME -+ -+ done -+} -+ -+ +if [ $# -ne 2 ]; then + echo "usage: $0 " + exit 1 @@ -257,23 +224,50 @@ diff -N templates/package-build/prepare-build-dir.sh + +" > $BUILDFILE + -+# find the feature.xml, plugin.xml and fragment.xml files -+FEATURES=$(find $SOURCEDIR -name feature.xml) -+PLUGINS=$(find $SOURCEDIR -name plugin.xml) -+FRAGMENTS=$(find $SOURCEDIR -name fragment.xml) ++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 -+make_links feature features $FEATURES -+ -+# make the symlinks for plugins -+make_links plugin plugins $PLUGINS -+ -+# make the symlinks for fragments - they go in the plugins directory as well -+make_links fragment plugins $FRAGMENTS ++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 diff --git a/eclipse.in b/eclipse.in new file mode 100644 index 0000000..2d732ad --- /dev/null +++ b/eclipse.in @@ -0,0 +1,6 @@ +#!/bin/sh + +@LIBDIR@/eclipse/eclipse \ + --launcher.library @LIBDIR@/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.@ECLIPSELIBSUFFIX@ \ + -startup /usr/share/eclipse/startup.jar \ + ${1+"$@"} diff --git a/eclipse.spec b/eclipse.spec index 5bc6a85..8f7f792 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -19,12 +19,13 @@ Epoch: 1 Summary: An open, extensible IDE Name: eclipse Version: %{eclipse_majmin}.%{eclipse_micro} -Release: 0.1.RC3%{?dist} +Release: 0.1.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.3RC3-200706011539/eclipse-sourceBuild-srcIncluded-3.3RC3.zip +Source0: http://download.eclipse.org/eclipse/downloads/drops/S-3.3RC4-200706081718/eclipse-sourceBuild-srcIncluded-3.3RC4.zip Source2: %{name}.desktop +Source3: eclipse.in # 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 @@ -89,10 +90,10 @@ BuildRequires: unzip BuildRequires: java-javadoc BuildRequires: desktop-file-utils %if %{gcj_support} -BuildRequires: gcc-java >= 4.0.2 +BuildRequires: gcc-java >= 4.1.2 BuildRequires: java-gcj-compat-devel >= 1.0.64 %else -BuildRequires: java-devel >= 1.4.2 +BuildRequires: java-devel >= 1.5.0 %endif # Need to investigate why we don't build ant-apache-bsf or ant-commons-net in @@ -157,7 +158,7 @@ Summary: Eclipse Rich Client Platform Group: Development/Languages Requires: %{libname}-gtk2 = %{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.3.0.v3345a.jar +Requires: %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_3.3.0.v3345f.jar Requires(post): %{libname}-gtk2 = %{epoch}:%{version}-%{release} Requires(postun): %{libname}-gtk2 = %{epoch}:%{version}-%{release} %if %{gcj_support} @@ -217,7 +218,7 @@ Requires(postun): java-gcj-compat >= 1.0.64 %endif 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.3.0.v3345a.jar +Requires: %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_3.3.0.v3345f.jar Requires(post): %{name}-rcp = %{epoch}:%{version}-%{release} Requires(postun): %{name}-rcp = %{epoch}:%{version}-%{release} # Need to investigate why we don't build ant-apache-bsf or ant-commons-net in @@ -731,6 +732,12 @@ 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 +# Add a compatibility symlink to startup.jar +pushd $RPM_BUILD_ROOT%{_datadir}/%{name} +LAUNCHERNAME=$(ls plugins | grep equinox.launcher_) +ln -s plugins/$LAUNCHERNAME startup.jar +popd + ## 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 \ @@ -803,12 +810,11 @@ mv $RPM_BUILD_ROOT%{_datadir}/%{name}/features/org.eclipse.sdk_* \ # # Extract .so files # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90535 -LAUNCHERVERSION=$(ls $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins | grep equinox.launcher_ | sed 's/org.eclipse.equinox.launcher_//') pushd $RPM_BUILD_ROOT datadir_path=$(echo %{_datadir}/%{name} | sed -e 's/^\///') libdir_path=$(echo %{_libdir}/%{name} | sed -e 's/^\///') java -Dosgi.sharedConfiguration.area=$libdir_path/configuration \ - -cp $datadir_path/plugins/org.eclipse.equinox.launcher_$LAUNCHERVERSION \ + -cp $datadir_path/startup.jar \ org.eclipse.core.launcher.Main \ -consolelog \ -application org.eclipse.equinox.initializer.configInitializer \ @@ -830,9 +836,18 @@ rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.equinox.app sed --in-place "s/eclipse.product=org.eclipse.sdk.ide/eclipse.product=org.eclipse.platform.ide/" \ $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/config.ini -# Install the Eclipse binary +# Install the launcher so +LAUNCHERFRAGVERSION=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins | grep equinox.launcher.gtk.linux.%{eclipse_arch}_ | sed "s/.*equinox.launcher.gtk.linux.*_//") +cp launchertmp/library/gtk/eclipse_*.so \ +$RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher.gtk.linux.%{eclipse_arch}_$LAUNCHERFRAGVERSION + +# Install the Eclipse binary wrapper +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/eclipse $RPM_BUILD_ROOT%{_libdir}/%{name} install -d -m 755 $RPM_BUILD_ROOT%{_bindir} -mv $RPM_BUILD_ROOT%{_datadir}/%{name}/eclipse $RPM_BUILD_ROOT%{_bindir}/%{name} +cp %{SOURCE3} $RPM_BUILD_ROOT%{_bindir}/eclipse +sed --in-place "s|@LIBDIR@|%{_libdir}|g" $RPM_BUILD_ROOT%{_bindir}/eclipse +ECLIPSELIBSUFFIX=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher.gtk.linux*/*.so | sed "s/.*.launcher.gtk.linux.//") +sed --in-place "s|@ECLIPSELIBSUFFIX@|$ECLIPSELIBSUFFIX|" $RPM_BUILD_ROOT%{_bindir}/eclipse # Ensure the shared libraries have the correct permissions pushd $RPM_BUILD_ROOT%{_libdir}/%{name} @@ -894,7 +909,6 @@ 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 $RPM_BUILD_ROOT%{_datadir}/%{name}/icon.xpm %endif @@ -1038,85 +1052,6 @@ 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_//') @@ -1127,7 +1062,8 @@ rm $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.apache.ant_$ANTPLUGINVERSION/b # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=175547 UIIDEPLUGINVERSION=$(ls plugins | grep ui.ide_ | sed 's/org.eclipse.ui.ide_//') %ifnarch ia64 -aot-compile-rpm --exclude %{_datadir}/%{name}/plugins/org.eclipse.ui.ide_$UIIDEPLUGINVERSION +#aot-compile-rpm --exclude %{_datadir}/%{name}/plugins/org.eclipse.ui.ide_$UIIDEPLUGINVERSION +echo blah %else OSGIPLUGINVERSION=$(ls plugins | grep osgi_ | sed 's/org.eclipse.osgi_//') aot-compile-rpm --exclude %{_datadir}/%{name}/plugins/org.eclipse.ui.ide_$UIIDEPLUGINVERSION \ @@ -1261,6 +1197,7 @@ fi %{_datadir}/%{name}/notice.html %{_datadir}/%{name}/epl-v10.html %{_datadir}/%{name}/links +%{_datadir}/%{name}/startup.jar %ifarch %{ix86} x86_64 %{_datadir}/%{name}/about.html %endif @@ -1347,6 +1284,7 @@ fi %defattr(-,root,root) %attr(0755,root,root) %{_bindir}/%{name} %{_datadir}/%{name}/eclipse.ini +%{_libdir}/%{name}/eclipse %{_datadir}/applications/* %{_datadir}/pixmaps/* %{_datadir}/icons/*/*/apps/* @@ -1590,6 +1528,13 @@ fi %{_libdir}/%{name}/plugins/org.eclipse.sdk_* %changelog +* Tue Jun 12 2007 Ben Konrath 3.3.0-0.1.RC4 +- 3.3RC4. + +* Mon Jun 11 2007 Ben Konrath 3.3.0-0.2.RC3 +- Update launching strategy for 3.3. +- Pull in package-build fix from F-7. + * Wed May 23 2007 Ben Konrath 3.3.0-0.1.RC3 - 3.3RC3.