From 4c68ff2834a488ed33941a25ae738694cec0c90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20V=C3=A1vra?= Date: Mon, 3 Jun 2024 13:21:23 +0200 Subject: [PATCH] ci: Fix dnf5 incompatibilities Dnf5 has some incompatibilities like missing sub-commands and aliases. It also seems to have some regression between ansible dnf that breaks * wildcard. --- src/ansible/roles/packages/tasks/Fedora.yml | 39 ++++++++++++++++----- src/build.sh | 4 +-- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/ansible/roles/packages/tasks/Fedora.yml b/src/ansible/roles/packages/tasks/Fedora.yml index c3aed922..9a0f0a9d 100644 --- a/src/ansible/roles/packages/tasks/Fedora.yml +++ b/src/ansible/roles/packages/tasks/Fedora.yml @@ -67,11 +67,12 @@ - name: Install extended set of packages block: - - name: Install additional repositories - shell: | - dnf config-manager --add-repo {{ item }} - with_items: - - https://cli.github.com/packages/rpm/gh-cli.repo + - name: Add gh-cli.repo repo + ansible.builtin.get_url: + url: https://cli.github.com/packages/rpm/gh-cli.repo + dest: /etc/yum.repos.d/gh-cli.repo + mode: '0644' + - name: Install additional packages dnf: state: present @@ -118,16 +119,36 @@ name: '{{ ipa.client }}' - name: Install SSSD and its dependencies - dnf: + package: state: present name: - nfs-utils - realmd + - oddjob + - oddjob-mkhomedir + - adcli - sssd - - sssd-* + - 'sssd-*' + register: pkg_install + + - name: Install SSSD and its dependencies + ansible.builtin.package_facts: + + # dnf5 seems to have a regression with wildcard * + - name: Install sssd subpackages + command: yum install -y 'sssd-*' + register: sssd_install + when: "'sssd-ad' not in ansible_facts.packages" + + - name: Show installed sssd packages + ansible.builtin.debug: + var: pkg_install - name: Install debug information for selected packages - command: dnf debuginfo-install -y {{ item }} + dnf: + enablerepo: '*-debug*' + name: '{{ item }}-debuginfo' + state: present with_items: - dbus - glibc @@ -260,7 +281,7 @@ - name: Install additional packages for client development image block: - name: Install SSSD build dependencies - command: dnf build-dep -y sssd + command: dnf builddep -y sssd - name: Install packages required for integration tests dnf: diff --git a/src/build.sh b/src/build.sh index 4441d032..1eb9c5c3 100755 --- a/src/build.sh +++ b/src/build.sh @@ -68,9 +68,9 @@ function base_install_python { fi fi - # Remove dnf-5 to workaround many issues that yet needs to be fixed + # Add python3-dnf5 to enable ansible to use it if base_exec '[ -f /usr/bin/dnf5 ]'; then - base_exec 'dnf install -y python3-dnf && dnf remove -y dnf5 && ln -s /usr/bin/dnf-3 /usr/bin/dnf && ln -s /usr/bin/dnf-3 /usr/bin/yum && dnf clean all' + base_exec 'dnf install -y python3-libdnf5 dnf5-plugins' fi }