[eclipse] RHBZ#832053: Ship SWT and other native plugins as folders.
Krzysztof Daniel
kdaniel at fedoraproject.org
Fri Jan 25 18:33:55 UTC 2013
commit 7fcdb7701c636b8c87d8f54548cf7d15d5fcb459
Author: Krzysztof Daniel <kdaniel at redhat.com>
Date: Fri Jan 25 19:33:06 2013 +0100
RHBZ#832053: Ship SWT and other native plugins as folders.
eclipse.spec | 79 ++++++++++++++++++---------------------------------------
1 files changed, 25 insertions(+), 54 deletions(-)
---
diff --git a/eclipse.spec b/eclipse.spec
index c97e4bf..9375c38 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -65,7 +65,7 @@ fi;
Summary: An open, extensible IDE
Name: eclipse
Version: %{eclipse_version}
-Release: 0.4.git20121217%{?dist}
+Release: 0.5.git20121217%{?dist}
License: EPL
Group: Development/Tools
URL: http://www.eclipse.org/
@@ -551,6 +551,17 @@ mkdir -p rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/%{ecli
sed -i -e "s/org.apache.jasper.glassfish/org.glassfish.web.javax.servlet.jsp/" eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml
sed -i -e "s/javax.annotation/org.apache.geronimo.specs.geronimo-annotation_1.1_spec/" eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml
+#ensure that bundles with *.so libs are dirs, so no *.so is extracted into user.home
+for f in `find eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.* -name MANIFEST.MF` ; do
+ echo -e "Eclipse-BundleShape: dir\n\n" >> $f;
+done
+for f in `find eclipse.platform.resources/bundles/org.eclipse.core.filesystem.linux.* -name MANIFEST.MF` ; do
+ echo -e "Eclipse-BundleShape: dir\n\n" >> $f;
+done
+for f in `find eclipse.platform.team/bundles/org.eclipse.core.net/fragments -name MANIFEST.MF` ; do
+ echo -e "Eclipse-BundleShape: dir\n\n" >> $f;
+done
+
%build
#This is the lowest value where the build succeeds. 512m is not enough.
export MAVEN_OPTS="-Xmx700m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState"
@@ -641,22 +652,7 @@ pushd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.f
######################
# Extract jdt and pde to dropins
######################
-# do the initializer magic - initialize dropins just in case
-mkdir -p eclipse/dropins
-cp ../../../../../../../../rt.equinox.incubator/framework/bundles/org.eclipse.equinox.initializer/target/org.eclipse.equinox.initializer-1.0.0-SNAPSHOT.jar eclipse/dropins
pushd eclipse
- ./eclipse -application org.eclipse.equinox.initializer.configInitializer -justThisArchOSWS -fileInitializer ../../../../../../../../../extract_patterns.txt
- rm dropins/org.eclipse.equinox.initializer-1.0.0-SNAPSHOT.jar
- ./eclipse -application org.eclipse.equinox.p2.reconciler.application
-# Create file listings for the extracted shared libraries
-echo -n "" > %{_builddir}/%{buildsubdir}/%{name}-platform.install;
-for id in `ls configuration/org.eclipse.osgi/bundles`; do
- if [ "Xconfiguration" = $(echo X`find configuration/org.eclipse.osgi/bundles/$id -name libswt\*.so` | sed "s:/.*::") ]; then
- echo "%verify(not mtime) %{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/$id" > %{_builddir}/%{buildsubdir}/%{name}-swt.install;
- else
- echo "%verify(not mtime) %{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/$id" >> %{_builddir}/%{buildsubdir}/%{name}-platform.install;
- fi
-done
#symlink what should be symlinked
pushd plugins
@@ -802,13 +798,7 @@ cd eclipse
rm -rf configuration/org.eclipse.core.runtime
rm -rf configuration/org.eclipse.equinox.app
rm -rf configuration/org.eclipse.update/*
-
-find configuration -type d -name "data" -exec rm -rf `pwd`{} \;
-find configuration -type f -name "*.log" -exec rm `pwd`{} \;
-
-pushd configuration/org.eclipse.osgi
-rm -rf .bundledata* .lazy* .manager .state*
-popd
+rm -rf configuration/org.eclipse.osgi
#symlink jdt & sdk
pushd dropins/jdt/plugins
@@ -909,10 +899,14 @@ pushd $RPM_BUILD_ROOT/usr/bin/
ln -s %{_libdir}/%{name}/eclipse
popd
+#SWT is now a folder, but we need to provide jars for others that depend on it.
pushd $RPM_BUILD_ROOT/%{_libdir}/%{name}
-SWT_JAR=`ls $RPM_BUILD_ROOT/%{_libdir}/%{name}/plugins | grep swt.gtk`
- ln -s %{_libdir}/%{name}/plugins/${SWT_JAR} swt.jar
- ln -s %{_libdir}/%{name}/plugins/${SWT_JAR} swt-gtk.jar
+pushd plugins
+SWT_JAR=`ls | grep swt.gtk`
+zip "${SWT_JAR}.jar" ${SWT_JAR}/*
+popd
+ ln -s %{_libdir}/%{name}/plugins/"${SWT_JAR}.jar" swt.jar
+ ln -s %{_libdir}/%{name}/plugins/"${SWT_JAR}.jar" swt-gtk.jar
popd
#eclipse ini
@@ -926,21 +920,7 @@ popd
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}
-
rm -rf icon.xpm
-
-popd
-
-# Remove state files
-pushd $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.osgi/
- rm -rf .bundledata* .lazy* .manager .state*
-popd
-
-# 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 $lib `basename $lib`
-done
popd
# Temporary fix until https://bugs.eclipse.org/294877 is resolved
@@ -1076,19 +1056,10 @@ fi
# workaround for rpm bug, can be removed in F-20 Fixes the problem with efj being directory instead of launcher
rm -rf %{_bindir}/efj/
-%if %{initialize}
-%files swt -f %{name}-swt.install
-%else
+
%files swt
-%endif
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
-%if %{initialize}
-%{_libdir}/%{name}/libswt-*.so
-%dir %{_libdir}/%{name}/configuration
-%dir %{_libdir}/%{name}/configuration/org.eclipse.osgi
-%dir %{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles
-%endif
%{_libdir}/%{name}/notice.html
%{_libdir}/%{name}/eclipse.ini
%{_libdir}/%{name}/.options
@@ -1099,11 +1070,8 @@ rm -rf %{_bindir}/efj/
%{_libdir}/%{name}/swt.jar
%{_libdir}/java/swt.jar
-%if %{initialize}
-%files platform -f %{name}-platform.install
-%else
+
%files platform
-%endif
%attr(0755,root,root) %{_bindir}/%{name}
%{_libdir}/%{name}/.eclipseproduct
%config %{_libdir}/%{name}/eclipse.ini
@@ -1348,6 +1316,9 @@ rm -rf %{_bindir}/efj/
%{_mavendepmapfragdir}/%{name}-equinox-osgi
%changelog
+* Fri Jan 25 2013 Krzysztof Daniel <kdaniel at redhat.com> 1:4.2.2-0.5.git20121217
+- RHBZ#832053: Ship SWT and other native plugins as folders.
+
* Thu Jan 17 2013 Krzysztof Daniel <kdaniel at redhat.com> 1:4.2.2-0.4.git20121217
- RHBZ#893774: file shipped twice in eclipse-platform and eclipse-equinox-osgi
More information about the scm-commits
mailing list