From: Daniel Martí Date: Fri, 11 Mar 2016 23:53:25 +0000 (+0000) Subject: Merge branch 'master' into 'master' X-Git-Tag: 0.7.0~85 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=fc0746712d86c1474889cf70a4bb999d53edc663;hp=f267a1d7c94793dfd336f1fd4c06c75be0c70157;p=fdroidserver.git Merge branch 'master' into 'master' makebuildserver: support running VirtualBox in a VM For debian.jenkins.net, our test environment is a kvm instance that does not expose the hardware virtualization instructions. So this auto-detects whether the current machine, virtual or not, supports the hardware virtualization. If not, it uses VirtualBox's software emulator, which should run everywhere, even in a kvm instance. See merge request !108 --- diff --git a/makebuildserver b/makebuildserver index 75e3650b..6570e679 100755 --- a/makebuildserver +++ b/makebuildserver @@ -338,6 +338,20 @@ if type(config['baseboxurl']) in (list, tuple) or config['baseboxurl'][0] in ('( else: baseboxurl = '"{0}"'.format(config['baseboxurl']) +# use VirtualBox software virtualization if hardware is not available, +# like if this is being run in kvm or some other VM platform, like +# http://jenkins.debian.net, the values are 'on' or 'off' +hwvirtex = 'off' +if sys.platform.startswith('darwin'): + # all < 10 year old Macs work, and OSX servers as VM host are very + # rare, but this could also be auto-detected if someone codes it + hwvirtex = 'on' +elif os.path.exists('/proc/cpuinfo'): + with open('/proc/cpuinfo') as f: + contents = f.read() + if 'vmx' in contents or 'svm' in contents: + hwvirtex = 'on' + # Generate an appropriate Vagrantfile for the buildserver, based on our # settings... vagrantfile = """ @@ -356,15 +370,17 @@ Vagrant.configure("2") do |config| config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", "{2}"] v.customize ["modifyvm", :id, "--cpus", "{3}"] + v.customize ["modifyvm", :id, "--hwvirtex", "{4}"] end - config.vm.boot_timeout = {4} + config.vm.boot_timeout = {5} config.vm.provision :shell, :path => "fixpaths.sh" """.format(config['basebox'], baseboxurl, config['memory'], config.get('cpus', 1), + hwvirtex, config['boot_timeout']) if 'aptproxy' in config and config['aptproxy']: vagrantfile += """ diff --git a/setup.cfg b/setup.cfg index bbd3a2ab..069fb320 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,5 +2,5 @@ description-file = README.md [aliases] -release = register sdist --sign upload +release = register sdist upload --sign