From 9b97d0774826eccf8dea9c27e4cebc68129ac4eb Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 19 Jan 2023 15:02:07 +0100 Subject: [PATCH 1/5] scripts/ci: remove unnecessary checks from CentOS playbook Since this playbook is meant for a CentOS 8 install, no need to check the facts. Signed-off-by: Paolo Bonzini --- scripts/ci/org.centos/stream/8/build-environment.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/ci/org.centos/stream/8/build-environment.yml b/scripts/ci/org.centos/stream/8/build-environment.yml index 42b0471634..fe8807b7b0 100644 --- a/scripts/ci/org.centos/stream/8/build-environment.yml +++ b/scripts/ci/org.centos/stream/8/build-environment.yml @@ -17,8 +17,6 @@ option: enabled value: "1" when: - - ansible_facts['distribution'] == 'CentOS' - - ansible_facts['distribution_major_version'] == '8' - centos_stream_8 - name: Install basic packages to build QEMU on CentOS Stream 8 @@ -46,6 +44,4 @@ - systemd-devel state: present when: - - ansible_facts['distribution'] == 'CentOS' - - ansible_facts['distribution_major_version'] == '8' - centos_stream_8 From 4b950af8d3c4f4e7e6a76396062d5760e70a743e Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 19 Jan 2023 14:23:09 +0100 Subject: [PATCH 2/5] scripts/ci: support CentOS Stream 8 in build-environment.yaml Update the CI playbook so that it is able to prepare a system with a fresh CentOS Stream 8 install, rather than just support RHEL. Signed-off-by: Paolo Bonzini --- scripts/ci/setup/build-environment.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml index 58438008ee..c3cebc42ac 100644 --- a/scripts/ci/setup/build-environment.yml +++ b/scripts/ci/setup/build-environment.yml @@ -130,6 +130,16 @@ - ansible_facts['distribution_version'] == '20.04' - ansible_facts['architecture'] == 'aarch64' + - 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 @@ -164,7 +174,7 @@ - zlib-devel state: present when: - - ansible_facts['distribution_file_variety'] == 'RedHat' + - ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS'] - ansible_facts['distribution_version'] == '8' - name: Install packages only available on x86 and aarch64 @@ -174,6 +184,6 @@ - spice-server state: present when: - - ansible_facts['distribution_file_variety'] == 'RedHat' + - ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS'] - ansible_facts['distribution_version'] == '8' - ansible_facts['architecture'] == 'aarch64' or ansible_facts['architecture'] == 'x86_64' From a925323008563236ae7954bed97b6c4d64c38f90 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 19 Jan 2023 15:02:30 +0100 Subject: [PATCH 3/5] scripts/ci: add capstone development packages Signed-off-by: Paolo Bonzini --- scripts/ci/org.centos/stream/8/build-environment.yml | 9 +++++++++ scripts/ci/setup/build-environment.yml | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/scripts/ci/org.centos/stream/8/build-environment.yml b/scripts/ci/org.centos/stream/8/build-environment.yml index fe8807b7b0..95474ad034 100644 --- a/scripts/ci/org.centos/stream/8/build-environment.yml +++ b/scripts/ci/org.centos/stream/8/build-environment.yml @@ -10,6 +10,14 @@ check_mode: yes register: centos_stream_8 + - name: Enable EPEL repo on CentOS Stream 8 + dnf: + name: + - epel-release + state: present + when: + - centos_stream_8 + - name: Enable PowerTools repo on CentOS Stream 8 ini_file: path: /etc/yum.repos.d/CentOS-Stream-PowerTools.repo @@ -22,6 +30,7 @@ - name: Install basic packages to build QEMU on CentOS Stream 8 dnf: name: + - capstone-devel - device-mapper-multipath-devel - glusterfs-api-devel - gnutls-devel diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml index c3cebc42ac..8d76404c6c 100644 --- a/scripts/ci/setup/build-environment.yml +++ b/scripts/ci/setup/build-environment.yml @@ -46,6 +46,7 @@ - libbrlapi-dev - libbz2-dev - libcacard-dev + - libcapstone-dev - libcap-ng-dev - libcurl4-gnutls-dev - libdrm-dev @@ -130,6 +131,15 @@ - ansible_facts['distribution_version'] == '20.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 @@ -148,6 +158,7 @@ name: - bzip2 - bzip2-devel + - capstone-devel - dbus-daemon - diffutils - gcc From cb1513df3fe4ee99eda8b0f69e044655f5979171 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 19 Jan 2023 14:31:24 +0100 Subject: [PATCH 4/5] scripts/ci: unify package lists for CentOS in build-environment files scripts/ci/org.centos/stream/8/build-environment.yml has a slightly different list of packages compared to scripts/ci/setup/build-environment.yaml. Make them the same. Signed-off-by: Paolo Bonzini --- .../org.centos/stream/8/build-environment.yml | 25 +++++++++++++++++++ scripts/ci/setup/build-environment.yml | 19 ++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/scripts/ci/org.centos/stream/8/build-environment.yml b/scripts/ci/org.centos/stream/8/build-environment.yml index 95474ad034..b1768d18af 100644 --- a/scripts/ci/org.centos/stream/8/build-environment.yml +++ b/scripts/ci/org.centos/stream/8/build-environment.yml @@ -30,13 +30,26 @@ - name: Install basic packages to build QEMU on CentOS Stream 8 dnf: 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 @@ -44,13 +57,25 @@ - libseccomp-devel - libssh-devel - libxkbcommon-devel + - lzo-devel + - make + - mesa-libEGL-devel + - nettle-devel - ninja-build + - nmap-ncat - numactl-devel + - pixman-devel + - python36 - python3-sphinx + - rdma-core-devel - redhat-rpm-config - snappy-devel + - spice-glib-devel - spice-server-devel - systemd-devel + - systemtap-sdt-devel + - tar + - zlib-devel state: present when: - centos_stream_8 diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml index 8d76404c6c..2274f736f7 100644 --- a/scripts/ci/setup/build-environment.yml +++ b/scripts/ci/setup/build-environment.yml @@ -160,6 +160,7 @@ - bzip2-devel - capstone-devel - dbus-daemon + - device-mapper-multipath-devel - diffutils - gcc - gcc-c++ @@ -167,19 +168,36 @@ - 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 - python36 + - python3-sphinx - rdma-core-devel + - redhat-rpm-config + - snappy-devel - spice-glib-devel + - systemd-devel - systemtap-sdt-devel - tar - zlib-devel @@ -193,6 +211,7 @@ # Spice server not available in ppc64le name: - spice-server + - spice-server-devel state: present when: - ansible_facts['distribution_file_variety'] in ['RedHat', 'CentOS'] From 11b4a4eeec6054161aafdcb2f2faeb7c6ff36c99 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 19 Jan 2023 14:35:26 +0100 Subject: [PATCH 5/5] scripts/ci: bump CentOS Python to 3.8 Signed-off-by: Paolo Bonzini --- .../ci/org.centos/stream/8/build-environment.yml | 2 +- scripts/ci/org.centos/stream/8/x86_64/configure | 1 + scripts/ci/setup/build-environment.yml | 14 +++++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/scripts/ci/org.centos/stream/8/build-environment.yml b/scripts/ci/org.centos/stream/8/build-environment.yml index b1768d18af..0d094d70c3 100644 --- a/scripts/ci/org.centos/stream/8/build-environment.yml +++ b/scripts/ci/org.centos/stream/8/build-environment.yml @@ -65,7 +65,7 @@ - nmap-ncat - numactl-devel - pixman-devel - - python36 + - python38 - python3-sphinx - rdma-core-devel - redhat-rpm-config diff --git a/scripts/ci/org.centos/stream/8/x86_64/configure b/scripts/ci/org.centos/stream/8/x86_64/configure index 75882faa9c..65eacf3c56 100755 --- a/scripts/ci/org.centos/stream/8/x86_64/configure +++ b/scripts/ci/org.centos/stream/8/x86_64/configure @@ -16,6 +16,7 @@ # that patches adding downstream specific devices are not available. # ../configure \ +--python=/usr/bin/python3.8 \ --prefix="/usr" \ --libdir="/usr/lib64" \ --datadir="/usr/share" \ diff --git a/scripts/ci/setup/build-environment.yml b/scripts/ci/setup/build-environment.yml index 2274f736f7..78b1021cd4 100644 --- a/scripts/ci/setup/build-environment.yml +++ b/scripts/ci/setup/build-environment.yml @@ -191,7 +191,7 @@ - nmap-ncat - numactl-devel - pixman-devel - - python36 + - python38 - python3-sphinx - rdma-core-devel - redhat-rpm-config @@ -217,3 +217,15 @@ - 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'