Skip to content

Instantly share code, notes, and snippets.

@daveshow
Created June 26, 2012 16:36
Show Gist options
  • Save daveshow/2996942 to your computer and use it in GitHub Desktop.
Save daveshow/2996942 to your computer and use it in GitHub Desktop.
This is the install example with php info and 3.7.2
#!/bin/bash
rm -rf workspace eclipse
mkdir workspace
tar -xzf eclipse-platform-3.6.2-linux-gtk-x86_64.tar.gz
cat eclipse/eclipse.ini |tr '\n' '\\'|sed 's:-vmargs.*::'|tr '\\' '\n' > eclipse.ini
cat >> eclipse.ini << HERE
-vmargs
-server
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+CMSIncrementalMode
-XX:+CMSParallelRemarkEnabled
-Xss1M
-Xms512M
-Xmx768M
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-XX:PermSize=256m
-XX:ReservedCodeCacheSize=128m
-XX:MaxPermSize=768m
-XX:+CMSIncrementalPacing
HERE
cp eclipse.ini eclipse/eclipse.ini
rm eclipse.ini
(
cd eclipse
repository='http://download.eclipse.org/releases/helios,http://download.eclipse.org/eclipse/updates/3.6' #eclipse 3.6
repository="$repository,http://community.polarion.com/projects/subversive/download/eclipse/2.0/indigo-site/,http://subclipse.tigris.org/update_1.6.x" #subversion
repository="$repository,http://update.atlassian.com/atlassian-eclipse-plugin/e3.4" #atlassian/jira
repository="$repository,http://download.eclipse.org/tools/mylyn/update/extras,http://mylyn-mantis.sourceforge.net/eclipse/update,http://download.eclipse.org/tools/mylyn/update/helios" #mylyn (bugzilla/mantis/trac/...)
repository="$repository,http://downloads.zend.com/pdt/" #zend pdt
repository="$repository,http://www.phpsrc.org/eclipse/pti/" #php q/a tools
repository="$repository,http://jsdt.googlecode.com/svn/trunk/org.ayound.js.debug.update/" #javascript debugger
repository="$repository,http://update.rockstarapps.com/site.xml" #jslint
repository="$repository,http://www.ne.jp/asahi/zigen/home/plugin/dbviewer/" #dbviewer
repository="$repository,http://code.inf.unibz.it/instasearch/downloads/" #instasearch
repository="$repository,http://beta.zend.com/studio/8.0.1/update/,http://downloads.zend.com/studio-eclipse/updates/8_0" #valid ZendStudio licence required. Zend Certified == valid ZS licence
repository="$repository,http://download.aptana.com/studio3/plugin/install" # aptana
repository="$repository,http://download.cloudsmith.com/geppetto/updates" #puppet ide
repository="$repository,http://opensource.mayflower.de/cinder/" # jenkins errors -> eclipse errors
repository="$repository,http://www.cubictest.org/update/" #cubictest, selenium support
repository="$repository,http://zen-coding.ru/eclipse/updates/" #zen coding html/xml/xsl editor
repository="$repository,http://editbox.sourceforge.net/updates" #editbox, a background highlighter
repository="$repository,http://dpp.sourceforge.net/update" #saros distributed pair programming
repository="$repository,http://workspacemechanic.eclipselabs.org.codespot.com/hg.update/mechanic/" #workspace mechanic
features="org.eclipse.epp.package.php.feature.feature.group" # eclipse definition of a php ide
features="$features,org.eclipse.egit.feature.group,org.eclipse.jgit.feature.group" #git
features="$features,org.eclipse.team.svn.revision.graph.feature.group,org.polarion.eclipse.team.svn.connector.feature.group,org.eclipse.team.svn.resource.ignore.rules.jdt.feature.group,org.polarion.eclipse.team.svn.connector.svnkit16.feature.group" #svn
# features="$features,org.eclipse.wst.web_ui.feature.feature.group,org.eclipse.wst.xml_ui.feature.feature.group,org.eclipse.wst.xsl.feature.feature.group" #web/xml/xsl
# features="$features,org.eclipse.epp.package.javascript.feature.feature.group,org.eclipse.wst.jsdt.feature.feature.group" #javascript
# features="$features,org.ayound.js.debug.feature.feature.group" #javascript debugger
features="$features,org.eclipse.php.sdk.feature.group" #php
features="$features,org.phpsrc.eclipse.pti.tools.phpcpd,org.phpsrc.eclipse.pti.tools.codesniffer,org.phpsrc.eclipse.pti.core,org.phpsrc.eclipse.pti.tools.phpunit,org.phpsrc.eclipse.pti.tools.phpdepend,org.phpsrc.eclipse.pti.library.pear" #php q/a tools
features="$features,org.zend.php.debug_feature.feature.group" #zend debugger (xdebug ships with pdt)
features="$features,org.eclipse.datatools.connectivity.feature.feature.group,org.eclipse.datatools.modelbase.feature.feature.group,org.eclipse.datatools.sqldevtools.feature.feature.group,org.eclipse.datatools.sqldevtools.data.feature.feature.group" #sql
features="$features,org.eclipse.datatools.enablement.sdk.feature.feature.group,org.eclipse.datatools.sdk.feature.feature.group" #database definitions
# features="$features,org.eclipse.datatools.enablement.mysql.feature.patch.feature.group,org.eclipse.datatools.enablement.sqlite.feature.patch.feature.group" # zend db drivers
features="$features,zigen.plugin.future.ext.generate.vo.feature.group" #dbviewer
features="$features,com.atlassian.connector.eclipse.jira.feature.group,com.itsolut.mantis_feature.feature.group,org.eclipse.mylyn.trac_feature.feature.group,org.eclipse.mylyn.bugzilla_feature.feature.group" #jira/mantis/trac/bugzilla
features="$features,org.eclipse.mylyn.ide_feature.feature.group,org.eclipse.team.svn.mylyn.feature.group"
# org.eclipse.mylyn.git.feature.group,org.eclipse.mylyn.ide_feature.feature.group,org.eclipse.team.svn.mylyn.feature.group" #mylyn/git/eclipse/svn
# features="$features,org.eclipse.dltk.mylyn.feature.group" #mylyn/php/js
features="$features,org.eclipse.jdt.feature.group" # java development tools, enable the ant view
features="$features,org.eclipse.rse.core.feature.group,org.eclipse.rse.ftp.feature.group,org.eclipse.rse.ssh.feature.group" #remote development
features="$features,org.eclipse.tm.terminal.local.feature.group" #local terminal
features="$features,com.vmware.remotedebug.feature.group" #valid ZendStudio licence required
features="$features,org.cloudsmith.geppetto.feature.group" #puppet ide
# features="$features,org.eclipse.mylyn.hudson.feature.group" #jenkins
features="$features,it.unibz.instasearch.feature.feature.group" #instasearch
features="$features,com.aptana.ide.feature.libraries.subscription.feature.group,com.aptana.feature.feature.group" #core aptana
features="$features,org.art_core.dev.cinder.feature.group" #cinder
features="$features,com.google.eclipse.mechanic.feature.group" #workspace mechanic
features="$features,pm.eclipse.editbox.feature.feature.group" #editbox background highlighter
features="$features,de.fu_berlin.inf.dpp.feature.feature.group" #saros distributed pair programming
features="$features,org.cubictest.feature.group" #selenium support via cubictest
features="$features,org.eclipse.epp.mpc.feature.group" #eclipse marketplace
./eclipse -nosplash -data ../workspace -application org.eclipse.equinox.p2.director \
-p2.os linux -p2.ws gtk -p2.arch x86_64 \
-purgeHistory -roaming -profileProperties org.eclipse.update.install.features=true \
-destination "$(pwd)" -bundlepool "$(pwd)/dropins/php/" -repository "$repository" -profile "php.profile" -installIU "$features"
)
find eclipse -type f -name '*.jar' -exec ./recompress.sh '{}' ';'
eclipsec.exe -application org.eclipse.equinox.p2.director -noSplash -consolelog -data ~/workspace -repository http://download.eclipse.org/eclipse/updates/3.7,http://download.eclipse.org/releases/indigo,http://download.eclipse.org/technology/m2e/releases/1.0/1.0.200.20111228-1245,http://download.eclipse.org/tm/updates/3.3/,http://downloads.zend.com/pdt,http://eclipse-color-theme.github.com/update,http://marketplace.eclipse.org/repo/,http://people.igalia.com/amazari/mylyn-phpreport-latest/,http://pulse00.github.com/p2/,http://subclipse.tigris.org/update_1.8.x,http://tasktop.com/downloads/discovery/update-3.6,http://www.php-maven.org/eclipse/update,http://www.sahits.ch/project/javacodegen/update/,http://zend-sdk.googlecode.com/svn/trunk/eclipse-update/nightly/,https://repository.sonatype.org/content/sites/forge-sites/m2eclipse-egit/0.14.0/N/0.14.0.201110251725/ -installIUs ch.sahits.codegen.java.feature.group,ch.sahits.codegen.mysql.feature.group,com.collabnet.subversion.merge.feature.feature.group,com.dubture.indexing.feature.feature.group,com.dubture.pdt.feature.feature.group,com.dubture.symfony.feature.feature.group,com.dubture.twig.feature.feature.group,com.github.eclipsecolortheme.feature.feature.group,com.igalia.phpreport.mylyn.feature.feature.group,org.dadacoalition.yedit.feature.feature.group,org.eclipse.datatools.connectivity.feature.feature.group,org.eclipse.datatools.enablement.sdk.feature.feature.group,org.eclipse.datatools.sdk.feature.feature.group,org.eclipse.datatools.sqldevtools.feature.feature.group,org.eclipse.egit.feature.group,org.eclipse.epp.mpc.feature.group,org.eclipse.jgit.feature.group,org.eclipse.m2e.feature.feature.group,org.eclipse.m2e.logback.feature.feature.group,org.eclipse.mylyn.bugzilla_feature.feature.group,org.eclipse.mylyn.context_feature.feature.group,org.eclipse.mylyn.ide_feature.feature.group,org.eclipse.mylyn.team_feature.feature.group,org.eclipse.mylyn.trac_feature.feature.group,org.eclipse.mylyn_feature.feature.group,org.eclipse.php.sdk.feature.group,org.eclipse.php.smarty_feature.feature.group,org.eclipse.rse.core.feature.group,org.eclipse.rse.ftp.feature.group,org.eclipse.rse.ssh.feature.group,org.eclipse.sdk.ide,org.eclipse.tm.terminal.feature.group,org.ganoro.phing.feature.feature.group,org.phpmaven.eclipse.feature.feature.group,org.sonatype.m2e.egit.feature.feature.group,org.sourceforge.jsonedit.feature.feature.group,org.tigris.subversion.clientadapter.feature.feature.group,org.tigris.subversion.clientadapter.javahl.feature.feature.group,org.tigris.subversion.subclipse.feature.group,org.tigris.subversion.subclipse.graph.feature.feature.group,org.tigris.subversion.subclipse.mylyn.feature.group,org.zend.php.debug_feature.feature.group,org.zend.php.zendserver.deployment.debug.feature.group,org.zend.php.zendserver.deployment.feature.group,org.eclipse.datatools.modelbase.feature.feature.group/1.9.2.v201109161655-7707CCcNBHIEQJXHUNf,org.eclipse.datatools.sqldevtools.data.feature.feature.group/1.9.2.v201109161655-644BgJ9ECCLFTAfMO,org.eclipse.emf.feature.group/2.7.2.v20120130-0943 -tag InitialState -destination ~/Eclipse/eclipse-NEWZ -profile php.profile -p2.os win32 -p2.ws win32 -p2.arch x86_64 -profileProperties org.eclipse.update.install.features=true -bundlepool ~/Eclipse/eclipse-NEWZ/dropins/php -purgeHistory -roaming
ch.sahits.codegen.java.feature.group,
ch.sahits.codegen.mysql.feature.group,
com.collabnet.subversion.merge.feature.feature.group,
com.dubture.indexing.feature.feature.group,
com.dubture.pdt.feature.feature.group,
com.dubture.symfony.feature.feature.group,
com.dubture.twig.feature.feature.group,
com.github.eclipsecolortheme.feature.feature.group,
com.igalia.phpreport.mylyn.feature.feature.group,
org.dadacoalition.yedit.feature.feature.group,
org.eclipse.datatools.connectivity.feature.feature.group,
org.eclipse.datatools.enablement.sdk.feature.feature.group,
org.eclipse.datatools.sdk.feature.feature.group,
org.eclipse.datatools.sqldevtools.feature.feature.group,
org.eclipse.egit.feature.group,
org.eclipse.epp.mpc.feature.group,
org.eclipse.jgit.feature.group,
org.eclipse.m2e.feature.feature.group,
org.eclipse.m2e.logback.feature.feature.group,
org.eclipse.mylyn.bugzilla_feature.feature.group,
org.eclipse.mylyn.context_feature.feature.group,
org.eclipse.mylyn.ide_feature.feature.group,
org.eclipse.mylyn.team_feature.feature.group,
org.eclipse.mylyn.trac_feature.feature.group,
org.eclipse.mylyn_feature.feature.group,
org.eclipse.php.sdk.feature.group,
org.eclipse.php.smarty_feature.feature.group,
org.eclipse.rse.core.feature.group,
org.eclipse.rse.ftp.feature.group,
org.eclipse.rse.ssh.feature.group,
org.eclipse.sdk.ide,
org.eclipse.tm.terminal.feature.group,
org.ganoro.phing.feature.feature.group,
org.phpmaven.eclipse.feature.feature.group,
org.sonatype.m2e.egit.feature.feature.group,
org.sourceforge.jsonedit.feature.feature.group,
org.tigris.subversion.clientadapter.feature.feature.group,
org.tigris.subversion.clientadapter.javahl.feature.feature.group,
org.tigris.subversion.subclipse.feature.group,
org.tigris.subversion.subclipse.graph.feature.feature.group,
org.tigris.subversion.subclipse.mylyn.feature.group,
org.zend.php.debug_feature.feature.group,
org.zend.php.zendserver.deployment.debug.feature.group,
org.zend.php.zendserver.deployment.feature.group,
org.eclipse.datatools.modelbase.feature.feature.group/1.9.2.v201109161655-7707CCcNBHIEQJXHUNf,
org.eclipse.datatools.sqldevtools.data.feature.feature.group/1.9.2.v201109161655-644BgJ9ECCLFTAfMO,
org.eclipse.emf.feature.group/2.7.2.v20120130-0943
http://download.eclipse.org/eclipse/updates/3.7,
http://download.eclipse.org/releases/indigo,
http://download.eclipse.org/technology/m2e/releases/1.0/1.0.200.20111228-1245,
http://download.eclipse.org/tm/updates/3.3/,
http://downloads.zend.com/pdt,
http://eclipse-color-theme.github.com/update,
http://marketplace.eclipse.org/repo/,
http://people.igalia.com/amazari/mylyn-phpreport-latest/,
http://pulse00.github.com/p2/,
http://subclipse.tigris.org/update_1.8.x,
http://tasktop.com/downloads/discovery/update-3.6,
http://www.php-maven.org/eclipse/update,
http://www.sahits.ch/project/javacodegen/update/,
http://zend-sdk.googlecode.com/svn/trunk/eclipse-update/nightly/,
https://repository.sonatype.org/content/sites/forge-sites/m2eclipse-egit/0.14.0/N/0.14.0.201110251725/
#!/bin/sh
#setup eclipse building environment for Indigo.
#comment out the following line if you want to using your own http proxy setting for eclipse update site
#PROXY=http://proxy.jf.intel.com:911
err_exit()
{
echo "[FAILED $1]$2"
exit $1
}
curdir=`pwd`
uname_s=`uname -s`
uname_m=`uname -m`
case ${uname_s}${uname_m} in
Linuxppc*) ep_arch=linux-gtk-ppc
cdt_arch=linux.ppc
;;
Linuxx86_64*) ep_arch=linux-gtk-x86_64
cdt_arch=linux.x86_64
;;
Linuxi*86) ep_arch=linux-gtk
cdt_arch=linux.x86
;;
*)
echo "Unknown ${uname_s}${uname_m}"
exit 1
;;
esac
#parsing proxy URLS
url=${PROXY}
if [ "x$url" != "x" ]; then
proto=`echo $url | grep :// | sed -e 's,^\(.*://\).*,\1,g'`
url=`echo $url | sed s,$proto,,g`
userpass=`echo $url | grep @ | cut -d@ -f1`
user=`echo $userpass | cut -d: -f1`
pass=`echo $userpass | grep : | cut -d: -f2`
url=`echo $url | sed s,$userpass@,,g`
host=`echo $url | cut -d: -f1`
port=`echo $url | cut -d: -f2 | sed -e 's,[^0-9],,g'`
[ "x$host" = "x" ] && err_exit 1 "Undefined proxy host"
PROXY_PARAM="-Dhttp.proxySet=true -Dhttp.proxyHost=$host"
[ "x$port" != "x" ] && PROXY_PARAM="${PROXY_PARAM} -Dhttp.proxyPort=$port"
fi
# prepare the base Eclipse installation in folder "eclipse"
ep_rel="R-"
ep_ver=3.7.2
ep_date="-201202080800"
P2_disabled=false
P2_no_dropins=false
if [ ! -f eclipse/plugins/org.eclipse.swt_3.7.2.v3740f.jar ]; then
curdir2=`pwd`
if [ ! -d eclipse -o -h eclipse ]; then
if [ -d eclipse-${ep_ver}-${ep_arch} ]; then
rm -rf eclipse-${ep_ver}-${ep_arch}
fi
mkdir eclipse-${ep_ver}-${ep_arch}
cd eclipse-${ep_ver}-${ep_arch}
else
rm -rf eclipse
fi
# Eclipse SDK: Need the SDK so we can link into docs
echo "Getting Eclipse SDK..."
wget "http://download.eclipse.org/eclipse/downloads/drops/${ep_rel}${ep_ver}${ep_date}/eclipse-SDK-${ep_ver}-${ep_arch}.tar.gz"
tar xfz eclipse-SDK-${ep_ver}-${ep_arch}.tar.gz || err_exit $? "extracting Eclipse SDK failed"
rm eclipse-SDK-${ep_ver}-${ep_arch}.tar.gz
cd "${curdir2}"
if [ ! -d eclipse -o -h eclipse ]; then
if [ -e eclipse ]; then
rm eclipse
fi
ln -s eclipse-${ep_ver}-${ep_arch}/eclipse eclipse
fi
fi
if [ ! -f eclipse/startup.jar ]; then
curdir2=`pwd`
cd eclipse/plugins
if [ -h ../startup.jar ]; then
rm ../startup.jar
fi
LAUNCHER="`ls org.eclipse.equinox.launcher_*.jar | sort | tail -1`"
if [ "x${LAUNCHER}" != "x" ]; then
echo "eclipse LAUNCHER=${LAUNCHER}"
ln -s plugins/${LAUNCHER} ../startup.jar
else
echo "Eclipse: NO startup.jar LAUNCHER FOUND!"
fi
cd ${curdir2}
fi
if ${P2_no_dropins} ; then
#P2 disabled?
DROPIN=.
DROPUP=.
else
#P2 enabled
DROPIN=eclipse/dropins
DROPUP=../..
fi
LAUNCHER="`ls eclipse/plugins/org.eclipse.equinox.launcher_*.jar | sort | tail -1`"
get_version()
{
#$1: repository_url
#$2: featureId
#$3: 'all' or 'max' or 'min', 'max' if not specified
local remote_vers="`java ${PROXY_PARAM} \
-jar ${LAUNCHER} \
-application org.eclipse.equinox.p2.director \
-destination ${curdir}/eclipse \
-profile SDKProfile \
-repository $1 \
-list $2\
| awk 'BEGIN { FS="=" } { print $2 }'`"
#find larget remote vers
local remote_ver="`echo ${remote_vers} | cut -d ' ' -f1`"
case $3 in
all)
remote_ver=${remote_vers}
;;
min)
for i in ${remote_vers}; do
[ "${remote_ver}" \> "$i" ] && remote_ver="$i"
done
;;
*)
for i in ${remote_vers}; do
[ "${remote_ver}" \< "$i" ] && remote_ver="$i"
done
;;
esac
echo ${remote_ver}
}
check_local_version()
{
# $1 unitId
# $2 min version
# $3 max version (optional)
version="`get_version file:///${curdir}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile $1`"
[ "$version" \< "$2" ] && return 1
if [ "x$3" != "x" ]; then
[ "$version" \> "$3" ] && return -1
fi
return 0
}
update_feature_remote()
{
# install a feature of with version requirement [min, max)
#$1: reporsitory url
#$2: featureId
#$3: min version
#$4: max version(optional)
[ $# -lt 3 ] && err_exit 1 "update_feature_remote: invalid parameters, $*"
check_local_version $2 $3 $4 && echo "skip installed feature $2" && return 0
local installIU=""
if [ "x$4" != "x" ]; then
#has max version requirement
for i in "`get_version $1 $2 'all'`"; do
if [ "$i" \> "$3" ] || [ "$i" = "$3" ] && [ "$i" \< "$4" ]; then
[ "$i" \> "$installIU" ] && installIU=$i
fi
done
else
#only has minimum version requirement
local max_remote_ver="`get_version $1 $2 'max'`"
[ "$max_remote_ver" \> "$3" ] || [ "$max_remote_ver" = "$3" ] && installIU=$max_remote_ver
fi
[ "x$installIU" = "x" ] && err_exit 1 "Can NOT find candidates of $2 version($3, $4) at $1!"
installIU="$2/$installIU"
echo "try to install $installIU ..."
java ${PROXY_PARAM} -jar ${LAUNCHER} \
-application org.eclipse.equinox.p2.director \
-destination ${curdir}/eclipse \
-profile SDKProfile \
-repository $1 \
-installIU ${installIU} || err_exit $? "installing ${installIU} failed"
}
#CDT related
CDTFEAT="8.0.0"
UPDATE_SITE="http://download.eclipse.org/releases/indigo"
echo "Installing CDT..."
update_feature_remote ${UPDATE_SITE} org.eclipse.cdt.sdk.feature.group ${CDTFEAT}
CDTREMOTEVER="6.0.0"
update_feature_remote ${UPDATE_SITE} org.eclipse.cdt.launch.remote.feature.group ${CDTREMOTEVER}
#RSE SDK
RSEVER="3.3.0"
UPDATE_SITE="http://download.eclipse.org/tm/updates/3.3"
echo "Installing RSE SDK..."
update_feature_remote ${UPDATE_SITE} org.eclipse.rse.sdk.feature.group ${RSEVER}
#AUTOTOOL
ATVER="3.0.1"
UPDATE_SITE="http://download.eclipse.org/releases/indigo"
echo "Install AutoTool..."
update_feature_remote ${UPDATE_SITE} org.eclipse.linuxtools.cdt.autotools.feature.group ${ATVER}
#TMF
TMFREL="0.4.0"
TMFREL_MAX="0.5.0"
TMFDATE="201202152032"
UPDATE_SITE="http://download.eclipse.org/releases/indigo"
echo "Install TMF..."
update_feature_remote ${UPDATE_SITE} org.eclipse.linuxtools.tmf.feature.group ${TMFREL}.${TMFDATE} ${TMFREL_MAX}
echo ""
echo "Your build environment is successfully created."
echo "Run ECLIPSE_HOME=${curdir}/eclipse `dirname $0`/build.sh <branch name> <release name> to build"
echo ""
exit 0
@daveshow
Copy link
Author

Adding another file to setup eclipse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment