When I do ‘sudo dnf update -y’ on Rocky Linux 8.10 Minimal, it gets stuck on updating linux-firmware.
Looks like on the other VMs or Docker images, the update goes well. Not sure what the issue is.
cat /etc/os-release
NAME="Rocky Linux"
VERSION="8.10 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.10"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.10 (Green Obsidian)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2029-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8"
ROCKY_SUPPORT_PRODUCT_VERSION="8.10"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.10"
sudo rpm -qa | grep linux-fir
linux-firmware-20241014-125.git06bad2f1.el8_10.noarch
sudo dnf update -y
from the log
linux-firmware noarch 20250626-131.gitb05fabcd.el8_10 baseos 529 M
from strace of the update process
r
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942594") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942595") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942596") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942597") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942598") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942599") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942600") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942601") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942602") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942603") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942604") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942605") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942606") = -1 ENOENT (No such file or director
rename("/usr/lib/firmware/nvidia/ad103.rpmmoved", "/usr/lib/firmware/nvidia/ad103.rpmmoved.30942607") = -1 ENOENT (No such file or director
r
Diff from the spec file
diff linux-firmware-20250515-130.git9f8e520f.el8_10/linux-firmware.spec linux-firmware-20250626-131.gitb05fabcd.el8_10/linux-firmware.spec
1c1
< %global checkout 9f8e520f
---
> %global checkout b05fabcd
3c3
< %global firmware_release 130
---
> %global firmware_release 131
9c9
< Version: 20250515
---
> Version: 20250626
323c323
< linux-firmware.files
---
> linux-firmware.{files,dirs}
437a438,492
> # workaround for directory->symlink changes
> %pretrans -n linux-firmware -p <lua>
> path = "/usr/lib/firmware/nvidia/ad103"
> st = posix.stat(path)
> if st and st.type == "directory" then
> status = os.rename(path, path .. ".rpmmoved")
> if not status then
> suffix = 0
> while not status do
> suffix = suffix + 1
> status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
> end
> os.rename(path, path .. ".rpmmoved")
> end
> end
> path = "/usr/lib/firmware/nvidia/ad104"
> st = posix.stat(path)
> if st and st.type == "directory" then
> status = os.rename(path, path .. ".rpmmoved")
> if not status then
> suffix = 0
> while not status do
> suffix = suffix + 1
> status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
> end
> os.rename(path, path .. ".rpmmoved")
> end
> end
> path = "/usr/lib/firmware/nvidia/ad106"
> st = posix.stat(path)
> if st and st.type == "directory" then
> status = os.rename(path, path .. ".rpmmoved")
> if not status then
> suffix = 0
> while not status do
> suffix = suffix + 1
> status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
> end
> os.rename(path, path .. ".rpmmoved")
> end
> end
> path = "/usr/lib/firmware/nvidia/ad107"
> st = posix.stat(path)
> if st and st.type == "directory" then
> status = os.rename(path, path .. ".rpmmoved")
> if not status then
> suffix = 0
> while not status do
> suffix = suffix + 1
> status = os.rename(path .. ".rpmmoved", path .. ".rpmmoved." .. suffix)
> end
> os.rename(path, path .. ".rpmmoved")
> end
> end
>
So, the problem in the script