diff --git a/0001-Fix-compiling-with-new-versions-of-efivar.patch b/0001-Fix-compiling-with-new-versions-of-efivar.patch deleted file mode 100644 index 3d8e792e59b6f472505e7b825396b02624856408..0000000000000000000000000000000000000000 --- a/0001-Fix-compiling-with-new-versions-of-efivar.patch +++ /dev/null @@ -1,58 +0,0 @@ -From e74d38bfd3097471fe60dbe843a68c16516a78da Mon Sep 17 00:00:00 2001 -From: Richard Hughes -Date: Mon, 17 Jan 2022 14:50:47 +0000 -Subject: [PATCH] Fix compiling with new versions of efivar - -Fixes https://github.com/fwupd/fwupd/issues/4181 ---- - meson.build | 5 +++++ - plugins/uefi-capsule/fu-uefi-common.h | 3 +++ - 2 files changed, 8 insertions(+) - -diff --git a/meson.build b/meson.build -index 86e7057..0c768a2 100644 ---- a/meson.build -+++ b/meson.build -@@ -354,6 +354,11 @@ if build_standalone and get_option('plugin_uefi_capsule') - readelf = find_program ('readelf') - genpeimg = find_program ('genpeimg', required: false) - -+ efivar = dependency('efivar') -+ if cc.has_header_symbol('efivar/efivar-types.h', 'efi_time_t', dependencies : efivar) -+ conf.set('HAVE_EFI_TIME_T', '1') -+ endif -+ - efi_app_location = join_paths(libexecdir, 'fwupd', 'efi') - conf.set_quoted ('EFI_APP_LOCATION', efi_app_location) - -diff --git a/plugins/uefi-capsule/fu-uefi-common.h b/plugins/uefi-capsule/fu-uefi-common.h -index c7e3996..91b6c99 100644 ---- a/plugins/uefi-capsule/fu-uefi-common.h -+++ b/plugins/uefi-capsule/fu-uefi-common.h -@@ -7,6 +7,7 @@ - - #pragma once - -+#include - #include - - #include "fwupd-common.h" -@@ -17,6 +18,7 @@ - #define EFI_CAPSULE_HEADER_FLAGS_POPULATE_SYSTEM_TABLE 0x00020000 - #define EFI_CAPSULE_HEADER_FLAGS_INITIATE_RESET 0x00040000 - -+#ifndef HAVE_EFI_TIME_T - typedef struct __attribute__((__packed__)) { - guint16 year; - guint8 month; -@@ -30,6 +32,7 @@ typedef struct __attribute__((__packed__)) { - guint8 daylight; - guint8 pad2; - } efi_time_t; -+#endif - - typedef struct __attribute__((__packed__)) { - fwupd_guid_t guid; --- -2.33.0 - diff --git a/fix-efivar.patch b/fix-efivar.patch new file mode 100644 index 0000000000000000000000000000000000000000..841951ee11d0feed4e85a97e0b4ba69ff05aab86 --- /dev/null +++ b/fix-efivar.patch @@ -0,0 +1,32 @@ +diff -uprN fwupd-1.6.1/plugins/uefi-capsule/fu-uefi-common.h fwupd-1.6.1-new/plugins/uefi-capsule/fu-uefi-common.h +--- fwupd-1.6.1/plugins/uefi-capsule/fu-uefi-common.h 2021-06-14 21:42:36.630020000 +0800 ++++ fwupd-1.6.1-new/plugins/uefi-capsule/fu-uefi-common.h 2022-12-06 15:04:52.000000000 +0800 +@@ -8,6 +8,7 @@ + #pragma once + + #include ++#include + #include + + #define EFI_CAPSULE_HEADER_FLAGS_PERSIST_ACROSS_RESET 0x00010000 +@@ -15,20 +16,6 @@ + #define EFI_CAPSULE_HEADER_FLAGS_INITIATE_RESET 0x00040000 + + typedef struct __attribute__((__packed__)) { +- guint16 year; +- guint8 month; +- guint8 day; +- guint8 hour; +- guint8 minute; +- guint8 second; +- guint8 pad1; +- guint32 nanosecond; +- guint16 timezone; +- guint8 daylight; +- guint8 pad2; +-} efi_time_t; +- +-typedef struct __attribute__((__packed__)) { + fwupd_guid_t guid; + guint32 header_size; + guint32 flags; diff --git a/fwupd-1.5.8.tar.xz b/fwupd-1.5.8.tar.xz deleted file mode 100644 index ee925afaa003a6110fb8dc4e79bfa293dde3b9be..0000000000000000000000000000000000000000 Binary files a/fwupd-1.5.8.tar.xz and /dev/null differ diff --git a/fwupd-1.6.1.tar.xz b/fwupd-1.6.1.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..109f0ee557b801aa5c7952b7831ad400940760a3 Binary files /dev/null and b/fwupd-1.6.1.tar.xz differ diff --git a/fwupd-efi-1.3.tar.xz b/fwupd-efi-1.3.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..69001e0f1669e8e87cac4b31b0c968e6e079f9bf Binary files /dev/null and b/fwupd-efi-1.3.tar.xz differ diff --git a/fwupd.spec b/fwupd.spec index 428af7668170bc19ded51fb0ed131d740338e1a6..1102d61a405a6cac526c2b2b3e6d1ca32ce6d643 100644 --- a/fwupd.spec +++ b/fwupd.spec @@ -12,25 +12,25 @@ %endif Name: fwupd -Version: 1.5.8 -Release: 5 +Version: 1.6.1 +Release: 1 Summary: Make updating firmware on Linux automatic, safe and reliable License: LGPLv2+ URL: https://github.com/fwupd/fwupd/releases Source0: http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.tar.xz -#refer: https://github.com/fwupd/fwupd/commit/e74d38bfd3097471fe60dbe843a68c16516a78da -Patch0001: 0001-Fix-compiling-with-new-versions-of-efivar.patch +Source1: http://people.freedesktop.org/~hughsient/releases/fwupd-efi-1.3.tar.xz +Patch0: fix-efivar.patch BuildRequires: gettext glib2-devel libxmlb-devel valgrind valgrind-devel libgcab1-devel BuildRequires: gpgme-devel libgudev1-devel libgusb-devel libsoup-devel polkit-devel sqlite-devel libxslt BuildRequires: gobject-introspection-devel libarchive-devel systemd gcab elfutils-libelf-devel BuildRequires: bash-completion json-glib-devel help2man vala meson gnutls-utils gnutls-devel gtk-doc -BuildRequires: libjcat-devel tpm2-tss-devel +BuildRequires: libjcat-devel tpm2-tss-devel cmake protobuf-c-devel %if %{with uefi} BuildRequires: python3 python3-cairo python3-gobject python3-pillow BuildRequires: freetype fontconfig google-noto-sans-cjk-ttc-fonts -BuildRequires: gnu-efi-devel pesign efivar-devel pango-devel cairo-devel cairo-gobject-devel +BuildRequires: gnu-efi-devel efivar-devel pango-devel cairo-devel cairo-gobject-devel %endif %if %{with redfish} @@ -42,11 +42,14 @@ BuildRequires: efivar-devel libsmbios-devel %endif Requires: glib2 bubblewrap libsoup libgusb libxmlb shared-mime-info libjcat tpm2-tss -Requires: pesign Requires(post):systemd Requires(preun):systemd Requires(postun):systemd +%if %{with uefi} +Recommends: %{name}-efi +%endif + %description %{name} aims to make updating firmware on Linux automatic, safe and reliable. @@ -59,18 +62,38 @@ Obsoletes: %{name}-tests < %{version}-%{release} %description devel This package contains the development and installed test files for %{name}. +%if %{with uefi} +%package efi +Summary: Development and installed test files for %{name} +BuildRequires: gcc +BuildRequires: meson +BuildRequires: gnu-efi-devel +BuildRequires: pesign + +Requires: pesign + +%description efi +This package provides the EFI binary that is used for updating using UpdateCapsule. +%endif + %package_help %prep %autosetup -n %{name}-%{version} -p1 sed -i '/DynamicUser=yes/d' data/motd/fwupd-refresh.service.in +tar -xvJf %SOURCE1 %build -%meson -Dtests=true -Dgtkdoc=true -Dplugin_dummy=true \ +%meson -Dtests=true -Ddocs=gtkdoc -Dplugin_dummy=true \ %if %{with uefi} - -Dplugin_nvme=true \ + -Dplugin_uefi_capsule=true \ + -Dplugin_uefi_pk=true \ + -Dplugin_tpm=true \ + -Defi_binary=false \ %else - -Dplugin_nvme=false \ + -Dplugin_uefi_capsule=false \ + -Dplugin_uefi_pk=false \ + -Dplugin_tpm=false \ %endif %if %{with redfish} -Dplugin_redfish=true \ @@ -87,16 +110,29 @@ sed -i '/DynamicUser=yes/d' data/motd/fwupd-refresh.service.in %meson_build + +%if %{with uefi} +cd fwupd-efi-1.3 +%meson \ + -Defi_sbat_distro_pkgname="fwupd-efi" \ + -Defi_sbat_distro_version="1.3" \ + +%meson_build +%endif + %install %meson_install %if %{with uefi} +cd fwupd-efi-1.3 +%meson_install %ifarch x86_64 %pesign -s -i %{buildroot}%{_libexecdir}/%{name}/efi/%{name}x64.efi -o %{buildroot}%{_libexecdir}/%{name}/efi/%{name}x64.efi.signed %endif %ifarch aarch64 %pesign -s -i %{buildroot}%{_libexecdir}/%{name}/efi/%{name}aa64.efi -o %{buildroot}%{_libexecdir}/%{name}/efi/%{name}aa64.efi.signed %endif +cd ../ %endif mkdir -pm 0700 %{buildroot}%{_localstatedir}/lib/%{name}/gnupg @@ -116,7 +152,12 @@ mkdir -pm 0700 %{buildroot}%{_localstatedir}/lib/%{name}/gnupg %postun /sbin/ldconfig %systemd_postun_with_restart %{name}.service + +%if %{with uefi} +%postun efi +/sbin/ldconfig %systemd_postun_with_restart pesign.service +%endif %files -f %{name}.lang %doc README.md @@ -146,10 +187,6 @@ mkdir -pm 0700 %{buildroot}%{_localstatedir}/lib/%{name}/gnupg %{_unitdir}/*.wants/ %{_libdir}/fwupd-plugins-3/*.so %ghost %{_localstatedir}/lib/fwupd/gnupg -%if %{with uefi} -%{_libexecdir}/%{name}/efi/*.efi -%{_libexecdir}/%{name}/efi/*.efi.signed -%endif %if %{with redfish} %config(noreplace)%{_sysconfdir}/%{name}/redfish.conf %endif @@ -175,10 +212,19 @@ mkdir -pm 0700 %{buildroot}%{_localstatedir}/lib/%{name}/gnupg %dir %{_sysconfdir}/%{name}/remotes.d %config(noreplace)%{_sysconfdir}/%{name}/remotes.d/%{name}-tests.conf +%if %{with uefi} +%files efi +%{_libexecdir}/fwupd/efi/*.efi +%{_libexecdir}/fwupd/efi/*.efi.signed +%endif + %files help %{_datadir}/man/man1/* %changelog +* Fri Dec 02 2022 fushanqing - 1.6.1-1 +- update to 1.6.1 + * Thu Dec 01 2022 yaoxin - 1.5.8-5 - Resolve fwupd upgrade and downgrade error