install : true,
install_dir : rootlibexecdir)
-exe = custom_target(
+kernel_install = custom_target(
'kernel-install',
input : kernel_install_in,
output : 'kernel-install',
public_programs += exe
endif
-if want_tests != 'false' and want_kernel_install
- test('test-kernel-install',
- test_kernel_install_sh,
- env : test_env,
- args : [exe.full_path(), loaderentry_install])
-endif
-
-exe = custom_target(
+ukify = custom_target(
'ukify',
input : 'src/ukify/ukify.py',
output : 'ukify',
install_mode : 'rwxr-xr-x',
install_dir : rootlibexecdir)
if want_ukify
- public_programs += exe
+ public_programs += ukify
+endif
+
+if want_tests != 'false' and want_kernel_install
+ args = [kernel_install.full_path(), loaderentry_install, uki_copy_install]
+ if want_ukify
+ args += [ukify.full_path(), ukify_install]
+ endif
+
+ test('test-kernel-install',
+ test_kernel_install_sh,
+ env : test_env,
+ args : args)
endif
############################################################
install_mode : 'rwxr-xr-x',
install_dir : kernelinstalldir)
-kernel_install_files = files(
- '50-depmod.install',
- '90-uki-copy.install',
-)
+uki_copy_install = files('90-uki-copy.install')
+
+kernel_install_files = [
+ files('50-depmod.install'),
+ uki_copy_install,
+]
if want_kernel_install
install_data(kernel_install_files,
export SYSTEMD_LOG_LEVEL=debug
kernel_install="${1:?}"
-plugin="${2:?}"
+loaderentry_install="${2:?}"
+uki_copy_install="${3:?}"
+ukify="${4:-}"
+ukify_install="${5:-}"
if [[ -d "${PROJECT_BUILD_ROOT:-}" ]]; then
bootctl="${PROJECT_BUILD_ROOT}/bootctl"
else
EOF
export KERNEL_INSTALL_CONF_ROOT="$D/sources"
-export KERNEL_INSTALL_PLUGINS="$plugin"
+# We "install" multiple plugins, but control which ones will be active via install.conf.
+export KERNEL_INSTALL_PLUGINS="${ukify_install} ${loaderentry_install} ${uki_copy_install}"
export BOOT_ROOT="$D/boot"
export BOOT_MNT="$D/boot"
export MACHINE_ID='3e0484f3634a418b8e6a39e8828b03e3'
+export KERNEL_INSTALL_UKIFY="$ukify"
+# Test type#1 installation
"$kernel_install" -v add 1.1.1 "$D/sources/linux" "$D/sources/initrd"
entry="$BOOT_ROOT/loader/entries/the-token-1.1.1.conf"
grep -qE 'image' "$BOOT_ROOT/the-token/1.1.1/linux"
grep -qE 'initrd' "$BOOT_ROOT/the-token/1.1.1/initrd"
-if test -x "$bootctl"; then
+# Install UKI
+if [ -f "$ukify" ]; then
+ cat >>"$D/sources/install.conf" <<EOF
+layout=uki
+uki_generator=ukify
+EOF
+ "$kernel_install" -v add 1.1.3 "$D/sources/linux" "$D/sources/initrd"
+ uki="${BOOT_ROOT}/EFI/Linux/the-token-1.1.3+56.efi"
+ test -f "$uki"
+
+ if [ -x "$bootctl" ]; then
+ "$bootctl" kernel-inspect "$uki" | grep -qE 'Kernel Type: +uki$'
+ "$bootctl" kernel-inspect "$uki" | grep -qE 'Version: +1\.1\.3$'
+ "$bootctl" kernel-inspect "$uki" | grep -qE 'Cmdline: +opt1 opt2$'
+ fi
+fi
+
+# Test bootctl
+if [ -x "$bootctl" ]; then
echo "Testing bootctl"
e2="${entry%+*}_2.conf"
cp "$entry" "$e2"