c1924cde87
We have a bunch of references to 20.04 (which s390x is still on) although we are basically building on 22.04 now. Clean up the textual references and use lcitool to generate the full package list to be consistent. We can drop "Install packages to build QEMU on Ubuntu on non-s390x" as when we upgrade the s390x builder to 22.04 it won't need this workaround. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230503091244.1450613-19-alex.bennee@linaro.org>
275 lines
7.8 KiB
YAML
275 lines
7.8 KiB
YAML
# Copyright (c) 2021 Red Hat, Inc.
|
|
#
|
|
# Author:
|
|
# Cleber Rosa <crosa@redhat.com>
|
|
#
|
|
# This work is licensed under the terms of the GNU GPL, version 2 or
|
|
# later. See the COPYING file in the top-level directory.
|
|
#
|
|
# This is an ansible playbook file. Run it to set up systems with the
|
|
# environment needed to build QEMU.
|
|
---
|
|
- name: Installation of basic packages to build QEMU
|
|
hosts: all
|
|
tasks:
|
|
- name: Check for suitable ansible version
|
|
delegate_to: localhost
|
|
assert:
|
|
that:
|
|
- '((ansible_version.major == 2) and (ansible_version.minor >= 8)) or (ansible_version.major >= 3)'
|
|
msg: "Unsuitable ansible version, please use version 2.8.0 or later"
|
|
|
|
- name: Add armhf foreign architecture to aarch64 hosts
|
|
command: dpkg --add-architecture armhf
|
|
when:
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
- ansible_facts['architecture'] == 'aarch64'
|
|
|
|
- name: Update apt cache / upgrade packages via apt
|
|
apt:
|
|
update_cache: yes
|
|
upgrade: yes
|
|
when:
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
|
|
# lcitool variables -f json ubuntu-2204 qemu | jq -r '.pkgs[]' | xargs -n 1 echo "-"
|
|
- name: Install basic packages to build QEMU on Ubuntu 22.04
|
|
package:
|
|
name:
|
|
- bash
|
|
- bc
|
|
- bison
|
|
- bsdextrautils
|
|
- bzip2
|
|
- ca-certificates
|
|
- ccache
|
|
- clang
|
|
- dbus
|
|
- debianutils
|
|
- diffutils
|
|
- exuberant-ctags
|
|
- findutils
|
|
- flex
|
|
- g++
|
|
- gcc
|
|
- gcovr
|
|
- genisoimage
|
|
- gettext
|
|
- git
|
|
- hostname
|
|
- libaio-dev
|
|
- libasan5
|
|
- libasound2-dev
|
|
- libattr1-dev
|
|
- libbpf-dev
|
|
- libbrlapi-dev
|
|
- libbz2-dev
|
|
- libc6-dev
|
|
- libcacard-dev
|
|
- libcap-ng-dev
|
|
- libcapstone-dev
|
|
- libcmocka-dev
|
|
- libcurl4-gnutls-dev
|
|
- libdaxctl-dev
|
|
- libdrm-dev
|
|
- libepoxy-dev
|
|
- libfdt-dev
|
|
- libffi-dev
|
|
- libgbm-dev
|
|
- libgcrypt20-dev
|
|
- libglib2.0-dev
|
|
- libglusterfs-dev
|
|
- libgnutls28-dev
|
|
- libgtk-3-dev
|
|
- libibumad-dev
|
|
- libibverbs-dev
|
|
- libiscsi-dev
|
|
- libjemalloc-dev
|
|
- libjpeg-turbo8-dev
|
|
- libjson-c-dev
|
|
- liblttng-ust-dev
|
|
- liblzo2-dev
|
|
- libncursesw5-dev
|
|
- libnfs-dev
|
|
- libnuma-dev
|
|
- libpam0g-dev
|
|
- libpcre2-dev
|
|
- libpixman-1-dev
|
|
- libpmem-dev
|
|
- libpng-dev
|
|
- libpulse-dev
|
|
- librbd-dev
|
|
- librdmacm-dev
|
|
- libsasl2-dev
|
|
- libsdl2-dev
|
|
- libsdl2-image-dev
|
|
- libseccomp-dev
|
|
- libslirp-dev
|
|
- libsnappy-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh-dev
|
|
- libsystemd-dev
|
|
- libtasn1-6-dev
|
|
- libubsan1
|
|
- libudev-dev
|
|
- liburing-dev
|
|
- libusb-1.0-0-dev
|
|
- libusbredirhost-dev
|
|
- libvdeplug-dev
|
|
- libvirglrenderer-dev
|
|
- libvte-2.91-dev
|
|
- libxen-dev
|
|
- libxml2-dev
|
|
- libzstd-dev
|
|
- llvm
|
|
- locales
|
|
- make
|
|
- meson
|
|
- multipath-tools
|
|
- ncat
|
|
- nettle-dev
|
|
- ninja-build
|
|
- openssh-client
|
|
- pkgconf
|
|
- python3
|
|
- python3-numpy
|
|
- python3-opencv
|
|
- python3-pillow
|
|
- python3-pip
|
|
- python3-sphinx
|
|
- python3-sphinx-rtd-theme
|
|
- python3-venv
|
|
- python3-yaml
|
|
- rpm2cpio
|
|
- sed
|
|
- sparse
|
|
- systemtap-sdt-dev
|
|
- tar
|
|
- tesseract-ocr
|
|
- tesseract-ocr-eng
|
|
- texinfo
|
|
- xfslibs-dev
|
|
- zlib1g-dev
|
|
state: present
|
|
when:
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
- ansible_facts['distribution_version'] == '22.04'
|
|
|
|
- name: Install armhf cross-compile packages to build QEMU on AArch64 Ubuntu 22.04
|
|
package:
|
|
name:
|
|
- binutils-arm-linux-gnueabihf
|
|
- gcc-arm-linux-gnueabihf
|
|
- libblkid-dev:armhf
|
|
- libc6-dev:armhf
|
|
- libffi-dev:armhf
|
|
- libglib2.0-dev:armhf
|
|
- libmount-dev:armhf
|
|
- libpcre2-dev:armhf
|
|
- libpixman-1-dev:armhf
|
|
- zlib1g-dev:armhf
|
|
when:
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
- ansible_facts['distribution_version'] == '22.04'
|
|
- ansible_facts['architecture'] == 'aarch64'
|
|
|
|
- name: Enable EPEL repo on EL8
|
|
dnf:
|
|
name:
|
|
- epel-release
|
|
state: present
|
|
when:
|
|
- ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS']
|
|
- ansible_facts['distribution_major_version'] == '8'
|
|
|
|
- name: Enable PowerTools repo on CentOS 8
|
|
ini_file:
|
|
path: /etc/yum.repos.d/CentOS-Stream-PowerTools.repo
|
|
section: powertools
|
|
option: enabled
|
|
value: "1"
|
|
when:
|
|
- ansible_facts['distribution_file_variety'] == 'CentOS'
|
|
- ansible_facts['distribution_major_version'] == '8'
|
|
|
|
- name: Install basic packages to build QEMU on EL8
|
|
dnf:
|
|
# This list of packages start with tests/docker/dockerfiles/centos8.docker
|
|
# but only include files that are common to all distro variants and present
|
|
# in the standard repos (no add-ons)
|
|
name:
|
|
- bzip2
|
|
- bzip2-devel
|
|
- capstone-devel
|
|
- dbus-daemon
|
|
- device-mapper-multipath-devel
|
|
- diffutils
|
|
- gcc
|
|
- gcc-c++
|
|
- genisoimage
|
|
- gettext
|
|
- git
|
|
- glib2-devel
|
|
- glusterfs-api-devel
|
|
- gnutls-devel
|
|
- libaio-devel
|
|
- libcap-ng-devel
|
|
- libcurl-devel
|
|
- libepoxy-devel
|
|
- libfdt-devel
|
|
- libgcrypt-devel
|
|
- libiscsi-devel
|
|
- libpmem-devel
|
|
- librados-devel
|
|
- librbd-devel
|
|
- libseccomp-devel
|
|
- libssh-devel
|
|
- libxkbcommon-devel
|
|
- lzo-devel
|
|
- make
|
|
- mesa-libEGL-devel
|
|
- nettle-devel
|
|
- ninja-build
|
|
- nmap-ncat
|
|
- numactl-devel
|
|
- pixman-devel
|
|
- python38
|
|
- python3-sphinx
|
|
- rdma-core-devel
|
|
- redhat-rpm-config
|
|
- snappy-devel
|
|
- spice-glib-devel
|
|
- systemd-devel
|
|
- systemtap-sdt-devel
|
|
- tar
|
|
- zlib-devel
|
|
state: present
|
|
when:
|
|
- ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS']
|
|
- ansible_facts['distribution_version'] == '8'
|
|
|
|
- name: Install packages only available on x86 and aarch64
|
|
dnf:
|
|
# Spice server not available in ppc64le
|
|
name:
|
|
- spice-server
|
|
- spice-server-devel
|
|
state: present
|
|
when:
|
|
- ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS']
|
|
- ansible_facts['distribution_version'] == '8'
|
|
- ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64'
|
|
|
|
- name: Check whether the Python runtime version is managed by alternatives
|
|
stat:
|
|
path: /etc/alternatives/python3
|
|
register: python3
|
|
|
|
- name: Set default Python runtime to 3.8 on EL8
|
|
command: alternatives --set python3 /usr/bin/python3.8
|
|
when:
|
|
- ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS']
|
|
- ansible_facts['distribution_version'] == '8'
|
|
- python3.stat.islnk and python3.stat.lnk_target != '/usr/bin/python3.8'
|