View Issue Details

IDProjectCategoryView StatusLast Update
0007163Rocky-Linux-9dnfpublic2024-06-19 21:00
ReporterNorbert Hornyák Assigned ToLouis Abel  
PrioritynormalSeveritymajorReproducibilityalways
Status assignedResolutionreopened 
Summary0007163: Install failed with missing dependencies
DescriptionI install the system with kickstart.

Here is my package section for that:
%packages --ignoremissing
-iwl*-firmware
-plymouth*
-selinux-policy*
-xkeyboard-config
grub2-efi-x64
grub2-efi-x64-modules
grub2-tools-efi
efibootmgr
shim-x64
glibc-all-langpacks
epel-release
salt-minion
%end

This is fails at ca-certificates rpm postinstall section, because libffi.so.8 was not installed.
If I add libffi to this list exactly, then it is installed and the installer completes, looks like everything is fine...

But logging in into newly installed system, a lot of things not working because libreadline.so.8 is missing. (And I dont know what else....)
TagsNo tags attached.

Activities

Norbert Hornyák

Norbert Hornyák

2024-06-14 05:52

reporter   ~0007496

I tested with Red Hat 9.4, that works fine.
Norbert Hornyák

Norbert Hornyák

2024-06-18 19:21

reporter   ~0007563

Also libreadline.so is missing. So, if you add libffi to package list, the system will be installed, but a LOT of things not working regarding to a missing base dependency.
Louis Abel

Louis Abel

2024-06-18 19:54

administrator   ~0007564

First, this is what requires libffi.

# dnf repoquery -q --whatrequires libffi --disablerepo=* --enablerepo=baseos --enablerepo=appstream
firefox-0:115.12.0-1.el9_4.x86_64
gjs-0:1.68.6-4.el9.i686
gjs-0:1.68.6-4.el9.x86_64
glib2-0:2.68.4-14.el9.i686
glib2-0:2.68.4-14.el9.x86_64
gobject-introspection-0:1.68.0-11.el9.i686
gobject-introspection-0:1.68.0-11.el9.x86_64
jna-0:5.6.0-8.el9.x86_64
libffi-devel-0:3.4.2-8.el9.i686
libffi-devel-0:3.4.2-8.el9.x86_64
libomp-0:17.0.6-1.el9.x86_64
libwayland-client-0:1.21.0-1.el9.i686
libwayland-client-0:1.21.0-1.el9.x86_64
libwayland-server-0:1.21.0-1.el9.i686
libwayland-server-0:1.21.0-1.el9.x86_64
llvm-libs-0:17.0.6-5.el9.i686
llvm-libs-0:17.0.6-5.el9.x86_64
p11-kit-0:0.25.3-2.el9.i686
p11-kit-0:0.25.3-2.el9.x86_64
p11-kit-server-0:0.25.3-2.el9.x86_64
php-ffi-0:8.0.30-1.el9_2.x86_64
python3-cffi-0:1.14.5-5.el9.x86_64
python3-gobject-base-0:3.40.1-6.el9.x86_64
python3-libs-0:3.9.18-3.el9.i686
python3-libs-0:3.9.18-3.el9.x86_64
python3.11-cffi-0:1.15.1-1.el9.x86_64
python3.11-libs-0:3.11.7-1.el9.i686
python3.11-libs-0:3.11.7-1.el9.x86_64
python3.12-cffi-0:1.16.0-2.el9.x86_64
python3.12-libs-0:3.12.1-4.el9.i686
python3.12-libs-0:3.12.1-4.el9.x86_64
ruby-libs-0:3.0.7-162.el9_4.i686
ruby-libs-0:3.0.7-162.el9_4.x86_64
thunderbird-0:115.11.0-1.el9_4.x86_64

Second, "core" is the default group that is selected when an install group is not mentioned. Using the attached kickstart, I had a fully functional system. libffi, ca-certificates, and even libreadline are there due to packages within "core" needing them.

View the attached screenshots and you will see the installation completed and I am able to login and operate the system with zero issues.

I'm failing to see how this is a bug. Setting to needinfo as more information of your build environment may be required, such as the full kickstart, repositories you are using, and so on.
Louis Abel

Louis Abel

2024-06-18 19:54

administrator   ~0007565

kickstart_bt7163.txt (3,275 bytes)   
#version=RHEL9
# Reboot after installation
reboot
# Use text mode install
text
# Installation logging level
%post
cat << 'EOF' > /root/.vimrc
set background=dark
syntax on
EOF

cat << 'EOF' > /etc/skel/.vimrc
set background=dark
syntax on
EOF

# Required for PXE installs, otherwise the system does not boot
CURKER=$(grubby --default-kernel)
grubby --info=${CURKER} > /tmp/args
yum update -y
NEWKER=$(grubby --default-kernel)
source /tmp/args
grubby --args="root=/dev/mapper/rockyvg-root ${args}" --update-kernel="${NEWKER}"
grubby --remove-args="inst.repo inst.stage2 ip inst.ks" --update-kernel="${NEWKER}"

hostname > /etc/hostname
wget -q -O /tmp/fullNetSetup.sh http://10.100.0.1/fullNetSetup.sh
wget -q -O /usr/local/bin/setToStatic.sh http://10.100.0.1/setToStatic.sh
bash /tmp/fullNetSetup.sh
usermod -aG wheel nazu

# SUDO
cat << 'EOF' > /etc/sudoers.d/ansible
ansible ALL=(ALL) NOPASSWD: ALL
EOF
chmod 440 /etc/sudoers.d/ansible

# Ansible key
mkdir /home/ansible/.ssh
chmod 700 /home/ansible/.ssh
cat << 'EOF' > /home/ansible/.ssh/authorized_keys
ssh-rsa ...
ssh-ed25519 ...
EOF
chmod 600 /home/ansible/.ssh/authorized_keys
chown -R ansible:ansible /home/ansible/.ssh

yum config-manager --set-enabled crb

init 6
reboot
%end

%packages --ignoremissing
-iwl*-firmware
-plymouth*
-selinux-policy*
-xkeyboard-config
grub2-efi-x64
grub2-efi-x64-modules
grub2-tools-efi
efibootmgr
shim-x64
glibc-all-langpacks
epel-release
salt-minion

%end

# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp

# Use network installation
url --url="http://dl.rockylinux.org/pub/rocky/9/BaseOS/x86_64/os"
# Required for EPEL
repo --name="CRB" --baseurl=http://dl.rockylinux.org/pub/rocky/9/CRB/x86_64/os --cost=300
# Required for rpaste
repo --name="extras" --baseurl=http://dl.rockylinux.org/pub/rocky/9/extras/x86_64/os --cost=300
# Required for epel related packages
repo --name="epel" --baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/ --cost=300

firstboot --disable
# Do not configure the X Window System
skipx
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part /boot/efi --fstype="efi" --ondisk=sda --size=600 --fsoptions="umask=0077,shortname=winnt"
part pv.111 --fstype="lvmpv" --ondisk=sda --size=32776
volgroup rockyvg --pesize=4096 pv.111
logvol / --fstype="xfs" --size=8192 --name=root --vgname=rockyvg
logvol /var/log/audit --fstype="xfs" --size=4096 --name=audit --vgname=rockyvg
logvol /home --fstype="xfs" --size=4096 --name=home --vgname=rockyvg --fsoptions="nodev"
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=rockyvg
logvol /tmp --fstype="xfs" --size=4096 --name=tmp --vgname=rockyvg --fsoptions="nodev,noexec,nosuid"
logvol /var --fstype="xfs" --size=4096 --name=var --vgname=rockyvg
logvol /var/log --fstype="xfs" --size=4096 --name=log --vgname=rockyvg

# System timezone
timezone US/Arizona --utc

# Root password
rootpw --iscrypted ...
user --name=nazu --password=... --iscrypted --uid=1000 --gecos="Louis Abel" --gid=1000
user --name=ansible --uid=1100 --lock --gecos="Ansible Manager" --gid=1100

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end
kickstart_bt7163.txt (3,275 bytes)   
VirtualBoxVM_1I8Z0XbhOp.png (22,407 bytes)   
VirtualBoxVM_1I8Z0XbhOp.png (22,407 bytes)   
VirtualBoxVM_j816mlXsDv.png (43,710 bytes)   
VirtualBoxVM_j816mlXsDv.png (43,710 bytes)   
VirtualBoxVM_LC5h6rSNqD.png (37,372 bytes)   
VirtualBoxVM_LC5h6rSNqD.png (37,372 bytes)   
VirtualBoxVM_VsD5nzyqAt.png (43,257 bytes)   
VirtualBoxVM_VsD5nzyqAt.png (43,257 bytes)   
Louis Abel

