4 %bcond_without efi # UEFI (and dell, redfish) support
5 %bcond_without flashrom # flashrom plugin
6 %bcond_without modemmanager # modem_manager plugin
7 %bcond_without thunderbolt # Thunderbolt support
9 %ifnarch %{ix86} %{x8664} x32 %{arm} aarch64
12 Summary: System daemon for installing device firmware
13 Summary(pl.UTF-8): Demon systemowy do instalowania firmware'u urządzeń
18 Group: Applications/System
19 Source0: https://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.tar.xz
20 # Source0-md5: 0817e0fe6b52e328bb08575acd9a6251
21 URL: https://github.com/hughsie/fwupd
22 %{?with_modemmanager:BuildRequires: ModemManager-devel >= 1.10.0}
23 BuildRequires: bash-completion-devel >= 2.0
24 %{?with_cairo:BuildRequires: cairo-devel}
25 BuildRequires: curl-devel >= 7.62.0
26 BuildRequires: docbook-dtd41-sgml
27 BuildRequires: docbook-utils
28 %{?with_efi:BuildRequires: efivar-devel >= 33}
29 # pkgconfig(libelf); can be also libelf-devel
30 BuildRequires: elfutils-devel >= 0.166
31 %{?with_fontconfig:BuildRequires: fontconfig-devel}
32 %{?with_fontconfig:BuildRequires: freetype-devel >= 2}
33 BuildRequires: gcab-devel >= 1.0
35 BuildRequires: gcc >= 5:3.2
37 BuildRequires: gcc-multilib-64 >= 5:3.2
39 BuildRequires: gettext-tools >= 0.19.7
40 BuildRequires: glib2-devel >= 1:2.55.0
41 %{?with_efi:BuildRequires: gnu-efi}
42 BuildRequires: gnutls-devel >= 3.6.0
43 BuildRequires: gobject-introspection-devel >= 0.9.8
44 BuildRequires: gpgme-devel
45 %{?with_doc:BuildRequires: gtk-doc >= 1.14}
46 BuildRequires: intltool >= 0.35.0
47 BuildRequires: json-glib-devel >= 1.1.1
48 BuildRequires: libarchive-devel
49 %{?with_flashrom:BuildRequires: libflashrom-devel >= 1.2}
50 BuildRequires: libgpg-error-devel
51 BuildRequires: libgudev-devel >= 232
52 BuildRequires: libgusb-devel >= 0.3.5
53 BuildRequires: libjcat-devel >= 0.1.0
54 %{?with_modemmanager:BuildRequires: libqmi-devel >= 1.22.0}
55 # for dell (which requires also uefi plugin and efivar)
56 %{?with_efi:BuildRequires: libsmbios-devel >= 2.4.0}
57 BuildRequires: libsoup-devel >= 2.52
58 BuildRequires: libuuid-devel
59 BuildRequires: libxmlb-devel >= 0.1.13
60 BuildRequires: libxslt-progs
61 # for <linux/nvme_ioctl.h>
62 BuildRequires: linux-libc-headers >= 7:4.4
63 BuildRequires: meson >= 0.47.0
64 BuildRequires: ninja >= 1.6
65 BuildRequires: pkgconfig
66 BuildRequires: polkit-devel >= 0.114
67 BuildRequires: python3 >= 1:3.0
68 BuildRequires: python3-pillow
69 BuildRequires: python3-pycairo
70 BuildRequires: rpm-build >= 4.6
71 BuildRequires: rpmbuild(macros) >= 1.736
72 BuildRequires: sqlite3-devel >= 3
73 BuildRequires: systemd-units >= 1:211
74 BuildRequires: tar >= 1:1.22
75 BuildRequires: tpm2-tss-devel >= 2.0
76 BuildRequires: udev-devel
77 %{?with_thunderbolt:BuildRequires: umockdev-devel}
79 BuildRequires: xz-devel
80 Requires: %{name}-libs = %{version}-%{release}
81 %{?with_modemmanager:BuildRequires: ModemManager-libs >= 1.10.0}
82 Requires: curl-libs >= 7.62.0
84 Requires: gnutls-libs >= 3.6.0
85 Requires: libgudev >= 232
86 Requires: libgusb >= 0.3.5
87 Requires: libjcat >= 0.1.0
88 %{?with_modemmanager:Requires: libqmi >= 1.22.0}
89 %{?with_efi:Requires: libsmbios >= 2.4.0}
90 Requires: libsoup >= 2.52
91 Requires: libxmlb >= 0.1.7
92 Requires: polkit >= 0.114
93 Requires: tpm2-tss >= 2.0
97 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
100 fwupd is a simple daemon to allow session software to update device
101 firmware on your local machine. It's designed for desktops, but this
102 project is probably quite interesting for phones, tablets and server
105 %description -l pl.UTF-8
106 fwupd to prosty demon pozwalający programom sesyjnym na aktualizację
107 firmware'u urządzeń na maszynie lokalnej. Jest zaprojektowany dla
108 komputerów osobistych, ale może być interesujący także dla telefonów,
109 tabletów i farm serwerów.
111 %package -n bash-completion-fwupd
112 Summary: Bash completion for fwupd commands
113 Summary(pl.UTF-8): Bashowe dopełnianie składni poleceń fwupd
114 Group: Applications/Shells
115 Requires: %{name} = %{version}-%{release}
116 Requires: bash-completion >= 2.0
118 %description -n bash-completion-fwupd
119 Bash completion for fwupd commands.
121 %description -n bash-completion-fwupd -l pl.UTF-8
122 Bashowe dopełnianie składni poleceń fwupd.
124 %package -n fish-completion-fwupd
125 Summary: Fish completion for fwupd commands
126 Summary(pl.UTF-8): Dopełnianie składni poleceń fwupd w fish
127 Group: Applications/Shells
128 Requires: %{name} = %{version}-%{release}
131 %description -n fish-completion-fwupd
132 Fish completion for fwupd commands.
134 %description -n fish-completion-fwupd -l pl.UTF-8
135 Dopełnianie składni poleceń fwupd w fish.
138 Summary: Libraries for fwupd device firmware installing daemon
139 Summary(pl.UTF-8): Biblioteki dla demona fwupd instalującego aktualizacje firmware'u
141 Requires: glib2-devel >= 1:2.55.0
142 Requires: json-glib >= 1.1.1
145 Libraries for fwupd device firmware installing daemon.
147 %description libs -l pl.UTF-8
148 Biblioteki dla demona fwupd instalującego aktualizacje firmware'u.
151 Summary: Header files for fwupd libraries
152 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek fwupd
153 Group: Development/Libraries
154 Requires: %{name}-libs = %{version}-%{release}
155 Requires: glib2-devel >= 1:2.55.0
158 Header files for fwupd libraries.
160 %description devel -l pl.UTF-8
161 Pliki nagłówkowe bibliotek fwupd.
164 Summary: Static fwupd libraries
165 Summary(pl.UTF-8): Statyczne biblioteki fwupd
166 Group: Development/Libraries
167 Requires: %{name}-devel = %{version}-%{release}
170 Static fwupd libraries.
172 %description static -l pl.UTF-8
173 Statyczne biblioteki fwupd.
176 Summary: API documentation for fwupd libraries
177 Summary(pl.UTF-8): Dokumentacja API do bibliotek fwupd
182 API documentation for fwupd libraries.
184 %description apidocs -l pl.UTF-8
185 Dokumentacja API do bibliotek fwupd.
187 %package -n vala-fwupd
188 Summary: Vala API for fwupd library
189 Summary(pl.UTF-8): API języka Vala do biblioteki fwupd
190 Group: Development/Libraries
191 Requires: %{name}-devel = %{version}-%{release}
192 Requires: vala-libsoup >= 2.52
194 %description -n vala-fwupd
195 Vala API for fwupd library.
197 %description -n vala-fwupd -l pl.UTF-8
198 API języka Vala do biblioteki fwupd.
204 # -m64 is needed to build x64 EFI
205 %{__sed} -i -e "/^if efi_arch == 'x86_64'/,/^elif/ s/'-mno-red-zone',/& '-m64',/" plugins/uefi/efi/meson.build
210 -Dbash_completiondir=%{bash_compdir} \
212 -Dgtkdoc=%{__true_false apidocs} \
214 %{!?with_efi:-Dplugin_dell=false} \
215 %{?with_flashrom:-Dplugin_flashrom=true} \
216 -Dplugin_intel_spi=true \
217 %{?with_modemmanager:-Dplugin_modem_manager=true} \
218 %{!?with_efi:-Dplugin_redfish=false} \
219 %{!?with_thunderbolt:-Dplugin_thunderbolt=false} \
220 %{!?with_efi:-Dplugin_uefi_capsule=false} \
223 %meson_build -C build
226 rm -rf $RPM_BUILD_ROOT
228 %meson_install -C build
230 for pdoc in plugins/*/README.md ; do
231 pname=$(basename $(dirname $pdoc))
232 cp -p plugins/${pname}/README.md README-${pname}.md
238 rm -rf $RPM_BUILD_ROOT
240 %post libs -p /sbin/ldconfig
241 %postun libs -p /sbin/ldconfig
243 %files -f %{name}.lang
244 %defattr(644,root,root,755)
245 %doc AUTHORS MAINTAINERS README.md README-*.md SECURITY.md
246 %{?with_efi:%attr(755,root,root) %{_bindir}/dbxtool}
247 %attr(755,root,root) %{_bindir}/dfu-tool
248 %attr(755,root,root) %{_bindir}/fwupdagent
249 %{?with_efi:%attr(755,root,root) %{_bindir}/fwupdate}
250 %attr(755,root,root) %{_bindir}/fwupdmgr
251 %attr(755,root,root) %{_bindir}/fwupdtool
252 %attr(755,root,root) %{_bindir}/fwupdtpmevlog
253 %dir %{_libexecdir}/fwupd
254 %attr(755,root,root) %{_libexecdir}/fwupd/fwupd
255 %attr(755,root,root) %{_libexecdir}/fwupd/fwupd-detect-cet
256 %attr(755,root,root) %{_libexecdir}/fwupd/fwupdoffline
257 %dir %{_libdir}/fwupd-plugins-3
258 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_acpi_dmar.so
259 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_acpi_facp.so
260 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_altos.so
261 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_analogix.so
262 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_amt.so
263 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_ata.so
264 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_bcm57xx.so
266 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_bios.so
268 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_ccgx.so
269 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_colorhug.so
270 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_cpu.so
271 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_cros_ec.so
273 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_dell.so
274 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_dell_esrt.so
276 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_dell_dock.so
277 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_dfu.so
278 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_dfu_csr.so
279 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_ebitdo.so
280 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_elantp.so
281 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_emmc.so
282 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_ep963x.so
283 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_fastboot.so
285 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_flashrom.so
287 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_fresco_pd.so
288 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_goodixmoc.so
289 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_hailuck.so
290 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_intel_spi.so
291 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_iommu.so
292 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_jabra.so
293 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_linux_lockdown.so
294 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_linux_sleep.so
295 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_linux_swap.so
296 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_linux_tainted.so
297 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_logind.so
298 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_logitech_hidpp.so
299 %if %{with modemmanager}
300 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_modem_manager.so
302 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_msr.so
303 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_nitrokey.so
304 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_nvme.so
305 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_optionrom.so
306 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_pci_bcr.so
307 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_pci_mei.so
308 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_pixart_rf.so
310 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_redfish.so
312 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_rts54hid.so
313 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_rts54hub.so
314 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_solokey.so
315 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_steelseries.so
316 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_superio.so
317 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_cxaudio.so
318 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_mst.so
319 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_prometheus.so
320 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_rmi.so
321 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_system76_launch.so
322 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_thelio_io.so
323 %if %{with thunderbolt}
324 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_thunderbolt.so
326 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_tpm.so
327 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_tpm_eventlog.so
329 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_capsule.so
330 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_dbx.so
331 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_pk.so
332 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_recovery.so
334 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_upower.so
335 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_vli.so
336 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_wacom_raw.so
337 %attr(755,root,root) %{_libdir}/fwupd-plugins-3/libfu_plugin_wacom_usb.so
338 %dir %{_sysconfdir}/fwupd
339 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/daemon.conf
340 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/thunderbolt.conf
341 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/upower.conf
343 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/redfish.conf
344 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/uefi_capsule.conf
346 %dir %{_sysconfdir}/fwupd/remotes.d
348 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/dell-esrt.conf
350 #%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/fwupd-tests.conf
351 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/lvfs.conf
352 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/lvfs-testing.conf
353 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/vendor.conf
354 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/vendor-directory.conf
355 %dir %{_sysconfdir}/pki/fwupd
356 #%{_sysconfdir}/pki/fwupd/GPG-KEY-Hughski-Limited
357 %{_sysconfdir}/pki/fwupd/GPG-KEY-Linux-Foundation-Firmware
358 %{_sysconfdir}/pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service
359 %{_sysconfdir}/pki/fwupd/LVFS-CA.pem
360 %dir %{_sysconfdir}/pki/fwupd-metadata
361 %{_sysconfdir}/pki/fwupd-metadata/GPG-KEY-Linux-Foundation-Metadata
362 %{_sysconfdir}/pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service
363 %{_sysconfdir}/pki/fwupd-metadata/LVFS-CA.pem
364 %{systemdunitdir}/fwupd.service
365 %{systemdunitdir}/fwupd-offline-update.service
366 %{systemdunitdir}/fwupd-refresh.service
367 %{systemdunitdir}/fwupd-refresh.timer
368 %{systemdunitdir}/system-update.target.wants/fwupd-offline-update.service
369 #/lib/modules-load.d/fwupd-msr.conf
370 /lib/systemd/system-preset/fwupd-refresh.preset
371 /lib/systemd/system-shutdown/fwupd.shutdown
372 /lib/udev/rules.d/90-fwupd-devices.rules
373 %{_datadir}/dbus-1/system.d/org.freedesktop.fwupd.conf
374 %{_datadir}/dbus-1/system-services/org.freedesktop.fwupd.service
375 %dir %{_datadir}/fwupd
376 %attr(755,root,root) %{_datadir}/fwupd/add_capsule_header.py
377 %attr(755,root,root) %{_datadir}/fwupd/firmware_packager.py
378 %attr(755,root,root) %{_datadir}/fwupd/install_dell_bios_exe.py
379 %attr(755,root,root) %{_datadir}/fwupd/simple_client.py
381 %{_datadir}/fwupd/uefi-capsule-ux.tar.xz
383 %{_datadir}/fwupd/quirks.d
384 %dir %{_datadir}/fwupd/remotes.d
386 %{_datadir}/fwupd/remotes.d/dell-esrt
388 %{_datadir}/fwupd/remotes.d/vendor
389 %{_datadir}/metainfo/org.freedesktop.fwupd.metainfo.xml
390 %dir %{_datadir}/fwupd/metainfo
391 %{_datadir}/fwupd/metainfo/org.freedesktop.fwupd.remotes.lvfs-testing.metainfo.xml
392 %{_datadir}/fwupd/metainfo/org.freedesktop.fwupd.remotes.lvfs.metainfo.xml
393 %{_datadir}/polkit-1/actions/org.freedesktop.fwupd.policy
394 %{_datadir}/polkit-1/rules.d/org.freedesktop.fwupd.rules
395 %{_iconsdir}/hicolor/scalable/apps/org.freedesktop.fwupd.svg
397 %dir /var/lib/fwupd/builder
398 /var/lib/fwupd/builder/README.md
399 %{?with_efi:%{_mandir}/man1/dbxtool.1*}
400 %{_mandir}/man1/dfu-tool.1*
401 %{_mandir}/man1/fwupdagent.1*
402 %{?with_efi:%{_mandir}/man1/fwupdate.1*}
403 %{_mandir}/man1/fwupdmgr.1*
404 %{_mandir}/man1/fwupdtool.1*
405 %{_mandir}/man1/fwupdtpmevlog.1*
407 %files -n bash-completion-fwupd
408 %defattr(644,root,root,755)
409 %{bash_compdir}/fwupdagent
410 %{bash_compdir}/fwupdmgr
411 %{bash_compdir}/fwupdtool
413 %files -n fish-completion-fwupd
414 %defattr(644,root,root,755)
415 %{_datadir}/fish/vendor_completions.d/fwupdmgr.fish
418 %defattr(644,root,root,755)
419 %attr(755,root,root) %{_libdir}/libfwupd.so.*.*.*
420 %attr(755,root,root) %ghost %{_libdir}/libfwupd.so.2
421 %attr(755,root,root) %{_libdir}/libfwupdplugin.so.*.*.*
422 %attr(755,root,root) %ghost %{_libdir}/libfwupdplugin.so.2
423 %{_libdir}/girepository-1.0/Fwupd-2.0.typelib
424 %{_libdir}/girepository-1.0/FwupdPlugin-1.0.typelib
427 %defattr(644,root,root,755)
428 %doc libfwupd/README.md
429 %attr(755,root,root) %{_libdir}/libfwupd.so
430 %attr(755,root,root) %{_libdir}/libfwupdplugin.so
431 %{_includedir}/fwupd-1
432 %{_datadir}/gir-1.0/Fwupd-2.0.gir
433 %{_datadir}/gir-1.0/FwupdPlugin-1.0.gir
434 %{_datadir}/dbus-1/interfaces/org.freedesktop.fwupd.xml
435 %{_pkgconfigdir}/fwupd.pc
436 %{_pkgconfigdir}/fwupdplugin.pc
439 %defattr(644,root,root,755)
440 %{_libdir}/libfwupd.a
441 %{_libdir}/libfwupdplugin.a
445 %defattr(644,root,root,755)
450 %defattr(644,root,root,755)
451 %{_datadir}/vala/vapi/fwupd.deps
452 %{_datadir}/vala/vapi/fwupd.vapi
453 %{_datadir}/vala/vapi/fwupdplugin.deps
454 %{_datadir}/vala/vapi/fwupdplugin.vapi