public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: Daniel Gomez <da.gomez@kernel.org>, Luis Chamberlain <mcgrof@kernel.org>
Cc: kdevops@lists.linux.dev, Daniel Gomez <da.gomez@samsung.com>
Subject: Re: [PATCH v2 09/15] bootlinux: fix os detection for 9p build dependency installation
Date: Fri, 7 Nov 2025 14:22:58 -0500	[thread overview]
Message-ID: <7a126e42-a65c-4020-b7b4-3e8c784be593@oracle.com> (raw)
In-Reply-To: <20251029-fedora-on-debian-v2-9-ddc6e5bebc15@samsung.com>

On 10/29/25 8:40 AM, Daniel Gomez wrote:
> From: Daniel Gomez <da.gomez@samsung.com>
> 
> Dependency installation for 9P builds was checking ansible_os_family,
> which references the target guest's OS instead of the control host where
> packages are actually installed. This caused incorrect packages to be
> installed when building Fedora guests on Debian hosts.
> 
> Replace ansible_os_family checks with Kconfig distro variables
> (distro_debian_based, distro_fedora, etc.) which correctly detect
> the control host's distribution. Add fallback defaults to ensure the
> variables are always defined for standalone role usage.
> 
> Generated-by: Claude AI
> Suggested-by: Chuck Lever <chuck.lever@oracle.com>

Hrm. I might not have understood the whole picture.

Yes, distro_yada_based does pick the controller's OS version.
But so does ansible_os_family when the task is running on
localhost.

I just hit a problem with the "build linux on a separate
target node" configuration, where the target is running
Debian 11 and the controller is running Fedora 41. The
bootlinux install-deps/main.yml checks were coming to
the wrong conclusion.

So if build.yml was running on the controller, then
ansible_os_family should have been "Debian" for you.
Question is, where was it running? For 9p, I'll bet it
was running on the targets; it might need to run on
both localhost and the targets in this case.


> Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
> ---
>  playbooks/roles/bootlinux/defaults/main.yml                  | 6 ++++++
>  playbooks/roles/bootlinux/tasks/build/9p.yml                 | 2 +-
>  playbooks/roles/bootlinux/tasks/install-deps/main.yml        | 6 +++---
>  playbooks/roles/bootlinux/tasks/install-deps/redhat/main.yml | 4 ++--
>  4 files changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/playbooks/roles/bootlinux/defaults/main.yml b/playbooks/roles/bootlinux/defaults/main.yml
> index 1ae70b2c..78e4e28f 100644
> --- a/playbooks/roles/bootlinux/defaults/main.yml
> +++ b/playbooks/roles/bootlinux/defaults/main.yml
> @@ -141,3 +141,9 @@ bootlinux_fragment_x86: false
>  bootlinux_fragment_xarray: false
>  bootlinux_fragment_xarray_no_multi: false
>  
> +
> +# Distro controls
> +distro_debian_based: false
> +distro_fedora: false
> +distro_redhat_based: false
> +distro_suse_based: false
> diff --git a/playbooks/roles/bootlinux/tasks/build/9p.yml b/playbooks/roles/bootlinux/tasks/build/9p.yml
> index f390f028..809d342a 100644
> --- a/playbooks/roles/bootlinux/tasks/build/9p.yml
> +++ b/playbooks/roles/bootlinux/tasks/build/9p.yml
> @@ -14,7 +14,7 @@
>    when:
>      - target_linux_install_b4 is defined
>      - target_linux_install_b4
> -    - ansible_facts['os_family']|lower != 'debian'
> +    - not distro_debian_based|bool
>    run_once: true
>    delegate_to: localhost
>  
> diff --git a/playbooks/roles/bootlinux/tasks/install-deps/main.yml b/playbooks/roles/bootlinux/tasks/install-deps/main.yml
> index 51a20741..058f3926 100644
> --- a/playbooks/roles/bootlinux/tasks/install-deps/main.yml
> +++ b/playbooks/roles/bootlinux/tasks/install-deps/main.yml
> @@ -2,14 +2,14 @@
>  - name: Debian-specific setup
>    ansible.builtin.import_tasks: debian/main.yml
>    when:
> -    - ansible_os_family == "Debian"
> +    - distro_debian_based|bool
>  
>  - name: SuSE-specific setup
>    ansible.builtin.import_tasks: suse/main.yml
>    when:
> -    - ansible_os_family == "Suse"
> +    - distro_suse_based|bool
>  
>  - name: Red Hat-specific setup
>    ansible.builtin.import_tasks: redhat/main.yml
>    when:
> -    - ansible_os_family == "RedHat"
> +    - distro_redhat_based|bool
> diff --git a/playbooks/roles/bootlinux/tasks/install-deps/redhat/main.yml b/playbooks/roles/bootlinux/tasks/install-deps/redhat/main.yml
> index 7f1955bf..e9a0c6e2 100644
> --- a/playbooks/roles/bootlinux/tasks/install-deps/redhat/main.yml
> +++ b/playbooks/roles/bootlinux/tasks/install-deps/redhat/main.yml
> @@ -3,7 +3,7 @@
>    ansible.builtin.include_role:
>      name: epel-release
>    when:
> -    - ansible_distribution != "Fedora"
> +    - not distro_fedora|bool
>  
>  - name: Install packages we care about
>    become: true
> @@ -67,7 +67,7 @@
>    vars:
>      packages:
>        - btrfs-progs
> -  when: ansible_distribution == 'Fedora'
> +  when: distro_fedora|bool
>  
>  - name: Install clang
>    become: true
> 


