SHA256
1
0
forked from pool/fwupd
fwupd/fwupd.spec

289 lines
9.0 KiB
RPMSpec
Raw Normal View History

#
# 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
Accepting request 558340 from home:fcrozat:branches:Base:System - Update to version 1.0.2: + Add a plugin for the Nitrokey Storage device + Add support for the original AVR DFU protocol + Allow different plugins to claim the same device + Allow quirks to set common USB properties + Move a common plugin functionality out to a new shared object + Optionally delay the device removal for better replugging + Set environment variables to allow easy per-plugin debugging + Use a SHA1 hash for the internal DeviceID + Add quirk for AT32UC3B1256 as used in the RubberDucky + Disable the dell plugin if libsmbios fails + Don't register for USB UDev events to later ignore them + Fix a possible buffer overflow when debugging ebitdo devices + Fix critical warning when more than one remote fails to load + Fix DFU attaching AVR32 devices like the XMEGA + Ignore useless Thunderbolt device types + Refactor ColorHug into a much more modern plugin + Release the Steelseries interface if getting the version failed + Remove autoconf-isms from the meson configure options + Show a nicer error message if the requirement fails + Sort the output of GetUpgrades correctly - Changes from version 1.0.1: + Add support for HWID requirements + Add support for programming various AVR32 and XMEGA parts using DFU + Add the various DFU quirks for the Jabra Speak devices + Allow specifying the output file type for 'dfu-tool read' + Move the database of supported devices out into runtime loaded files + Support the IHEX record type 0x05 + Use help2man to generate the man page at build time + Use the new quirk infrastructure for version numbers OBS-URL: https://build.opensuse.org/request/show/558340 OBS-URL: https://build.opensuse.org/package/show/Base:System/fwupd?expand=0&rev=16
2017-12-19 11:31:52 +01:00
%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.2.10
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/
Source: https://github.com/hughsie/%{name}/archive/%{version}.tar.gz
# PATCH-FIX-OPENSUSE fwupd-bsc1130056-shim-path.patch bsc#1130056
Patch1: fwupd-bsc1130056-change-shim-path.patch
# PATCH-FIX-UPSTRAEM fwupd-bsc1143905-hash-the-source-files.patch bsc#1143905
Patch2: fwupd-bsc1143905-hash-the-source-files.patch
BuildRequires: dejavu-fonts
BuildRequires: docbook-utils-minimal
BuildRequires: gcab
# for certtool
BuildRequires: gnutls
BuildRequires: gobject-introspection
BuildRequires: gobject-introspection-devel
BuildRequires: gpgme-devel
Accepting request 558340 from home:fcrozat:branches:Base:System - Update to version 1.0.2: + Add a plugin for the Nitrokey Storage device + Add support for the original AVR DFU protocol + Allow different plugins to claim the same device + Allow quirks to set common USB properties + Move a common plugin functionality out to a new shared object + Optionally delay the device removal for better replugging + Set environment variables to allow easy per-plugin debugging + Use a SHA1 hash for the internal DeviceID + Add quirk for AT32UC3B1256 as used in the RubberDucky + Disable the dell plugin if libsmbios fails + Don't register for USB UDev events to later ignore them + Fix a possible buffer overflow when debugging ebitdo devices + Fix critical warning when more than one remote fails to load + Fix DFU attaching AVR32 devices like the XMEGA + Ignore useless Thunderbolt device types + Refactor ColorHug into a much more modern plugin + Release the Steelseries interface if getting the version failed + Remove autoconf-isms from the meson configure options + Show a nicer error message if the requirement fails + Sort the output of GetUpgrades correctly - Changes from version 1.0.1: + Add support for HWID requirements + Add support for programming various AVR32 and XMEGA parts using DFU + Add the various DFU quirks for the Jabra Speak devices + Allow specifying the output file type for 'dfu-tool read' + Move the database of supported devices out into runtime loaded files + Support the IHEX record type 0x05 + Use help2man to generate the man page at build time + Use the new quirk infrastructure for version numbers OBS-URL: https://build.opensuse.org/request/show/558340 OBS-URL: https://build.opensuse.org/package/show/Base:System/fwupd?expand=0&rev=16
2017-12-19 11:31:52 +01:00
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(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
%setup -q
%patch1 -p1
%patch2 -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
-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
Accepting request 558340 from home:fcrozat:branches:Base:System - Update to version 1.0.2: + Add a plugin for the Nitrokey Storage device + Add support for the original AVR DFU protocol + Allow different plugins to claim the same device + Allow quirks to set common USB properties + Move a common plugin functionality out to a new shared object + Optionally delay the device removal for better replugging + Set environment variables to allow easy per-plugin debugging + Use a SHA1 hash for the internal DeviceID + Add quirk for AT32UC3B1256 as used in the RubberDucky + Disable the dell plugin if libsmbios fails + Don't register for USB UDev events to later ignore them + Fix a possible buffer overflow when debugging ebitdo devices + Fix critical warning when more than one remote fails to load + Fix DFU attaching AVR32 devices like the XMEGA + Ignore useless Thunderbolt device types + Refactor ColorHug into a much more modern plugin + Release the Steelseries interface if getting the version failed + Remove autoconf-isms from the meson configure options + Show a nicer error message if the requirement fails + Sort the output of GetUpgrades correctly - Changes from version 1.0.1: + Add support for HWID requirements + Add support for programming various AVR32 and XMEGA parts using DFU + Add the various DFU quirks for the Jabra Speak devices + Allow specifying the output file type for 'dfu-tool read' + Move the database of supported devices out into runtime loaded files + Support the IHEX record type 0x05 + Use help2man to generate the man page at build time + Use the new quirk infrastructure for version numbers OBS-URL: https://build.opensuse.org/request/show/558340 OBS-URL: https://build.opensuse.org/package/show/Base:System/fwupd?expand=0&rev=16
2017-12-19 11:31:52 +01:00
# 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
%{_libexecdir}/systemd/system/fwupd.service
%{_libexecdir}/systemd/system/fwupd-offline-update.service
%%dir %{_libexecdir}/systemd/system/system-update.target.wants/
%{_libexecdir}/systemd/system/system-update.target.wants/fwupd-offline-update.service
%{_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
%{_datadir}/%{name}/
%{_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