mono.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/bin/bash
  2. set -ex
  3. RETCODE=$(fw_exists $IROOT/mono.installed)
  4. [ ! "$RETCODE" == 0 ] || { \
  5. echo "Installing RootCAs from Mozilla...";
  6. # Load environment variables
  7. . $IROOT/mono.installed
  8. mozroots --import --sync;
  9. return 0; }
  10. # what do we want? latest mono
  11. # how do we want it? already compiled from packages but without sudo apt-get
  12. # See https://github.com/TechEmpower/FrameworkBenchmarks/pull/1287
  13. # Add source for prepackaged binaries
  14. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
  15. echo "deb http://jenkins.mono-project.com/repo/debian sid main" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list
  16. sudo apt-get update
  17. # Find the most recent snapshot
  18. SNAPSHOT=$(apt-cache search 'mono-snapshot-.*-assemblies' | cut -d'-' -f3 | tail -1)
  19. # save environment
  20. echo "export SNAPDATE=$SNAPSHOT" > $IROOT/mono.installing
  21. cat >> $IROOT/mono.installing <<'END'
  22. export MONO_HOME=$IROOT/mono-snapshot-$SNAPDATE
  23. export MONO_PATH=$MONO_HOME/lib/mono/4.5
  24. export MONO_CFG_DIR=$MONO_HOME/etc
  25. export PATH=$MONO_HOME/bin:$PATH
  26. export LD_LIBRARY_PATH=$MONO_HOME/lib:$LD_LIBRARY_PATH
  27. export PKG_CONFIG_PATH=$MONO_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
  28. END
  29. # load environment
  30. . $IROOT/mono.installing
  31. # start fresh
  32. rm -rf $MONO_HOME && mkdir -p $MONO_HOME
  33. # Download and extract debs
  34. fw_apt_to_iroot mono-snapshot-$SNAPSHOT
  35. fw_apt_to_iroot mono-snapshot-${SNAPSHOT}-assemblies mono-snapshot-$SNAPSHOT
  36. # Simplify paths
  37. mv $MONO_HOME/opt/mono-*/* $MONO_HOME
  38. file $MONO_HOME/bin/* | grep "POSIX shell script" | awk -F: '{print $1}' | xargs sed -i "s|/opt/mono-$SNAPDATE|$MONO_HOME|g"
  39. sed -i "s|/opt/mono-$SNAPDATE|$MONO_HOME|g" $MONO_HOME/lib/pkgconfig/*.pc $MONO_HOME/etc/mono/config
  40. # import SSL certificates
  41. mozroots --import --sync
  42. #echo -e 'y\ny\ny\n' | certmgr -ssl https://nuget.org
  43. mv $IROOT/mono.installing $IROOT/mono.installed