xref: /qemu/scripts/ci/setup/ubuntu/build-environment.yml (revision 7f117cbb464b2e25f3de25e7487e495c29a4ea03)
1159c5d17SCleber Rosa# Copyright (c) 2021 Red Hat, Inc.
2159c5d17SCleber Rosa#
3159c5d17SCleber Rosa# Author:
4159c5d17SCleber Rosa#  Cleber Rosa <crosa@redhat.com>
5159c5d17SCleber Rosa#
6159c5d17SCleber Rosa# This work is licensed under the terms of the GNU GPL, version 2 or
7159c5d17SCleber Rosa# later.  See the COPYING file in the top-level directory.
8159c5d17SCleber Rosa#
9159c5d17SCleber Rosa# This is an ansible playbook file.  Run it to set up systems with the
10159c5d17SCleber Rosa# environment needed to build QEMU.
11159c5d17SCleber Rosa---
12159c5d17SCleber Rosa- name: Installation of basic packages to build QEMU
13159c5d17SCleber Rosa  hosts: all
14159c5d17SCleber Rosa  tasks:
15159c5d17SCleber Rosa    - name: Check for suitable ansible version
16159c5d17SCleber Rosa      delegate_to: localhost
17159c5d17SCleber Rosa      assert:
18159c5d17SCleber Rosa        that:
19159c5d17SCleber Rosa          - '((ansible_version.major == 2) and (ansible_version.minor >= 8)) or (ansible_version.major >= 3)'
20159c5d17SCleber Rosa        msg: "Unsuitable ansible version, please use version 2.8.0 or later"
21159c5d17SCleber Rosa
2293c9aeedSAlex Bennée    - name: Add armhf foreign architecture to aarch64 hosts
2393c9aeedSAlex Bennée      command: dpkg --add-architecture armhf
2493c9aeedSAlex Bennée      when:
2593c9aeedSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
2693c9aeedSAlex Bennée        - ansible_facts['architecture'] == 'aarch64'
2793c9aeedSAlex Bennée
28159c5d17SCleber Rosa    - name: Update apt cache / upgrade packages via apt
29159c5d17SCleber Rosa      apt:
30159c5d17SCleber Rosa        update_cache: yes
31159c5d17SCleber Rosa        upgrade: yes
32159c5d17SCleber Rosa      when:
33159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
34159c5d17SCleber Rosa
35*c99064d0SAlex Bennée    # the package lists are updated by "make lcitool-refresh"
36*c99064d0SAlex Bennée    - name: Include package lists based on OS and architecture
37*c99064d0SAlex Bennée      include_vars:
38*c99064d0SAlex Bennée        file: "ubuntu-2204-{{ ansible_facts['architecture'] }}.yaml"
39159c5d17SCleber Rosa      when:
40159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
41c1924cdeSAlex Bennée        - ansible_facts['distribution_version'] == '22.04'
42159c5d17SCleber Rosa
43*c99064d0SAlex Bennée    - name: Install packages for QEMU on Ubuntu 22.04
4483561896SAlex Bennée      package:
45*c99064d0SAlex Bennée        name: "{{ packages }}"
4683561896SAlex Bennée      when:
4783561896SAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
4883561896SAlex Bennée        - ansible_facts['distribution_version'] == '22.04'
4983561896SAlex Bennée
50c1924cdeSAlex Bennée    - name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 22.04
5193c9aeedSAlex Bennée      package:
5293c9aeedSAlex Bennée        name:
5393c9aeedSAlex Bennée          - binutils-arm-linux-gnueabihf
5493c9aeedSAlex Bennée          - gcc-arm-linux-gnueabihf
5593c9aeedSAlex Bennée          - libblkid-dev:armhf
5693c9aeedSAlex Bennée          - libc6-dev:armhf
5793c9aeedSAlex Bennée          - libffi-dev:armhf
5893c9aeedSAlex Bennée          - libglib2.0-dev:armhf
5993c9aeedSAlex Bennée          - libmount-dev:armhf
6093c9aeedSAlex Bennée          - libpcre2-dev:armhf
6193c9aeedSAlex Bennée          - libpixman-1-dev:armhf
6293c9aeedSAlex Bennée          - zlib1g-dev:armhf
6393c9aeedSAlex Bennée      when:
6493c9aeedSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
65c1924cdeSAlex Bennée        - ansible_facts['distribution_version'] == '22.04'
6693c9aeedSAlex Bennée        - ansible_facts['architecture'] == 'aarch64'
6793c9aeedSAlex Bennée
68