=Fix eclipse-pdebuild script to have proper path to pde bundle.\n\nOne patch from the old e-b was missing
This commit is contained in:
parent
03ba9e74ea
commit
c0f90a91f2
300
eclipse-pdebuild-add-target.patch
Normal file
300
eclipse-pdebuild-add-target.patch
Normal file
@ -0,0 +1,300 @@
|
||||
### Eclipse Workspace Patch 1.0
|
||||
#P org.eclipse.pde.build
|
||||
--- /dev/null
|
||||
+++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/prepare-build-dir.sh
|
||||
@@ -0,0 +1,105 @@
|
||||
+#!/bin/sh
|
||||
+
|
||||
+if [ $# -lt 2 ]; then
|
||||
+ echo "usage: $0 <path to source dir> <path to build dir>"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+if [ ! -d $1 ]; then
|
||||
+ echo "usage: $0 <path to source dir> <path to build dir>"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+SOURCEDIR=$1
|
||||
+BUILDDIR=$2
|
||||
+TESTING=$3
|
||||
+
|
||||
+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 "<project default=\"main\">
|
||||
+ <target name=\"main\">
|
||||
+ <xmlproperty file=\"@type@.xml\" collapseAttributes=\"true\"/>
|
||||
+ <fail unless=\"@type@.id\" message=\"feature.id not set\"/>
|
||||
+ <echo message=\"\${@type@.id}\" />
|
||||
+ </target>
|
||||
+</project>" > $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)
|
||||
+find $SOURCEDIR -name feature.xml | while read f; do
|
||||
+ PROJECTDIR=$(dirname "$f")
|
||||
+ inSDK=1
|
||||
+ inSDK=$(echo $PROJECTDIR | grep -c $BUILDDIR)
|
||||
+ if [ $inSDK = 0 ]; then
|
||||
+ PROJECTNAME=$(ant -Dbasedir="$PROJECTDIR" -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
|
||||
+ ERROR=""
|
||||
+ if [ -z "$PROJECTNAME" ]; then
|
||||
+ echo "ERROR: could not determine the feature id for $PROJECTDIR"
|
||||
+ if [ $TESTING != true ]; then
|
||||
+ exit 1
|
||||
+ else
|
||||
+ ERROR="yes"
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ if [ "x$ERROR" != "xyes" ]; then
|
||||
+ if [ $TESTING != true ] || `echo "$PROJECTNAME" | grep "org.eclipse"`; then
|
||||
+ echo " making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR"
|
||||
+ ln -sfT "$PROJECTDIR" $BUILDDIR/features/"$PROJECTNAME"
|
||||
+ fi
|
||||
+ fi
|
||||
+ fi
|
||||
+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)
|
||||
+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 | while read dir; do
|
||||
+ PROJECTNAME=""
|
||||
+ ERROR=""
|
||||
+ inSDK=1
|
||||
+ inSDK=$(echo $dir | grep -c $BUILDDIR)
|
||||
+ if [ $inSDK = 0 ]; then
|
||||
+ 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"
|
||||
+ if [ $TESTING != true ]; then
|
||||
+ exit 1
|
||||
+ else
|
||||
+ ERROR="yes"
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ if [ "x$ERROR" != "xyes" ]; then
|
||||
+ if [ $TESTING != true ] || `echo "$PROJECTNAME" | grep "org.eclipse"`; then
|
||||
+ echo " making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir"
|
||||
+ ln -sfT "$dir" $BUILDDIR/plugins/"$PROJECTNAME"
|
||||
+ fi
|
||||
+ fi;
|
||||
+
|
||||
+ fi
|
||||
+
|
||||
+done
|
||||
+
|
||||
+rm -rf $BUILDDIR/tmp
|
||||
+echo done
|
||||
--- /dev/null
|
||||
+++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/customTargets-assemble-target.xml
|
||||
@@ -0,0 +1,15 @@
|
||||
+<project>
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Targets to assemble the built elements for particular configurations -->
|
||||
+ <!-- These generally call the generated assemble scripts (named in -->
|
||||
+ <!-- ${assembleScriptName}) but may also add pre and post processing -->
|
||||
+ <!-- Add one target for each root element and each configuration -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+
|
||||
+ <target name="assemble.@id@">
|
||||
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
|
||||
+ </target>
|
||||
+ <target name="assemble.@id@.@configs@">
|
||||
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}" />
|
||||
+ </target>
|
||||
+</project>
|
||||
--- /dev/null
|
||||
+++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/customTargets.xml
|
||||
@@ -0,0 +1,154 @@
|
||||
+<project name="Build specific targets and properties" default="noDefault">
|
||||
+
|
||||
+ <fail unless="type" message="Please set the ${type} property to 'feature', 'plugin' or 'fragment'." />
|
||||
+ <fail unless="id" message="Please set the ${id} property to the feature, plugin or fragment id of the plugin you are building." />
|
||||
+ <fail unless="sourceDirectory" message="Please set the ${sourceDirectory} property to the directory that has the source plugins." />
|
||||
+
|
||||
+ <!-- we need to do this because you can't expand variables in target names -->
|
||||
+ <copy file="${builder}/customTargets-assemble-target.xml" tofile="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
|
||||
+ <replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@id@" value="${id}" />
|
||||
+ <replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@configs@" value="${configs}" />
|
||||
+ <replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="," value="." />
|
||||
+ <import file="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Run a given ${target} on all elements being built -->
|
||||
+ <!-- Add on <ant> task for each top level element being built. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="allElements">
|
||||
+ <ant antfile="${genericTargets}" target="${target}">
|
||||
+ <property name="type" value="${type}" />
|
||||
+ <property name="id" value="${id}" />
|
||||
+ </ant>
|
||||
+ </target>
|
||||
+
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Check out map files from correct repository -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="getMapFiles">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+
|
||||
+ <target name="clean" unless="noclean">
|
||||
+ <antcall target="allElements">
|
||||
+ <param name="target" value="cleanElement" />
|
||||
+ </antcall>
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do before setup -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="preSetup">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after setup but before starting the build proper -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postSetup">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do before fetching the build elements -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="preFetch">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after fetching the build elements -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postFetch">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do before generating the build scripts. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="preGenerate">
|
||||
+ <!-- Eclipse expects the feature projects to be in the 'features' directory and
|
||||
+ plugin projects to be in the 'plugins' directory. The build infrastructure
|
||||
+ normally arranges the projects during the fetch stage. Since we aren't doing
|
||||
+ the fetch stage, we have to manually arrange the files -->
|
||||
+ <exec dir="${builder}" executable="/bin/bash" failOnError="true">
|
||||
+ <arg line="prepare-build-dir.sh ${sourceDirectory} ${buildDirectory} ${testing}" />
|
||||
+ </exec>
|
||||
+ <antcall target="symlinkDeps" />
|
||||
+ </target>
|
||||
+
|
||||
+ <target name="symlinkDeps" if="orbitDepsDir">
|
||||
+ <apply executable="ln" parallel="false" dir="${buildDirectory}/plugins" verbose="true">
|
||||
+ <arg line="-s" />
|
||||
+ <srcfile />
|
||||
+ <fileset dir="${orbitDepsDir}" includes="*.jar" />
|
||||
+ </apply>
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after generating the build scripts. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postGenerate">
|
||||
+ <antcall target="clean" />
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do before running the build.xmls for the elements being built. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="preProcess">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after running the build.xmls for the elements being built. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postProcess">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do before running assemble. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="preAssemble">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after running assemble. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postAssemble">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do before running package. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="prePackage">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after running package. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postPackage">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do after the build is done. -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="postBuild">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do to test the build results -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="test">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Steps to do to publish the build results -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="publish">
|
||||
+ </target>
|
||||
+
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <!-- Default target -->
|
||||
+ <!-- ===================================================================== -->
|
||||
+ <target name="noDefault">
|
||||
+ <echo message="You must specify a target when invoking this file" />
|
||||
+ </target>
|
||||
+
|
||||
+</project>
|
||||
--- /dev/null
|
||||
+++ eclipse.pde.build/org.eclipse.pde.build/templates/package-build/build.properties
|
||||
@@ -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
|
15
eclipse.spec
15
eclipse.spec
@ -33,7 +33,7 @@ ln -s %{_javadir}/%{2} ${_f}
|
||||
Summary: An open, extensible IDE
|
||||
Name: eclipse
|
||||
Version: %{eclipse_version}
|
||||
Release: 11%{?dist}
|
||||
Release: 12%{?dist}
|
||||
License: EPL
|
||||
Group: Text Editors/Integrated Development Environments (IDE)
|
||||
URL: http://www.eclipse.org/
|
||||
@ -95,6 +95,7 @@ Patch20: %{name}-ignore-version-when-calculating-home.patch
|
||||
Patch21: %{name}-populate-update-sites-from-master.patch
|
||||
Patch22: %{name}-remove-jgit-provider.patch
|
||||
Patch23: %{name}-fix-comilation-lucene-3.6-compile.patch
|
||||
Patch24: %{name}-pdebuild-add-target.patch
|
||||
|
||||
BuildRequires: ant >= 1.8.3
|
||||
BuildRequires: rsync
|
||||
@ -290,6 +291,7 @@ tar --strip-components=1 -xf %{SOURCE1}
|
||||
%patch21
|
||||
%patch22
|
||||
%patch23
|
||||
%patch24
|
||||
|
||||
#https://bugs.eclipse.org/bugs/show_bug.cgi?id=386040
|
||||
%pom_disable_module bundles/org.eclipse.equinox.http.jetty5 rt.equinox.bundles .
|
||||
@ -785,12 +787,18 @@ copyPlatform=$RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/copy-platform
|
||||
# Install the PDE Build wrapper script.
|
||||
install -p -D -m0755 pdebuildscripts/eclipse-pdebuild.sh \
|
||||
$RPM_BUILD_ROOT%{_bindir}/%{name}-pdebuild
|
||||
PDEBUILDVERSION=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/pde/plugins \
|
||||
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%{_bindir}/%{name}-pdebuild
|
||||
|
||||
|
||||
#fix pde permissions
|
||||
chmod a+x $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/sdk/plugins/org.eclipse.pde.build_*/templates/package-build/*.sh
|
||||
#replace pde reference
|
||||
sed -i "s@/usr/share/eclipse@%{libdir}/%{name}@" $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/sdk/plugins/org.eclipse.pde.build_*/templates/package-build/build.properties
|
||||
|
||||
# Install eclipse macros file
|
||||
mkdir $RPM_BUILD_ROOT%{_sysconfdir}/rpm/
|
||||
install -m 0644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/
|
||||
@ -1083,6 +1091,9 @@ rm -rf %{_bindir}/efj/
|
||||
%{_mavendepmapfragdir}/%{name}-equinox-osgi
|
||||
|
||||
%changelog
|
||||
* Fri Aug 24 2012 Krzysztof Daniel <kdaniel@redhat.com> 1:4.2.0-12
|
||||
- Fix eclipse-pdebuild script to have proper path to pde bundle.
|
||||
|
||||
* Thu Aug 23 2012 Krzysztof Daniel <kdaniel@redhat.com> 1:4.2.0-11
|
||||
- Symlink junit 4.
|
||||
- Move additional, non-Eclipse sources back to eclipse-build.
|
||||
|
Loading…
Reference in New Issue
Block a user