10eb7fadcSAlex Bennée# Copyright (c) 2021 Red Hat, Inc.
20eb7fadcSAlex Bennée#
30eb7fadcSAlex Bennée# Author:
40eb7fadcSAlex Bennée#  Cleber Rosa <crosa@redhat.com>
50eb7fadcSAlex Bennée#
60eb7fadcSAlex Bennée# This work is licensed under the terms of the GNU GPL, version 2 or
70eb7fadcSAlex Bennée# later.  See the COPYING file in the top-level directory.
80eb7fadcSAlex Bennée#
90eb7fadcSAlex Bennée# This is an ansible playbook file.  Run it to set up systems with the
100eb7fadcSAlex Bennée# environment needed to build QEMU.
110eb7fadcSAlex Bennée---
120eb7fadcSAlex Bennée- name: Installation of basic packages to build QEMU
130eb7fadcSAlex Bennée  hosts: all
140eb7fadcSAlex Bennée  tasks:
150eb7fadcSAlex Bennée    - name: Check for suitable ansible version
160eb7fadcSAlex Bennée      delegate_to: localhost
170eb7fadcSAlex Bennée      assert:
180eb7fadcSAlex Bennée        that:
190eb7fadcSAlex Bennée          - '((ansible_version.major == 2) and (ansible_version.minor >= 8)) or (ansible_version.major >= 3)'
200eb7fadcSAlex Bennée        msg: "Unsuitable ansible version, please use version 2.8.0 or later"
210eb7fadcSAlex Bennée
220eb7fadcSAlex Bennée    - name: Add armhf foreign architecture to aarch64 hosts
230eb7fadcSAlex Bennée      command: dpkg --add-architecture armhf
240eb7fadcSAlex Bennée      when:
250eb7fadcSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
260eb7fadcSAlex Bennée        - ansible_facts['architecture'] == 'aarch64'
270eb7fadcSAlex Bennée
280eb7fadcSAlex Bennée    - name: Update apt cache / upgrade packages via apt
290eb7fadcSAlex Bennée      apt:
300eb7fadcSAlex Bennée        update_cache: yes
310eb7fadcSAlex Bennée        upgrade: yes
320eb7fadcSAlex Bennée      when:
330eb7fadcSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
340eb7fadcSAlex Bennée
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"
390eb7fadcSAlex Bennée      when:
400eb7fadcSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
410eb7fadcSAlex Bennée        - ansible_facts['distribution_version'] == '22.04'
42*c99064d0SAlex Bennée        - ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64'
430eb7fadcSAlex Bennée
44*c99064d0SAlex Bennée    - name: Install packages for QEMU on Ubuntu 22.04
450eb7fadcSAlex Bennée      package:
46*c99064d0SAlex Bennée        name: "{{ packages }}"
470eb7fadcSAlex Bennée      when:
480eb7fadcSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
490eb7fadcSAlex Bennée        - ansible_facts['distribution_version'] == '22.04'
500eb7fadcSAlex Bennée        - ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64'
510eb7fadcSAlex Bennée
520eb7fadcSAlex Bennée    - name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 22.04
530eb7fadcSAlex Bennée      package:
540eb7fadcSAlex Bennée        name:
550eb7fadcSAlex Bennée          - binutils-arm-linux-gnueabihf
560eb7fadcSAlex Bennée          - gcc-arm-linux-gnueabihf
570eb7fadcSAlex Bennée          - libblkid-dev:armhf
580eb7fadcSAlex Bennée          - libc6-dev:armhf
590eb7fadcSAlex Bennée          - libffi-dev:armhf
600eb7fadcSAlex Bennée          - libglib2.0-dev:armhf
610eb7fadcSAlex Bennée          - libmount-dev:armhf
620eb7fadcSAlex Bennée          - libpcre2-dev:armhf
630eb7fadcSAlex Bennée          - libpixman-1-dev:armhf
640eb7fadcSAlex Bennée          - zlib1g-dev:armhf
650eb7fadcSAlex Bennée      when:
660eb7fadcSAlex Bennée        - ansible_facts['distribution'] == 'Ubuntu'
670eb7fadcSAlex Bennée        - ansible_facts['distribution_version'] == '22.04'
680eb7fadcSAlex Bennée        - ansible_facts['architecture'] == 'aarch64'
690eb7fadcSAlex Bennée
70