From aafad6b909f3486fbcd4ddf02bca706fe9e1f283 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 4 Jul 2016 13:52:19 +0200 Subject: [PATCH] buildserver: move apt setup to a shell script This makes it so there is only a single `apt-get install` command run, instead of one command per-package like with the chef script. It also adds `apt-get upgrade` to make sure that the base box is fully up-to-date. --- .../fdroidbuild-general/recipes/default.rb | 115 ------------------ buildserver/cookbooks/kivy/recipes/default.rb | 2 - buildserver/provision-apt-get-install | 90 ++++++++++++++ makebuildserver | 10 +- 4 files changed, 93 insertions(+), 124 deletions(-) create mode 100644 buildserver/provision-apt-get-install diff --git a/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb b/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb index 3e0ace87..c93722f2 100644 --- a/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb +++ b/buildserver/cookbooks/fdroidbuild-general/recipes/default.rb @@ -1,120 +1,5 @@ -user = node[:settings][:user] -debian_mirror = node[:settings][:debian_mirror] - -execute 'set_debian_mirror' do - command "sed -i 's,http://ftp.uk.debian.org/debian/,#{debian_mirror},g' /etc/apt/sources.list" -end - -execute "jessie_backports" do - command "echo 'deb #{debian_mirror} jessie-backports main' > /etc/apt/sources.list.d/backports.list" - only_if "grep jessie /etc/apt/sources.list" -end - -if node['kernel']['machine'] == "x86_64" - execute "archi386" do - command "dpkg --add-architecture i386" - end -end - -execute "apt-get-update" do - command "apt-get update" -end - -%w{ - ant - ant-contrib - autoconf - autoconf2.13 - automake1.11 - autopoint - bison - bzr - cmake - curl - expect - faketime - flex - gettext - git-core - git-svn - gperf - graphviz - imagemagick - inkscape - javacc - libarchive-zip-perl - libexpat1-dev - libglib2.0-dev - liblzma-dev - librsvg2-bin - libsaxonb-java - libssl-dev - libssl1.0.0 - libtool - libtool-bin - make - maven - }.each do |pkg| - package pkg do - action :install - end -end - -%w{ - mercurial - nasm - openjdk-8-jdk-headless - optipng - p7zip - pandoc - perlmagick - pkg-config - python-gnupg - python-magic - python-setuptools - python3-gnupg - python3-requests - python3-yaml - qt5-default - qtbase5-dev - quilt - realpath - scons - subversion - swig - texinfo - transfig - unzip - vorbis-tools - xsltproc - yasm - zip - }.each do |pkg| - package pkg do - action :install - end -end - -if node['kernel']['machine'] == "x86_64" - %w{libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386}.each do |pkg| - package pkg do - action :install - end - end -end - easy_install_package "compare-locales" do options "-U" action :install end - -if node['kernel']['machine'] == "x86_64" - execute "set-default-java" do - command "update-java-alternatives --set java-1.8.0-openjdk-amd64" - end -else - execute "set-default-java" do - command "update-java-alternatives --set java-1.8.0-openjdk-i386" - end -end diff --git a/buildserver/cookbooks/kivy/recipes/default.rb b/buildserver/cookbooks/kivy/recipes/default.rb index 9b8a1caa..42699103 100644 --- a/buildserver/cookbooks/kivy/recipes/default.rb +++ b/buildserver/cookbooks/kivy/recipes/default.rb @@ -1,6 +1,4 @@ -user = node[:settings][:user] - %w{cython python-pygame python-pip python-virtualenv python-opengl python-gst0.10 python-enchant libgl1-mesa-dev libgles2-mesa-dev}.each do |pkg| package pkg do action :install diff --git a/buildserver/provision-apt-get-install b/buildserver/provision-apt-get-install new file mode 100644 index 00000000..276d1787 --- /dev/null +++ b/buildserver/provision-apt-get-install @@ -0,0 +1,90 @@ +#!/bin/bash + +set -e +set -x + +debian_mirror=$1 + +sed -i "s,http://ftp.uk.debian.org/debian/,${debian_mirror},g" /etc/apt/sources.list + +if grep --quiet jessie /etc/apt/sources.list; then + echo "deb $debian_mirror jessie-backports main" > /etc/apt/sources.list.d/backports.list +fi + +dpkg --add-architecture i386 + +apt-get -y update +apt-get -y upgrade + +packages=" + ant + ant-contrib + autoconf + autoconf2.13 + automake1.11 + autopoint + bison + bzr + cmake + curl + expect + faketime + flex + gettext + git-core + git-svn + gperf + graphviz + imagemagick + inkscape + javacc + libarchive-zip-perl + libexpat1-dev + libgcc1:i386 + libglib2.0-dev + liblzma-dev + libncurses5:i386 + librsvg2-bin + libsaxonb-java + libssl-dev + libssl1.0.0 + libstdc++6:i386 + libtool + libtool-bin + make + maven + mercurial + nasm + openjdk-8-jdk-headless + optipng + p7zip + pandoc + perlmagick + pkg-config + python-gnupg + python-magic + python-setuptools + python3-gnupg + python3-requests + python3-yaml + qt5-default + qtbase5-dev + quilt + realpath + scons + subversion + swig + texinfo + transfig + unzip + vorbis-tools + xsltproc + yasm + zip + zlib1g:i386 +" + +apt-get install --yes --no-install-recommends $packages + +highestjava=`update-java-alternatives --list | sort -n | tail -1 | cut -d ' ' -f 1` +update-java-alternatives --set $highestjava diff --git a/makebuildserver b/makebuildserver index b4c900ef..0b1da733 100755 --- a/makebuildserver +++ b/makebuildserver @@ -377,16 +377,12 @@ vagrantfile += """ config.vm.provision "shell", path: "setup-env-vars", args: ["/home/vagrant/android-sdk"] + config.vm.provision "shell", path: "provision-apt-get-install", + args: ["{0}"] config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "cookbooks" chef.log_level = :debug - chef.json = { - :settings => { - :debian_mirror => "%s", - :user => "vagrant" - } - } chef.add_recipe "fdroidbuild-general" chef.add_recipe "kivy" end @@ -404,7 +400,7 @@ vagrantfile += """ end end -""" % config['debian_mirror'] +""".format(config['debian_mirror']) # Check against the existing Vagrantfile, and if they differ, we need to -- 2.30.2