summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-11-09 03:05:17 +0100
committerSven Gothel <[email protected]>2010-11-09 03:05:17 +0100
commitb3e89bfa55389cae974c94afba6fb4ce118f75df (patch)
tree063f7d59cee39e3beeec7c17c74d10497d0fa8a5
Provide deployment (jnlp) and hudson build aggregation scripts
-rwxr-xr-xdeployment/all-deploy-webstarttest.sh57
-rwxr-xr-xdeployment/deploy-jar-sign.sh36
-rwxr-xr-xdeployment/deploy-jars-pack200.sh33
-rwxr-xr-xdeployment/deploy-jars-repack200.sh30
-rwxr-xr-xdeployment/deploy-jars-sign.sh47
-rwxr-xr-xdeployment/deploy-jars-webstarttest.sh50
-rwxr-xr-xdeployment/deploy-jars_external-webstarttest.sh26
-rwxr-xr-xdeployment/deploy-jnlp-webstarttest-filter.sh25
-rwxr-xr-xdeployment/deploy-jnlp-webstarttest.sh79
-rwxr-xr-xhudson-builds/archive-jars-latest.sh158
-rwxr-xr-xhudson-builds/archive-verify-latest.sh99
11 files changed, 640 insertions, 0 deletions
diff --git a/deployment/all-deploy-webstarttest.sh b/deployment/all-deploy-webstarttest.sh
new file mode 100755
index 0000000..e947c3f
--- /dev/null
+++ b/deployment/all-deploy-webstarttest.sh
@@ -0,0 +1,57 @@
+#! /bin/sh
+
+if [ ! -e scripts -o ! -e ../make ] ; then
+ echo start this script from JOGL/jogl/make
+ exit 1
+fi
+
+url=$1
+shift
+
+joglbuilddir=$1
+shift
+
+wsdir=$1
+shift
+
+if [ -z "$url" -o -z "$joglbuilddir" -o -z "$wsdir" ] ; then
+ echo Usage $0 codebase-url jogl-builddir webstartdir
+ echo Examples
+ echo sh $0 file:////usr/local/projects/JOGL/webstart ../build-x86_64 ../../webstart
+ echo sh $0 http://domain.org/jogl/webstart ../build-win32 ../../webstart
+ exit 1
+fi
+
+if [ ! -e $joglbuilddir ] ; then
+ echo $joglbuilddir does not exist
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+sh scripts/deploy-jars-webstarttest.sh $joglbuilddir $wsdir
+#
+# repack it .. so the signed jars can be pack200'ed
+# sh scripts/deploy-jars-repack200.sh $wsdir
+#
+# sign it
+# sh scripts/deploy-jars-sign.sh $wsdir KEY_STORE_FILE STORE_PASSWORD SOME_ARGUMENT
+#
+# pack200
+# sh scripts/deploy-jars-pack200.sh $wsdir
+#
+sh scripts/deploy-jnlp-webstarttest.sh $url $joglbuilddir $wsdir
+#
+# In case you don't sign it ..
+#
+# sh scripts/deploy-jnlp-webstarttest-filter.sh $wsdir
+#
+# Add to HOME/.java.policy
+#
+# grant codeBase "file:////usr/local/projects/JOGL/webstart/-" {
+# permission java.security.AllPermission;
+# };
+
diff --git a/deployment/deploy-jar-sign.sh b/deployment/deploy-jar-sign.sh
new file mode 100755
index 0000000..d6291c4
--- /dev/null
+++ b/deployment/deploy-jar-sign.sh
@@ -0,0 +1,36 @@
+#! /bin/sh
+
+jarfile=$1
+shift
+
+keystore=$1
+shift
+
+storepass=$1
+shift
+
+signarg=$1
+shift
+
+if [ -z "$jarfile" -o -z "$keystore" -o -z "$storepass" ] ; then
+ echo "usage $0 jarfile pkcs12-keystore storepass [signarg]"
+ exit 1
+fi
+
+if [ ! -e $jarfile ] ; then
+ echo $jarfile does not exist
+ exit 1
+fi
+
+if [ ! -e $keystore ] ; then
+ echo $keystore does not exist
+ exit 1
+fi
+
+THISDIR=`pwd`
+
+echo jarsigner -storetype pkcs12 -keystore $keystore $jarfile \"$signarg\"
+jarsigner -storetype pkcs12 -keystore $THISDIR/$keystore -storepass $storepass $jarfile "$signarg"
+
+cd $THISDIR
+
diff --git a/deployment/deploy-jars-pack200.sh b/deployment/deploy-jars-pack200.sh
new file mode 100755
index 0000000..471e8ab
--- /dev/null
+++ b/deployment/deploy-jars-pack200.sh
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+wsdir=$1
+shift
+
+if [ -z "$wsdir" ] ; then
+ echo usage $0 webstartdir
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+THISDIR=`pwd`
+
+cd $wsdir
+
+mkdir -p DLLS
+mv *natives*.jar DLLS/
+
+for i in *.jar ; do
+ echo pack200 -E9 $i.pack.gz $i
+ pack200 -E9 $i.pack.gz $i
+done
+
+mv DLLS/* .
+
+rm -rf DLLS
+
+cd $THISDIR
+
diff --git a/deployment/deploy-jars-repack200.sh b/deployment/deploy-jars-repack200.sh
new file mode 100755
index 0000000..1169d63
--- /dev/null
+++ b/deployment/deploy-jars-repack200.sh
@@ -0,0 +1,30 @@
+#! /bin/sh
+
+wsdir=$1
+shift
+
+if [ -z "$wsdir" ] ; then
+ echo usage $0 webstartdir
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+THISDIR=`pwd`
+
+cd $wsdir
+
+rm -rf orig-jars
+mkdir -p orig-jars
+
+for i in *.jar ; do
+ cp -a $i orig-jars
+ echo pack200 --repack $i
+ pack200 --repack $i
+done
+
+cd $THISDIR
+
diff --git a/deployment/deploy-jars-sign.sh b/deployment/deploy-jars-sign.sh
new file mode 100755
index 0000000..1a4421a
--- /dev/null
+++ b/deployment/deploy-jars-sign.sh
@@ -0,0 +1,47 @@
+#! /bin/sh
+
+wsdir=$1
+shift
+
+keystore=$1
+shift
+
+storepass=$1
+shift
+
+signarg=$1
+shift
+
+if [ -z "$wsdir" -o -z "$keystore" -o -z "$storepass" ] ; then
+ echo "usage $0 webstartdir pkcs12-keystore storepass [signarg]"
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+if [ ! -e $keystore ] ; then
+ echo $keystore does not exist
+ exit 1
+fi
+
+THISDIR=`pwd`
+
+cd $wsdir
+
+rm -rf demo-jars
+mkdir -p demo-jars
+mv jogl.test.jar jogl-demos*jar demo-jars/
+
+for i in *.jar ; do
+ echo jarsigner -storetype pkcs12 -keystore $keystore $i \"$signarg\"
+ jarsigner -storetype pkcs12 -keystore $THISDIR/$keystore -storepass $storepass $i "$signarg"
+done
+
+mv demo-jars/* .
+rm -rf demo-jars
+
+cd $THISDIR
+
diff --git a/deployment/deploy-jars-webstarttest.sh b/deployment/deploy-jars-webstarttest.sh
new file mode 100755
index 0000000..8a98f5d
--- /dev/null
+++ b/deployment/deploy-jars-webstarttest.sh
@@ -0,0 +1,50 @@
+#! /bin/sh
+
+joglbuilddir=$1
+shift
+
+wsdir=$1
+shift
+
+if [ -z "$joglbuilddir" -o -z "$wsdir" ] ; then
+ echo usage $0 jogl-builddir webstartdir
+ exit 1
+fi
+
+if [ ! -e $joglbuilddir ] ; then
+ echo $joglbuilddir does not exist
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+builddirbase=`basename $joglbuilddir`
+joglroot=`dirname $joglbuilddir`
+gluegenroot=$joglroot/../gluegen
+demosroot=$joglroot/../jogl-demos
+
+jnlpdir_gluegen=$gluegenroot/jnlp-files
+jnlpdir_jogl=$joglroot/jnlp-files
+jnlpdir_demos=$demosroot/jnlp-files
+
+if [ ! -e $jnlpdir_gluegen ] ; then
+ echo $jnlpdir_gluegen does not exist
+ exit 1
+fi
+
+if [ ! -e $jnlpdir_jogl ] ; then
+ echo $jnlpdir_jogl does not exist
+ exit 1
+fi
+
+if [ ! -e $jnlpdir_demos ] ; then
+ echo $jnlpdir_demos does not exist
+ exit 1
+fi
+
+cp -v $joglbuilddir/jar/*.jar $wsdir
+cp -v $demosroot/$builddirbase/*.jar $wsdir
+
diff --git a/deployment/deploy-jars_external-webstarttest.sh b/deployment/deploy-jars_external-webstarttest.sh
new file mode 100755
index 0000000..3fc1daa
--- /dev/null
+++ b/deployment/deploy-jars_external-webstarttest.sh
@@ -0,0 +1,26 @@
+#! /bin/sh
+
+if [ ! -e scripts -o ! -e ../make ] ; then
+ echo start this script from JOGL/jogl/make
+ exit 1
+fi
+
+SOURCE=$1
+shift
+
+wsdir=$1
+shift
+
+if [ -z "$SOURCE" -o -z "$wsdir" ] ; then
+ echo usage $0 source webstartdir
+ echo source might be [email protected]:webstart/
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+echo scp -v $SOURCE*natives* $wsdir
+scp -v $SOURCE*natives* $wsdir
diff --git a/deployment/deploy-jnlp-webstarttest-filter.sh b/deployment/deploy-jnlp-webstarttest-filter.sh
new file mode 100755
index 0000000..77eda44
--- /dev/null
+++ b/deployment/deploy-jnlp-webstarttest-filter.sh
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+wsdir=$1
+shift
+
+if [ -z "$wsdir" ] ; then
+ echo usage $0 webstartdir
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+cd $wsdir
+
+rm -rf orig-jnlp
+mkdir orig-jnlp
+
+for i in *.jnlp ; do
+ mv $i orig-jnlp
+ sed -e 's/<security>//g' -e 's/<\/security>//g' -e 's/<all-permissions\/>//g' orig-jnlp/$i > $i
+done
+
diff --git a/deployment/deploy-jnlp-webstarttest.sh b/deployment/deploy-jnlp-webstarttest.sh
new file mode 100755
index 0000000..8f3b0d2
--- /dev/null
+++ b/deployment/deploy-jnlp-webstarttest.sh
@@ -0,0 +1,79 @@
+#! /bin/sh
+
+url=$1
+shift
+
+joglbuilddir=$1
+shift
+
+wsdir=$1
+shift
+
+if [ -z "$url" -o -z "$joglbuilddir" -o -z "$wsdir" ] ; then
+ echo usage $0 codebase-url jogl-builddir webstartdir
+ echo Examples
+ echo sh $0 file:////usr/local/projects/JOGL/webstart ../build-x86_64 ../../webstart
+ echo sh $0 http://domain.org/jogl/webstart ../build-win32 ../../webstart
+ exit 1
+fi
+
+if [ ! -e $joglbuilddir ] ; then
+ echo $joglbuilddir does not exist
+ exit 1
+fi
+
+if [ ! -e $wsdir ] ; then
+ echo $wsdir does not exist
+ exit 1
+fi
+
+builddirbase=`basename $joglbuilddir`
+joglroot=`dirname $joglbuilddir`
+gluegenroot=$joglroot/../gluegen
+demosroot=$joglroot/../jogl-demos
+
+jnlpdir_gluegen=$gluegenroot/jnlp-files
+jnlpdir_jogl=$joglroot/jnlp-files
+jnlpdir_demos=$demosroot/jnlp-files
+
+if [ ! -e $jnlpdir_gluegen ] ; then
+ echo $jnlpdir_gluegen does not exist
+ exit 1
+fi
+
+if [ ! -e $jnlpdir_jogl ] ; then
+ echo $jnlpdir_jogl does not exist
+ exit 1
+fi
+
+if [ ! -e $jnlpdir_demos ] ; then
+ echo $jnlpdir_demos does not exist
+ exit 1
+fi
+
+cp -v $jnlpdir_demos/*.html $wsdir
+
+uri_esc=`echo $url | sed 's/\//\\\\\//g'`
+for j in $jnlpdir_gluegen/*.jnlp ; do
+ jb=`basename $j`
+ echo "processing $j to $wsdir/$jb"
+ sed "s/CODEBASE_TAG/$uri_esc/g" \
+ $j > $wsdir/$jb
+done
+
+for j in $jnlpdir_jogl/*.jnlp ; do
+ jb=`basename $j`
+ echo "processing $j to $wsdir/$jb"
+ sed -e "s/JOGL_CODEBASE_TAG/$uri_esc/g" \
+ -e "s/GLUEGEN_CODEBASE_TAG/$uri_esc/g" \
+ $j > $wsdir/$jb
+done
+
+for j in $jnlpdir_demos/*.jnlp ; do
+ jb=`basename $j`
+ echo "processing $j to $wsdir/$jb"
+ sed -e "s/DEMO_CODEBASE_TAG/$uri_esc/g" \
+ -e "s/JOGL_CODEBASE_TAG/$uri_esc/g" \
+ $j > $wsdir/$jb
+done
+
diff --git a/hudson-builds/archive-jars-latest.sh b/hudson-builds/archive-jars-latest.sh
new file mode 100755
index 0000000..651ae0b
--- /dev/null
+++ b/hudson-builds/archive-jars-latest.sh
@@ -0,0 +1,158 @@
+#! /bin/bash
+
+archivedir=/srv/www/jogamp.org/deployment/archive
+rootdir=/srv/www/jogamp.org/deployment/autobuilds
+
+os_and_archs_minus_one="linux-i586 macosx-universal windows-amd64 windows-i586"
+masterpick="linux-amd64"
+os_and_archs="$masterpick linux-i586 macosx-universal windows-amd64 windows-i586"
+
+thisdir=`pwd`
+cd $rootdir
+
+dest=tmp-archive
+
+rm -rf $dest
+mkdir $dest
+mkdir $dest/javadoc
+
+function lslatest() {
+ pattern=$1
+ shift
+ ls -rt | grep $pattern | tail -1
+}
+
+function buildnumber_2() {
+ folder=$1
+ shift
+ echo $folder | awk -F '-' ' { print substr($2, 2); } '
+}
+
+function buildnumber_3() {
+ folder=$1
+ shift
+ echo $folder | awk -F '-' ' { print substr($3, 2); } '
+}
+
+function buildnumber_4() {
+ folder=$1
+ shift
+ echo $folder | awk -F '-' ' { print substr($4, 2); } '
+}
+
+gluegenslave=`lslatest gluegen-b`
+bgluegenslave=`buildnumber_2 $gluegenslave`
+gluegenmaster=`lslatest gluegen-master-b`
+bgluegenmaster=`buildnumber_3 $gluegenmaster`
+echo
+echo GLUEGEN
+echo
+echo slave build $bgluegenslave - $gluegenslave
+echo master build $bgluegenmaster - $gluegenmaster
+echo
+echo "gluegen.build.number=$bgluegenslave" >> $dest/aggregated.artifact.properties
+
+cp -a $gluegenslave/build/gluegen*jar $dest/
+cp -a $gluegenslave/build/artifact.properties $dest/gluegen.artifact.properties
+
+cp -a $gluegenmaster/build/artifact.properties $dest/javadoc/gluegen-master.artifact.properties
+mkdir $dest/javadoc/gluegen
+cp -a $gluegenmaster/build/javadoc.zip $dest/javadoc/gluegen
+cd $dest/javadoc/gluegen
+unzip -q javadoc.zip
+cd $rootdir
+
+joglslave=`lslatest jogl-b`
+bjoglslave=`buildnumber_2 $joglslave`
+joglmaster=`lslatest jogl-master-b`
+bjoglmaster=`buildnumber_3 $joglmaster`
+echo
+echo JOGL
+echo
+echo slave build $bjoglslave - $joglslave
+echo master build $bjoglmaster - $joglmaster
+echo
+echo "jogl.build.number=$bjoglslave" >> $dest/aggregated.artifact.properties
+
+cp -a $joglslave/build/jogl*zip $dest/
+cd $dest
+for i in *"$os_and_archs_minus_one".zip ; do
+ unzip -q $i
+done
+unzip -q *"$masterpick".zip
+cd $rootdir
+cp -a $joglslave/build/artifact.properties $dest/jogl.artifact.properties
+
+cp -a $joglmaster/build/artifact.properties $dest/javadoc/jogl-master.artifact.properties
+mkdir $dest/javadoc/jogl
+cp -a $joglmaster/build/javadoc*.zip $dest/javadoc/jogl
+cd $dest/javadoc/jogl
+for i in *.zip ; do
+ unzip -q $i
+done
+cd $rootdir
+
+jogldemosmaster=`lslatest jogl-demos-master-b`
+bjogldemosmaster=`buildnumber_4 $jogldemosmaster`
+echo
+echo JOGL DEMOS
+echo
+echo master build $bjogldemosmaster - $jogldemosmaster
+echo
+echo "jogl-demos.build.number=$bjogldemosmaster" >> $dest/aggregated.artifact.properties
+
+cp -a $jogldemosmaster/build/jogl-demos*jar $dest/
+cp -a $jogldemosmaster/build/artifact.properties $dest/jogl-demos.artifact.properties
+cd dest
+
+
+joclslave=`lslatest jocl-b`
+bjoclslave=`buildnumber_2 $joclslave`
+joclmaster=`lslatest jocl-master-b`
+bjoclmaster=`buildnumber_3 $joclmaster`
+echo
+echo JOCL
+echo
+echo slave build $bjoclslave - $joclslave
+echo master build $bjoclmaster - $joclmaster
+echo
+echo "jocl.build.number=$bjoclslave" >> $dest/aggregated.artifact.properties
+
+cp -a $joclslave/jocl*jar $dest/
+cp -a $joclslave/artifact.properties $dest/jocl.artifact.properties
+
+cp -a $joclmaster/artifact.properties $dest/javadoc/jocl-master.artifact.properties
+mkdir $dest/javadoc/jocl
+cp -a $joclmaster/jocl-javadoc.zip $dest/javadoc/jocl/
+cd $dest/javadoc/jocl
+unzip -q jocl-javadoc.zip
+cd $rootdir
+
+jocldemosslave=`lslatest jocl-demos-b`
+bjocldemosslave=`buildnumber_3 $jocldemosslave`
+echo
+echo JOCL DEMOS
+echo
+echo slave build $bjocldemosslave - $jocldemosslave
+echo
+echo "jocl-demos.build.number=$bjocldemosslave" >> $dest/aggregated.artifact.properties
+
+cp -a $jocldemosslave/jocl-demos*jar $dest/
+cp -a $jocldemosslave/artifact.properties $dest/jocl-demos.artifact.properties
+
+rm -rf $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave
+mv $dest $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave
+
+echo
+echo Aggregation folder $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave
+echo
+
+cd $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave
+
+echo
+echo aggregation.properties
+echo
+cat jocl-demos.artifact.properties jogl-demos.artifact.properties | sort -u > jocl-demos-jogl-demos.artifact.properties.sorted
+sort -u aggregated.artifact.properties > aggregated.artifact.properties.sorted
+diff -Nurb aggregated.artifact.properties.sorted jocl-demos-jogl-demos.artifact.properties.sorted
+
diff --git a/hudson-builds/archive-verify-latest.sh b/hudson-builds/archive-verify-latest.sh
new file mode 100755
index 0000000..a149ca8
--- /dev/null
+++ b/hudson-builds/archive-verify-latest.sh
@@ -0,0 +1,99 @@
+#! /bin/bash
+
+if [ -z "$1" ] ; then
+ archive=/srv/www/jogamp.org/deployment/jogamp-next
+else
+ archive=$1
+fi
+
+logfile=`basename $0 .sh`.log
+
+rm -rf zips
+mkdir zips
+cd zips
+for i in $archive/*.zip ; do
+ bname=`basename $i .zip`
+ unzip -q $i
+ if [ -e $bname ] ; then
+ cd $bname
+ ls > ../$bname.lst
+ cd ..
+ else
+ echo "Error: No folder $bname in $i"
+ fi
+done
+cd ..
+
+rm -rf plain
+mkdir plain
+cd plain
+cp -a $archive/*.jar .
+ls > ../plain.lst
+cd ..
+
+rm -rf dump
+mkdir dump
+
+echo "Verifying all files in $archive"
+ls -la $archive
+echo
+
+function integrity_check() {
+ cd dump
+ for i in ../plain/*.jar ; do
+ bname=`basename $i`
+ echo -n "$bname integrity - "
+ OK=0
+ jar xvf $i >& $i.log && OK=1
+ if [ $OK -eq 0 ] ; then
+ echo ERROR
+ else
+ echo OK
+ rm $i.log
+ fi
+ done
+ echo
+ cd ..
+}
+
+function identity_check() {
+ mkdir plain/natives
+ mv plain/*-natives-*jar plain/natives
+ mkdir plain/demos
+ mv plain/jogl-demos*jar plain/demos
+
+ cd zips
+
+ for i in ../plain/*.jar ; do
+ bname=`basename $i`
+ echo -n "$bname identity - "
+ OK=0
+ for j in `find . -name $bname` ; do
+ if cmp -s $i $j ; then
+ OK=1
+ echo -n "$j "
+ fi
+ done
+ if [ $OK -eq 0 ] ; then
+ echo "NONE"
+ echo "Error: verbose comparison of $bname"
+ for j in `find . -name $bname` ; do
+ cmp $i $j
+ done
+ else
+ echo
+ fi
+ done
+ echo
+
+ cd ..
+
+ mv plain/natives/* plain/
+ rm -rf plain/natives
+ mv plain/demos/* plain/
+ rm -rf plain/demos
+}
+
+integrity_check 2>&1 | tee $logfile
+identity_check 2>&1 | tee $logfile
+