forked from pool/fwupd
Dominique Leuenberger
63fccdaa46
- Update to version 1.3.1: * Allow disabling all plugins * trivial: Specify the tpm2-tss-devel version in the example spec file * Move to CI Fedora 30 * modem-manager: Fix two build warnings on Fedora 30 * synapticsmst: Add another name quirk for the ThinkPad USB-C Dock * Re-introduce GUID support to fwupdmgr and fwupdtool * uefi-recovery: Add a plugin to add a fake ESRT entry for device recovery * Add a DMI quirk for the Minnowboard Turbot * trivial: Make it easy to disable or enable libflashrom for distros * trivial: Don't use Recommends for RHEL 7 * unifying: fix timeout metadata * ci: arch: minor improvements * unifying: fix timeout * Allow disabling SSL strict mode for broken corporate proxies * trivial: Allow ignoring the daemon version check by using --force * Try to only show DMI product name once * trivial: fu-util-common: Show unknown devices as interesting devices * dell: Use TSS to query and build TPM vendor strings for GUIDs * trivial: dell: show reasons for lack of updates in `UpdateError` * fu-util-common: strip all trailing whitespace in XML description * trivial: fu-common: match all whitespace not just ' ' in `fu_common_strstrip` * fu-util: show release output in get-details again * unifying: use fu_firmware_strparse_uint16 to read be 16bit values * unifying: fix incomplete hex file parsing * fu-util/fu-tool: Print devices, remotes, releases using a tree * Add aliases for `get-upgrades` and `upgrade` * trivial: UEFI skip self tests if library fails to initialize * libfwupd: Add a new private function `fwupd_remote_set_remotes_dir` * trivial: add libtss2-dev into debian/control (Closes: #1324) * trivial: Fix up the GtkDoc Since lines for API only available in 1.3.x * trivial: Post branch version bump * thunderbolt: Add support for kernel safety checks (Fixes: #1312) * Include the kernel release as a runtime version * trivial: fu-util: Drop GUID support from get-devices * synapticsmst: Partially rewrite the plugin (Fixes #1105) * Remove replug flag after the device comes back from reboot * trivial: Fix running the tests on devices with the TPM in v1.2 mode * trivial: fu-util-common: more cleanup related to topology * trivial: fu-util: cleanup fwupdmgr get-details output * trivial: Don't use topology printing in --verbose mode * Make get-devices and get-topology aliases for one another * trivial: Adjust daemon device sorting * Make get-topology more useful by showing all information * trivial: Fix fu_common_string_append_kv() to align properly with idx > 0 * trivial: dell-dock: correct an error preventing write_size from being set * trivial: Do not warn about deprecated declarations * trivial: Update BRs for the example Fedora package * uefi: add test for TPM 2.0 PCR read function * uefi: use tpm2-tss library to read PCR values * fu-common: Use environment variables for systemd managed directories * Use more systemd directives for directories * trivial: fu-util: fix debug output for devices * Allow turning off the timestamp prefix for debugging * Add a ->udev_device_changed plugin vfunc * Add fu_device_rescan() and a FuDevice->rescan() vfunc * Remove the duplicate files in meson.build * Hash the source files when generating the daemon hash * Split up source files in the build script * uefi: add support for tpm2-tools 4.X * trivial: plugins: clarify stance on afuefi.efi * trivial: plugins/: Update README * trivial: disable gtkdoc by default * trivial: update references of hughsie/fwupd to fwupd/fwupd * Publish docs to fwupd.github.io using CircelCI * Add support to integrate into the motd (Fixes: #1270) * Simplify get-devices output to not show un-useful fields * fu-engine/fu-config: Reload metadata store when configuration changes * trivial: If no devices support updates, show messaging (Closes: #1295) * trivial: uefi: set vendor name for system firwmare from DMI data * unifying: update Solaar url * thunderbolt: Fix logic to work properly with ICL thunderbolt controller * Add fu_udev_device_get_device_file() helper * trivial: Fix regression when using fu_device_incorporate() * trivial: Fix a potential crash when using FuPlugin in the self tests * synapticsmst: Make FuSynapticsmstConnection an actual GObject * synapticsmst: Use the same style as other plugins * trivial: Add some helper functions for GByteArray * Do not use FuDevice metadata for the physical and logical IDs * Use fu_common_string_append_kv() in subclassed device * synapticsmst: Use G_DECLARE_FINAL_TYPE to simplify the object * synapticsmst: Add a SynapticsMSTBoardID for another Lenovo dock * trivial: remove unnecessary CUSTOMERID_DELL define * synapticsmst: Add a SynapticsMSTBoardID for a Lenovo dock * synapticsmst: Display the board ID in non-hex form in the error message * synapticsmst: Use a more suitable icon for the device * trivial: Remove unused variable * Never use memcpy() in a possibly unsafe way * Add a ->to_string() vfunc to FuFirmware * Use FuFirmware as a container for firmware images * Allow filtering devices when using the command line tools * Be more accepting when trying to recover a failed database migration * trivial: Add translation for X-ThunderboltController * trivial: fixup standalone installer * modem-manager: add counterpart GUID for the DW5821e * solokey: Release the interface and rebind the kernel driver on close * fu-tool: Port ability to update a single device from fwupdmgr * uefi: Actually write the new device path if different than before * Allow setting custom flags when using fwupdate * trivial: Do not show a critical warning if no firmware is specified * trivial: Fix overzealous search-replace action in user string * Verify we don't break the ABI * Fix a crash when stopping the fwupd service * Relax the certificate time checks in the self tests for the legacy certificate * trivial: add cache directory into systemd unit rw paths * Never show AppStream markup on the console * Do not segfault when trying to quit the downgrade selection * trivial: Update icons for Thunderbolt and MST devices * Add support for the SoloKey Secure * trivial: Allow a device to *clear* a firmware version * trivial: debian: For signed package fill out Built-Using (Closes: #932757) * Allow specifying <firmware>GUID</firmware> to check any version exists * trivial: post release version bump * Release fwupd 1.2.10 * Disable the flashrom plugin by default * trivial: thunderbolt: catch failure setting up device * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using --plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * trivial: uefi: use UEFI-dummy for device ID instead of just uefi * trivial: fix error handling for non UEFI case (#1220) * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * trivial: ci: debian: Only turn on flashrom when running CI * trivial: Fix typos in error messages * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * trivial: Fix the version script to pick up boxed types * trivial: Correctly order the map entries according to vercmp rules * trivial: Fix pylint issue in the version script * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * Revert "Allow SuperIO updates to be done live" * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * trivial: uefi: use the path for efibootmgr that was detected * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * trivial: Add some parameter guards to FuDevice * trivial: snap: make polkit directories if they don't exist (Fixes: #1205) * trivial: fu-main: clarify missing PK file error * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * trivial: circleci: try to fix automatic snap deployment * Allow SuperIO updates to be done live * fu-util-common: Support empty proxy strings (Fixes: #1199) * trivial: uefi: clarify error message * trivial: Fix non-systemd build * trivial: Sync example spec file with downstream * trivial: post release version bump - Drop fwupd-bsc1143905-hash-the-source-files.patch: Applied upstream. - Add pkgconfig(tss2-esys) BuildRequires: New dependency. - Add gtk-doc BuildRequires and pass gtkdoc=true to meson, build api docs even when using source service. OBS-URL: https://build.opensuse.org/request/show/732869 OBS-URL: https://build.opensuse.org/package/show/Base:System/fwupd?expand=0&rev=59
307 lines
9.6 KiB
RPMSpec
307 lines
9.6 KiB
RPMSpec
#
|
|
# spec file for package fwupd
|
|
#
|
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
# needssslcertforbuild
|
|
|
|
|
|
%ifarch %{ix86} x86_64 aarch64
|
|
%bcond_without efi_fw_update
|
|
%else
|
|
%bcond_with efi_fw_update
|
|
%endif
|
|
%if 0%{?is_opensuse}
|
|
%global efidir opensuse
|
|
%else
|
|
%global efidir sles
|
|
%endif
|
|
Name: fwupd
|
|
Version: 1.3.1
|
|
Release: 0
|
|
Summary: Device firmware updater daemon
|
|
License: GPL-2.0-or-later AND LGPL-2.1-or-later
|
|
Group: System/Management
|
|
URL: https://fwupd.org/
|
|
# Do not use upstream tarball, we are using source service!
|
|
#Source: https://github.com/hughsie/%%{name}/archive/%%{version}.tar.gz
|
|
Source: %{name}-%{version}.tar.xz
|
|
|
|
# PATCH-FIX-OPENSUSE fwupd-bsc1130056-shim-path.patch bsc#1130056
|
|
Patch1: fwupd-bsc1130056-change-shim-path.patch
|
|
|
|
BuildRequires: dejavu-fonts
|
|
BuildRequires: docbook-utils-minimal
|
|
BuildRequires: gcab
|
|
# for certtool
|
|
BuildRequires: gnutls
|
|
BuildRequires: gobject-introspection
|
|
BuildRequires: gobject-introspection-devel
|
|
BuildRequires: gpgme-devel
|
|
BuildRequires: gtk-doc
|
|
BuildRequires: help2man
|
|
BuildRequires: intltool
|
|
BuildRequires: libelf-devel
|
|
BuildRequires: meson >= 0.47.0
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: procps
|
|
BuildRequires: python3-Pillow
|
|
BuildRequires: python3-cairo
|
|
BuildRequires: python3-gobject-Gdk
|
|
BuildRequires: python3-setuptools
|
|
BuildRequires: python3-xml
|
|
BuildRequires: vala
|
|
BuildRequires: pkgconfig(appstream-glib) >= 0.5.10
|
|
BuildRequires: pkgconfig(bash-completion)
|
|
BuildRequires: pkgconfig(cairo)
|
|
BuildRequires: pkgconfig(colorhug) >= 1.2.12
|
|
BuildRequires: pkgconfig(gio-2.0) >= 2.25.9
|
|
BuildRequires: pkgconfig(gio-unix-2.0)
|
|
BuildRequires: pkgconfig(glib-2.0) >= 2.45.8
|
|
BuildRequires: pkgconfig(gmodule-2.0)
|
|
BuildRequires: pkgconfig(gnutls)
|
|
BuildRequires: pkgconfig(gobject-2.0)
|
|
BuildRequires: pkgconfig(gthread-2.0)
|
|
BuildRequires: pkgconfig(gtk-doc) >= 1.14
|
|
BuildRequires: pkgconfig(gudev-1.0)
|
|
BuildRequires: pkgconfig(gusb) >= 0.2.9
|
|
BuildRequires: pkgconfig(json-glib-1.0) >= 1.1.1
|
|
BuildRequires: pkgconfig(libarchive)
|
|
BuildRequires: pkgconfig(libelf)
|
|
BuildRequires: pkgconfig(libgcab-1.0)
|
|
BuildRequires: pkgconfig(libsoup-2.4) >= 2.51.92
|
|
BuildRequires: pkgconfig(polkit-gobject-1) >= 0.103
|
|
BuildRequires: pkgconfig(sqlite3)
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(tss2-esys)
|
|
BuildRequires: pkgconfig(udev)
|
|
BuildRequires: pkgconfig(valgrind)
|
|
BuildRequires: pkgconfig(xmlb)
|
|
%if %{with efi_fw_update}
|
|
BuildRequires: gnu-efi
|
|
BuildRequires: pesign-obs-integration
|
|
BuildRequires: pkgconfig(efiboot)
|
|
BuildRequires: pkgconfig(efivar) >= 33
|
|
%endif
|
|
%ifarch %{ix86} x86_64
|
|
BuildRequires: pkgconfig(libsmbios_c) >= 2.3.0
|
|
%endif
|
|
%if %{with efi_fw_update}
|
|
Obsoletes: fwupdate
|
|
%ifarch x86_64
|
|
Requires: shim >= 11
|
|
%endif
|
|
%endif
|
|
|
|
%description
|
|
fwupd is a daemon to allows session software to update device firmware on
|
|
the local machine.
|
|
|
|
You can either use a GUI software manager like GNOME Software to view and apply
|
|
updates, the command line tool or the system D-Bus interface directly.
|
|
|
|
%package -n libfwupd2
|
|
Summary: Allow session software to update device firmware
|
|
Group: System/Libraries
|
|
Requires: %{name} >= %{version}
|
|
|
|
%description -n libfwupd2
|
|
fwupd is a daemon to allows session software to update device firmware on
|
|
the local machine.
|
|
|
|
%package -n typelib-1_0-Fwupd-2_0
|
|
Summary: GObject-introspection bindings for libfwupd
|
|
Group: System/Libraries
|
|
|
|
%description -n typelib-1_0-Fwupd-2_0
|
|
fwupd is a daemon to allows session software to update device firmware on
|
|
the local machine.
|
|
|
|
%package -n dfu-tool
|
|
Summary: Generic tool Device Firmware Upgrade (DFU) tool
|
|
Group: Development/Tools/Other
|
|
|
|
%description -n dfu-tool
|
|
A generic tool to upload firmware to USB Devices based on Device Firmware Upgrade (DFU).
|
|
|
|
%package devel
|
|
Summary: Allow session software to update device firmware
|
|
Group: Development/Languages/C and C++
|
|
Requires: libfwupd2 = %{version}
|
|
|
|
%description devel
|
|
fwupd is a daemon to allows session software to update device firmware on
|
|
the local machine.
|
|
|
|
%lang_package
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
|
|
for file in $(grep -l %{_bindir}/env . -r); do
|
|
sed -i "s|%{_bindir}/env python3|%{_bindir}/python3|" $file
|
|
done
|
|
|
|
%build
|
|
# Dell support requires direct SMBIOS access,
|
|
# Synaptics requires Dell support, i.e. x86 only
|
|
%meson \
|
|
%if %{without efi_fw_update}
|
|
-Dplugin_nvme=false \
|
|
-Dplugin_redfish=false \
|
|
-Dplugin_uefi=false \
|
|
%else
|
|
-Defi_os_dir="%{efidir}" \
|
|
%endif
|
|
%ifnarch %{ix86} x86_64
|
|
-Dplugin_dell=false \
|
|
-Dplugin_synaptics=false \
|
|
%endif
|
|
-Dgtkdoc=true \
|
|
-Dtests=false
|
|
%meson_build
|
|
|
|
%install
|
|
export BRP_PESIGN_FILES='%{_libexecdir}/fwupd/efi/fwupd*.efi'
|
|
%meson_install
|
|
# README.md is packaged as doc
|
|
rm %{buildroot}%{_localstatedir}/lib/fwupd/builder/README.md
|
|
# Add SUSE specific rcfoo service symlink
|
|
mkdir -p %{buildroot}%{_sbindir}
|
|
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
|
|
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcfwupd-offline-update
|
|
%find_lang %{name}
|
|
|
|
# Do not ship default polkit .rules - openSUSE overrides them anyway - boo#1125428
|
|
rm %{buildroot}%{_datadir}/polkit-1/rules.d/org.freedesktop.fwupd.rules
|
|
|
|
# do not package tests
|
|
rm -fr %{buildroot}%{_datadir}/installed-tests
|
|
|
|
%if %{with efi_fw_update}
|
|
# link fwupd*.efi.signed to fwupd*.efi (bsc#1129466)
|
|
FWUPD_EFI=`basename %{buildroot}/%{_libexecdir}/fwupd/efi/fwupd*.efi`
|
|
ln -s %{_libexecdir}/fwupd/efi/$FWUPD_EFI %{buildroot}/%{_libexecdir}/fwupd/efi/$FWUPD_EFI.signed
|
|
%endif
|
|
|
|
%post -n libfwupd2 -p /sbin/ldconfig
|
|
%postun -n libfwupd2 -p /sbin/ldconfig
|
|
%preun
|
|
%service_del_preun %{name}.service fwupd-offline-update.service
|
|
|
|
%pre
|
|
%service_add_pre %{name}.service fwupd-offline-update.service
|
|
|
|
%post
|
|
%udev_rules_update
|
|
%service_add_post %{name}.service fwupd-offline-update.service
|
|
%if %{with efi_fw_update}
|
|
if [ -d "/boot/efi/EFI/%{efidir}" ]; then
|
|
# Create the directory for firwmare update capsules
|
|
mkdir -p /boot/efi/EFI/%{efidir}/fw
|
|
# Install the UEFI firmware update program
|
|
cp %{_libexecdir}/fwupd/efi/fwupd*.efi /boot/efi/EFI/%{efidir}
|
|
fi
|
|
%endif
|
|
|
|
%postun
|
|
%service_del_postun %{name}.service fwupd-offline-update.service
|
|
%if %{with efi_fw_update}
|
|
if [ "$1" = 0 ] && [ -d "/boot/efi/EFI/%{efidir}" ] ; then
|
|
# Remove all capsule files
|
|
rm -rf /boot/efi/EFI/%{efidir}/fw
|
|
# Remove the UEFI firmware update program
|
|
rm -f /boot/efi/EFI/%{efidir}/fwupd*.efi
|
|
fi
|
|
%endif
|
|
|
|
%files
|
|
%license COPYING
|
|
%doc README.md
|
|
%{_unitdir}/fwupd.service
|
|
%{_unitdir}/fwupd-offline-update.service
|
|
%dir %{_unitdir}/system-update.target.wants/
|
|
%{_unitdir}/system-update.target.wants/fwupd-offline-update.service
|
|
%{_unitdir}/fwupd-refresh.service
|
|
%{_unitdir}/fwupd-refresh.timer
|
|
%{_libexecdir}/fwupd
|
|
%{_bindir}/fwupdmgr
|
|
%{_sbindir}/rc%{name}
|
|
%{_sbindir}/rcfwupd-offline-update
|
|
%{_sysconfdir}/dbus-1/system.d/org.freedesktop.fwupd.conf
|
|
%{_datadir}/dbus-1/interfaces/org.freedesktop.fwupd.xml
|
|
%{_datadir}/dbus-1/system-services/org.freedesktop.fwupd.service
|
|
%dir %{_datadir}/%{name}
|
|
%dir %{_datadir}/%{name}/metainfo
|
|
%dir %{_datadir}/%{name}/quirks.d
|
|
%dir %{_datadir}/%{name}/remotes.d
|
|
%dir %{_datadir}/%{name}/remotes.d/dell-esrt
|
|
%dir %{_datadir}/%{name}/remotes.d/vendor
|
|
%dir %{_datadir}/%{name}/remotes.d/vendor/firmware
|
|
%{_datadir}/%{name}/firmware-packager
|
|
%{_datadir}/%{name}/metainfo/org.freedesktop.fwupd.remotes.lvfs-testing.metainfo.xml
|
|
%{_datadir}/%{name}/metainfo/org.freedesktop.fwupd.remotes.lvfs.metainfo.xml
|
|
%{_datadir}/%{name}/quirks.d/*.quirk
|
|
%{_datadir}/%{name}/remotes.d/dell-esrt/metadata.xml
|
|
%{_datadir}/%{name}/remotes.d/vendor/firmware/README.md
|
|
%{_mandir}/man1/fwupdmgr.1%{?ext_man}
|
|
%{_datadir}/polkit-1/actions/org.freedesktop.fwupd.policy
|
|
%config %{_sysconfdir}/%{name}/
|
|
%dir %{_sysconfdir}/pki
|
|
%dir %{_sysconfdir}/pki/fwupd
|
|
%dir %{_sysconfdir}/pki/fwupd-metadata
|
|
%{_sysconfdir}/pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service
|
|
%{_sysconfdir}/pki/fwupd-metadata/GPG-KEY-Linux-Foundation-Metadata
|
|
%{_sysconfdir}/pki/fwupd-metadata/LVFS-CA.pem
|
|
%{_sysconfdir}/pki/fwupd/GPG-KEY-Hughski-Limited
|
|
%{_sysconfdir}/pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service
|
|
%{_sysconfdir}/pki/fwupd/GPG-KEY-Linux-Foundation-Firmware
|
|
%{_sysconfdir}/pki/fwupd/LVFS-CA.pem
|
|
%{_udevrulesdir}/90-fwupd-devices.rules
|
|
%{_libdir}/fwupd-plugins-3/
|
|
%dir %{_datadir}/metainfo
|
|
%{_datadir}/metainfo/org.freedesktop.fwupd.metainfo.xml
|
|
%dir %{_localstatedir}/lib/%{name}/
|
|
%{_datadir}/bash-completion/completions/fwupdmgr
|
|
%{_datadir}/bash-completion/completions/fwupdtool
|
|
%{_datadir}/bash-completion/completions/fwupdagent
|
|
%{_datadir}/icons/hicolor/*
|
|
%{_prefix}/lib/systemd/system-shutdown/fwupd.shutdown
|
|
|
|
%files -n dfu-tool
|
|
%{_bindir}/dfu-tool
|
|
%{_mandir}/man1/dfu-tool.1%{?ext_man}
|
|
|
|
%files -n libfwupd2
|
|
%{_libdir}/libfwupd.so.*
|
|
|
|
%files -n typelib-1_0-Fwupd-2_0
|
|
%{_libdir}/girepository-1.0/Fwupd-2.0.typelib
|
|
|
|
%files lang -f %{name}.lang
|
|
%if %{with efi_fw_update}
|
|
%{_datadir}/locale/*/LC_IMAGES/
|
|
%endif
|
|
|
|
%files devel
|
|
%doc %{_datadir}/gtk-doc/html/libfwupd/
|
|
%{_datadir}/gir-1.0/Fwupd-2.0.gir
|
|
%{_datadir}/vala/vapi/fwupd.deps
|
|
%{_datadir}/vala/vapi/fwupd.vapi
|
|
%{_includedir}/fwupd-1/
|
|
%{_libdir}/pkgconfig/fwupd.pc
|
|
%{_libdir}/libfwupd.so
|
|
|
|
%changelog
|