From 33dd0d6aadb046862622036ab17abce931f2dd8f Mon Sep 17 00:00:00 2001 From: Andrew Overholt Date: Apr 20 2005 02:44:10 +0000 Subject: - Add %if %{gcj_support} blocks. - Add %{_libdir}/%{name}/plugins to native %files section of each sub-rpm. - Add GNU-style JDT code formatting option (e.o#91770). - Add patch to install plugins from update site in home dir (e.o#90630). - Change gcc-java requirements to libgcj as gcj-dbtool is now in the latter. --- diff --git a/eclipse-updatehomedir.patch b/eclipse-updatehomedir.patch new file mode 100644 index 0000000..c2e96b2 --- /dev/null +++ b/eclipse-updatehomedir.patch @@ -0,0 +1,107 @@ +Index: src/org/eclipse/update/internal/ui/wizards/TargetPage.java +=================================================================== +RCS file: /home/eclipse/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java,v +retrieving revision 1.67 +diff -u -r1.67 TargetPage.java +--- src/org/eclipse/update/internal/ui/wizards/TargetPage.java 1 Mar 2005 20:29:25 -0000 1.67 ++++ src/org/eclipse/update/internal/ui/wizards/TargetPage.java 18 Apr 2005 19:11:43 -0000 +@@ -10,24 +10,46 @@ + *******************************************************************************/ + package org.eclipse.update.internal.ui.wizards; + +-import java.io.*; +-import java.util.*; ++import java.io.File; ++import java.util.HashSet; ++import java.util.Iterator; ++ ++import org.eclipse.core.runtime.CoreException; ++import org.eclipse.core.runtime.IStatus; + + import org.eclipse.jface.dialogs.Dialog; +-import org.eclipse.jface.resource.*; +-import org.eclipse.jface.viewers.*; +-import org.eclipse.swt.*; +-import org.eclipse.swt.events.*; +-import org.eclipse.swt.graphics.*; +-import org.eclipse.swt.layout.*; +-import org.eclipse.swt.widgets.*; +-import org.eclipse.ui.help.*; +-import org.eclipse.update.configuration.*; +-import org.eclipse.update.core.*; +-import org.eclipse.update.internal.operations.*; +-import org.eclipse.update.internal.ui.*; +-import org.eclipse.update.internal.ui.parts.*; +-import org.eclipse.update.operations.*; ++import org.eclipse.jface.resource.ImageDescriptor; ++import org.eclipse.jface.viewers.ISelectionChangedListener; ++import org.eclipse.jface.viewers.IStructuredContentProvider; ++import org.eclipse.jface.viewers.IStructuredSelection; ++import org.eclipse.jface.viewers.ITableLabelProvider; ++import org.eclipse.jface.viewers.LabelProvider; ++import org.eclipse.jface.viewers.SelectionChangedEvent; ++import org.eclipse.jface.viewers.StructuredSelection; ++import org.eclipse.jface.viewers.TableViewer; ++import org.eclipse.swt.SWT; ++import org.eclipse.swt.events.SelectionAdapter; ++import org.eclipse.swt.events.SelectionEvent; ++import org.eclipse.swt.graphics.Image; ++import org.eclipse.swt.layout.GridData; ++import org.eclipse.swt.layout.GridLayout; ++import org.eclipse.swt.widgets.Button; ++import org.eclipse.swt.widgets.Composite; ++import org.eclipse.swt.widgets.Control; ++import org.eclipse.swt.widgets.Label; ++import org.eclipse.ui.help.WorkbenchHelp; ++import org.eclipse.update.configuration.IConfiguredSite; ++import org.eclipse.update.configuration.IInstallConfiguration; ++import org.eclipse.update.configuration.IInstallConfigurationChangedListener; ++import org.eclipse.update.configuration.LocalSystemInfo; ++import org.eclipse.update.core.IFeature; ++import org.eclipse.update.internal.operations.UpdateUtils; ++import org.eclipse.update.internal.ui.UpdateLabelProvider; ++import org.eclipse.update.internal.ui.UpdateUI; ++import org.eclipse.update.internal.ui.UpdateUIImages; ++import org.eclipse.update.internal.ui.parts.DefaultContentProvider; ++import org.eclipse.update.internal.ui.parts.SWTUtil; ++import org.eclipse.update.operations.IInstallFeatureOperation; + + public class TargetPage extends BannerPage implements IDynamicPage { + private TableViewer jobViewer; +@@ -149,7 +171,7 @@ + label.setLayoutData(gd); + + installLocation = new Label(client, SWT.NULL); +- installLocation.setText("foo"); ++ installLocation.setText(""); + gd = new GridData(GridData.FILL_HORIZONTAL); + installLocation.setLayoutData(gd); + +@@ -363,7 +385,26 @@ + continue; + } + +- jobs[i].setTargetSite(getFirstTargetSite(jobs[i])); ++ IConfiguredSite csite = getFirstTargetSite(jobs[i]); ++ ++ if (csite == null) { ++ // there are no updateable sites, make one in the user's home direcotry ++ String sitePath = System.getProperty("user.home") + File.separator + ".eclipse/updates"; //$NON-NLS-1$ //$NON-NLS-2$ ++ ++ try { ++ csite = config.createConfiguredSite(new File(sitePath)); ++ config.addConfiguredSite(csite); ++ IStatus status = csite.verifyUpdatableStatus(); ++ if (!status.isOK()) ++ throw new CoreException(status); ++ ++ } catch (CoreException e) { ++ // there was a problem, the user must choose an installation site ++ csite = null; ++ } ++ } ++ ++ jobs[i].setTargetSite(csite); + + } + } diff --git a/eclipse.spec b/eclipse.spec index 3d2e1c5..03a5c96 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -1,6 +1,7 @@ Epoch: 1 ExclusiveArch: i386 x86_64 ppc +%define gcj_support 1 %define pkg_summary An open, extensible IDE %define section free %define swt_version 3128 @@ -22,7 +23,7 @@ ExclusiveArch: i386 x86_64 ppc Summary: %{pkg_summary} Name: eclipse Version: %{eclipse_majmin}.%{eclipse_micro}_fc -Release: 0.M6.6 +Release: 0.M6.7 License: EPL Group: Text Editors/Integrated Development Environments (IDE) URL: http://www.eclipse.org/ @@ -80,6 +81,12 @@ Patch18: %{name}-swttools.patch # Add command-line source code formatter # https://bugs.eclipse.org/bugs/show_bug.cgi?id=75333 Patch19: %{name}-efj.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=90630 +Patch22: %{name}-updatehomedir.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildRequires: ant @@ -92,8 +99,12 @@ BuildRequires: mozilla >= 1.7.7 BuildRequires: mozilla-devel >= 1.7.7 BuildRequires: mozilla-nspr-devel >= 1.7.7 BuildRequires: xorg-x11-devel -BuildRequires: gcc-java >= 4.0.0-0.35 +%if %{gcj_support} +BuildRequires: gcc-java >= 4.0.0-0.42 BuildRequires: java-1.4.2-gcj-compat-devel >= 1.4.2.0-40jpp_14rh +%else +BuildRequires: java-devel >= 1.4.2 +%endif BuildRequires: ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging #BuildRequires: ant-apache-bsf ant-commons-net lucene @@ -102,7 +113,9 @@ BuildRequires: jsch BuildRequires: jakarta-commons-beanutils jakarta-commons-collections jakarta-commons-digester jakarta-commons-logging jakarta-commons-modeler mx4j #BuildRequires: servlet lucene-demo jasper4 tomcat4 BuildRequires: regexp junit +%if %{gcj_support} Requires(post,postun): java-1.4.2-gcj-compat +%endif %description The Eclipse Platform is designed for building integrated development @@ -115,7 +128,11 @@ Summary: Eclipse Compiler for Java Group: Development/Languages Obsoletes: ecj Provides: ecj -Requires: gcc-java >= 4.0.0-0.35 +%if %{gcj_support} +Requires: libgcj >= 4.0.0-0.42 +%else +Requires: java >= 1.4.2 +%endif %description ecj Eclipse compiler for Java. @@ -128,10 +145,14 @@ Obsoletes: %{name}-sdk %{name}-ui %{name}-gtk2 eclipse Provides: %{name}-sdk = %{epoch}:%{version}-%{release} Provides: %{name}-ui = %{epoch}:%{version}-%{release} Provides: %{name}-gtk2 = %{epoch}:%{version}-%{release} +%if %{gcj_support} Requires: java-1.4.2-gcj-compat >= 1.4.2.0-40jpp_14rh -Requires: /usr/bin/perl -Requires: gcc-java >= 4.0.0-0.35 +Requires: libgcj >= 4.0.0-0.42 +%else +Requires: java >= 1.4.2 +%endif Requires: %{libname}-gtk2 = %{epoch}:%{version}-%{release} +Requires: /usr/bin/perl Requires: /usr/bin/mozilla PreReq: gtk2 >= 2.6 @@ -160,7 +181,9 @@ 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: gcc-java >= 4.0.0-0.35 +%if %{gcj_support} +Requires: libgcj >= 4.0.0-0.42 +%endif %description jdt Eclipse Java developments tools. @@ -178,7 +201,9 @@ Summary: Eclipse PDE Group: Text Editors/Integrated Development Environments (IDE) Requires: %{name}-jdt = %{epoch}:%{version}-%{release} Requires: %{name}-platform-devel = %{epoch}:%{version}-%{release} -Requires: gcc-java >= 4.0.0-0.35 +%if %{gcj_support} +Requires: libgcj >= 4.0.0-0.42 +%endif %package pde-devel Summary: Eclipse PDE Source @@ -208,31 +233,48 @@ SWT Library for GTK2. pushd plugins/org.eclipse.swt/Eclipse\ SWT\ PI/gtk/library %patch0 -p0 %patch11 -p0 +%if %{gcj_support} %patch14 -p0 +%endif popd +%if %{gcj_support} %patch1 -p0 +%endif %patch2 -p0 %patch4 -p0 %patch5 -p0 %patch10 -p0 %patch12 -p0 +%if %{gcj_support} %patch13 -p1 +%endif pushd plugins/org.eclipse.platform.doc.isv rm -f activeHelpSample.jar %patch15 -p0 popd +%if %{gcj_support} %patch16 -p0 +%endif pushd plugins/org.eclipse.swt.gtk64 %patch18 -p0 popd pushd plugins/org.eclipse.jdt.core %patch19 -p0 +%patch20 -p0 +popd +pushd plugins/org.eclipse.jdt.ui +%patch21 -p0 +popd +pushd plugins/org.eclipse.update.ui +%patch22 -p0 popd -# Red Hat splash screen. +%if %{gcj_support} +# Fedora splash screen. pushd plugins/org.eclipse.platform cp %{SOURCE11} splash.bmp popd +%endif # Remove existing .sos find -name \*.so -exec rm "-f" "{}" ";" @@ -343,6 +385,7 @@ popd %build ORIGCLASSPATH=$CLASSPATH +%if %{gcj_support} # Bootstrapping is 3 parts: # 1. Build ecj with gcj -C # 2. Build ecj with gcj-built ecj ("javac") @@ -377,8 +420,10 @@ rm -rf ecj-bootstrap-tmp # 2a. Build ecj export CLASSPATH=ecj-bootstrap.jar:$ORIGCLASSPATH +%endif ant -buildfile jdtcoresrc/compilejdtcorewithjavac.xml +%if %{gcj_support} ## 2b. Natively-compile ecj #gcj -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \ # -o jdtcoresrc/ecj.jar.so jdtcoresrc/ecj.jar @@ -390,11 +435,13 @@ ant -buildfile jdtcoresrc/compilejdtcorewithjavac.xml # Remove our gcj-built ecj #rm bootstrap.db ecj-bootstrap.jar rm ecj-bootstrap.jar +%endif # 3. Use this ecj to rebuild itself export CLASSPATH=`pwd`/jdtcoresrc/jdtcore.jar:$ORIGCLASSPATH ant -buildfile jdtcoresrc/compilejdtcore.xml +#%if %{gcj_support} ## Natively-compile it #gcj -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic \ # -o ecj.jar.so ecj.jar @@ -403,6 +450,7 @@ ant -buildfile jdtcoresrc/compilejdtcore.xml # Remove old native bits #rm jdtcoresrc/ecj.db jdtcoresrc/ecj.jar.so +#%endif # Build the rest of Eclipse export CLASSPATH=`pwd`/jdtcore.jar:$ORIGCLASSPATH @@ -412,6 +460,7 @@ ant \ -DinstallOs=linux -DinstallWs=gtk -DinstallArch=%{eclipse_arch} \ -Dlibsconfig=true +%if %{gcj_support} pushd result # De-compress resulting tarball tar zxf org.eclipse.sdk-%{build_id}-linux.gtk.%{eclipse_arch}.tar.gz @@ -479,6 +528,7 @@ popd # Remove expanded eclipse build rm -rf eclipse popd +%endif %install rm -rf $RPM_BUILD_ROOT @@ -491,11 +541,14 @@ tar -C $RPM_BUILD_ROOT%{_datadir} -zxf \ # Binaries, libraries, and natively-built shared libraries install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name} +%if %{gcj_support} # Natively-compiled jars (shared libraries) tar -C $RPM_BUILD_ROOT -zxf result/%{name}-nativelycompiledjars.tar.gz +%endif install -d -m 755 $RPM_BUILD_ROOT%{_bindir} +%if %{gcj_support} # Install ecj binary mv $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0/ecj \ $RPM_BUILD_ROOT%{_bindir} @@ -504,6 +557,7 @@ chmod a+x $RPM_BUILD_ROOT%{_bindir}/ecj # Directory to hold all the .jar->.so mapping dbs install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}` install -d -m 755 $RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`.d +%endif # Eclipse binary mv $RPM_BUILD_ROOT%{_datadir}/%{name}/eclipse \ @@ -684,6 +738,7 @@ mkdir -p $RPM_BUILD_ROOT%{_datadir}/java ln -s %{_datadir}/%{name}/plugins/org.eclipse.jdt.core_%{eclipse_majmin}.%{eclipse_micro}/jdtcore.jar \ $RPM_BUILD_ROOT%{_datadir}/java/jdtcore.jar +%if %{gcj_support} # Create the gcj dbs for libswt, ecj, platform, jdt, and pde gcjdbdir=$RPM_BUILD_ROOT`gcj-dbtool -p %{_libdir}`.d mkdir -p $gcjdbdir @@ -744,10 +799,12 @@ for dir in `cat %{SOURCE10}`; do fi; done; done +%endif %clean rm -rf $RPM_BUILD_ROOT +%if %{gcj_support} %post ecj rebuild-gcj-db %{_libdir} @@ -757,16 +814,20 @@ rebuild-gcj-db %{_libdir} %post pde rebuild-gcj-db %{_libdir} +%post -n %{libname}-gtk2 +rebuild-gcj-db %{_libdir} +%endif + %post platform +%if %{gcj_support} rebuild-gcj-db %{_libdir} +%endif touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then gtk-update-icon-cache %{_datadir}/icons/hicolor fi -%post -n %{libname}-gtk2 -rebuild-gcj-db %{_libdir} - +%if %{gcj_support} %postun ecj rebuild-gcj-db %{_libdir} @@ -776,27 +837,33 @@ rebuild-gcj-db %{_libdir} %postun pde rebuild-gcj-db %{_libdir} +%postun -n %{libname}-gtk2 +rebuild-gcj-db %{_libdir} +%endif + %postun platform +%if %{gcj_support} rebuild-gcj-db %{_libdir} +%endif touch --no-create %{_datadir}/icons/hicolor if [ -x /usr/bin/gtk-update-icon-cache ]; then gtk-update-icon-cache %{_datadir}/icons/hicolor fi -%postun -n %{libname}-gtk2 -rebuild-gcj-db %{_libdir} - # FIXME: add the native directories to these lists %files ecj %defattr(0644,root,root,0755) %dir %{_datadir}/%{name} %{_datadir}/%{name}/plugins/org.eclipse.jdt.core_3.* %{_datadir}/java/jdtcore*.jar +%if %{gcj_support} # Native bits %{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-ecj.db +%dir %{_libdir}/%{name}/plugins %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0/jdtcore.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.core_3.1.0/jdtCompilerAdapter.jar.so %attr(0755,root,root) %{_bindir}/ecj +%endif %files -n %{libname}-gtk2 -f %{libname}-gtk2.install %defattr(0644,root,root,0755) @@ -811,8 +878,10 @@ rebuild-gcj-db %{_libdir} #%{_javadir}/swt-pi-gtk*.jar #%{_javadir}/swt-mozilla*.jar #%{_javadir}/swt-cairo*.jar +%if %{gcj_support} # Native bits %{_libdir}/gcj-4.0.0/classmap.db.d/libswt3-gtk2.db +%dir %{_libdir}/%{name}/plugins %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.swt_3.1.0.jar.so %ifarch alpha ia64 ppc64 sparc64 x86_64 %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk64_3.1.0.jar.so @@ -821,12 +890,15 @@ rebuild-gcj-db %{_libdir} %endif %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jface_3.1.0.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jface.text_3.1.0/jfacetext.jar.so +%endif %files jdt -f %{name}-jdt.install %defattr(0644,root,root,0755) %attr(0755,root,root) %{_bindir}/efj +%if %{gcj_support} # Native bits %{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-jdt.db +%dir %{_libdir}/%{name}/plugins %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.debug.ui_3.1.0/jdiui.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.debug.ui_3.1.0/snippetsupport.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.debug_3.1.0/jdimodel.jar.so @@ -838,6 +910,7 @@ rebuild-gcj-db %{_libdir} %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.ui_3.1.0/jdt.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.jdt.ui_3.1.0/serialsupport.jar.so #%attr(0755,root,root) %{_libdir}/%{name}/plugins/org.junit_3.8.1/junit.jar.so +%endif %files jdt-devel %{_datadir}/%{name}/plugins/org.eclipse.jdt.source_3.* @@ -845,8 +918,10 @@ rebuild-gcj-db %{_libdir} %files pde -f %{name}-pde.install %defattr(0644,root,root,0755) +%if %{gcj_support} # Native bits %{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-pde.db +%dir %{_libdir}/%{name}/plugins %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.pde.build_3.1.0/lib/pdebuild-ant.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.pde.build_3.1.0/pdebuild.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.pde.core_3.1.0/pdecore.jar.so @@ -856,6 +931,7 @@ rebuild-gcj-db %{_libdir} %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.pde.ui_3.1.0/pdeui.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.pde_3.1.0/pde.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.pde_3.1.0/ant_tasks/pde-ant.jar.so +%endif %files pde-devel %{_datadir}/%{name}/plugins/org.eclipse.pde.source_3.* @@ -878,8 +954,10 @@ rebuild-gcj-db %{_libdir} %{_datadir}/pixmaps/* %{_datadir}/icons/*/*/apps/* %config(noreplace) %{_sysconfdir}/eclipse.conf +%if %{gcj_support} # Native bits %{_libdir}/gcj-4.0.0/classmap.db.d/%{name}-platform.db +%dir %{_libdir}/%{name}/plugins %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.ant.core_3.1.0/antsupport.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.compare_3.1.0/compare.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.core.boot_3.0.0/boot.jar.so @@ -980,6 +1058,7 @@ rebuild-gcj-db %{_libdir} %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.help.webapp_3.1.0/WEB-INF/lib/jsp.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.help.webapp_3.1.0/WEB-INF/lib/servlets.jar.so %attr(0755,root,root) %{_libdir}/%{name}/plugins/org.eclipse.ui.console_3.1.0/console.jar.so +%endif %files platform-devel %{_datadir}/%{name}/plugins/org.eclipse.platform.source_3.* @@ -987,6 +1066,13 @@ rebuild-gcj-db %{_libdir} %{_datadir}/%{name}/plugins/org.eclipse.platform.source.linux.gtk.*_3.1.0 %changelog +* Mon Apr 18 2005 Andrew Overholt 3.1.0_fc-0.M6.7 +- Add %if %{gcj_support} blocks. +- Add %{_libdir}/%{name}/plugins to native %files section of each sub-rpm. +- Add GNU-style JDT code formatting option (e.o#91770). +- Add patch to install plugins from update site in home dir (e.o#90630). +- Change gcc-java requirements to libgcj as gcj-dbtool is now in the latter. + * Mon Apr 18 2005 Ben Konrath 3.1.0_fc-0.M6.6 - Bump version number.