1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 19:35:36 +02:00
cdt/releng/org.eclipse.rse.updatesite/bin/mkTestUpdates.sh

392 lines
14 KiB
Bash
Raw Normal View History

#!/bin/sh
2006-09-20 11:53:43 +00:00
#*******************************************************************************
# Copyright (c) 2006, 2008 Wind River Systems, Inc.
2006-09-20 11:53:43 +00:00
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Martin Oberhuber - initial API and implementation
#*******************************************************************************
# Convert normal "site.xml" to "testUpdates"
2006-07-26 11:40:30 +00:00
#
# Prerequisites:
2007-01-17 17:51:31 +00:00
# - Eclipse 3.3Mx installed in $HOME/ws2/eclipse
# - Java5 in the PATH or in /shared/dsdp/tm/ibm-java2-ppc64-50
curdir=`pwd`
cd `dirname $0`
mydir=`pwd`
umask 022
#Use Java5 on build.eclipse.org - need JRE for pack200
export PATH=/shared/dsdp/tm/ibm-java2-ppc64-50/jre/bin:/shared/dsdp/tm/ibm-java2-ppc64-50/bin:$PATH
basebuilder=${HOME}/ws2/org.eclipse.releng.basebuilder
# patch site.xml
cd ..
SITE=`pwd`
2006-11-07 14:34:53 +00:00
if [ -f index.html.new ]; then
rm -f index.html.new
fi
if [ -f site.xml.new ]; then
rm -f site.xml.new
fi
if [ -f web/site.xsl.new ]; then
rm -f web/site.xsl.new
fi
# get newest plugins and features: to be done manually on real update site
2008-09-17 00:13:40 +00:00
TPVERSION="Target Management"
TYPE=none
2008-09-17 00:13:40 +00:00
SITEDIR=`basename ${SITE}`
case ${SITEDIR} in
test*Updates) TYPE=test ;;
signed*Updates) TYPE=testSigned ;;
*milestones) TYPE=milestone ;;
*interim) TYPE=interim ;;
*) TYPE=unknown ;;
esac
if [ ${TYPE} = test ]; then
echo "Working on test update site"
2008-09-17 00:13:40 +00:00
TPTYPE="3.1 Test"
TPVERSION="${TPVERSION} ${TPTYPE}"
2007-01-17 17:51:31 +00:00
REL=`ls $HOME/ws2/working/package | sort | tail -1`
2006-08-11 16:08:06 +00:00
if [ "$REL" != "" ]; then
2006-08-11 16:24:11 +00:00
echo "Checking new Updates from $REL"
2007-01-17 17:51:31 +00:00
DIR="$HOME/ws2/working/package/$REL/updates"
2006-08-11 16:08:06 +00:00
if [ -d "$DIR/features" ]; then
echo "Copying new plugins and features from $DIR"
rm -rf features
rm -rf plugins
cp -R $DIR/features .
cp -R $DIR/plugins .
fi
fi
2006-11-07 14:34:53 +00:00
rm index.html site.xml web/site.xsl
cvs -q update -dPR
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
2006-11-07 14:34:53 +00:00
index.html > index.html.new
mv -f index.html.new index.html
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '/<!-- BEGIN_2_0 -->/,/<!-- END_2_0_4 -->/d' \
2008-09-17 00:13:40 +00:00
-e '/<!-- BEGIN_3_0 -->/,/<!-- END_3_0_1 -->/d' \
site.xml > site.xml.new
mv -f site.xml.new site.xml
2008-09-17 00:13:40 +00:00
sed -e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
web/site.xsl > web/site.xsl.new
mv -f web/site.xsl.new web/site.xsl
echo "Conditioning the site... $SITE"
#java -Dorg.eclipse.update.jarprocessor.pack200=$mydir \
#java -jar $HOME/ws2/eclipse/startup.jar \
2007-02-27 22:05:43 +00:00
java \
-jar ${basebuilder}/plugins/org.eclipse.equinox.launcher.jar \
2007-02-27 22:05:43 +00:00
-application org.eclipse.update.core.siteOptimizer \
-jarProcessor -outputDir $SITE \
-processAll -repack $SITE
#java -Dorg.eclipse.update.jarprocessor.pack200=$mydir \
# $HOME/ws2/jarprocessor/jarprocessor.jar \
# -outputDir $SITE -processAll -repack $SITE
2008-09-17 00:13:40 +00:00
elif [ ${TYPE} = testSigned ]; then
2006-11-07 14:34:53 +00:00
echo "Working on signed update site"
2008-09-17 00:13:40 +00:00
TPTYPE="3.1 Signed Test"
TPVERSION="${TPVERSION} ${TPTYPE}"
echo "Signing jars from test update site (expecting conditioned jars)..."
STAGING=/home/data/httpd/download-staging.priv/dsdp/tm
stamp=`date +'%Y%m%d-%H%M'`
if [ -d ${STAGING} -a -d ${SITE}/../testUpdates ]; then
#get jars from testUpdates, sign them and put them here
mkdir ${SITE}/features.${stamp}
mkdir -p ${STAGING}/updates.${stamp}/features
cp -R ${SITE}/../testUpdates/features/*.jar ${STAGING}/updates.${stamp}/features
cd ${STAGING}/updates.${stamp}/features
for x in `ls *.jar`; do
echo "signing feature: ${x}"
sign ${x} nomail >/dev/null
done
TRIES=10
while [ $TRIES -gt 0 ]; do
sleep 30
echo "TRIES to go: ${TRIES}"
for x in `ls *.jar | grep -v '^temp[_.]'`; do
result=`jarsigner -verify ${x}`
if [ "$result" = "jar verified." ]; then
echo "${result}: ${x}"
cp ${x} ${SITE}/features.${stamp}
rm ${x}
else
echo "-pending- ${x} : ${result}" | head -1
sleep 30
fi
done
FILES=`ls 2>/dev/null`
if [ "$FILES" = "" ]; then
TRIES=0
ok=1
else
echo "--> FILES is $FILES"
TRIES=`expr $TRIES - 1`
ok=0
fi
done
if [ "$ok" = "1" ]; then
rmdir ${STAGING}/updates.${stamp}/features
mkdir ${SITE}/plugins.${stamp}
mkdir -p ${STAGING}/updates.${stamp}/plugins
cp ${SITE}/../testUpdates/plugins/*.jar ${STAGING}/updates.${stamp}/plugins
cd ${STAGING}/updates.${stamp}/plugins
for x in `ls *.jar`; do
echo "signing plugin: ${x}"
sign ${x} nomail >/dev/null
done
TRIES=10
while [ $TRIES -gt 0 ]; do
sleep 30
echo "TRIES to go: ${TRIES}"
for x in `ls *.jar | grep -v '^temp[_.]'`; do
result=`jarsigner -verify ${x}`
if [ "$result" = "jar verified." ]; then
echo "${result}: ${x}"
cp ${x} ${SITE}/plugins.${stamp}
rm ${x}
else
echo "-pending- ${x} : ${result}" | head -1
sleep 30
fi
done
FILES=`ls 2>/dev/null`
if [ "$FILES" = "" ]; then
TRIES=0
ok=1
else
echo "--> FILES is $FILES"
TRIES=`expr $TRIES - 1`
ok=0
fi
done
fi
if [ "$ok" = "1" ]; then
cd ${SITE}
rmdir ${STAGING}/updates.${stamp}/plugins
rmdir ${STAGING}/updates.${stamp}
2006-11-07 14:34:53 +00:00
#mv features features.old.${stamp}
#mv plugins plugins.old.${stamp}
rm -rf features plugins
mv features.${stamp} features
mv plugins.${stamp} plugins
else
echo "Something went wrong during staging and signing."
echo "Keeping existing update site intact."
exit 1
fi
else
echo "staging or testUpdates not found:"
2006-11-07 14:34:53 +00:00
echo "please fix your pathes"
exit 1
fi
2006-11-07 14:34:53 +00:00
rm index.html site.xml web/site.xsl
cvs -q update -dPR
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
2006-11-07 14:34:53 +00:00
index.html > index.html.new
mv -f index.html.new index.html
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '/<!-- BEGIN_2_0 -->/,/<!-- END_2_0_4 -->/d' \
2008-09-17 00:13:40 +00:00
-e '/<!-- BEGIN_3_0 -->/,/<!-- END_3_0_1 -->/d' \
2006-11-07 14:34:53 +00:00
site.xml > site.xml.new
mv -f site.xml.new site.xml
2008-09-17 00:13:40 +00:00
sed -e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
2006-11-07 14:34:53 +00:00
web/site.xsl > web/site.xsl.new
mv -f web/site.xsl.new web/site.xsl
## CHECK VERSION CORRECTNESS for 2.0.1
echo "VERIFYING VERSION CORRECNESS: Features"
2008-09-17 00:13:40 +00:00
ls features | grep -v '_[123]\.0\.0\.v' | sort > f1.$$.txt
ls ../updates/3.0/features | sort > f2.$$.txt
echo "wc old-features:"
wc f1.$$.txt
diff f1.$$.txt f2.$$.txt | grep -v '^[>]'
echo "VERIFYING VERSION CORRECNESS: Plugins"
2008-09-17 00:13:40 +00:00
ls plugins | grep -v '_[123]\.0\.0\.v' | sort > p1.$$.txt
ls ../updates/3.0/plugins | sort > p2.$$.txt
echo "wc old-plugins:"
wc p1.$$.txt
diff p1.$$.txt p2.$$.txt | grep -v '^[>]'
rm f1.$$.txt f2.$$.txt p1.$$.txt p2.$$.txt
2008-09-17 00:13:40 +00:00
elif [ ${TYPE} = milestone ]; then
echo "Working on milestone update site"
2008-09-17 00:13:40 +00:00
TPTYPE="3.1 Milestone"
TPVERSION="${TPVERSION} ${TPTYPE}"
echo "Expect that you copied your features and plugins yourself"
stamp=`date +'%Y%m%d-%H%M'`
rm index.html site.xml web/site.xsl
cvs -q update -dPR
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/updates/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '\,</h1>,a\
This site contains Target Management Milestones (I-, S- and M- builds) which are \
2008-09-17 00:13:40 +00:00
being contributed to the Galileo coordinated release train (Eclipse 3.5.x).' \
index.html > index.html.new
mv -f index.html.new index.html
2008-09-17 00:13:40 +00:00
## keep 3.0.x features in site.xml
## -e '/<!-- BEGIN_2_0_1 -->/,/<!-- END_2_0_4 -->/d' \
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/updates/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '/<!-- BEGIN_2_0 -->/,/<!-- END_2_0_4 -->/d' \
-e '/<!-- BEGIN_3_0 -->/,/<!-- END_3_0_1 -->/d' \
site.xml > site.xml.new
mv -f site.xml.new site.xml
2008-09-17 00:13:40 +00:00
sed -e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
web/site.xsl > web/site.xsl.new
mv -f web/site.xsl.new web/site.xsl
2008-09-17 00:13:40 +00:00
elif [ ${TYPE} = interim ]; then
echo "Working on interim update site"
2008-09-17 00:13:40 +00:00
TPTYPE="3.1 Interim"
TPVERSION="${TPVERSION} ${TPTYPE}"
echo "Expect that you copied your features and plugins yourself"
stamp=`date +'%Y%m%d-%H%M'`
rm index.html site.xml web/site.xsl
cvs -q update -dPR
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/updates/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '\,</h1>,a\
This site contains Target Management Interim Maintenance builds (I-, S-, and M-builds) in order \
to test them before going live.' \
index.html > index.html.new
mv -f index.html.new index.html
## keep 2.0.x features in site.xml
## -e '/<!-- BEGIN_2_0_1 -->/,/<!-- END_2_0_4 -->/d' \
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/updates/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '/<!-- BEGIN_2_0_5 -->/,/<!-- END_2_0_5 -->/d' \
site.xml > site.xml.new
mv -f site.xml.new site.xml
2008-09-17 00:13:40 +00:00
sed -e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
web/site.xsl > web/site.xsl.new
mv -f web/site.xsl.new web/site.xsl
2008-09-17 00:13:40 +00:00
elif [ `basename $SITE` = 3.1 ]; then
echo "Working on 3.1 update site"
TPTYPE="3.1"
TPVERSION="${TPVERSION} ${TPTYPE}"
2008-09-23 14:05:07 +00:00
TYPE=official
echo "Expect that you copied your features and plugins yourself"
stamp=`date +'%Y%m%d-%H%M'`
rm index.html site.xml web/site.xsl
cvs -q update -dPR
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/updates/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '\,</h1>,a\
This site contains Target Management 3.0 Releases and Updates (R- builds) which are \
2008-09-17 00:13:40 +00:00
being contributed to the Galileo coordinated release train (Eclipse 3.5).' \
index.html > index.html.new
mv -f index.html.new index.html
## dont keep 2.0.x features in site.xml
2008-09-17 00:13:40 +00:00
sed -e "s,/dsdp/tm/updates/2.0,/dsdp/tm/updates/${SITEDIR},g" \
-e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
-e '/<!-- BEGIN_2_0 -->/,/<!-- END_2_0_4 -->/d' \
site.xml > site.xml.new1
2008-09-17 00:13:40 +00:00
sed -e '/<!-- BEGIN_3_0 -->/,/<!-- END_3_0_1 -->/d' \
site.xml.new1 > site.xml.new
mv -f site.xml.new site.xml
2008-09-23 14:05:07 +00:00
rm site.xml.new1 site.xml.new2
2008-09-17 00:13:40 +00:00
sed -e "s,Project 2.0 Update,Project ${TPTYPE} Update,g" \
web/site.xsl > web/site.xsl.new
mv -f web/site.xsl.new web/site.xsl
2006-11-07 14:34:53 +00:00
else
echo "Working on official update site"
TYPE=official
2006-11-07 14:34:53 +00:00
echo "Expect that you copied your features and plugins yourself"
stamp=`date +'%Y%m%d-%H%M'`
rm index.html site.xml web/site.xsl
cvs -q update -dPR
sed -e '/<!-- BEGIN_2_0_5 -->/,/<!-- END_2_0_5 -->/d' \
2007-09-28 15:15:49 +00:00
site.xml > site.xml.new1
2008-09-23 14:05:07 +00:00
sed -e '/<!-- BEGIN_3_0_2 -->/,/<!-- END_3_0_2 -->/d' \
site.xml.new1 > site.xml.new2
2008-09-23 14:05:07 +00:00
sed -e '/<!-- BEGIN_3_1 -->/,/<!-- END_3_1 -->/d' \
site.xml.new2 > site.xml.new
2007-07-05 11:14:39 +00:00
mv -f site.xml.new site.xml
rm site.xml.new1 site.xml.new2
fi
FEATURES=`grep 'features/[^ ]*\.qualifier\.jar' site.xml | sed -e 's,^[^"]*"features/\([^0-9]*[0-9][0-9.]*\).*$,\1,g'`
for feature in $FEATURES ; do
#list newest ones first
TAG=`ls -t features/${feature}*.jar | head -1 | sed -e 's,[^0-9]*[0-9][0-9]*\.[0-9]*\.[0-9]*\.\([^.]*\).jar,\1,'`
if [ "$TAG" != "" ]; then
echo "$feature : $TAG"
sed -e "/$feature/s/qualifier/$TAG/g" site.xml > site.xml.new
mv -f site.xml.new site.xml
fi
done
#Create Europa version of site.xml
if [ -f site-europa.xml ]; then
rm -rf site-europa.xml
fi
sed -e '/!EUROPA_ONLY!/d' site.xml > site-europa.xml
#Get rid of Europa comments completely in order to avoid SAX exception
#in comment when the feature qualifier extends to --
awk 'BEGIN {doit=1}
/-- !EUROPA_ONLY!/ {doit=0}
{ if(doit==1) print; }
/!EUROPA_ONLY! --/ {doit=1}' site.xml > site.xml.tmp
mv -f site.xml.tmp site.xml
# optimize the site
2008-01-10 14:17:04 +00:00
# see http://wiki.eclipse.org/Platform-releng-faq
case ${TYPE} in test*)
echo "Packing the site... $SITE"
# Workaround for downgrading effort of pack200 to avoid VM bug
# See https://bugs.eclipse.org/bugs/show_bug.cgi?id=154069
#java -Dorg.eclipse.update.jarprocessor.pack200=$mydir \
#java -jar $HOME/ws2/eclipse/startup.jar \
java -jar ${basebuilder}/plugins/org.eclipse.equinox.launcher.jar \
2007-02-27 22:05:43 +00:00
-application org.eclipse.update.core.siteOptimizer \
-jarProcessor -outputDir $SITE \
-processAll -pack $SITE
#java -Dorg.eclipse.update.jarprocessor.pack200=$mydir \
# $HOME/ws2/jarprocessor/jarprocessor.jar \
# -outputDir $SITE -processAll -pack $SITE
;;
esac
#Create the digest
2006-07-26 11:40:30 +00:00
echo "Creating digest..."
#java -jar $HOME/ws2/eclipse/startup.jar \
java -jar ${basebuilder}/plugins/org.eclipse.equinox.launcher.jar \
-application org.eclipse.update.core.siteOptimizer \
-digestBuilder -digestOutputDir=$SITE \
-siteXML=$SITE/site-europa.xml
2006-07-26 11:40:30 +00:00
2008-05-21 14:48:08 +00:00
##if false ; then
#Create P2 metadata
echo "Creating P2 metadata..."
#Always create from scratch
cd ${SITE}
2008-05-21 14:50:09 +00:00
for x in content.xml content.jar content.jar.pack.gz artifacts.xml artifacts.jar artifacts.jar.pack.gz ; do
if [ -f $x ]; then rm -f $x; fi
done
java -jar ${basebuilder}/plugins/org.eclipse.equinox.launcher.jar \
-application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \
-updateSite ${SITE}/ \
-site file:${SITE}/site.xml \
-metadataRepository file:${SITE}/ \
2008-09-17 00:13:40 +00:00
-metadataRepositoryName "${TPVERSION} Update Site" \
-artifactRepository file:${SITE}/ \
2008-09-17 00:13:40 +00:00
-artifactRepositoryName "${TPVERSION} Artifacts" \
-compress \
-reusePack200Files \
-noDefaultIUs \
2008-05-21 14:48:08 +00:00
-vmargs -Xmx256M
##fi
cd $SITE
chgrp -R dsdp-tmadmin .
chmod -R g+w .
chmod -R a+r .
cd $curdir