Browse Source

make changes for EvHttp-sharp to use bash setup script and updated mono
install process

Lita Gratrix 10 years ago
parent
commit
03cb1f58d3

+ 0 - 7
frameworks/CSharp/evhttp-sharp/bash_profile.sh

@@ -1,8 +1 @@
 #!/bin/bash
 #!/bin/bash
-
-export MONO_ROOT=${IROOT}/mono-3.6.0-install
-
-export PATH="$MONO_ROOT/bin:$PATH"
-
-# Needed to find Mono's shared libraries
-export LD_LIBRARY_PATH="$MONO_ROOT/lib"

+ 0 - 28
frameworks/CSharp/evhttp-sharp/setup.py

@@ -1,28 +0,0 @@
-import subprocess
-import sys
-import setup_util
-import os
-
-def start(args, logfile, errfile):
-  if os.name == 'nt':
-    return 1
-  
-  # build
-  subprocess.check_call("rm -rf bin obj", shell=True, cwd="evhttp-sharp", stdout=logfile, stderr=errfile)
-  subprocess.check_call("xbuild /p:Configuration=Release", shell=True, cwd="evhttp-sharp/src", stdout=logfile, stderr=errfile)
-  os.environ['MONO_GC_PARAMS']="nursery-size=64m"
-  subprocess.Popen("mono -O=all $TROOT/src/bin/Release/EvHttpSharpBenchmark.exe 127.0.0.1 8085 " + str(args.max_threads), shell=True, cwd="evhttp-sharp", stdout=logfile, stderr=errfile)
-
-def stop(logfile, errfile):
-  if os.name == 'nt':
-    return 0
-  
-  # stop mono
-  p = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE)
-  out, err = p.communicate()
-  for line in out.splitlines():
-    if 'mono' in line and not 'run-ci' in line and not 'run-tests' in line:
-      pid = int(line.split(None, 2)[1])
-      os.kill(pid, 15)
-
-  return 0

+ 15 - 0
frameworks/CSharp/evhttp-sharp/setup.sh

@@ -0,0 +1,15 @@
+#!/bin/bash
+set -e
+
+#mono environment variables
+. ${IROOT}/mono.installed
+
+#extra cleaning
+rm -rf src/bin src/obj
+
+xbuild src/EvHttpSharpBenchmark.csproj /t:Clean
+xbuild src/EvHttpSharpBenchmark.csproj /p:Configuration=Release
+
+export MONO_GC_PARAMS=nursery-size=64m
+
+mono -O=all $TROOT/src/bin/Release/EvHttpSharpBenchmark.exe 127.0.0.1 8085 $MAX_THREADS &

+ 39 - 29
toolset/setup/linux/languages/mono.sh

@@ -1,30 +1,40 @@
 #!/bin/bash
 #!/bin/bash
-
-set -x
-
-RETCODE=$(fw_exists ${IROOT}/mono.installed)
-[ ! "$RETCODE" == 0 ] || { \
-  echo "Installing RootCAs from Mozilla..."; 
-  sudo $IROOT/mono-3.6.0-install/bin/mozroots --import --sync;
-  return 0; }
-
-sudo apt-get install -y build-essential \
-             autoconf \
-             automake \
-             libtool \
-             zlib1g-dev \
-             pkg-config \
-             gettext
-
-fw_get http://download.mono-project.com/sources/mono/mono-3.6.0.tar.bz2 -O mono-3.6.0.tar.bz2
-fw_untar mono-3.6.0.tar.bz2
-
-cd mono-3.6.0
-./autogen.sh --prefix=${IROOT}/mono-3.6.0-install
-make -j4 EXTERNAL_MCS=${IROOT}/mono-3.6.0/mcs/class/lib/monolite/basic.exe
-make install
-
-echo "Installing RootCAs from Mozilla..."; 
-sudo ${IROOT}/mono-3.6.0-install/bin/mozroots --import --sync;
-
-touch ${IROOT}/mono.installed
+set -e
+RETCODE=$(fw_exists $IROOT/mono.installed)
+[ ! "$RETCODE" == 0 ] || { return 0; }
+# what do we want? latest mono
+# how do we want it? already compiled from packages but without sudo
+# save environment
+cat > $IROOT/mono.installed <<'END'
+export SNAPDATE=20150102075051
+export MONO_HOME=$IROOT/mono-snapshot-$SNAPDATE
+export MONO_PATH=$MONO_HOME/lib/mono/4.5
+export MONO_CFG_DIR=$MONO_HOME/etc
+export PATH=$MONO_HOME/bin:$PATH
+export LD_LIBRARY_PATH=$MONO_HOME/lib:$LD_LIBRARY_PATH
+export PKG_CONFIG_PATH=$MONO_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
+END
+# load environment
+. $IROOT/mono.installed
+# temp dir for extracting archives
+TEMP=$IROOT/mono-snapshot-${SNAPDATE}-temp
+# start fresh
+rm -rf $TEMP && mkdir -p $TEMP
+rm -rf $MONO_HOME && mkdir -p $MONO_HOME
+# download .debs and extract them into $TEMP dir
+fw_get http://jenkins.mono-project.com/repo/debian/pool/main/m/mono-snapshot-${SNAPDATE}/mono-snapshot-${SNAPDATE}_${SNAPDATE}-1_amd64.deb
+fw_get http://jenkins.mono-project.com/repo/debian/pool/main/m/mono-snapshot-${SNAPDATE}/mono-snapshot-${SNAPDATE}-assemblies_${SNAPDATE}-1_all.deb
+dpkg-deb -x mono-*amd64.deb $TEMP
+dpkg-deb -x mono-*assemblies*.deb $TEMP
+# move /opt/mono-$SNAPDATE to /installs
+mv $TEMP/opt/mono-*/* $MONO_HOME
+# cleanup
+rm mono-*.deb
+rm -rf $TEMP
+# replace /opt/mono-$SNAPDATE path
+file $MONO_HOME/bin/* | grep "POSIX shell script" | awk -F: '{print $1}' | xargs sed -i "s|/opt/mono-$SNAPDATE|$MONO_HOME|g"
+sed -i "s|/opt/mono-$SNAPDATE|$MONO_HOME|g" $MONO_HOME/lib/pkgconfig/*.pc $MONO_HOME/etc/mono/config
+# import SSL certificates
+mozroots --import --sync
+#echo -e 'y\ny\ny\n' | certmgr -ssl https://nuget.org
+touch $IROOT/mono.installed