the reasons being the hook should run when a dkms modules gets updated or when this package updates
so Please add those targets
Git Clone URL: | https://aur.archlinux.org/dracut-hook-uefi.git (read-only, click to copy) |
---|---|
Package Base: | dracut-hook-uefi |
Description: | Install/remove hooks for dracut unified kernel images for systemd-boot |
Upstream URL: | https://github.com/swsnr/dracut-hook-uefi |
Keywords: | dracut hook uefi |
Licenses: | Apache |
Submitter: | None |
Maintainer: | ewout |
Last Packager: | swsnr |
Votes: | 16 |
Popularity: | 0.000005 |
First Submitted: | 2020-10-14 16:16 (UTC) |
Last Updated: | 2023-01-09 08:08 (UTC) |
the reasons being the hook should run when a dkms modules gets updated or when this package updates
so Please add those targets
I don't mind doing just that, but I'd really appreciate if you could tell me why, and if you'd say "please" :)
That said I also accept pull requests to the upstream URL :)
@lunaryorn add these to the 90-dracut-install.hook
Target = usr/share/libalpm/hooks/90-dracut-install.hook
Target = usr/share/libalpm/scripts/dracut-uefi
Target = usr/src/*/dkms.conf
Target = usr/lib/kernel/install.d/*
I've made a few changes which should fix compatibility issues with other hooks, and make the whole generation process a bit more robust.
Incompatible with https://archlinux.org/packages/community/any/kernel-modules-hook/
:: Running post-transaction hooks...
(1/4) Triggering wallpaper regeneration...
(2/4) Arming ConditionNeedsUpdate...
(3/4) Updating module dependencies...
(4/4) Generating unified EFI kernel images...
/usr/share/libalpm/scripts/dracut-install: line 28: /usr/lib/modules/5.10.69-1-lts/pkgbase
/usr/lib/modules/5.10.72-1-lts/pkgbase
/usr/lib/modules/5.10.73-1-lts/pkgbase
/usr/lib/modules/5.10.75-1-lts/pkgbase: No such file or directory
error: command failed to execute correctly
I'm sorry for this issue. I guess there's some issue with bash's loops and IFS etc. Shouldn't be too hard to fix I presume.
That said I don't have time to fix it myself, less so as I'm not affected by it myself. I'd appreciate a pull request at https://github.com/lunaryorn/pkgbuilds
This is failing to build images for me, but I can't make much sense of the error I'm getting:
/usr/share/libalpm/scripts/dracut-install: line 28: /usr/lib/modules/5.13.10-arch1-1/pkgbase
/usr/lib/modules/5.13.9-arch1-1/pkgbase: No such file or directory
error: command failed to execute correctly
I added set -x
to this script to get better output:
(5/6) Generating unified EFI kernel images...
+ kernels=()
+ dracut_update=0
+ read -r line
+ [[ usr/lib/modules/5.13.10-arch1-1/pkgbase != \u\s\r\/\l\i\b\/\m\o\d\u\l\e\s\/+([^/])\/\p\k\g\b\a\s\e ]]
+ read -r pkgbase
+ kernels+=("${pkgbase}")
+ read -r line
+ (( dracut_update ))
+ for kernel in "${kernels[@]}"
++ grep -lE '^linux$' /usr/lib/modules/5.13.10-arch1-1/pkgbase /usr/lib/modules/5.13.9-arch1-1/pkgbase
+ path='/usr/lib/modules/5.13.10-arch1-1/pkgbase
/usr/lib/modules/5.13.9-arch1-1/pkgbase'
++ basename '/usr/lib/modules/5.13.10-arch1-1/pkgbase
/usr/lib/modules/5.13.9-arch1-1'
+ version=5.13.9-arch1-1
+ read -r pkgbase
/usr/share/libalpm/scripts/dracut-install: line 30: /usr/lib/modules/5.13.10-arch1-1/pkgbase
/usr/lib/modules/5.13.9-arch1-1/pkgbase: No such file or directory
Upon closer inspection, it seems that the it's trying to open the file /usr/lib/modules/5.13.10-arch1-1/pkgbase\n/usr/lib/modules/5.13.9-arch1-1/pkgbase
, rather than treating those as two separate file.
I have kernel-modules-hook
locally, which is the reason both kernels are present at the same time (this hooks keeps older modules around until reboot, otherwise you end up with a broken system after update).
I don't really care to be honest. If you'd like to have these packages merged go ahead with whatever needs to be done to that end, but to me it's too much effort 20 lines of bash and a bit of configuration…
I see that dracut-hook-uefi
and dracut-uefi-hook
are essentially the same
idea, but with subtle differences. Would you consider merging both packages
into one?
There's only some very subtle differences between the two:
Is triggered when the linux stub is updated too:
Target = usr/lib/systemd/boot/efi/linuxx64.efi.stub
Looks like the install script determines ESP_PATH
and MACHINE_ID
, but these
are unused, so it should be safe to drop them.
The "Description" on the hooks is more appropriate for what's being done.
Specifices arch=('any')
. This is correct, since there's nothing
platform-specific in the package itself. Quite the contrary, these work on
AARM64, and possibel other archs.
The rest of the differences are mostly cosmetic variations on messages or
indentation. dracut-uefi-hook uses dracut -q
, which seems to be the only
variation.
I see that dracut-hook-uefi
and dracut-uefi-hook
are essentially the same
idea, but with subtle differences. Would you consider merging both packages
into one?
There's only some very subtle differences between the two:
Is triggered when the linux stub is updated too:
Target = usr/lib/systemd/boot/efi/linuxx64.efi.stub
Looks like the install script determines ESP_PATH
and MACHINE_ID
, but these
are unused, so it should be safe to drop them.
The "Description" on the hooks is more appropriate for what's being done.
Specifices arch=('any')
. This is correct, since there's nothing
platform-specific in the package itself. Quite the contrary, these work on
AARM64, and possibel other archs.
The rest of the differences are mostly cosmetic variations on messages or
indentation. dracut-uefi-hook uses dracut -q
, which seems to be the only
variation.
Pinned Comments
swsnr commented on 2023-05-29 07:52 (UTC)
I no longer use dracut, and do not maintain this hook anymore.