xref: /qemu/scripts/ci/setup/ubuntu/build-environment.yml (revision 159c5d177bf6f0caf1efb85b850b200ac7043c49)
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
22159c5d17SCleber Rosa    - name: Update apt cache / upgrade packages via apt
23159c5d17SCleber Rosa      apt:
24159c5d17SCleber Rosa        update_cache: yes
25159c5d17SCleber Rosa        upgrade: yes
26159c5d17SCleber Rosa      when:
27159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
28159c5d17SCleber Rosa
29159c5d17SCleber Rosa    - name: Install basic packages to build QEMU on Ubuntu 18.04/20.04
30159c5d17SCleber Rosa      package:
31159c5d17SCleber Rosa        name:
32159c5d17SCleber Rosa        # Originally from tests/docker/dockerfiles/ubuntu1804.docker
33159c5d17SCleber Rosa          - ccache
34159c5d17SCleber Rosa          - gcc
35159c5d17SCleber Rosa          - gettext
36159c5d17SCleber Rosa          - git
37159c5d17SCleber Rosa          - glusterfs-common
38159c5d17SCleber Rosa          - libaio-dev
39159c5d17SCleber Rosa          - libattr1-dev
40159c5d17SCleber Rosa          - libbrlapi-dev
41159c5d17SCleber Rosa          - libbz2-dev
42159c5d17SCleber Rosa          - libcacard-dev
43159c5d17SCleber Rosa          - libcap-ng-dev
44159c5d17SCleber Rosa          - libcurl4-gnutls-dev
45159c5d17SCleber Rosa          - libdrm-dev
46159c5d17SCleber Rosa          - libepoxy-dev
47159c5d17SCleber Rosa          - libfdt-dev
48159c5d17SCleber Rosa          - libgbm-dev
49159c5d17SCleber Rosa          - libgtk-3-dev
50159c5d17SCleber Rosa          - libibverbs-dev
51159c5d17SCleber Rosa          - libiscsi-dev
52159c5d17SCleber Rosa          - libjemalloc-dev
53159c5d17SCleber Rosa          - libjpeg-turbo8-dev
54159c5d17SCleber Rosa          - liblzo2-dev
55159c5d17SCleber Rosa          - libncurses5-dev
56159c5d17SCleber Rosa          - libncursesw5-dev
57159c5d17SCleber Rosa          - libnfs-dev
58159c5d17SCleber Rosa          - libnss3-dev
59159c5d17SCleber Rosa          - libnuma-dev
60159c5d17SCleber Rosa          - libpixman-1-dev
61159c5d17SCleber Rosa          - librados-dev
62159c5d17SCleber Rosa          - librbd-dev
63159c5d17SCleber Rosa          - librdmacm-dev
64159c5d17SCleber Rosa          - libsasl2-dev
65159c5d17SCleber Rosa          - libsdl2-dev
66159c5d17SCleber Rosa          - libseccomp-dev
67159c5d17SCleber Rosa          - libsnappy-dev
68159c5d17SCleber Rosa          - libspice-protocol-dev
69159c5d17SCleber Rosa          - libssh-dev
70159c5d17SCleber Rosa          - libusb-1.0-0-dev
71159c5d17SCleber Rosa          - libusbredirhost-dev
72159c5d17SCleber Rosa          - libvdeplug-dev
73159c5d17SCleber Rosa          - libvte-2.91-dev
74159c5d17SCleber Rosa          - libzstd-dev
75159c5d17SCleber Rosa          - make
76159c5d17SCleber Rosa          - python3-yaml
77159c5d17SCleber Rosa          - python3-sphinx
78159c5d17SCleber Rosa          - python3-sphinx-rtd-theme
79159c5d17SCleber Rosa          - ninja-build
80159c5d17SCleber Rosa          - sparse
81159c5d17SCleber Rosa          - xfslibs-dev
82159c5d17SCleber Rosa        state: present
83159c5d17SCleber Rosa      when:
84159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
85159c5d17SCleber Rosa
86159c5d17SCleber Rosa    - name: Install packages to build QEMU on Ubuntu 18.04/20.04 on non-s390x
87159c5d17SCleber Rosa      package:
88159c5d17SCleber Rosa        name:
89159c5d17SCleber Rosa          - libspice-server-dev
90159c5d17SCleber Rosa          - libxen-dev
91159c5d17SCleber Rosa        state: present
92159c5d17SCleber Rosa      when:
93159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
94159c5d17SCleber Rosa        - ansible_facts['architecture'] != 's390x'
95159c5d17SCleber Rosa
96159c5d17SCleber Rosa    - name: Install basic packages to build QEMU on Ubuntu 18.04
97159c5d17SCleber Rosa      package:
98159c5d17SCleber Rosa        name:
99159c5d17SCleber Rosa        # Originally from tests/docker/dockerfiles/ubuntu1804.docker
100159c5d17SCleber Rosa          - clang
101159c5d17SCleber Rosa      when:
102159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
103159c5d17SCleber Rosa        - ansible_facts['distribution_version'] == '18.04'
104159c5d17SCleber Rosa
105159c5d17SCleber Rosa    - name: Install basic packages to build QEMU on Ubuntu 20.04
106159c5d17SCleber Rosa      package:
107159c5d17SCleber Rosa        name:
108159c5d17SCleber Rosa        # Originally from tests/docker/dockerfiles/ubuntu2004.docker
109159c5d17SCleber Rosa          - clang-10
110159c5d17SCleber Rosa          - genisoimage
111159c5d17SCleber Rosa          - liblttng-ust-dev
112159c5d17SCleber Rosa          - libslirp-dev
113159c5d17SCleber Rosa          - netcat-openbsd
114159c5d17SCleber Rosa      when:
115159c5d17SCleber Rosa        - ansible_facts['distribution'] == 'Ubuntu'
116159c5d17SCleber Rosa        - ansible_facts['distribution_version'] == '20.04'
117