Re: [PATCH 0/2] Locales fixes
Daniel Gomez <[email protected]> Wed, 15 Oct 2025 20:21:12 +0200
| Newsgroups | dev.linux.lists.kdevops |
|---|---|
| Organization | kernel.org |
| Message-ID | <[email protected]> |
On 14/10/2025 23.35, Chuck Lever wrote:
> On 10/14/25 2:02 PM, Daniel Gomez wrote:
>>
>> On Mon, 29 Sep 2025 21:04:11 +0200, Daniel Gomez wrote:
>>> This drops locales-all from devconfig playbook and make en-US.UTF tasks
>>> distro agnostic. While at it, also fix guest image permissions when the
>>> base image is not copied and ensure idempotency with permissions.
>>>
>>> Note, the locales-all was in the wrong location (before removing
>>> unattended-install Debian package) provoking the apt concurrency issue
>>> (logs below) and not needed for en_US-UTF locale configuration added in
>>> commit 2514a694 ("guestfs: fix locale warnings in VM deployment").
>>>
>>> [...]
>>
>> Applied, thanks!
>>
>> [1/2] devconfig: drop locales-all leftovers
>> (no commit info)
>> [2/2] base_image: ensure base image permissions are set
>> (no commit info)
>>
>> Best regards,
>
>
> Hi Daniel!
>
> I'm seeing this on Fedora 41 with guestfs:
>
> TASK [devconfig : Configure en_US.UTF-8 locale files]
> ******************************************************************************************
> changed: [kdevops-nfsd] => (item={'path': '/etc/default/locale', 'line':
> 'LANG=en_US.UTF-8'})
> changed: [kdevops-nfsd] => (item={'path': '/etc/default/locale', 'line':
> 'LANGUAGE=en_US:en'})
> changed: [kdevops-nfsd] => (item={'path': '/etc/locale.gen', 'line':
> 'en_US.UTF-8 UTF-8'})
> [started TASK: devconfig : Generate and update locales on kdevops-nfsd]
>
> TASK [devconfig : Generate and update locales]
> *************************************************************************************************
> task path:
> /home/cel/src/kdevops/buildbot-configs/playbooks/roles/devconfig/tasks/main.yml:93
> fatal: [kdevops-nfsd]: FAILED! => {
> "changed": true,
> "cmd": "locale-gen en_US.UTF-8\nupdate-locale LANG=en_US.UTF-8\n",
> "delta": "0:00:00.003794",
> "end": "2025-10-14 17:30:14.766094",
> "rc": 127,
> "start": "2025-10-14 17:30:14.762300"
> }
>
> STDERR:
>
> /bin/sh: line 1: locale-gen: command not found
> /bin/sh: line 2: update-locale: command not found
>
>
> MSG:
>
> non-zero return code
>
>
> Neither of those commands appears in the Fedora 41 package inventory.
>
>
Sorry for the trouble.
I guess restoring this hunk fixes the issue, can you give it a try and confirm?
diff --git a/playbooks/roles/devconfig/tasks/main.yml b/playbooks/roles/devconfig/tasks/main.yml
index 39d883b7..ba55928e 100644
--- a/playbooks/roles/devconfig/tasks/main.yml
+++ b/playbooks/roles/devconfig/tasks/main.yml
@@ -88,6 +88,8 @@
- { path: "/etc/default/locale", line: "LANG=en_US.UTF-8" }
- { path: "/etc/default/locale", line: "LANGUAGE=en_US:en" }
- { path: "/etc/locale.gen", line: "en_US.UTF-8 UTF-8" }
+ when:
+ - ansible_facts['os_family']|lower == 'debian'
tags: firstconfig
- name: Generate and update locales
@@ -98,6 +100,8 @@
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
changed_when: true
+ when:
+ - ansible_facts['os_family']|lower == 'debian'
tags: firstconfig
- name: Check if /mirror directory exists on localhost
Note, I can't fully test this or the patch, as it appears to be broken (at least
for me) when using a Debian host and a Fedora guest with kdevops/libguestfs:
virt-builder fedora-41 --arch x86_64 -o /xfs1/libvirt/images/kdevops/guestfs/base_images/fedora-41.raw --size 20G --format raw --commands-from-file /tmp/ansible.8r5zc3so
[ 3.7] Downloading: http://builder.libguestfs.org/fedora-41.xz
###################################################################################################################################################################################################### 100.0%
[ 140.6] Planning how to build this image
[ 140.6] Uncompressing
[ 141.7] Resizing (using virt-resize) to expand the disk to 20.0G
[ 171.5] Opening the new disk
[ 181.7] Setting a random seed
[ 181.7] Installing packages: sudo qemu-guest-agent python3 bash policycoreutils-python-utils
[ 194.7] Uninstalling packages: dracut-config-rescue
[ 195.0] Deleting: /boot/*rescue*
[ 195.0] Deleting: /boot/loader/entries/*rescue*
[ 195.0] Running: useradd -u 1012 -s /bin/bash -m kdevops
[ 195.1] Appending line to /etc/sudoers.d/kdevops
[ 195.1] Editing: /etc/default/grub
[ 195.2] Running: /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
[ 195.9] Installing packages: isc-dhcp-client ifupdown
Updating and loading repositories:
Fedora 41 - x86_64 100% | 221.4 KiB/s | 30.3 KiB | 00m00s
Fedora 41 - x86_64 - Updates 100% | 289.6 KiB/s | 29.0 KiB | 00m00s
Fedora 41 openh264 (From Cisco) - x86_ 100% | 3.2 KiB/s | 986.0 B | 00m00s
Fedora 41 - x86_64 100% | 241.7 KiB/s | 480.5 KiB | 00m02s
Fedora 41 - x86_64 - Updates 100% | 4.4 MiB/s | 11.5 MiB | 00m03s
Fedora 41 openh264 (From Cisco) - x86_ 100% | 7.3 KiB/s | 5.8 KiB | 00m01s
Repositories loaded.
Package "sudo-1.9.15-5.p5.fc41.x86_64" is already installed.
...
Complete!
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
Updating and loading repositories:
Repositories loaded.
Failed to resolve the transaction:
No match for argument: isc-dhcp-client
No match for argument: ifupdown
You can try to add to command line:
--skip-unavailable to skip unavailable packages
virt-builder: error: dnf -y install 'isc-dhcp-client' 'ifupdown': command
exited with an error
If reporting bugs, run virt-builder with debugging enabled and include the
complete output:
virt-builder -v -x [...]