Gaetan Lepage
2025-06-25 16:21:01 +02:00
committed by r-vdp
co-authored by r-vdp
parent 5ff356ea88
commit 741e615271
3 changed files with 97 additions and 11 deletions
@@ -207,8 +207,3 @@ index 2dfc4d2f0..e5ac73edd 100644
)
endif
@@ -146,4 +146,3 @@ summary({
'capsule splash': get_option('plugin_uefi_capsule_splash'),
}, section:'uefi capsule options')
endif
-
+15 -6
View File
@@ -26,6 +26,7 @@
gobject-introspection,
meson,
ninja,
protobuf,
protobufc,
shared-mime-info,
vala,
@@ -49,6 +50,7 @@
libqmi,
libuuid,
libxmlb,
libxml2,
modemmanager,
pango,
polkit,
@@ -131,7 +133,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "fwupd";
version = "2.0.9";
version = "2.0.12";
# libfwupd goes to lib
# daemon, plug-ins and libfwupdplugin go to out
@@ -149,7 +151,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "fwupd";
repo = "fwupd";
tag = finalAttrs.version;
hash = "sha256-Izh6PHMgUsOeez9uWSLoA2GhvawYQlEZo480vovxn38=";
hash = "sha256-AYPrQzk28CS4Yhj2+KARt3b1SC02YifEftsSF+fKJ+Y=";
};
patches = [
@@ -170,14 +172,19 @@ stdenv.mkDerivation (finalAttrs: {
# EFI capsule is located in fwupd-efi now.
./efi-app-path.patch
# See https://github.com/fwupd/fwupd/pull/8959
./uefi-capsule-no-splash-fix-test.diff
];
postPatch =
''
patchShebangs \
contrib/generate-version-script.py \
contrib/generate-man.py \
po/test-deps
generate-build/generate-version-script.py \
generate-build/generate-man.py \
po/test-deps \
plugins/uefi-capsule/tests/grub2-mkconfig \
plugins/uefi-capsule/tests/grub2-reboot
''
# in nixos test tries to chmod 0777 $out/share/installed-tests/fwupd/tests/redfish.conf
+ ''
@@ -202,10 +209,12 @@ stdenv.mkDerivation (finalAttrs: {
gettext
gi-docgen
gobject-introspection
libxml2
meson
ninja
pkg-config
protobufc # for protoc
protobuf # for protoc
protobufc # for protoc-gen-c
shared-mime-info
vala
wrapGAppsNoGuiHook
@@ -0,0 +1,82 @@
commit 90d854ca68543ed117a5a49c28a027972088b568
Author: r-vdp <ramses@well-founded.dev>
Date: Wed Jun 25 11:31:45 2025 +0200
Fix uefi self-test when plugin_uefi_capsule_splash is disabled
diff --git a/meson.build b/meson.build
index 922e87c23..d36850422 100644
--- a/meson.build
+++ b/meson.build
@@ -564,6 +564,10 @@ conf.set_quoted('MOTD_DIR', motd_dir)
conf.set_quoted('FU_DEFAULT_P2P_POLICY', get_option('p2p_policy'))
+if get_option('plugin_uefi_capsule_splash')
+ conf.set('FWUPD_UEFI_CAPSULE_SPLASH_ENABLED', '1')
+endif
+
configure_file(
output: 'config.h',
configuration: conf
diff --git a/plugins/uefi-capsule/fu-self-test.c b/plugins/uefi-capsule/fu-self-test.c
index d8ffdd913..d99b72fc7 100644
--- a/plugins/uefi-capsule/fu-self-test.c
+++ b/plugins/uefi-capsule/fu-self-test.c
@@ -534,6 +534,7 @@ fu_uefi_plugin_nvram_func(void)
g_assert_no_error(error);
g_assert_true(ret);
+#ifdef FWUPD_UEFI_CAPSULE_SPLASH_ENABLED
/* check UX splash was created */
g_assert_true(fu_uefi_plugin_esp_file_exists(
esp,
@@ -541,14 +542,17 @@ fu_uefi_plugin_nvram_func(void)
g_assert_true(fu_efivars_exists(fu_context_get_efivars(ctx),
FU_EFIVARS_GUID_FWUPDATE,
"fwupd-ux-capsule"));
+#endif
/* check FW was created */
g_assert_true(fu_uefi_plugin_esp_file_exists(
esp,
"EFI/" EFI_OS_DIR "/fw/fwupd-cc4cbfa9-bf9d-540b-b92b-172ce31013c1.cap"));
+#ifdef FWUPD_UEFI_CAPSULE_SPLASH_ENABLED
g_assert_true(fu_efivars_exists(fu_context_get_efivars(ctx),
FU_EFIVARS_GUID_FWUPDATE,
"fwupd-ux-capsule"));
+#endif
g_assert_true(fu_efivars_exists(fu_context_get_efivars(ctx),
FU_EFIVARS_GUID_FWUPDATE,
"fwupd-cc4cbfa9-bf9d-540b-b92b-172ce31013c1-0"));
diff --git a/plugins/uefi-capsule/fu-uefi-capsule-plugin.c b/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
index 6623ccd06..419d86565 100644
--- a/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
+++ b/plugins/uefi-capsule/fu-uefi-capsule-plugin.c
@@ -327,6 +327,7 @@ fu_uefi_capsule_plugin_add_security_attrs(FuPlugin *plugin, FuSecurityAttrs *att
fu_uefi_capsule_plugin_add_security_attrs_bootservices(plugin, attrs);
}
+#ifdef FWUPD_UEFI_CAPSULE_SPLASH_ENABLED
static GBytes *
fu_uefi_capsule_plugin_get_splash_data(guint width, guint height, GError **error)
{
@@ -544,6 +545,7 @@ fu_uefi_capsule_plugin_update_splash(FuPlugin *plugin, FuDevice *device, GError
/* perform the upload */
return fu_uefi_capsule_plugin_write_splash_data(self, device, image_bmp, error);
}
+#endif // FWUPD_UEFI_CAPSULE_SPLASH_ENABLED
static gboolean
fu_uefi_capsule_plugin_write_firmware(FuPlugin *plugin,
@@ -583,8 +585,10 @@ fu_uefi_capsule_plugin_write_firmware(FuPlugin *plugin,
/* perform the update */
fu_progress_set_status(progress, FWUPD_STATUS_SCHEDULING);
+#ifdef FWUPD_UEFI_CAPSULE_SPLASH_ENABLED
if (!fu_uefi_capsule_plugin_update_splash(plugin, device, &error_splash))
g_info("failed to upload UEFI UX capsule text: %s", error_splash->message);
+#endif
return fu_device_write_firmware(device, firmware, progress, flags, error);
}