%define gcj_support 1 %define eclipse_name eclipse %define eclipse_base %{_datadir}/%{eclipse_name} %define core_plugin_jar %{eclipse_base}/plugins/org.tigris.subversion.subclipse.core_%{version}.jar %define core_plugin_dir %{eclipse_base}/plugins/org.tigris.subversion.subclipse.core_%{version} Name: eclipse-subclipse Version: 1.2.3 Release: %mkrel 0.0.2 Epoch: 0 Summary: Subversion Eclipse plugin Group: Development/Java License: EPL URL: http://subclipse.tigris.org/ Source0: subclipse-%{version}.tar.bz2 # Script to fetch the source code # the new source tarball does not includes the book feature and the layout is # different than the source repository Source1: subclipse-fetch.sh BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %if %mdkversion == 200800 # For fixed EOL handling: # you may remove this on 2007-06-25 when iurt chroots are updated BuildRequires: spec-helper >= 0.26 %endif BuildRequires: ant BuildRequires: jpackage-utils BuildRequires: eclipse-pde %if %{gcj_support} BuildRequires: java-gcj-compat-devel %else BuildArch: noarch BuildRequires: java-devel %endif Requires: eclipse-platform BuildRequires: svn-javahl Requires: svn-javahl BuildRequires: svnkit Requires: svnkit BuildRequires: ganymed-ssh2 Requires: ganymed-ssh2 %package book Summary: Subversion book Group: Development/Java Requires: %{name} = %{epoch}:%{version}-%{release} %description Subclipse is an Eclipse plugin that adds Subversion integration to the Eclipse IDE. %description book The Subversion book as an Eclipse documentation plugin. %prep %setup -q -n subclipse-%{version} %if 0 %{__perl} -pi -e 's/JhlClientAdapterFactory\.JAVAHL_CLIENT/SvnKitClientAdapterFactory.SVNKIT_CLIENT/' \ subclipse/ui/src/org/tigris/subversion/subclipse/ui/Preferences.java %endif # delete the jars that are in the archive rm svnClientAdapter/lib/svnjavahl.jar ln -sf %{_jnidir}/svn-javahl.jar svnClientAdapter/lib/svnjavahl.jar rm -f svnClientAdapter/lib/svnkit.jar ln -sf %{_javadir}/svnkit.jar svnClientAdapter/lib/svnkit.jar rm -f svnClientAdapter/lib/ganymed.jar ln -sf %{_javadir}/ganymed-ssh2.jar svnClientAdapter/lib/ganymed.jar rm -f subclipse/core/lib/svnjavahl.jar ln -sf %{_jnidir}/svn-javahl.jar subclipse/core/lib/svnjavahl.jar rm -f subclipse/core/lib/svnClientAdapter.jar # svnClientAdapter.jar is copied after being built rm -f subclipse/core/lib/svnkit.jar ln -sf %{_javadir}/svnkit.jar subclipse/core/lib/svnkit.jar rm -f subclipse/core/lib/ganymed.jar ln -sf %{_javadir}/ganymed-ssh2.jar subclipse/core/lib/ganymed.jar %build # --------------------------------- # building svnClientAdapter pushd svnClientAdapter %{ant} svnClientAdapter.jar popd # copying svnClientAdapter inside subclipse module cp svnClientAdapter/build/lib/svnClientAdapter.jar subclipse/core/lib/svnClientAdapter.jar # --------------------------------- # building subclipse pushd subclipse # See comments in the script to understand this. /bin/sh -x %{eclipse_base}/buildscripts/copy-platform SDK %{eclipse_base} SDK=$(cd SDK > /dev/null && pwd) # Eclipse may try to write to the home directory. mkdir home homedir=$(cd home > /dev/null && pwd) # build the main subclipse feature %{java} -cp %{eclipse_base}/startup.jar \ -Dosgi.sharedConfiguration.area=%{_libdir}/eclipse/configuration \ -Duser.home=$homedir \ org.eclipse.core.launcher.Main \ -application org.eclipse.ant.core.antRunner \ -Dtype=feature \ -Did=org.tigris.subversion.subclipse \ -DsourceDirectory=$(pwd) \ -DbaseLocation=$SDK \ -Dbuilder=%{eclipse_base}/plugins/org.eclipse.pde.build/templates/package-build \ -f %{eclipse_base}/plugins/org.eclipse.pde.build/scripts/build.xml # build the subclipse book feature %{java} -cp %{eclipse_base}/startup.jar \ -Dosgi.sharedConfiguration.area=%{_libdir}/eclipse/configuration \ -Duser.home=$homedir \ org.eclipse.core.launcher.Main \ -application org.eclipse.ant.core.antRunner \ -Dtype=feature \ -Did=org.tigris.subversion.book \ -DsourceDirectory=$(pwd) \ -DbaseLocation=$SDK \ -Dbuilder=%{eclipse_base}/plugins/org.eclipse.pde.build/templates/package-build \ -f %{eclipse_base}/plugins/org.eclipse.pde.build/scripts/build.xml # returning to base build directory popd # Link source files to fix -debuginfo generation. rm -rf subclipse/org mkdir -p subclipse/org/tigris/subversion ln -s $(pwd)/svnClientAdapter/src/main/org/tigris/subversion/svnclientadapter subclipse/org/tigris/subversion mkdir -p subclipse/org/tigris/subversion/subclipse ln -s $(pwd)/subclipse/core/src/org/tigris/subversion/subclipse/core subclipse/org/tigris/subversion/subclipse ln -s $(pwd)/subclipse/ui/src/org/tigris/subversion/subclipse/ui subclipse/org/tigris/subversion/subclipse %install rm -rf $RPM_BUILD_ROOT install -d -m 755 $RPM_BUILD_ROOT%{eclipse_base} pushd subclipse unzip -q -d $RPM_BUILD_ROOT%{eclipse_base}/.. build/rpmBuild/org.tigris.subversion.subclipse.zip unzip -q -d $RPM_BUILD_ROOT%{eclipse_base}/.. build/rpmBuild/org.tigris.subversion.book.zip # repacking core plugin as a directory based plugin, needed in order to replace some jars with symlinks mkdir $RPM_BUILD_ROOT%{core_plugin_dir} unzip -q -d $RPM_BUILD_ROOT%{core_plugin_dir} $RPM_BUILD_ROOT%{core_plugin_jar} rm $RPM_BUILD_ROOT%{core_plugin_jar} # packaging .class files as a jar file jar -cf $RPM_BUILD_ROOT%{core_plugin_dir}/lib/subclipse-core.jar -C $RPM_BUILD_ROOT%{core_plugin_dir} org rm -rf $RPM_BUILD_ROOT%{core_plugin_dir}/org # adding the recently created jar to the plugin manifestOB %{__perl} -pi -e 's|^Bundle-ClassPath: \.|Bundle-ClassPath: lib/subclipse-core.jar|' $RPM_BUILD_ROOT%{core_plugin_dir}/META-INF/MANIFEST.MF # removing core plugin internal jars rm -f $RPM_BUILD_ROOT%{core_plugin_dir}/lib/svnjavahl.jar rm -f $RPM_BUILD_ROOT%{core_plugin_dir}/lib/svnkit.jar rm -f $RPM_BUILD_ROOT%{core_plugin_dir}/lib/ganymed.jar %if %{gcj_support} %{_bindir}/aot-compile-rpm %endif # We need to setup the symlink because the ant copy task doesn't preserve symlinks # TODO file a bug about this ln -s %{_jnidir}/svn-javahl.jar $RPM_BUILD_ROOT%{core_plugin_dir}/lib/svnjavahl.jar ln -s %{_javadir}/svnkit.jar $RPM_BUILD_ROOT%{core_plugin_dir}/lib/svnkit.jar ln -s %{_javadir}/ganymed-ssh2.jar $RPM_BUILD_ROOT%{core_plugin_dir}/lib/ganymed.jar %clean rm -rf $RPM_BUILD_ROOT %if %{gcj_support} %post %{update_gcjdb} %postun %{clean_gcjdb} %endif %files %defattr(-,root,root) %{eclipse_base}/features/org.tigris.subversion.subclipse_* %{eclipse_base}/plugins/org.tigris.subversion.subclipse.core_* %{eclipse_base}/plugins/org.tigris.subversion.subclipse.ui_* %{eclipse_base}/plugins/org.tigris.subversion.subclipse.doc_* %doc svnClientAdapter/readme.txt svnClientAdapter/changelog.txt svnClientAdapter/license.txt %if %{gcj_support} %{_libdir}/gcj/%{name} %endif %files book %defattr(-,root,root) %{eclipse_base}/features/org.tigris.subversion.book_* %{eclipse_base}/plugins/org.tigris.subversion.book_* %changelog * Sat Sep 15 2007 Anssi Hannula <anssi@mandriva.org> 1.2.3-0.0.2mdv2008.0 + Revision: 87369 - rebuild to filter out autorequires of GCJ AOT objects - remove unnecessary Requires(post) on java-gcj-compat * Wed Jul 11 2007 David Walluck <walluck@mandriva.org> 0:1.2.3-0.0.1mdv2008.0 + Revision: 51194 - 1.2.3 * Sun Jun 24 2007 Anssi Hannula <anssi@mandriva.org> 0:1.1.9-2.4mdv2008.0 + Revision: 43776 - rebuild with new spec-helper * Sun Jun 24 2007 Anssi Hannula <anssi@mandriva.org> 0:1.1.9-2.3mdv2008.0 + Revision: 43763 - rebuild with new spec-helper * Sun Jun 24 2007 David Walluck <walluck@mandriva.org> 0:1.1.9-2.2mdv2008.0 + Revision: 43601 - fix location of svn-javahl.jar * Sun Mar 11 2007 David Walluck <walluck@mandriva.org> 1.1.9-2.1mdv2007.1 + Revision: 141434 - rebuild * Mon Dec 18 2006 David Walluck <walluck@mandriva.org> 0:1.1.9-1mdv2007.1 + Revision: 98392 - 1.1.9 - Import eclipse-subclipse * Fri Sep 01 2006 David Walluck <walluck@mandriva.org> 0:1.1.5-2mdv2007.0 * Mon Aug 28 2006 Robert Marcano <robert@marcanoonline.com> 1.1.5-2 - Rebuild * Tue Aug 22 2006 Robert Marcano <robert@marcanoonline.com> 1.1.5-1 - Update to upstream 1.1.5 - svnClientAdapter documentation files added. Subclipse includes an eclipse based documentation for the plugins * Mon Aug 07 2006 Robert Marcano <robert@marcanoonline.com> 1.1.4-1 - Update to upstream 1.1.4 - License changed to EPL - svnClientAdapter-1.1.4-javac-target.patch added fix to svnClientAdapter ant script * Wed Jul 05 2006 Andrew Overholt <overholt@redhat.com> 1.0.3-2 - Use versionless pde.build. - Remove strict SDK version requirement due to above. * Mon Jul 03 2006 Robert Marcano <robert@marcanoonline.com> 1.0.3-2 - Embeeding the script that fetch the source code * Mon Jun 26 2006 Robert Marcano <robert@marcanoonline.com> 1.0.3-1 - Update to 1.0.3 - Dependency name changed to ganymed-ssh2 * Mon Jun 12 2006 Robert Marcano <robert@marcanoonline.com> 1.0.1-6 - rpmlint fixes and debuginfo generation workaround * Fri Jun 02 2006 Robert Marcano <robert@marcanoonline.com> 1.0.1-5 - Use package-build from eclipse SDK * Mon May 29 2006 Robert Marcano <robert@marcanoonline.com> 1.0.1-4 - Integrated svnClientAdapter inside this package * Wed May 24 2006 Ben Konrath <bkonrath@redhat.com> 1.0.1-3 - Rename package to eclipse-subclipse. - Use copy-platform script for now. * Mon May 08 2006 Robert Marcano <robert@marcanoonline.com> 1.0.1-2 - use external libraries from dependent packages * Thu Apr 27 2006 Ben Konrath <bkonrath@redhat.com> 1.0.1-1 - initial version based on the work of Robert Marcano