FS#72877 - [mkinitcpio] add binutils to (opt)depends for UEFI image creation

Attached to Project: Arch Linux
Opened by Chih-Hsuan Yen (yan12125) - Monday, 29 November 2021, 15:24 GMT
Last edited by Giancarlo Razzolini (grazzolini) - Friday, 03 December 2021, 10:10 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Giancarlo Razzolini (grazzolini)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
The UEFI image creation feature in mkinitcpio v31 uses objcopy from binutils, which is part of base-devel but not base. IMO binutils should be added as an (opt)depends of mkinitcpio.

Additional info:
* testing/mkinitcpio 31-1
* The line that calls objcopy: https://github.com/archlinux/mkinitcpio/blob/v31/mkinitcpio#L343

Steps to reproduce:
* Install mkinitcpio but not binutils
* Configure UEFI image creation. For example, I use linux-lts with the following preset as /etc/mkinitcpio.d/linux-lts.preset:

ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-linux-lts"
ALL_microcode=(/boot/*-ucode.img)

PRESETS=('default')

default_image="/boot/initramfs-linux-lts.img"
default_efi_image="/boot/EFI/BOOT/bootx64.efi"

* Create the UEFI image

$ sudo mkinitcpio -p linux-lts
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'default'
-> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts.img -U /boot/EFI/BOOT/bootx64.efi --microcode /boot/intel-ucode.img
==> Starting build: 5.10.82-1-lts
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: xhci_pci
-> Running build hook: [encrypt]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-lts.img
==> Image generation successful
==> Creating UEFI executable: /boot/EFI/BOOT/bootx64.efi
-> Using UEFI stub: /usr/lib/systemd/boot/efi/linuxx64.efi.stub
-> Using kernel image: /lib/modules/5.10.82-1-lts/vmlinuz
-> Using cmdline file: /etc/kernel/cmdline
-> Using os-release file: /etc/os-release
-> Using microcode image: /boot/intel-ucode.img
/usr/bin/mkinitcpio: line 344: objcopy: command not found
==> ERROR: UEFI executable generation FAILED
This task depends upon

Closed by  Giancarlo Razzolini (grazzolini)
Friday, 03 December 2021, 10:10 GMT
Reason for closing:  Fixed
Additional comments about closing:  mkinitcpio-31-2 fixes this.
Comment by Giancarlo Razzolini (grazzolini) - Friday, 03 December 2021, 10:00 GMT
Actually it should be part of depends.

Loading...