Louis Abel

2024-06-19 19:50

administrator   ~0007569

All of these things actually matter. A misconfiguration in any part of building a Rocky Linux system, especially the repositories, can cause unexpected behavior.

With that said, using the url/repo configuration you have provided in your kickstart, the installation immediately fails, as you have explained. However, this behavior is not seen in normal circumstances.

In normal circumstances, the default repositories (baseos, appstream, extras) would be used, where EPEL would be brought in as an additional (and common) option. In this case, you are also using a SaltStack repository. What can be seen is when this repository is used, packages end up being missing. The blame is being misplaced on Rocky Linux where it's actually the salt package that's the issue.

Looking at the salt package, it seemingly "provides" a lot of things. In fact, it's a lot of things that would make it act as a dependency for critical base packages and can cause harm to RHEL, Rocky Linux, and other derivatives.

# rpm -qp salt-3007.1-0.x86_64.rpm --provides | grep -E 'libffi|libreadline'
warning: salt-3007.1-0.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 73d76b3f: NOKEY
libffi.so.8()(64bit)
libffi.so.8(LIBFFI_BASE_8.0)(64bit)
libffi.so.8(LIBFFI_CLOSURE_8.0)(64bit)
libffi.so.8(LIBFFI_COMPLEX_8.0)(64bit)
libffi.so.8(LIBFFI_GO_CLOSURE_8.0)(64bit)
libreadline.so.8()(64bit)
# rpm -q libffi readline --provides | grep lib
libffi = 3.4.2-8.el9
libffi(x86-64) = 3.4.2-8.el9
libffi.so.8()(64bit)
libffi.so.8(LIBFFI_BASE_8.0)(64bit)
libffi.so.8(LIBFFI_CLOSURE_8.0)(64bit)
libffi.so.8(LIBFFI_COMPLEX_8.0)(64bit)
libffi.so.8(LIBFFI_GO_CLOSURE_8.0)(64bit)
libhistory.so.8()(64bit)
libreadline.so.8()(64bit)

With a bit of searching, there is an open bug on this: https://github.com/saltstack/salt/issues/66604 - This is apparently "fixed" in some commit, but not released.

Based on the above, this is not a bug in Rocky Linux. Please work with the salt maintainers/contributors to resolve this issue.

Closing.
Norbert Hornyák

Norbert Hornyák

2024-06-19 20:59

reporter   ~0007570

OMG, what a ridiculous bug at the salt side... Yeah, you have right,
Thank you for look so deep inside!

Issue History

Date Modified Username Field Change
2024-06-13 19:43 Norbert Hornyák New Issue
2024-06-14 05:52 Norbert Hornyák Note Added: 0007496
2024-06-18 19:21 Norbert Hornyák Note Added: 0007563
2024-06-18 19:54 Louis Abel Assigned To => Louis Abel
2024-06-18 19:54 Louis Abel Status new => needinfo
2024-06-18 19:54 Louis Abel Note Added: 0007564
2024-06-18 19:54 Louis Abel Note Added: 0007565
2024-06-18 19:54 Louis Abel File Added: kickstart_bt7163.txt
2024-06-18 19:54 Louis Abel File Added: VirtualBoxVM_1I8Z0XbhOp.png
2024-06-18 19:54 Louis Abel File Added: VirtualBoxVM_j816mlXsDv.png
2024-06-18 19:54 Louis Abel File Added: VirtualBoxVM_LC5h6rSNqD.png
2024-06-18 19:54 Louis Abel File Added: VirtualBoxVM_VsD5nzyqAt.png
2024-06-19 19:50 Louis Abel Status needinfo => closed
2024-06-19 19:50 Louis Abel Resolution open => not fixable
2024-06-19 19:50 Louis Abel Note Added: 0007569
2024-06-19 20:59 Norbert Hornyák Status closed => feedback
2024-06-19 20:59 Norbert Hornyák Resolution not fixable => reopened
2024-06-19 20:59 Norbert Hornyák Note Added: 0007570
2024-06-19 21:00 Norbert Hornyák Status feedback => assigned