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 - ansible_facts['distribution_version'] == '20.04' 2893c9aeedSAlex Bennée 29159c5d17SCleber Rosa - name: Update apt cache / upgrade packages via apt 30159c5d17SCleber Rosa apt: 31159c5d17SCleber Rosa update_cache: yes 32159c5d17SCleber Rosa upgrade: yes 33159c5d17SCleber Rosa when: 34159c5d17SCleber Rosa - ansible_facts['distribution'] == 'Ubuntu' 35159c5d17SCleber Rosa 36f3f0cbafSThomas Huth - name: Install basic packages to build QEMU on Ubuntu 20.04 37159c5d17SCleber Rosa package: 38159c5d17SCleber Rosa name: 39159c5d17SCleber Rosa - ccache 40159c5d17SCleber Rosa - gcc 41159c5d17SCleber Rosa - gettext 42159c5d17SCleber Rosa - git 43159c5d17SCleber Rosa - glusterfs-common 44159c5d17SCleber Rosa - libaio-dev 45159c5d17SCleber Rosa - libattr1-dev 46159c5d17SCleber Rosa - libbrlapi-dev 47159c5d17SCleber Rosa - libbz2-dev 48159c5d17SCleber Rosa - libcacard-dev 49159c5d17SCleber Rosa - libcap-ng-dev 50159c5d17SCleber Rosa - libcurl4-gnutls-dev 51159c5d17SCleber Rosa - libdrm-dev 52159c5d17SCleber Rosa - libepoxy-dev 53159c5d17SCleber Rosa - libfdt-dev 54159c5d17SCleber Rosa - libgbm-dev 55159c5d17SCleber Rosa - libgtk-3-dev 56159c5d17SCleber Rosa - libibverbs-dev 57159c5d17SCleber Rosa - libiscsi-dev 58159c5d17SCleber Rosa - libjemalloc-dev 59159c5d17SCleber Rosa - libjpeg-turbo8-dev 60159c5d17SCleber Rosa - liblzo2-dev 61159c5d17SCleber Rosa - libncurses5-dev 62159c5d17SCleber Rosa - libncursesw5-dev 63159c5d17SCleber Rosa - libnfs-dev 64159c5d17SCleber Rosa - libnss3-dev 65159c5d17SCleber Rosa - libnuma-dev 66159c5d17SCleber Rosa - libpixman-1-dev 67159c5d17SCleber Rosa - librados-dev 68159c5d17SCleber Rosa - librbd-dev 69159c5d17SCleber Rosa - librdmacm-dev 70159c5d17SCleber Rosa - libsasl2-dev 71159c5d17SCleber Rosa - libsdl2-dev 72159c5d17SCleber Rosa - libseccomp-dev 73159c5d17SCleber Rosa - libsnappy-dev 74159c5d17SCleber Rosa - libspice-protocol-dev 75159c5d17SCleber Rosa - libssh-dev 76159c5d17SCleber Rosa - libusb-1.0-0-dev 77159c5d17SCleber Rosa - libusbredirhost-dev 78159c5d17SCleber Rosa - libvdeplug-dev 79159c5d17SCleber Rosa - libvte-2.91-dev 80159c5d17SCleber Rosa - libzstd-dev 81159c5d17SCleber Rosa - make 82159c5d17SCleber Rosa - python3-yaml 83159c5d17SCleber Rosa - python3-sphinx 84159c5d17SCleber Rosa - python3-sphinx-rtd-theme 85159c5d17SCleber Rosa - ninja-build 86159c5d17SCleber Rosa - sparse 87159c5d17SCleber Rosa - xfslibs-dev 88159c5d17SCleber Rosa state: present 89159c5d17SCleber Rosa when: 90159c5d17SCleber Rosa - ansible_facts['distribution'] == 'Ubuntu' 91159c5d17SCleber Rosa 92f3f0cbafSThomas Huth - name: Install packages to build QEMU on Ubuntu 20.04 on non-s390x 93159c5d17SCleber Rosa package: 94159c5d17SCleber Rosa name: 95159c5d17SCleber Rosa - libspice-server-dev 96159c5d17SCleber Rosa - libxen-dev 97159c5d17SCleber Rosa state: present 98159c5d17SCleber Rosa when: 99159c5d17SCleber Rosa - ansible_facts['distribution'] == 'Ubuntu' 100561612f9SLucas Mateus Castro (alqotel) - ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64' 101159c5d17SCleber Rosa 102159c5d17SCleber Rosa - name: Install basic packages to build QEMU on Ubuntu 20.04 103159c5d17SCleber Rosa package: 104159c5d17SCleber Rosa name: 105159c5d17SCleber Rosa # Originally from tests/docker/dockerfiles/ubuntu2004.docker 106159c5d17SCleber Rosa - clang-10 107159c5d17SCleber Rosa - genisoimage 108159c5d17SCleber Rosa - liblttng-ust-dev 109159c5d17SCleber Rosa - libslirp-dev 110159c5d17SCleber Rosa - netcat-openbsd 111159c5d17SCleber Rosa when: 112159c5d17SCleber Rosa - ansible_facts['distribution'] == 'Ubuntu' 113159c5d17SCleber Rosa - ansible_facts['distribution_version'] == '20.04' 114d7c2e2b3SCleber Rosa 11593c9aeedSAlex Bennée - name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 20.04 11693c9aeedSAlex Bennée package: 11793c9aeedSAlex Bennée name: 11893c9aeedSAlex Bennée - binutils-arm-linux-gnueabihf 11993c9aeedSAlex Bennée - gcc-arm-linux-gnueabihf 12093c9aeedSAlex Bennée - libblkid-dev:armhf 12193c9aeedSAlex Bennée - libc6-dev:armhf 12293c9aeedSAlex Bennée - libffi-dev:armhf 12393c9aeedSAlex Bennée - libglib2.0-dev:armhf 12493c9aeedSAlex Bennée - libmount-dev:armhf 12593c9aeedSAlex Bennée - libpcre2-dev:armhf 12693c9aeedSAlex Bennée - libpixman-1-dev:armhf 12793c9aeedSAlex Bennée - zlib1g-dev:armhf 12893c9aeedSAlex Bennée when: 12993c9aeedSAlex Bennée - ansible_facts['distribution'] == 'Ubuntu' 13093c9aeedSAlex Bennée - ansible_facts['distribution_version'] == '20.04' 13193c9aeedSAlex Bennée - ansible_facts['architecture'] == 'aarch64' 13293c9aeedSAlex Bennée 133d7c2e2b3SCleber Rosa - name: Install basic packages to build QEMU on EL8 134d7c2e2b3SCleber Rosa dnf: 135d7c2e2b3SCleber Rosa # This list of packages start with tests/docker/dockerfiles/centos8.docker 136d7c2e2b3SCleber Rosa # but only include files that are common to all distro variants and present 137d7c2e2b3SCleber Rosa # in the standard repos (no add-ons) 138d7c2e2b3SCleber Rosa name: 139d7c2e2b3SCleber Rosa - bzip2 140d7c2e2b3SCleber Rosa - bzip2-devel 141d7c2e2b3SCleber Rosa - dbus-daemon 142d7c2e2b3SCleber Rosa - diffutils 143d7c2e2b3SCleber Rosa - gcc 144d7c2e2b3SCleber Rosa - gcc-c++ 145d7c2e2b3SCleber Rosa - genisoimage 146d7c2e2b3SCleber Rosa - gettext 147d7c2e2b3SCleber Rosa - git 148d7c2e2b3SCleber Rosa - glib2-devel 149d7c2e2b3SCleber Rosa - libaio-devel 150d7c2e2b3SCleber Rosa - libepoxy-devel 151d7c2e2b3SCleber Rosa - libgcrypt-devel 152d7c2e2b3SCleber Rosa - lzo-devel 153d7c2e2b3SCleber Rosa - make 154d7c2e2b3SCleber Rosa - mesa-libEGL-devel 155d7c2e2b3SCleber Rosa - nettle-devel 1560f900baeSLucas Mateus Castro (alqotel) - ninja-build 157d7c2e2b3SCleber Rosa - nmap-ncat 158d7c2e2b3SCleber Rosa - perl-Test-Harness 159d7c2e2b3SCleber Rosa - pixman-devel 160d7c2e2b3SCleber Rosa - python36 161d7c2e2b3SCleber Rosa - rdma-core-devel 162d7c2e2b3SCleber Rosa - spice-glib-devel 163d7c2e2b3SCleber Rosa - systemtap-sdt-devel 164d7c2e2b3SCleber Rosa - tar 165d7c2e2b3SCleber Rosa - zlib-devel 166d7c2e2b3SCleber Rosa state: present 167d7c2e2b3SCleber Rosa when: 168d7c2e2b3SCleber Rosa - ansible_facts['distribution_file_variety'] == 'RedHat' 169d7c2e2b3SCleber Rosa - ansible_facts['distribution_version'] == '8' 170*556ede02SLucas Mateus Castro (alqotel) 171*556ede02SLucas Mateus Castro (alqotel) - name: Install packages only available on x86 and aarch64 172*556ede02SLucas Mateus Castro (alqotel) dnf: 173*556ede02SLucas Mateus Castro (alqotel) # Spice server not available in ppc64le 174*556ede02SLucas Mateus Castro (alqotel) name: 175*556ede02SLucas Mateus Castro (alqotel) - spice-server 176*556ede02SLucas Mateus Castro (alqotel) state: present 177*556ede02SLucas Mateus Castro (alqotel) when: 178*556ede02SLucas Mateus Castro (alqotel) - ansible_facts['distribution_file_variety'] == 'RedHat' 179*556ede02SLucas Mateus Castro (alqotel) - ansible_facts['distribution_version'] == '8' 180*556ede02SLucas Mateus Castro (alqotel) - ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64' 181