|  | @@ -55,7 +55,10 @@ sudo apt-get install -y \
 | 
	
		
			
				|  |  |    libc6 \
 | 
	
		
			
				|  |  |    libc6-dbg \
 | 
	
		
			
				|  |  |    libc6-dev \
 | 
	
		
			
				|  |  | +  libcurl4-openssl-dev \
 | 
	
		
			
				|  |  |    libgtest-dev \
 | 
	
		
			
				|  |  | +  libreadline-dev \
 | 
	
		
			
				|  |  | +  libssl-dev \
 | 
	
		
			
				|  |  |    libtool \
 | 
	
		
			
				|  |  |    make \
 | 
	
		
			
				|  |  |    strace \
 | 
	
	
		
			
				|  | @@ -71,7 +74,8 @@ sudo apt-get install -y \
 | 
	
		
			
				|  |  |    telnet \
 | 
	
		
			
				|  |  |    unzip \
 | 
	
		
			
				|  |  |    wget \
 | 
	
		
			
				|  |  | -  zip
 | 
	
		
			
				|  |  | +  zip \
 | 
	
		
			
				|  |  | +  zlib1g-dev
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # perftools
 | 
	
		
			
				|  |  |  sudo apt-get install -y google-perftools libgoogle-perftools-dev
 | 
	
	
		
			
				|  | @@ -87,14 +91,15 @@ sudo pip install tabulate
 | 
	
		
			
				|  |  |  sudo pip install google-api-python-client
 | 
	
		
			
				|  |  |  sudo pip install virtualenv
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -# TODO(jtattermusch): For some reason, building gRPC Python depends on python3.4
 | 
	
		
			
				|  |  | -# being installed, but python3.4 is not available on Ubuntu 16.04.
 | 
	
		
			
				|  |  | -# Temporarily fixing this by adding a PPA with python3.4, but we should
 | 
	
		
			
				|  |  | -# really remove this hack once possible.
 | 
	
		
			
				|  |  | -sudo add-apt-repository -y ppa:fkrull/deadsnakes
 | 
	
		
			
				|  |  | -sudo apt-get update
 | 
	
		
			
				|  |  | -sudo apt-get install -y python3.4 python3.4-dev
 | 
	
		
			
				|  |  | -python3.4 -m pip install virtualenv
 | 
	
		
			
				|  |  | +# Building gRPC Python depends on python3.4 being installed, but python3.4
 | 
	
		
			
				|  |  | +# is not available on Ubuntu 16.10, so install from source
 | 
	
		
			
				|  |  | +curl -O https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tgz
 | 
	
		
			
				|  |  | +tar xzvf Python-3.4.6.tgz
 | 
	
		
			
				|  |  | +cd Python-3.4.6
 | 
	
		
			
				|  |  | +./configure --enable-shared --prefix=/usr/local LDFLAGS="-Wl,--rpath=/usr/local/lib"
 | 
	
		
			
				|  |  | +sudo make altinstall
 | 
	
		
			
				|  |  | +cd ..
 | 
	
		
			
				|  |  | +rm Python-3.4.6.tgz
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  curl -O https://bootstrap.pypa.io/get-pip.py
 | 
	
		
			
				|  |  |  sudo pypy get-pip.py
 | 
	
	
		
			
				|  | @@ -117,18 +122,25 @@ sudo apt-get update
 | 
	
		
			
				|  |  |  sudo apt-get install -y mono-devel nuget
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # C# .NET Core dependencies (https://www.microsoft.com/net/core#ubuntu)
 | 
	
		
			
				|  |  | -sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
 | 
	
		
			
				|  |  | +sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list'
 | 
	
		
			
				|  |  |  sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
 | 
	
		
			
				|  |  |  sudo apt-get update
 | 
	
		
			
				|  |  | -sudo apt-get install -y dotnet-dev-1.0.0-preview2-003131
 | 
	
		
			
				|  |  | +sudo apt-get install -y dotnet-dev-1.0.0-preview2.1-003155
 | 
	
		
			
				|  |  |  sudo apt-get install -y dotnet-dev-1.0.1
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # Ruby dependencies
 | 
	
		
			
				|  |  | -gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
 | 
	
		
			
				|  |  | -curl -sSL https://get.rvm.io | bash -s stable --ruby
 | 
	
		
			
				|  |  | +git clone https://github.com/rbenv/rbenv.git ~/.rbenv
 | 
	
		
			
				|  |  | +export PATH="$HOME/.rbenv/bin:$PATH"
 | 
	
		
			
				|  |  | +eval "$(rbenv init -)"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
 | 
	
		
			
				|  |  | +export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +rbenv install 2.4.0
 | 
	
		
			
				|  |  | +rbenv global 2.4.0
 | 
	
		
			
				|  |  | +ruby -v
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # Install bundler (prerequisite for gRPC Ruby)
 | 
	
		
			
				|  |  | -source ~/.rvm/scripts/rvm
 | 
	
		
			
				|  |  |  gem install bundler
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # Java dependencies - nothing as we already have Java JDK 8
 | 
	
	
		
			
				|  | @@ -163,15 +175,7 @@ echo 4096 | sudo tee /proc/sys/kernel/perf_event_mlock_kb
 | 
	
		
			
				|  |  |  git clone -v https://github.com/brendangregg/FlameGraph ~/FlameGraph
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # Install scipy and numpy for benchmarking scripts
 | 
	
		
			
				|  |  | -sudo apt-get install python-scipy python-numpy
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -# Update Linux kernel to 4.9
 | 
	
		
			
				|  |  | -wget \
 | 
	
		
			
				|  |  | -  kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.20/linux-headers-4.9.20-040920_4.9.20-040920.201703310531_all.deb \
 | 
	
		
			
				|  |  | -  kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.20/linux-headers-4.9.20-040920-generic_4.9.20-040920.201703310531_amd64.deb \
 | 
	
		
			
				|  |  | -  kernel.ubuntu.com/~kernel-ppa/mainline/v4.9.20/linux-image-4.9.20-040920-generic_4.9.20-040920.201703310531_amd64.deb
 | 
	
		
			
				|  |  | -sudo dpkg -i linux-headers-4.9*.deb linux-image-4.9*.deb
 | 
	
		
			
				|  |  | -rm linux-*
 | 
	
		
			
				|  |  | +sudo apt-get install -y python-scipy python-numpy
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # Add pubkey of jenkins@grpc-jenkins-master to authorized keys of jenkins@
 | 
	
		
			
				|  |  |  # This needs to happen as the last step to prevent Jenkins master from connecting
 |