Description of problem: When updating the microcode_ctl package, dangling symlinks remain installed in the kernel-specific /lib/firmware/<kernel> directory: -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< -------- # find /usr/lib/firmware -xtype l /usr/lib/firmware/4.18.0-348.20.1.el8_5.x86_64/intel-ucode/06-86-04 /usr/lib/firmware/4.18.0-348.20.1.el8_5.x86_64/intel-ucode/06-86-05 /usr/lib/firmware/4.18.0-372.9.1.el8.x86_64/intel-ucode/06-86-04 /usr/lib/firmware/4.18.0-372.9.1.el8.x86_64/intel-ucode/06-86-05 /usr/lib/firmware/4.18.0-372.26.1.el8_6.x86_64/intel-ucode/06-86-04 /usr/lib/firmware/4.18.0-372.26.1.el8_6.x86_64/intel-ucode/06-86-05 -------- 8< ---------------- 8< ---------------- 8< ---------------- 8< -------- This happens when microcodes stop being shipped, e.g. "intel-ucode/06-86-04" when updating from **microcode_ctl-4:20210608-1.el8** to latest (**microcode_ctl-4:20220207-1.20220510.1.el8_6**). Version-Release number of selected component (if applicable): microcode_ctl-4:20220207-1.20220510.1.el8_6 and later How reproducible: Always Steps to Reproduce: 1. Install microcode_ctl-4:20210608-1.el8 2. Update to microcode_ctl-4:20220207-1.20220510.1.el8_6 or 1. Install latest microcode_ctl-4:20220207-1.20220510.1.el8_6 2. Downgrade to microcode_ctl-4:20210608-1.el8 Actual results: Microcodes that are not shipped anymore remain dangling for all installed kernels Expected results: No dangling symlinks Additional info: The root cause is no cleaning of unshipped files in /usr/libexec/microcode_ctl/update_ucode, only cleaning of ucode_with_caveats microcodes