mirror of
https://github.com/void-linux/void-packages.git
synced 2025-04-22 17:17:03 +02:00
dracut: add UEFI bundle hook in dracut-uefi subpkg
Restricted to i686* and x86_64* for now. Other changes: - small formatting changes - use relative path in kernel-hook-postrm
This commit is contained in:
parent
be93dc992b
commit
77489bed54
6 changed files with 92 additions and 6 deletions
1
srcpkgs/dracut-uefi
Symbolic link
1
srcpkgs/dracut-uefi
Symbolic link
|
@ -0,0 +1 @@
|
|||
dracut
|
19
srcpkgs/dracut/files/dracut-uefi-hook.confd
Normal file
19
srcpkgs/dracut/files/dracut-uefi-hook.confd
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Options for the dracut-uefi kernel hook script installed by the dracut package.
|
||||
|
||||
# To enable EFI bundle creation in dracut, uncomment
|
||||
#CREATE_UEFI_BUNDLES=yes
|
||||
# This requires an EFI stub, provided by the gummiboot package,
|
||||
# as well as setting the kernel command line.
|
||||
# Booting without a kernel command line is unsupported.
|
||||
|
||||
# You can set the kernel command line with
|
||||
#KERNEL_CMDLINE="loglevel=4 slub_debug=P page_poison=1"
|
||||
# or by setting kernel_cmdline in a dracut.conf(5) file.
|
||||
# The bundle can also use the command line from a bootloader / boot manager
|
||||
# if Secure Boot is disabled.
|
||||
|
||||
# You can set command line options for the dracut command
|
||||
#DRACUT_OPTIONS=
|
||||
|
||||
# Output directory for the EFI bundle
|
||||
#UEFI_BUNDLE_DIR="boot/efi/EFI/void/"
|
|
@ -7,7 +7,7 @@
|
|||
PKGNAME="$1"
|
||||
VERSION="$2"
|
||||
|
||||
if [ -f /boot/initramfs-${VERSION}.img ]; then
|
||||
rm -f /boot/initramfs-${VERSION}.img
|
||||
if [ -f boot/initramfs-${VERSION}.img ]; then
|
||||
rm -f boot/initramfs-${VERSION}.img
|
||||
fi
|
||||
exit $?
|
||||
|
|
23
srcpkgs/dracut/files/kernel-uefi-hook-postinst
Normal file
23
srcpkgs/dracut/files/kernel-uefi-hook-postinst
Normal file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Kernel post-install hook for dracut EFI bundle.
|
||||
#
|
||||
# Arguments passed to this script: $1 pkgname, $2 version.
|
||||
#
|
||||
PKGNAME="$1"
|
||||
VERSION="$2"
|
||||
|
||||
. "${ROOTDIR}/etc/default/dracut-uefi-hook"
|
||||
if [ -z "${CREATE_UEFI_BUNDLES}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -x bin/dracut ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p ${UEFI_BUNDLE_DIR:=boot/efi/EFI/void}
|
||||
|
||||
dracut -q --force ${KERNEL_CMDLINE:+--kernel-cmdline="${KERNEL_CMDLINE}"} ${DRACUT_OPTIONS} \
|
||||
--uefi ${UEFI_BUNDLE_DIR}/linux-${VERSION}.efi ${VERSION}
|
||||
exit $?
|
17
srcpkgs/dracut/files/kernel-uefi-hook-postrm
Normal file
17
srcpkgs/dracut/files/kernel-uefi-hook-postrm
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Kernel post-remove hook for dracut EFI bundle.
|
||||
#
|
||||
# Arguments passed to this script: $1 pkgname, $2 version.
|
||||
#
|
||||
PKGNAME="$1"
|
||||
VERSION="$2"
|
||||
|
||||
. "${ROOTDIR}/etc/default/dracut-uefi-hook"
|
||||
|
||||
: "${UEFI_BUNDLE_DIR:=boot/efi/EFI/void}"
|
||||
|
||||
if [ -f "${UEFI_BUNDLE_DIR}/linux-${VERSION}.efi" ]; then
|
||||
rm -fv "${UEFI_BUNDLE_DIR}/linux-${VERSION}.efi"
|
||||
fi
|
||||
exit $?
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'dracut'
|
||||
pkgname=dracut
|
||||
version=050
|
||||
revision=3
|
||||
revision=4
|
||||
build_style=configure
|
||||
configure_args="--prefix=/usr --sysconfdir=/etc"
|
||||
conf_files="/etc/dracut.conf"
|
||||
|
@ -14,10 +14,11 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later"
|
|||
homepage="http://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html"
|
||||
distfiles="https://github.com/dracutdevs/dracut/archive/${version}.tar.gz"
|
||||
checksum=f9dbf18597e5929221365964293212c8c9ffb7d84529c5a338c834ecab06e333
|
||||
subpackages="dracut-network"
|
||||
|
||||
make_dirs="
|
||||
/etc/dracut.conf.d 0755 root root
|
||||
/usr/lib/dracut/dracut.conf.d 0755 root root"
|
||||
/etc/dracut.conf.d 0755 root root
|
||||
/usr/lib/dracut/dracut.conf.d 0755 root root"
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) # Add musl-fts implementation
|
||||
|
@ -25,6 +26,13 @@ case "$XBPS_TARGET_MACHINE" in
|
|||
;;
|
||||
esac
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*|x86_64*) # archs supported by dracut for EFI bundle
|
||||
_efi_bundle=1
|
||||
subpackages+=" dracut-uefi"
|
||||
;;
|
||||
esac
|
||||
|
||||
do_build() {
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) make ${makejobs} LDLIBS="-lfts" ;;
|
||||
|
@ -40,6 +48,13 @@ post_install() {
|
|||
# kernel hooks.
|
||||
vinstall ${FILESDIR}/kernel-hook-postinst 755 etc/kernel.d/post-install 20-dracut
|
||||
vinstall ${FILESDIR}/kernel-hook-postrm 755 etc/kernel.d/post-remove 20-dracut
|
||||
|
||||
if [ "${_efi_bundle}" ]; then
|
||||
vinstall ${FILESDIR}/dracut-uefi-hook.confd 644 etc/default dracut-uefi-hook
|
||||
vinstall ${FILESDIR}/kernel-uefi-hook-postinst 755 etc/kernel.d/post-install 20-dracut-uefi
|
||||
vinstall ${FILESDIR}/kernel-uefi-hook-postrm 755 etc/kernel.d/post-remove 20-dracut-uefi
|
||||
fi
|
||||
|
||||
# We don't need the systemd stuff.
|
||||
rm -rf ${DESTDIR}/usr/lib/dracut/modules.d/*systemd*
|
||||
rm -f ${DESTDIR}/usr/share/man/man8/*.service.*
|
||||
|
@ -52,8 +67,19 @@ dracut-network_package() {
|
|||
archs=noarch
|
||||
pkg_install() {
|
||||
for f in 40network 90livenet 95fcoe 95iscsi \
|
||||
95nbd 95nfs 95zfcp 95znet; do
|
||||
95nbd 95nfs 95zfcp 95znet; do
|
||||
vmove usr/lib/dracut/modules.d/${f}
|
||||
done
|
||||
}
|
||||
}
|
||||
|
||||
dracut-uefi_package() {
|
||||
depends="binutils gummiboot dracut-${version}_${revision}"
|
||||
short_desc+=" - UEFI bundle hook"
|
||||
conf_files="/etc/default/dracut-uefi-hook"
|
||||
pkg_install() {
|
||||
vmove etc/kernel.d/post-install/20-dracut-uefi
|
||||
vmove etc/kernel.d/post-remove/20-dracut-uefi
|
||||
vmove etc/default/dracut-uefi-hook
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue