mono.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/bin/bash
  2. RETCODE=$(fw_exists $IROOT/mono.installed)
  3. [ ! "$RETCODE" == 0 ] || { \
  4. # Load environment variables
  5. source $IROOT/mono.installed
  6. return 0; }
  7. # what do we want? latest mono
  8. # how do we want it? already compiled from packages but without sudo apt-get
  9. # See https://github.com/TechEmpower/FrameworkBenchmarks/pull/1287
  10. # Add source for prepackaged binaries
  11. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
  12. echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list
  13. sudo apt-get update
  14. # Find the most recent snapshot
  15. #SNAPSHOT=$(apt-cache search 'mono-snapshot-.*-assemblies' | cut -d'-' -f3 | tail -1)
  16. # REMARK:
  17. # Rollback this after I execute above command manually due to "msmith-techempower"'s request.
  18. # According to him "apt-get to install mono is not stable", so keep this way.
  19. # If you see mono fail, please doubt this SNAPSHOT and execute above command manually, then
  20. # copy and paste the value to SNAPSHOT variable just like below.
  21. SNAPSHOT="2016.01.04+14.28.05"
  22. # save environment
  23. MONO_HOME=$IROOT/mono-snapshot-$SNAPSHOT
  24. echo "export SNAPSHOT=$SNAPSHOT" > $IROOT/mono.installing
  25. echo "export MONO_HOME=$MONO_HOME" >> $IROOT/mono.installing
  26. echo "export MONO_PATH=$MONO_HOME/lib/mono/4.5" >> $IROOT/mono.installing
  27. echo "export MONO_CFG_DIR=$MONO_HOME/etc" >> $IROOT/mono.installing
  28. echo -e "export PATH=$MONO_HOME/bin:\$PATH" >> $IROOT/mono.installing
  29. echo -e "export LD_LIBRARY_PATH=$MONO_HOME/lib:\$LD_LIBRARY_PATH" >> $IROOT/mono.installing
  30. echo -e "export PKG_CONFIG_PATH=$MONO_HOME/lib/pkgconfig:\$PKG_CONFIG_PATH" >> $IROOT/mono.installing
  31. # load environment
  32. source $IROOT/mono.installing
  33. # start fresh
  34. rm -rf $MONO_HOME && mkdir -p $MONO_HOME
  35. # Download and extract debs
  36. fw_apt_to_iroot mono-snapshot-$SNAPSHOT
  37. fw_apt_to_iroot mono-snapshot-$SNAPSHOT-assemblies mono-snapshot-$SNAPSHOT
  38. # Simplify paths
  39. sudo mv $MONO_HOME/opt/mono-*/* $MONO_HOME
  40. file $MONO_HOME/bin/* | grep "POSIX shell script" | awk -F: '{print $1}' | xargs sudo sed -i "s|/opt/mono-$SNAPSHOT|$MONO_HOME|g"
  41. sudo sed -i "s|/opt/mono-$SNAPSHOT|$MONO_HOME|g" $MONO_HOME/lib/pkgconfig/*.pc $MONO_HOME/etc/mono/config
  42. echo "mozroots --import --sync" >> $IROOT/mono.installing
  43. sudo mv $IROOT/mono.installing $IROOT/mono.installed
  44. source $IROOT/mono.installed