diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2012-11-07 22:20:09 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2012-11-07 22:20:09 (GMT) |
commit | da08a1d3c3bca8070c9b029cfc1f8faf9e34dd25 (patch) | |
tree | b285148ab6ca415814d9370148f91736f83c852c /contrib/local | |
parent | 0ae6c27d9322208053033d9b19c0ffffed3d99eb (diff) | |
download | uscxml-da08a1d3c3bca8070c9b029cfc1f8faf9e34dd25.zip uscxml-da08a1d3c3bca8070c9b029cfc1f8faf9e34dd25.tar.gz uscxml-da08a1d3c3bca8070c9b029cfc1f8faf9e34dd25.tar.bz2 |
Committing local version again
Diffstat (limited to 'contrib/local')
-rwxr-xr-x | contrib/local/bcp-boost.sh | 18 | ||||
-rwxr-xr-x | contrib/local/build-linux.expect | 36 | ||||
-rwxr-xr-x | contrib/local/build-windows.expect | 202 | ||||
-rwxr-xr-x | contrib/local/compress_and_upload_deps.sh | 32 | ||||
-rwxr-xr-x | contrib/local/make-dist.sh | 145 | ||||
-rwxr-xr-x | contrib/local/make-installer-html-table.pl | 245 | ||||
-rw-r--r-- | contrib/local/package-linux.expect | 33 | ||||
-rwxr-xr-x | contrib/local/package-windows.expect | 77 | ||||
-rwxr-xr-x | contrib/local/remove-dsstore-files.sh | 9 | ||||
-rwxr-xr-x | contrib/local/validate-installers.expect | 317 |
10 files changed, 1114 insertions, 0 deletions
diff --git a/contrib/local/bcp-boost.sh b/contrib/local/bcp-boost.sh new file mode 100755 index 0000000..9f5450d --- /dev/null +++ b/contrib/local/bcp-boost.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +ME=`basename $0` +DIR="$( cd "$( dirname "$0" )" && pwd )" +CWD=`pwd` + +SOURCE_FILES=`find ${DIR}/../../src/ -name \*.h -print -o -name \*.cpp -print` +ARABICA_FILES=`find ${DIR}/../../contrib/prebuilt/include/arabica -name \*.hpp -print -o -name \*.cpp -print` + +# echo ${ARABICA_FILES} +# exit + +/Users/sradomski/Documents/TK/Code/boost_1_51_0/dist/bin/bcp \ +--boost=/Users/sradomski/Documents/TK/Code/boost_1_51_0 \ +--scan ${SOURCE_FILES} ${ARABICA_FILES} \ +${DIR}/../prebuilt/include + +rm -rf ${DIR}/../prebuilt/include/libs diff --git a/contrib/local/build-linux.expect b/contrib/local/build-linux.expect new file mode 100755 index 0000000..793d3d6 --- /dev/null +++ b/contrib/local/build-linux.expect @@ -0,0 +1,36 @@ +#!/usr/bin/expect + +set timeout 300 +set USCXML_BUILD_HOST $::env(USCXML_BUILD_HOST) + +set prompt "sradomski@" +append prompt ${USCXML_BUILD_HOST} +append prompt {:[a-zA-Z~\/\-]+\$ } + +eval spawn ping -c1 ${USCXML_BUILD_HOST}.local. +expect "cannot resolve" { puts "Host ${USCXML_BUILD_HOST}.local. not found"; exit } \ + -re $prompt { } + +eval spawn ssh ${USCXML_BUILD_HOST}.local. + +############################## +# uscxml in debug configuration +expect -re $prompt { send "rm -rf /tmp/build-uscxml && mkdir /tmp/build-uscxml && cd /tmp/build-uscxml\n" } +expect -re $prompt { send "cmake -DCMAKE_BUILD_TYPE=Debug -DDIST_PREPARE=ON /media/psf/Home/Documents/TK/Code/uscxml\n" } + +expect "download" { exp_continue } \ + -re $prompt { send "make -j2\n" } + +expect "Building CXX" { exp_continue } \ + "Linking CXX" { exp_continue } \ + -re $prompt { send "\n" } + +############################## +# uscxml in release configuration +expect -re $prompt { send "rm -rf /tmp/build-uscxml && mkdir /tmp/build-uscxml && cd /tmp/build-uscxml\n" } +expect -re $prompt { send "cmake -DCMAKE_BUILD_TYPE=Release -DDIST_PREPARE=ON /media/psf/Home/Documents/TK/Code/uscxml\n" } +expect -re $prompt { send "make\n" } + +expect "Building CXX" { exp_continue } \ + "Linking CXX" { exp_continue } \ + -re $prompt { exit } diff --git a/contrib/local/build-windows.expect b/contrib/local/build-windows.expect new file mode 100755 index 0000000..27ab7c0 --- /dev/null +++ b/contrib/local/build-windows.expect @@ -0,0 +1,202 @@ +#!/usr/bin/expect + +set timeout 600 +set USCXML_BUILD_HOST $::env(USCXML_BUILD_HOST) +set USCXML_BUILD_ARCH $::env(USCXML_BUILD_ARCH) + + +set local_prompt {sradomski$ } +set initial_remote_prompt "C*>" +# the default windows prompt is hard to recognize +set remote_prompt "easy_to_recognize" + +eval spawn ping -c1 ${USCXML_BUILD_HOST}.local. +expect "cannot resolve" { puts "Host ${USCXML_BUILD_HOST}.local. not found"; exit } \ + -re $local_prompt { } + +eval cd ~/Documents/TK/Code/ + +############################## +# prepare and deploy archive + +# check age of archive against modification date +eval spawn find ./uscxml -newer uscxml-win.tar +set redeploy 0; +expect { + "find:*No such file" { set redeploy 1; } + -re ".cpp\r\n" { set redeploy 1; } + -re "package\r\n" { set redeploy 1; } + -re ".h\r\n" { set redeploy 1; } + -re "CMakeLists.txt\r\n" { set redeploy 1; } + -re $local_prompt { } +} +#set redeploy 0; + +if {$redeploy} { +# eval spawn rm uscxml-win.tar +# eval spawn tar --exclude='__*' --exclude=uscxml/contrib/prebuilt/darwin --exclude=uscxml/docs/html --exclude=uscxml/examples/ios --exclude=uscxml/contrib/archives --exclude=uscxml/.git --exclude=uscxml/build* --exclude=uscxml/lib/ios-5.0 --exclude=uscxml/lib/linux* --exclude=uscxml/lib/darwin* --exclude=uscxml/installer/uMundo* --exclude=uscxml/contrib/prebuilt/linux* --exclude=uscxml/contrib/prebuilt/ios -cf uscxml-win.tar uscxml/ +eval spawn rm uscxml-win.zip +eval spawn zip -r uscxml-win.zip uscxml/ --exclude __\* uscxml/contrib/prebuilt/darwin\* uscxml/contrib/prebuilt/ios\* uscxml/contrib/prebuilt/linux\* uscxml/docs/html\* uscxml/examples/ios uscxml/contrib/archives\* uscxml/.git/\* uscxml/build\* uscxml/installer/uMundo* uscxml/contrib/prebuilt/linux* + expect { + "a uscxml/" { exp_continue } + timeout { puts "Timeout when packaging source code"; exit; } + -re $local_prompt { } + } + +# eval spawn scp -4 uscxml-win.tar sradomski@${USCXML_BUILD_HOST}.local:\\uscxml-win.tar + eval spawn scp -4 uscxml-win.zip sradomski@${USCXML_BUILD_HOST}.local:\\uscxml-win.zip + expect { + "ETA" { exp_continue } + "The authenticity" { send "yes\n"; exp_continue; } + timeout { puts "Timeout when uploading source code"; exit; } + -re $local_prompt { } + } +} + +############################## +# ssh into remote host + +eval spawn ssh -4 sradomski@${USCXML_BUILD_HOST}.local. +expect { + timeout { puts "Timeout when connecting to windows"; exit; } + "The authenticity" { send "yes\n"; } + -re $local_prompt { puts "Could not connect to remote host"; exit; } + -re $initial_remote_prompt { } +} + +send "set prompt=easy_to_recognize \r" +expect -re $remote_prompt + +# unpack archive if required +if {$redeploy} { + send "rmdir \/S \/Q uscxml\r" + expect -re $remote_prompt + +# send "tar xf uscxml-win.tar\r" + send "unzip uscxml-win.zip\r" + expect "uscxml/" { exp_continue } \ + -re $remote_prompt { } + +} + +# setup directories +send "rmdir \/S \/Q build-uscxml\r" +expect -re $remote_prompt +send "mkdir build-uscxml\r" +expect -re $remote_prompt +send "cd build-uscxml\r" +expect -re $remote_prompt + +############################## +# start cmd.exe and prepare for compiling +# send "cmd\n" +# expect -re $cmd_prompt + +# "c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" +# send "\"c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat x86_amd64\"\n" +if { [string compare $USCXML_BUILD_ARCH 32] == 0 } { + send "\"c:\\Program Files\\Microsoft Visual Studio 10.0\\VC\\bin\\vcvars32.bat\"\r" + expect -re $remote_prompt +} else { + send "\"c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\" x86_amd64\r" + expect -re $remote_prompt +} +############################## +# compile in debug configuration + +send "\"cmake.exe\" -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Debug -DDIST_PREPARE=ON ..\\uscxml\r" + +expect "download" { exp_continue } \ + -re $remote_prompt { } + +send "nmake\r" +expect { + "Building" { exp_continue; } + "Linking" { exp_continue; } + "fatal error" { exit } + -re $remote_prompt { } +} + +# send "nmake java\r" +# expect { +# "Building" { exp_continue; } +# "Linking" { exp_continue; } +# "fatal error" { exit } +# -re $remote_prompt { } +# } +# +# send "nmake csharp\r" +# expect { +# "Building" { exp_continue; } +# "Linking" { exp_continue; } +# "fatal error" { exit } +# -re $remote_prompt { } +# } + +############################## +# compile in release configuration + +send "\"cmake\" -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Release -DDIST_PREPARE=ON ..\\uscxml\r" +expect -re $remote_prompt + +send "nmake\n\r" +expect { + timeout { puts "Timeout when building"; exit; } + "Building" { puts "Building"; exp_continue; } + "Scanning" { puts "Scanning"; exp_continue; } + "Linking" { puts "Linking"; exp_continue; } + "fatal error" { puts "Dying"; exit; } + -re $remote_prompt { puts "Continuing"; } +} + +# send "nmake java\n\r" +# expect { +# timeout { puts "Timeout when building"; exit; } +# "Building" { puts "Building"; exp_continue; } +# "Scanning" { puts "Scanning"; exp_continue; } +# "Linking" { puts "Linking"; exp_continue; } +# "fatal error" { puts "Dying"; exit; } +# -re $remote_prompt { puts "Continuing"; } +# } +# +# send "nmake csharp\n\r" +# expect { +# timeout { puts "Timeout when building"; exit; } +# "Building" { puts "Building"; exp_continue; } +# "Scanning" { puts "Scanning"; exp_continue; } +# "Linking" { puts "Linking"; exp_continue; } +# "fatal error" { puts "Dying"; exit; } +# -re $remote_prompt { puts "Continuing"; } +# } + +send "cd ..\r" +expect -re $remote_prompt + +if { [string compare $USCXML_BUILD_ARCH 32] == 0 } { + send "zip -r win-package-x86.zip uscxml\\package\\windows-x86\r" +} else { + send "zip -r win-package-x86_64.zip uscxml\\package\\windows-x86_64\r" +} + +send "exit\r" +expect -re $local_prompt +eval cd ~/Documents/TK/Code/ + +if { [string compare $USCXML_BUILD_ARCH 32] == 0 } { + eval spawn "scp epikur-win7.local:win-package-x86.zip ." + expect -re $local_prompt + eval spawn "unzip -o win-package-x86.zip" + expect -re $local_prompt + eval spawn "rm win-package-x86.zip" + expect -re $local_prompt + +} else { + eval spawn "scp epikur-win7-64.local:win-package-x86_64.zip ." + expect -re $local_prompt + eval spawn "unzip -o win-package-x86_64.zip" + expect -re $local_prompt + eval spawn "rm win-package-x86_64.zip" + expect -re $local_prompt +} + +exit diff --git a/contrib/local/compress_and_upload_deps.sh b/contrib/local/compress_and_upload_deps.sh new file mode 100755 index 0000000..c96ff0b --- /dev/null +++ b/contrib/local/compress_and_upload_deps.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -e + +ME=`basename $0` +DIR="$( cd "$( dirname "$0" )" && pwd )" +CWD=`pwd` + +cd $DIR + +if [ "$UMUNDO_PREBUILT_HOST" == "" ]; then + UMUNDO_PREBUILT_HOST="admin@umundo.tk.informatik.tu-darmstadt.de:/var/www/html/uscxml/prebuilt" +fi + +if [ "$1" == "" ] || [ "$2" == "" ]; then + echo "$ME <prebuilt dir> <version>" + exit +fi + +if [ ! -d $1 ]; then + echo "$1: no such directory" + exit +fi + +PLATFORM=`basename $1` +VERSION=$2 + +cd ../prebuilt + +tar cvzf uscxml-prebuilt-${PLATFORM}-${VERSION}.tgz ${PLATFORM} +scp uscxml-prebuilt-${PLATFORM}-${VERSION}.tgz ${UMUNDO_PREBUILT_HOST}/ +rm uscxml-prebuilt-${PLATFORM}-${VERSION}.tgz
\ No newline at end of file diff --git a/contrib/local/make-dist.sh b/contrib/local/make-dist.sh new file mode 100755 index 0000000..1eacb48 --- /dev/null +++ b/contrib/local/make-dist.sh @@ -0,0 +1,145 @@ +#!/bin/bash + +ME=`basename $0` +DIR="$( cd "$( dirname "$0" )" && pwd )" + +# do not tar ._ files +export COPY_EXTENDED_ATTRIBUTES_DISABLE=1 +export COPYFILE_DISABLE=1 + +############################ +# Compile libraries +############################ + +cd ${DIR} + +./remove-dsstore-files.sh + +echo -n "Build uscxml for Linux 32Bit? [y/N]: "; read BUILD_LINUX32 +if [ "$BUILD_LINUX32" == "y" ] || [ "$BUILD_LINUX32" == "Y" ]; then + echo "Start the Linux 32Bit system named 'debian' and press return" && read + echo == BUILDING USCXML FOR Linux 32Bit ========================================================= + export USCXML_BUILD_HOST=debian + expect build-linux.expect +fi + +echo -n "Build uscxml for Linux 64Bit? [y/N]: "; read BUILD_LINUX64 +if [ "$BUILD_LINUX64" == "y" ] || [ "$BUILD_LINUX64" == "Y" ]; then + echo "Start the Linux 64Bit system named 'debian64' and press return" && read + echo == BUILDING USCXML FOR Linux 64Bit ========================================================= + export USCXML_BUILD_HOST=debian64 + expect build-linux.expect +fi + +# make sure to cross-compile before windows as we will copy all the files into the windows VM +echo -n "Build uscxml for iOS? [y/N]: "; read BUILD_IOS +if [ "$BUILD_IOS" == "y" ] || [ "$BUILD_IOS" == "Y" ]; then + echo == BUILDING USCXML FOR IOS ========================================================= + ${DIR}/../build-uscxml-ios.sh +fi + +echo -n "Build uscxml for Android? [y/N]: "; read BUILD_ANDROID +if [ "$BUILD_ANDROID" == "y" ] || [ "$BUILD_ANDROID" == "Y" ]; then + echo == BUILDING USCXML FOR Android ========================================================= + export ANDROID_NDK=~/Developer/SDKs/android-ndk-r8 + ${DIR}/../build-uscxml-android.sh +fi + +echo -n "Build uscxml for Windows 32Bit? [y/N]: "; read BUILD_WIN32 +if [ "$BUILD_WIN32" == "y" ] || [ "$BUILD_WIN32" == "Y" ]; then + echo "Start the Windows 32Bit system named 'epikur-win7' and press return" && read + echo == BUILDING USCXML FOR Windows 32Bit ========================================================= + export USCXML_BUILD_HOST=epikur-win7 + export USCXML_BUILD_ARCH=32 + # winsshd needs an xterm .. + TERM=xterm expect build-windows.expect +fi + +echo -n "Build uscxml for Windows 64Bit? [y/N]: "; read BUILD_WIN64 +if [ "$BUILD_WIN64" == "y" ] || [ "$BUILD_WIN64" == "Y" ]; then + echo "Start the Windows 64Bit system named 'epikur-win7-64' and press return" && read + echo == BUILDING USCXML FOR Windows 64Bit ========================================================= + export USCXML_BUILD_HOST=epikur-win7-64 + export USCXML_BUILD_ARCH=64 + # winsshd needs an xterm .. + TERM=xterm expect build-windows.expect +fi + +echo -n "Build uscxml for Mac OSX? [y/N]: "; read BUILD_MAC +if [ "$BUILD_MAC" == "y" ] || [ "$BUILD_MAC" == "Y" ]; then + echo == BUILDING USCXML FOR Mac OSX ========================================================= + rm -rf /tmp/build-uscxml + mkdir -p /tmp/build-uscxml + cd /tmp/build-uscxml + cmake -DDIST_PREPARE=ON -DCMAKE_BUILD_TYPE=Debug ${DIR}/../.. + make -j2 + make -j2 java + cmake -DDIST_PREPARE=ON -DCMAKE_BUILD_TYPE=Release ${DIR}/../.. + make -j2 + make -j2 java +fi + +############################ +# Create installers +############################ + +echo -n "Build packages for those platforms? [a/y/N]: "; read BUILD_PACKAGES +if [ "$BUILD_PACKAGES" == "y" ] || [ "$BUILD_PACKAGES" == "a" ]; then + + cd ${DIR} + + if [ "$BUILD_LINUX32" == "y" ] || [ "$BUILD_LINUX32" == "Y" ] || [ "$BUILD_PACKAGES" == "a" ]; then + echo Start the Linux 32Bit system named 'debian' again && read + echo == PACKAGING USCXML FOR Linux 32Bit ========================================================= + export USCXML_BUILD_HOST=debian + expect package-linux.expect + fi + + if [ "$BUILD_LINUX64" == "y" ] || [ "$BUILD_LINUX64" == "Y" ] || [ "$BUILD_PACKAGES" == "a" ]; then + echo Start the Linux 64Bit system named 'debian64' again && read + echo == PACKAGING USCXML FOR Linux 64Bit ========================================================= + export USCXML_BUILD_HOST=debian64 + expect package-linux.expect + fi + + if [ "$BUILD_WIN32" == "y" ] || [ "$BUILD_WIN32" == "Y" ] || [ "$BUILD_PACKAGES" == "a" ]; then + echo Start the Windows 32Bit system named 'epikur-win7' again && read + echo == PACKAGING USCXML FOR Windows 32Bit ========================================================= + export USCXML_BUILD_HOST=epikur-win7 + export USCXML_BUILD_ARCH=32 + TERM=xterm expect package-windows.expect + fi + + if [ "$BUILD_WIN64" == "y" ] || [ "$BUILD_WIN64" == "Y" ] || [ "$BUILD_PACKAGES" == "a" ]; then + echo Start the Windows 64Bit system named 'epikur-win7-64' again && read + echo == PACKAGING USCXML FOR Windows 64Bit ========================================================= + export USCXML_BUILD_HOST=epikur-win7-64 + export USCXML_BUILD_ARCH=64 + TERM=xterm expect package-windows.expect + fi + + if [ "$BUILD_MAC" == "y" ] || [ "$BUILD_MAC" == "Y" ] || [ "$BUILD_PACKAGES" == "a" ]; then + echo == PACKAGING USCXML FOR MacOSX ========================================================= + cd /tmp/build-uscxml + # rerun cmake for new cpack files + cmake -DDIST_PREPARE=ON -DCMAKE_BUILD_TYPE=Release ${DIR}/../.. + make package + cp uscxml*darwin* ${DIR}/../../installer + cd ${DIR} + fi +fi + +############################ +# Validate installers +############################ + +expect validate-installers.expect + +############################ +# Create ReadMe.html +############################ + +echo -n "Create ReadMe.html? [y/N]: "; read CREATE_README +if [ "$CREATE_README" == "y" ]; then + ./make-installer-html-table.pl ${DIR}/../../installer > ${DIR}/../../installer/ReadMe.html +fi
\ No newline at end of file diff --git a/contrib/local/make-installer-html-table.pl b/contrib/local/make-installer-html-table.pl new file mode 100755 index 0000000..6315404 --- /dev/null +++ b/contrib/local/make-installer-html-table.pl @@ -0,0 +1,245 @@ +#!/usr/bin/perl -w + +use strict; +use Cwd 'abs_path'; # abs_path +use Cwd; # getcwd +use File::Spec; # abs2rel +use Data::Dumper; # recursively dump data structures via Dumper($foo) +use File::Path; # make_path +use File::Path qw(make_path); +use File::Temp qw/ tempfile tempdir /; +use File::Basename; + +my $script_dir = dirname(abs_path($0)); +my $orig_cwd = getcwd; + +# get last version where we bumped the version string (ignoring pre, rc, beta ..) +my $cmake_edits = `git log --follow -p $script_dir/../../CMakeLists.txt`; +my $commit_hash; +foreach my $line (split("\n", $cmake_edits)) { + if ($line =~ /^commit ([\dabcdef]+)/) { + $commit_hash = $1; + } + last if ($commit_hash and $line =~ /\+SET\(UMUNDO_VERSION_PATCH \"\d+\"\)/); +} +my $change_log = `git log --pretty=format:"%H %h @@@ %ai: %s ### %b" $commit_hash..`; +# remove empty bodies +#$change_log =~ s/\n\n/\n/g; +# link to commit on github +$change_log =~ s/([\dabcdef]+) ([\dabcdef]+) @@@/<a href="https:\/\/github\.com\/tklab-tud\/umundo\/commit\/$1">$2<\/a>/g; +# put body below commit message +$change_log =~ s/###\s\n/\n/g; +$change_log =~ s/###\s/\n\n /g; +$change_log =~ s/\n([^<])/\n $1/g; + + +my $installer_dir = shift or die("Expected directory as first argument\n"); +if (!File::Spec->file_name_is_absolute($installer_dir)) { + $installer_dir = File::Spec->rel2abs($installer_dir, getcwd); +} + +my $descriptions = { + './bin/protoc-umundo-cpp-rpc.*' => 'ProtoBuf RPC plugin for C++', + './bin/protoc-umundo-java-rpc.*' => 'ProtoBuf RPC plugin for Java', + './bin/umundo-monitor.*' => 'Diagnosis tool (somewhat unmaintained)', + './bin/umundo-pingpong.*' => 'Test deployments (i=incoming, o=outgoing)', + './include/umundo/core.h' => 'C++ headers for core layer', + './include/umundo/rpc.h' => 'C++ headers for remote procedure calls', + './include/umundo/s11n.h' => 'C++ headers for object serialization', + './include/umundo/util.h' => 'C++ headers for utilities', + './lib' => 'Pure C++ libraries', + './lib/libumundoNativeJava[\.6].*' => 'SWIG generated JNI wrapper (included in JAR)', + './lib/libumundocore[\.6].*' => 'C++ library for core', + './lib/libumundorpc[\.6].*' => 'C++ library for remote procedure calls', + './lib/libumundoserial[\.6].*' => 'C++ library for serialization', + './lib/libumundoutil[\.6].*' => 'C++ library with utilities', + './lib/umundo-monitor.lib' => 'not sure', + './lib/umundo-pingpong.lib' => 'not sure', + './lib/umundoNativeCSharp[\.6].*' => 'SWIG generated C# backend for DLLInvoke', + './share/umundo/android-8' => 'Cross compiled binaries for Android', + './share/umundo/android-8/armv5te/libumundoNativeJava.so' => 'SWIG generated JNI wrapper', + './share/umundo/android-8/umundo.jar' => 'JAR for Android (without JNI inside)', + './share/umundo/lib/umundo.jar' => 'JAR for desktops (auto-loading JNI code inside)', + './share/umundo/lib/umundoCSharp.dll' => 'C# library with managed code', + './share/umundo/prebuilt' => 'Prebuilt libraries in case we forgot something', + './share/umundo/samples' => 'Sample programs and IDE templates', + './share/umundo/samples/android' => 'Sample programs for Android', + './share/umundo/samples/android/umundo-pingpong/libs' => 'These are just placehoders!', + './share/umundo/samples/android/umundo-pingpong/libs/armeabi/libumundoNativeJava.so' => 'Replace with real library from above!', + './share/umundo/samples/android/umundo-pingpong/libs/armeabi/libumundoNativeJava_d.so' => 'Replace with real library from above!', + './share/umundo/samples/android/umundo-pingpong/libs/umundo.jar' => 'Replace with real library from above!', + './share/umundo/samples/csharp' => 'Sample programs for C#', + './share/umundo/samples/csharp/umundo-pingpong' => 'The simplest umundo program in C#', + './share/umundo/samples/csharp/umundo-s11ndemo' => 'Serialization in C# (Dirk is working on it)', + './share/umundo/samples/csharp/umundo.s11n' => 'My initial attempts at serialization with C# (deprecated)', + './share/umundo/samples/ios' => 'Sample programs for iOS', + './share/umundo/samples/ios/umundo-pingpong' => 'The simplest umundo program for iOS', + './share/umundo/samples/java' => 'Sample programs for Java', + './share/umundo/samples/java/core/chat' => 'Chat using the core layer', + './share/umundo/samples/java/core/chat/build.properties' => 'Adapt these for your system', + './share/umundo/samples/java/rpc/chat' => 'Chat using the RPC layer', + './share/umundo/samples/java/rpc/chat/build.properties' => 'Adapt these for your system', + './share/umundo/samples/java/rpc/chat/proto/ChatS11N.proto' => 'ProtoBuf file for chat services', + './share/umundo/samples/java/s11n/chat' => 'Chat using the serialization layer', + './share/umundo/samples/java/s11n/chat/build.properties' => 'Adapt these for your system', + './share/umundo/samples/java/s11n/chat/proto/ChatS11N.proto' => 'ProtoBuf file for chat message objects', + './share/umundo/samples/cpp' => 'Sample programs for C++', + './share/umundo/samples/cpp/core/chat' => 'Chat using the core layer', + './share/umundo/samples/cpp/rpc/chat' => 'Chat using the RPC layer', + './share/umundo/samples/cpp/s11n/chat' => 'Chat using the serialization layer', + './share/umundo/samples/cpp/s11n/chat/proto/ChatS11N.proto' => 'ProtoBuf file for chat message objects', + './share/umundo/samples/cpp/rpc/chat/proto/ChatS11N.proto' => 'ProtoBuf file for chat services', + './share/umundo/cmake/FindUMundo.cmake' => 'CMake module to find umundo once it is installed', + './share/umundo/cmake/UseUMundo.cmake' => 'CMake macros for protobuf', +}; + +my ($mac_archive, $linux32_archive, $linux64_archive, $win32_archive, $win64_archive); +my ($mac_files, $linux32_files, $linux64_files, $win32_files, $win64_files); + +chdir $installer_dir; +foreach (sort <*>) { + next if m/^\./; + $mac_archive = File::Spec->rel2abs($_, getcwd) if (m/.*darwin.*\.tar\.gz/i); + $linux32_archive = File::Spec->rel2abs($_, getcwd) if (m/.*linux-i686.*\.tar\.gz/i); + $linux64_archive = File::Spec->rel2abs($_, getcwd) if (m/.*linux-x86_64.*\.tar\.gz/i); + $win32_archive = File::Spec->rel2abs($_, getcwd) if (m/.*windows-x86-.*\.zip/i); + $win64_archive = File::Spec->rel2abs($_, getcwd) if (m/.*windows-x86_64.*\.zip/i); +} + +print STDERR "No archive for MacOSX found!\n" if (!$mac_archive); +print STDERR "No archive for Linux 32Bit found!\n" if (!$linux32_archive); +print STDERR "No archive for Linux 64Bit found!\n" if (!$linux64_archive); +print STDERR "No archive for Windows 32Bit found!\n" if (!$win32_archive); +print STDERR "No archive for Windows 64Bit found!\n" if (!$win64_archive); + +$mac_archive =~ m/.*darwin-i386-(.*)\.tar\.gz/; +my $version = $1; + +# make a hash remove first element split into array at newline +%{$mac_files} = map { $_ => 1 } map { s/^[^\/]*\///; $_ } split("\n", `tar tzf $mac_archive`) if $mac_archive; +%{$linux32_files} = map { $_ => 1 } map { s/^[^\/]*\///; $_ } split("\n", `tar tzf $linux32_archive`) if $linux32_archive; +%{$linux64_files} = map { $_ => 1 } map { s/^[^\/]*\///; $_ } split("\n", `tar tzf $linux64_archive`) if $linux64_archive; +%{$win32_files} = map { $_ => 1 } map { s/^[^\/]*\///; $_ } split("\n", `unzip -l $win32_archive`) if $win32_archive; +%{$win64_files} = map { $_ => 1 } map { s/^[^\/]*\///; $_ } split("\n", `unzip -l $win64_archive`) if $win64_archive; + +# print Dumper($mac_files); +# exit; +my $tmpdir = File::Temp->newdir() or die($!); +#print STDERR $tmpdir."\n"; +chdir $tmpdir or die($!); + +system("tar", "xzf", $mac_archive) if $mac_archive; +system("tar", "xzf", $linux32_archive) if $linux32_archive; +system("tar", "xzf", $linux64_archive) if $linux64_archive; +system("unzip", "-q", $win32_archive) if $win32_archive; +system("unzip", "-q", $win64_archive) if $win64_archive; + +my $rv; +mkdir("content") or die($!); +foreach (sort <*>) { + next if m/^\./; + next if m/.*content/; + if ($_ !~ /.*windows.*/i) { + $rv = `ditto $_/usr/local content`; + } else { + $rv = `ditto $_ content`; + } + $rv = `rm -rf $_`; +} + +# remove duplicates and uninteresting directories +# $rv = `rm -rf content/bin/protoc-umundo-cpp-rpc.exe`; +# $rv = `rm -rf content/bin/protoc-umundo-java-rpc.exe`; +# $rv = `rm -rf content/bin/umundo-monitor.exe`; +# $rv = `rm -rf content/bin/umundo-pingpong.exe`; + +$rv = `rm -rf content/include/umundo/common`; +$rv = `rm -rf content/include/umundo/connection`; +$rv = `rm -rf content/include/umundo/discovery`; +$rv = `rm -rf content/include/umundo/protobuf`; +$rv = `rm -rf content/include/umundo/rpc`; +$rv = `rm -rf content/include/umundo/s11n`; +$rv = `rm -rf content/include/umundo/thread`; +$rv = `rm -rf content/include/umundo/util`; +$rv = `rm -rf content/include/umundo-objc`; + +chdir "content/" or die($!); + +my $tree_list = `tree -a -h --noreport --charset ISO-8859-1`; +my $flat_list = `find -s .`; + +print '<html><body>'."\n"; + +print '<h1>Changelog</h1>'."\n"; +print '<pre>'."\n"; +print $change_log; +print '</pre>'."\n"; + +print '<h1>Contents</h1>'; +print <<EOF; +<p>The following table is an excerpt of all the files in the individual installer +packages (detailled C++ headers are not shown). All the different archives/installers +for a given platform contain the same files, it is only a matter of taste and +convenience. There are differences between the contents for each platform though +and they are listed in the <i>availability</i> column.</p> + +<p><tt>Mac</tt> are all the darwin installers, <tt>L32</tt> and <tt>L64</tt> is short for Linux 32 and 64Bit +respectively, same with <tt>W32</tt> and <tt>W64</tt> for Windows. Only the first occurence of a +library is commented, the <tt>_d</tt> suffix signifies debug libraries, the <tt>64</tt> +suffix is for 64Bit builds and the Windows libraries have no <tt>lib</tt> prefix.</p> + +EOF +print '<table>'."\n"; +print '<tr><th align="left">Availability</th><th align="left">Filename</th><th align="left">Description</th></tr>'; +print '<tr><td valign="top">'."\n"; +print '<pre>'."\n"; + +foreach my $file (split("\n", $flat_list)) { + if ($file eq '.') { + print '<font bgcolor="#ccc">MAC</font>|L32|L64|W32|W64'."\n"; + next; + } + if (-d $file) { + print "\n"; + next; + } + $file =~ s/\.\///; +# print STDERR $file."\n"; + (exists($mac_files->{"usr/local/$file"}) ? print " X " : print " - "); + (exists($linux32_files->{"usr/local/$file"}) ? print " X " : print " - "); + (exists($linux64_files->{"usr/local/$file"}) ? print " X " : print " - "); + (exists($win32_files->{"$file"}) ? print " X " : print " - "); + (exists($win64_files->{"$file"}) ? print " X " : print " - "); + print "\n"; +} + +print '</pre>'."\n"; +print '</td><td valign="top">'."\n"; +print '<pre>'."\n"; + +print $tree_list; + +print '</pre>'."\n"; +print '</td><td valign="top">'."\n"; +print '<pre>'."\n"; + +foreach my $file (split("\n", $flat_list)) { + my $has_description = 0; + foreach my $desc (keys %{$descriptions}) { + if ($file =~ /^$desc$/) { + print $descriptions->{$desc}."\n"; + delete $descriptions->{$desc}; + $has_description = 1; + } + } + if (!$has_description) { + print "\n"; + } +} + +print '</pre>'."\n"; +print '</td></tr>'."\n"; +print '</table>'."\n"; +print '</body></html>'."\n"; + +chdir $orig_cwd;
\ No newline at end of file diff --git a/contrib/local/package-linux.expect b/contrib/local/package-linux.expect new file mode 100644 index 0000000..2685981 --- /dev/null +++ b/contrib/local/package-linux.expect @@ -0,0 +1,33 @@ +#!/usr/bin/expect -d + +set USCXML_BUILD_HOST $::env(USCXML_BUILD_HOST) +set timeout 150 + +set local_prompt {sradomski$ } +set prompt "sradomski@" +append prompt ${USCXML_BUILD_HOST} +append prompt {:[a-zA-Z~\/\-]+\$ } + +eval spawn ping -c1 ${USCXML_BUILD_HOST}.local. +expect "cannot resolve" { puts "Host ${USCXML_BUILD_HOST}.local. not found"; exit } \ + -re $local_prompt { } + +eval spawn ssh ${USCXML_BUILD_HOST}.local. +expect -re $prompt { send "cd /tmp/build-uscxml\n" } +expect -re $prompt { send "cmake -DCMAKE_BUILD_TYPE=Release -DDIST_PREPARE=ON /media/psf/Home/Documents/TK/Code/uscxml\n" } + +expect -re $prompt { send "make package\n" } + +expect "CPack" { exp_continue; } \ + -re $prompt { send "logout\n" } + +############################## +# exit and copy packages + +expect -re $local_prompt +eval cd ~/Documents/TK/Code/ + +eval spawn "scp -r ${USCXML_BUILD_HOST}.local:/tmp/build-uscxml/uscxml-linux* uscxml/installer/" +expect -re $local_prompt + +exit diff --git a/contrib/local/package-windows.expect b/contrib/local/package-windows.expect new file mode 100755 index 0000000..8aa4ac8 --- /dev/null +++ b/contrib/local/package-windows.expect @@ -0,0 +1,77 @@ +#!/usr/bin/expect + +set timeout 600 +set USCXML_BUILD_HOST $::env(USCXML_BUILD_HOST) +set USCXML_BUILD_ARCH $::env(USCXML_BUILD_ARCH) + +set local_prompt {sradomski$ } +eval spawn ping -c1 ${USCXML_BUILD_HOST}.local. +expect "cannot resolve" { puts "Host ${USCXML_BUILD_HOST}.local. not found"; exit } \ + -re $local_prompt { } + +set initial_remote_prompt "C*>" +# the default windows prompt is hard to recognize +set remote_prompt "easy_to_recognize" + +eval spawn scp -4 -r ../../package sradomski@epikur-win7.local:uscxml +expect { + "100" { exp_continue } + "The authenticity" { send "yes\n"; exp_continue; } + timeout { puts "Timeout when uploading source code"; exit; } + -re $local_prompt { } +} + +############################## +# ssh into remote host + +eval spawn ssh -4 sradomski@${USCXML_BUILD_HOST}.local. +expect { + timeout { puts "Timeout when connecting to windows"; exit; } + "The authenticity" { send "yes\n"; } + -re $local_prompt { puts "Could not connect to remote host"; exit; } + -re $initial_remote_prompt { } +} + +send "set prompt=easy_to_recognize \r" +expect -re $remote_prompt + +send "cd build-uscxml\r" +expect -re $remote_prompt + +if { [string compare $USCXML_BUILD_ARCH 32] == 0 } { + send "\"c:\\Program Files\\Microsoft Visual Studio 10.0\\VC\\bin\\vcvars32.bat\"\r" + expect -re $remote_prompt +} else { + send "\"c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\vcvarsall.bat\" x86_amd64\r" + expect -re $remote_prompt +} + +############################## +# package + +send "\"cmake.exe\" -G \"NMake Makefiles\" -DCMAKE_BUILD_TYPE=Release -DDIST_PREPARE=ON ..\\uscxml\r" +expect -re $remote_prompt + +send "nmake package\r" +expect { + -re $remote_prompt {} + "Built target" { exp_continue; } + "CPack" { exp_continue; } +} + +############################## +# exit and copy packages + +send "exit\r" +expect -re $local_prompt + +eval cd ~/Documents/TK/Code/ + +if { [string compare $USCXML_BUILD_ARCH 32] == 0 } { + eval spawn "scp -r epikur-win7.local:build-uscxml\\\\uscxml-windows* uscxml/installer/" +} else { + eval spawn "scp -r epikur-win7-64.local:build-uscxml\\\\uscxml-windows* uscxml/installer/" +} +expect -re $local_prompt + +exit diff --git a/contrib/local/remove-dsstore-files.sh b/contrib/local/remove-dsstore-files.sh new file mode 100755 index 0000000..50cbb3a --- /dev/null +++ b/contrib/local/remove-dsstore-files.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +ME=`basename $0` +DIR="$( cd "$( dirname "$0" )" && pwd )" +CWD=`pwd` + +find ${DIR}/../.. -name '.DS_Store' -exec rm {} \;
\ No newline at end of file diff --git a/contrib/local/validate-installers.expect b/contrib/local/validate-installers.expect new file mode 100755 index 0000000..7022b37 --- /dev/null +++ b/contrib/local/validate-installers.expect @@ -0,0 +1,317 @@ +#!/usr/bin/expect + +## way more verbose: +#!/usr/bin/expect -d + +set timeout 2; +set local_prompt {easy_to_recognize} +log_user 0 +eval spawn /bin/bash +expect -re {bash.*$} {} +send "export PS1=easy_to_recognize\n" +expect -re $local_prompt +expect -re $local_prompt + +proc checkArchive {listCommand label listOfFiles} { + upvar 1 local_prompt local_prompt + set reqFiles [lsort $listOfFiles] + + puts "Validating $label installer via $listCommand" + + log_user 0 + send "$listCommand 1>/dev/null\n" + expect { + "cannot find" { puts " Cannot find archive for $label"; puts " Not OK"; return; } + "Error opening" { puts " Cannot find archive for $label"; return; } + -re $local_prompt { } + } + + send "$listCommand |sort\n" + foreach {file} $reqFiles { + set relist 1; + expect { + -re $file { } + -re $local_prompt { + if {$relist} { + send "$listCommand |sort\n"; + set relist 0; + exp_continue; + } else { + puts " Cannot find $file in $label installer"; exit; + } + } + } + } + expect -re $local_prompt + puts " Archive OK" +} + +set reqFilesCSharpProject { + "samples/csharp/umundo-pingpong/umundo-pingpong.sln" + "samples/csharp/umundo-pingpong/umundo-pingpong.suo" + "samples/csharp/umundo-pingpong/umundo-pingpong/Program.cs" + "samples/csharp/umundo-pingpong/umundo-pingpong/umundo-pingpong.csproj" + "samples/csharp/umundo-pingpong/umundo-pingpong/umundo-pingpong.csproj.user" + "samples/csharp/umundo-pingpong/umundo-pingpong/Properties/AssemblyInfo.cs" +} + +set reqFilesXCodeProject { + "samples/ios/umundo-pingpong/AppDelegate.h" + "samples/ios/umundo-pingpong/AppDelegate.mm" + "samples/ios/umundo-pingpong/main.m" + "samples/ios/umundo-pingpong/umundo-pingpong-Info.plist" + "samples/ios/umundo-pingpong/ViewController.h" + "samples/ios/umundo-pingpong/ViewController.m" + "samples/ios/umundo-pingpong.xcodeproj/project.pbxproj" + "samples/ios/umundo-pingpong.xcodeproj/project.xcworkspace" +} + +set reqFilesAndroidProject { + "samples/android/umundo-pingpong/AndroidManifest.xml" + "samples/android/umundo-pingpong/project.properties" + "samples/android/umundo-pingpong/src/org/umundo/samples/UMundoAndroidActivity.java" +} + +set reqFilesDesktopCommonUnix { + "/usr/local/bin/protoc-umundo-cpp-rpc" + "/usr/local/bin/protoc-umundo-java-rpc" + "/usr/local/bin/umundo-pingpong" + "/usr/local/bin/umundo-monitor" + "/usr/local/share/umundo/java/umundo.jar" +} + +set reqFilesAndroid { + "/share/umundo/android-.*/armv.*/libumundoNativeJava.so" + "/share/umundo/android-.*/armv.*/libumundoNativeJava_d.so" + "/share/umundo/android-.*/umundo.jar" +} + +set reqFilesJavaSamples { + "samples/java/core/chat/build.properties" + "samples/java/core/chat/build.xml" + "samples/java/core/chat/src/org/umundo/Chat.java" + "samples/java/rpc/chat/build.properties" + "samples/java/rpc/chat/build.xml" + "samples/java/rpc/chat/proto/ChatS11N.proto" + "samples/java/rpc/chat/src/org/umundo/Chat.java" + "samples/java/s11n/chat/build.properties" + "samples/java/s11n/chat/build.xml" + "samples/java/s11n/chat/proto/ChatS11N.proto" + "samples/java/s11n/chat/src/org/umundo/Chat.java" +} + +set reqFilesCPPSamples { + "samples/cpp/core/chat/CMakeLists.txt" + "samples/cpp/core/chat/src/Chat.cpp" + "samples/cpp/core/chat/src/Chat.h" + "samples/cpp/rpc/chat/CMakeLists.txt" + "samples/cpp/rpc/chat/proto/ChatS11N.proto" + "samples/cpp/rpc/chat/src/Chat.cpp" + "samples/cpp/rpc/chat/src/Chat.h" + "samples/cpp/s11n/chat/CMakeLists.txt" + "samples/cpp/s11n/chat/proto/ChatS11N.proto" + "samples/cpp/s11n/chat/src/Chat.cpp" + "samples/cpp/s11n/chat/src/Chat.h" +} + +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libmDNSEmbedded.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libmDNSEmbedded.so" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libmDNSEmbedded_d.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libmDNSEmbedded_d.so" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libpcre.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libpcre_d.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libpcreposix.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libpcreposix_d.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libzmq.a" +# "/share/umundo/prebuilt/android/arm-linux-androideabi/libzmq_d.a" + + +set reqFilesIOS { + "/usr/local/share/umundo/ios-.*/libumundo.ios.a" + "/usr/local/share/umundo/ios-.*/libumundo_d.ios.a" + + "/usr/local/share/umundo/deps/ios/.*/libpcreposix.a" + "/usr/local/share/umundo/deps/ios/.*/libpcrecpp.a" + "/usr/local/share/umundo/deps/ios/.*/libpcre.a" + "/usr/local/share/umundo/deps/ios/.*/libprotobuf-lite.a" + "/usr/local/share/umundo/deps/ios/.*/libprotobuf.a" + "/usr/local/share/umundo/deps/ios/.*/libprotoc.a" + "/usr/local/share/umundo/deps/ios/.*/libzmq.a" +} + +# "/usr/local/share/umundo/ios-.*/libumundocore.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundocore_d.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundoserial.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundoserial_d.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundorpc.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundorpc_d.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundoutil.ios.a" +# "/usr/local/share/umundo/ios-.*/libumundoutil_d.ios.a" + +############################# +# Validate Mac installers +############################# +log_user 0 +set reqFilesMac { + "/usr/local/include/umundo/s11n.h" + "/usr/local/include/umundo/core.h" + "/usr/local/include/umundo/rpc.h" + "/usr/local/include/umundo/util.h" + + "/usr/local/lib/libumundo64.dylib" + "/usr/local/lib/libumundo64_d.dylib" + "/usr/local/lib/libumundocore64.dylib" + "/usr/local/lib/libumundocore64_d.dylib" + "/usr/local/lib/libumundoserial64.dylib" + "/usr/local/lib/libumundoserial64_d.dylib" + "/usr/local/lib/libumundorpc64.dylib" + "/usr/local/lib/libumundorpc64_d.dylib" + "/usr/local/lib/libumundoutil64.dylib" + "/usr/local/lib/libumundoutil64_d.dylib" + "/usr/local/lib/libumundoNativeJava64.jnilib" + "/usr/local/lib/libumundoNativeJava64_d.jnilib" +} + +set reqFilesMac [concat $reqFilesMac $reqFilesAndroid $reqFilesIOS $reqFilesDesktopCommonUnix $reqFilesXCodeProject $reqFilesAndroidProject $reqFilesJavaSamples $reqFilesCPPSamples] +set reqFilesMac [lsort $reqFilesMac] +checkArchive "tar tzf ../../installer/umundo-darwin-*.tar.gz" Mac $reqFilesMac + +############################# +# Validate Linux32 installers +############################# + +log_user 0 +set reqFilesLinux32 { + "/usr/local/bin/protoc-umundo-cpp-rpc" + "/usr/local/bin/umundo-pingpong" + "/usr/local/bin/umundo-monitor" + + "/usr/local/include/umundo/s11n.h" + "/usr/local/include/umundo/core.h" + "/usr/local/include/umundo/rpc.h" + "/usr/local/include/umundo/util.h" + + "/usr/local/lib/libumundo.so" + "/usr/local/lib/libumundo_d.so" + "/usr/local/lib/libumundocore.so" + "/usr/local/lib/libumundocore_d.so" + "/usr/local/lib/libumundoserial.so" + "/usr/local/lib/libumundoserial_d.so" + "/usr/local/lib/libumundorpc.so" + "/usr/local/lib/libumundorpc_d.so" + "/usr/local/lib/libumundoutil.so" + "/usr/local/lib/libumundoutil_d.so" + "/usr/local/lib/libumundoNativeJava.so" + "/usr/local/lib/libumundoNativeJava_d.so" + + "/usr/local/share/umundo/java/umundo.jar" +} +set reqFilesLinux32 [concat $reqFilesLinux32 $reqFilesDesktopCommonUnix $reqFilesAndroid $reqFilesAndroidProject $reqFilesJavaSamples $reqFilesCPPSamples] +set reqFilesLinux32 [lsort $reqFilesLinux32] +checkArchive "tar tzf ../../installer/umundo-linux-i686-*.tar.gz" Linux32 $reqFilesLinux32 + +############################# +# Validate Linux64 installers +############################# + +log_user 0 +set reqFilesLinux64 { + "/usr/local/bin/protoc-umundo-cpp-rpc" + "/usr/local/bin/umundo-pingpong" + "/usr/local/bin/umundo-monitor" + + "/usr/local/include/umundo/s11n.h" + "/usr/local/include/umundo/core.h" + "/usr/local/include/umundo/rpc.h" + "/usr/local/include/umundo/util.h" + + "/usr/local/lib/libumundo64.so" + "/usr/local/lib/libumundo64_d.so" + "/usr/local/lib/libumundocore64.so" + "/usr/local/lib/libumundocore64_d.so" + "/usr/local/lib/libumundoserial64.so" + "/usr/local/lib/libumundoserial64_d.so" + "/usr/local/lib/libumundorpc64.so" + "/usr/local/lib/libumundorpc64_d.so" + "/usr/local/lib/libumundoutil64.so" + "/usr/local/lib/libumundoutil64_d.so" + "/usr/local/lib/libumundoNativeJava64.so" + "/usr/local/lib/libumundoNativeJava64_d.so" + + "/usr/local/share/umundo/java/umundo.jar" +} +set reqFilesLinux64 [concat $reqFilesLinux64 $reqFilesDesktopCommonUnix $reqFilesAndroid $reqFilesAndroidProject $reqFilesJavaSamples $reqFilesCPPSamples] +set reqFilesLinux64 [lsort $reqFilesLinux64] +checkArchive "tar tzf ../../installer/umundo-linux-x86_64-*.tar.gz" Linux64 $reqFilesLinux64 + +############################# +# Validate Win32 installers +############################# + +log_user 0 +set reqFilesWin32 { + "/bin/protoc-umundo-cpp-rpc.exe" + "/bin/umundo-pingpong.exe" + "/bin/umundo-monitor.exe" + + "/include/umundo/s11n.h" + "/include/umundo/core.h" + "/include/umundo/rpc.h" + "/include/umundo/util.h" + + "/lib/umundo.lib" + "/lib/umundo_d.lib" + "/lib/umundocore.lib" + "/lib/umundocore_d.lib" + "/lib/umundoserial.lib" + "/lib/umundoserial_d.lib" + "/lib/umundorpc.lib" + "/lib/umundorpc_d.lib" + "/lib/umundoutil.lib" + "/lib/umundoutil_d.lib" + "/lib/umundoNativeCSharp.dll" + "/lib/umundoNativeCSharp_d.dll" + "/lib/umundoNativeJava.dll" + "/lib/umundoNativeJava_d.dll" +} +set reqFilesWin32 [concat $reqFilesWin32 $reqFilesAndroid $reqFilesCSharpProject $reqFilesAndroidProject $reqFilesJavaSamples $reqFilesCPPSamples] +set reqFilesWin32 [lsort $reqFilesWin32] +checkArchive "unzip -l ../../installer/umundo-windows-x86-*.zip" Win32 $reqFilesWin32 + +############################# +# Validate Win64 installers +############################# + +log_user 0 +set reqFilesWin64 { + "/bin/protoc-umundo-cpp-rpc.exe" + "/bin/umundo-pingpong.exe" + "/bin/umundo-monitor.exe" + + "/include/umundo/s11n.h" + "/include/umundo/core.h" + "/include/umundo/rpc.h" + "/include/umundo/util.h" + + "/lib/umundo64.lib" + "/lib/umundo64_d.lib" + "/lib/umundocore64.lib" + "/lib/umundocore64_d.lib" + "/lib/umundoserial64.lib" + "/lib/umundoserial64_d.lib" + "/lib/umundorpc64.lib" + "/lib/umundorpc64_d.lib" + "/lib/umundoutil64.lib" + "/lib/umundoutil64_d.lib" + "/lib/umundoNativeCSharp64.dll" + "/lib/umundoNativeCSharp64_d.dll" + "/lib/umundoNativeJava64.dll" + "/lib/umundoNativeJava64_d.dll" +} +set reqFilesWin64 [concat $reqFilesWin64 $reqFilesAndroid $reqFilesCSharpProject $reqFilesAndroidProject $reqFilesJavaSamples $reqFilesCPPSamples] +set reqFilesWin64 [lsort $reqFilesWin64] +checkArchive "unzip -l ../../installer/umundo-windows-x86_64-*.zip" Win64 $reqFilesWin64 + +expect $local_prompt +send "logout\n" +exit
\ No newline at end of file |