xref: /qemu/scripts/ci/setup/build-environment.yml (revision b83a80e8)
1# Copyright (c) 2021 Red Hat, Inc.
2#
3# Author:
4#  Cleber Rosa <crosa@redhat.com>
5#
6# This work is licensed under the terms of the GNU GPL, version 2 or
7# later.  See the COPYING file in the top-level directory.
8#
9# This is an ansible playbook file.  Run it to set up systems with the
10# environment needed to build QEMU.
11---
12- name: Installation of basic packages to build QEMU
13  hosts: all
14  tasks:
15    - name: Check for suitable ansible version
16      delegate_to: localhost
17      assert:
18        that:
19          - '((ansible_version.major == 2) and (ansible_version.minor >= 8)) or (ansible_version.major >= 3)'
20        msg: "Unsuitable ansible version, please use version 2.8.0 or later"
21
22    - name: Update apt cache / upgrade packages via apt
23      apt:
24        update_cache: yes
25        upgrade: yes
26      when:
27        - ansible_facts['distribution'] == 'Ubuntu'
28
29    - name: Install basic packages to build QEMU on Ubuntu 18.04/20.04
30      package:
31        name:
32        # Originally from tests/docker/dockerfiles/ubuntu1804.docker
33          - ccache
34          - gcc
35          - gettext
36          - git
37          - glusterfs-common
38          - libaio-dev
39          - libattr1-dev
40          - libbrlapi-dev
41          - libbz2-dev
42          - libcacard-dev
43          - libcap-ng-dev
44          - libcurl4-gnutls-dev
45          - libdrm-dev
46          - libepoxy-dev
47          - libfdt-dev
48          - libgbm-dev
49          - libgtk-3-dev
50          - libibverbs-dev
51          - libiscsi-dev
52          - libjemalloc-dev
53          - libjpeg-turbo8-dev
54          - liblzo2-dev
55          - libncurses5-dev
56          - libncursesw5-dev
57          - libnfs-dev
58          - libnss3-dev
59          - libnuma-dev
60          - libpixman-1-dev
61          - librados-dev
62          - librbd-dev
63          - librdmacm-dev
64          - libsasl2-dev
65          - libsdl2-dev
66          - libseccomp-dev
67          - libsnappy-dev
68          - libspice-protocol-dev
69          - libssh-dev
70          - libusb-1.0-0-dev
71          - libusbredirhost-dev
72          - libvdeplug-dev
73          - libvte-2.91-dev
74          - libzstd-dev
75          - make
76          - python3-yaml
77          - python3-sphinx
78          - python3-sphinx-rtd-theme
79          - ninja-build
80          - sparse
81          - xfslibs-dev
82        state: present
83      when:
84        - ansible_facts['distribution'] == 'Ubuntu'
85
86    - name: Install packages to build QEMU on Ubuntu 18.04/20.04 on non-s390x
87      package:
88        name:
89          - libspice-server-dev
90          - libxen-dev
91        state: present
92      when:
93        - ansible_facts['distribution'] == 'Ubuntu'
94        - ansible_facts['architecture'] != 's390x'
95
96    - name: Install basic packages to build QEMU on Ubuntu 18.04
97      package:
98        name:
99        # Originally from tests/docker/dockerfiles/ubuntu1804.docker
100          - clang
101      when:
102        - ansible_facts['distribution'] == 'Ubuntu'
103        - ansible_facts['distribution_version'] == '18.04'
104
105    - name: Install basic packages to build QEMU on Ubuntu 20.04
106      package:
107        name:
108        # Originally from tests/docker/dockerfiles/ubuntu2004.docker
109          - clang-10
110          - genisoimage
111          - liblttng-ust-dev
112          - libslirp-dev
113          - netcat-openbsd
114      when:
115        - ansible_facts['distribution'] == 'Ubuntu'
116        - ansible_facts['distribution_version'] == '20.04'
117
118    - name: Install basic packages to build QEMU on EL8
119      dnf:
120        # This list of packages start with tests/docker/dockerfiles/centos8.docker
121        # but only include files that are common to all distro variants and present
122        # in the standard repos (no add-ons)
123        name:
124          - bzip2
125          - bzip2-devel
126          - dbus-daemon
127          - diffutils
128          - gcc
129          - gcc-c++
130          - genisoimage
131          - gettext
132          - git
133          - glib2-devel
134          - libaio-devel
135          - libepoxy-devel
136          - libgcrypt-devel
137          - lzo-devel
138          - make
139          - mesa-libEGL-devel
140          - nettle-devel
141          - nmap-ncat
142          - perl-Test-Harness
143          - pixman-devel
144          - python36
145          - rdma-core-devel
146          - spice-glib-devel
147          - spice-server
148          - systemtap-sdt-devel
149          - tar
150          - zlib-devel
151        state: present
152      when:
153        - ansible_facts['distribution_file_variety'] == 'RedHat'
154        - ansible_facts['distribution_version'] == '8'
155