chiark / gitweb /
buildserver: move apt setup to a shell script
authorHans-Christoph Steiner <hans@eds.org>
Mon, 4 Jul 2016 11:52:19 +0000 (13:52 +0200)
committerHans-Christoph Steiner <hans@eds.org>
Mon, 4 Jul 2016 21:54:52 +0000 (23:54 +0200)
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.

buildserver/cookbooks/fdroidbuild-general/recipes/default.rb
buildserver/cookbooks/kivy/recipes/default.rb
buildserver/provision-apt-get-install [new file with mode: 0644]
makebuildserver

index 3e0ace87cbc32f309266c0f98ee4a41f6b4bb570..c93722f2018d3a7128cc02e6987268dad5913432 100644 (file)
@@ -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
index 9b8a1caaddd6cfce82848ddba852e7878a1e88b5..426991034eae74e8a739ba298b388fe298a11615 100644 (file)
@@ -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 (file)
index 0000000..276d178
--- /dev/null
@@ -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
index b4c900ef8114d963dd9fa645f31bb8272e25495b..0b1da7331a6f962f4625fdc6ba3a70b477f0c26c 100755 (executable)
@@ -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