-- 
Chuck Lever

  reply	other threads:[~2025-11-07 19:23 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-29 12:40 [PATCH v2 00/15] Fedora on Debian Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 01/15] base_image: restore locales-all installation for Debian Trixie Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 02/15] guestfs: fix Kconfig indentation style Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 03/15] guestfs: remove unused bringup debug Kconfig options Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 04/15] guestfs: fix spelling errors and Debian capitalization Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 05/15] base_image: set selinux to permissive for fedora on debian hosts Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 06/15] ansible_provisioning: fix help text indentation style Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 07/15] devconfig: fix undefined custom repos/packages variables Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 08/15] devconfig: fix Ansible boolean conditional for custom repos Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 09/15] bootlinux: fix os detection for 9p build dependency installation Daniel Gomez
2025-11-07 19:22   ` Chuck Lever [this message]
2025-11-07 20:00     ` Daniel Gomez
2025-11-07 20:17       ` Chuck Lever
2025-11-07 20:47         ` Daniel Gomez
2025-11-07 20:53           ` Chuck Lever
2025-11-07 23:20             ` Daniel Gomez
2025-11-07 23:24               ` Daniel Gomez
2025-11-08 16:11               ` Chuck Lever
2025-11-08 20:12                 ` Daniel Gomez
2025-11-08 20:56                   ` Chuck Lever
2025-10-29 12:40 ` [PATCH v2 10/15] selftests: " Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 11/15] guestfs: generate fedora distribution-specific hostname prefixes Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 12/15] defconfigs: add fedora-41 fragment for guestfs Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 13/15] defconfigs: add debian-13 " Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 14/15] github: add guest OS selection for CI testing Daniel Gomez
2025-10-29 12:40 ` [PATCH v2 15/15] guestfs: increase SSH config timeout for Fedora on Debian hosts Daniel Gomez
2025-10-29 13:49 ` [PATCH v2 00/15] Fedora on Debian Chuck Lever
2025-10-29 14:16 ` Daniel Gomez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7a126e42-a65c-4020-b7b4-3e8c784be593@oracle.com \
    --to=chuck.lever@oracle.com \
    --cc=da.gomez@kernel.org \
    --cc=da.gomez@samsung.com \
    --cc=kdevops@lists.linux.dev \
    --cc=mcgrof@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox