4 %bcond_without dell # Dell-specific support
5 %bcond_without efi # UEFI (and dell, redfish) support
6 %bcond_without flashrom # flashrom plugin
7 %bcond_without modemmanager # modem_manager plugin
8 %bcond_without thunderbolt # Thunderbolt support
10 %ifnarch %{ix86} %{x8664} x32 %{arm} aarch64
14 %ifnarch %{ix86} %{x8664} x32
20 %ifarch %{ix86} %{x8664} x32
21 %define with_intel_spi 1
23 Summary: System daemon for installing device firmware
24 Summary(pl.UTF-8): Demon systemowy do instalowania firmware'u urządzeń
29 Group: Applications/System
30 #Source0Download: https://github.com/hughsie/fwupd/releases
31 Source0: https://github.com/hughsie/fwupd/releases/download/%{version}/%{name}-%{version}.tar.xz
32 # Source0-md5: 12b5ee390019a9fbfec2733597f53ced
33 URL: https://github.com/hughsie/fwupd
34 %{?with_modemmanager:BuildRequires: ModemManager-devel >= 1.10.0}
35 BuildRequires: bash-completion-devel >= 1:2.0
36 %{?with_cairo:BuildRequires: cairo-devel}
37 BuildRequires: curl-devel >= 7.62.0
38 %{?with_efi:BuildRequires: efivar-devel >= 33}
39 # pkgconfig(libelf); can be also libelf-devel
40 BuildRequires: gcab-devel >= 1.0
42 BuildRequires: gcc >= 6:4.7
44 BuildRequires: gcc-multilib-64 >= 6:4.7
46 BuildRequires: gettext-tools >= 0.19.7
47 BuildRequires: glib2-devel >= 1:2.55.0
48 BuildRequires: gnutls-devel >= 3.6.0
49 BuildRequires: gobject-introspection-devel >= 0.9.8
50 %{?with_doc:BuildRequires: gi-docgen >= 2022.2}
51 BuildRequires: json-glib-devel >= 1.1.1
52 BuildRequires: libarchive-devel
53 BuildRequires: libcbor-devel >= 0.7.0
54 %{?with_flashrom:BuildRequires: libflashrom-devel >= 1.2}
55 BuildRequires: libgudev-devel >= 232
56 BuildRequires: libgusb-devel >= 0.3.5
57 BuildRequires: libjcat-devel >= 0.1.4
58 %{?with_modemmanager:BuildRequires: libmbim-devel >= 1.22.0}
59 %{?with_modemmanager:BuildRequires: libqmi-devel >= 1.23.1}
60 # for dell (which requires also uefi plugin and efivar)
61 %{?with_dell:BuildRequires: libsmbios-devel >= 2.4.0}
62 BuildRequires: libsoup-devel >= 2.52
63 BuildRequires: libuuid-devel
64 BuildRequires: libxmlb-devel >= 0.1.15
65 # for <linux/nvme_ioctl.h>
66 BuildRequires: linux-libc-headers >= 7:4.4
67 BuildRequires: meson >= 0.61.0
68 BuildRequires: ninja >= 1.6
69 BuildRequires: pkgconfig
70 BuildRequires: polkit-devel >= 0.114
71 BuildRequires: python3 >= 1:3.0
72 %{?with_doc:BuildRequires: python3-markdown >= 3.2}
73 BuildRequires: rpm-build >= 4.6
74 BuildRequires: rpmbuild(macros) >= 2.029
75 BuildRequires: sqlite3-devel >= 3
76 BuildRequires: systemd-devel >= 1:209
77 BuildRequires: systemd-units >= 1:211
78 BuildRequires: tar >= 1:1.22
79 BuildRequires: tpm2-tss-devel >= 2.0
80 BuildRequires: udev-devel
81 %{?with_thunderbolt:BuildRequires: umockdev-devel}
84 BuildRequires: xz-devel
85 # efi capsule splash (po/test-deps)
88 BuildRequires: fonts-TTF-DejaVu
89 BuildRequires: pango >= 1:1.26.0
90 BuildRequires: python3-pycairo
91 BuildRequires: python3-pygobject3
93 Requires: %{name}-libs = %{version}-%{release}
94 %{?with_modemmanager:BuildRequires: ModemManager-libs >= 1.10.0}
95 Requires: curl-libs >= 7.62.0
97 Requires: gnutls-libs >= 3.6.0
98 Requires: libcbor >= 0.7.0
99 Requires: libgudev >= 232
100 Requires: libgusb >= 0.3.5
101 Requires: libjcat >= 0.1.4
102 %{?with_modemmanager:Requires: libmbim >= 1.22.0}
103 %{?with_modemmanager:Requires: libqmi >= 1.23.1}
104 %{?with_dell:Requires: libsmbios >= 2.4.0}
105 Requires: libsoup >= 2.52
106 Requires: libxmlb >= 0.1.15
107 Requires: polkit >= 0.114
108 Requires: tpm2-tss >= 2.0
112 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
114 %define fwupd_plugins_dir %{_libdir}/fwupd-%{version}
117 fwupd is a simple daemon to allow session software to update device
118 firmware on your local machine. It's designed for desktops, but this
119 project is probably quite interesting for phones, tablets and server
122 %description -l pl.UTF-8
123 fwupd to prosty demon pozwalający programom sesyjnym na aktualizację
124 firmware'u urządzeń na maszynie lokalnej. Jest zaprojektowany dla
125 komputerów osobistych, ale może być interesujący także dla telefonów,
126 tabletów i farm serwerów.
128 %package -n bash-completion-fwupd
129 Summary: Bash completion for fwupd commands
130 Summary(pl.UTF-8): Bashowe dopełnianie składni poleceń fwupd
131 Group: Applications/Shells
132 Requires: %{name} = %{version}-%{release}
133 Requires: bash-completion >= 1:2.0
136 %description -n bash-completion-fwupd
137 Bash completion for fwupd commands.
139 %description -n bash-completion-fwupd -l pl.UTF-8
140 Bashowe dopełnianie składni poleceń fwupd.
142 %package -n fish-completion-fwupd
143 Summary: Fish completion for fwupd commands
144 Summary(pl.UTF-8): Dopełnianie składni poleceń fwupd w fish
145 Group: Applications/Shells
146 Requires: %{name} = %{version}-%{release}
150 %description -n fish-completion-fwupd
151 Fish completion for fwupd commands.
153 %description -n fish-completion-fwupd -l pl.UTF-8
154 Dopełnianie składni poleceń fwupd w fish.
157 Summary: Libraries for fwupd device firmware installing daemon
158 Summary(pl.UTF-8): Biblioteki dla demona fwupd instalującego aktualizacje firmware'u
160 Requires: glib2-devel >= 1:2.55.0
161 Requires: json-glib >= 1.1.1
164 Libraries for fwupd device firmware installing daemon.
166 %description libs -l pl.UTF-8
167 Biblioteki dla demona fwupd instalującego aktualizacje firmware'u.
170 Summary: Header files for fwupd libraries
171 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek fwupd
172 Group: Development/Libraries
173 Requires: %{name}-libs = %{version}-%{release}
174 Requires: glib2-devel >= 1:2.55.0
177 Header files for fwupd libraries.
179 %description devel -l pl.UTF-8
180 Pliki nagłówkowe bibliotek fwupd.
183 Summary: Static fwupd libraries
184 Summary(pl.UTF-8): Statyczne biblioteki fwupd
185 Group: Development/Libraries
186 Requires: %{name}-devel = %{version}-%{release}
189 Static fwupd libraries.
191 %description static -l pl.UTF-8
192 Statyczne biblioteki fwupd.
195 Summary: API documentation for fwupd libraries
196 Summary(pl.UTF-8): Dokumentacja API do bibliotek fwupd
201 API documentation for fwupd libraries.
203 %description apidocs -l pl.UTF-8
204 Dokumentacja API do bibliotek fwupd.
206 %package -n vala-fwupd
207 Summary: Vala API for fwupd library
208 Summary(pl.UTF-8): API języka Vala do biblioteki fwupd
209 Group: Development/Libraries
210 Requires: %{name}-devel = %{version}-%{release}
211 Requires: vala-libsoup >= 2.52
213 %description -n vala-fwupd
214 Vala API for fwupd library.
216 %description -n vala-fwupd -l pl.UTF-8
217 API języka Vala do biblioteki fwupd.
227 -Ddocs=%{__enabled_disabled apidocs} \
229 %{!?with_dell:-Dplugin_dell=disabled} \
230 %{!?with_flashrom:-Dplugin_flashrom=disabled} \
231 %{?with_intel_spi:-Dplugin_intel_spi=true} \
232 %{!?with_modemmanager:-Dplugin_modem_manager=disabled} \
233 %{!?with_efi:-Dplugin_redfish=disabled} \
234 %{!?with_efi:-Dplugin_uefi_capsule=disabled} \
235 %{!?with_efi:-Dplugin_uefi_pk=disabled} \
238 %ninja_build -C build
241 rm -rf $RPM_BUILD_ROOT
243 %ninja_install -C build
245 for pdoc in plugins/*/README.md ; do
246 pname=$(basename $(dirname $pdoc))
247 cp -p plugins/${pname}/README.md README-${pname}.md
251 install -d $RPM_BUILD_ROOT%{_gidocdir}
252 %{__mv} $RPM_BUILD_ROOT%{_docdir}/*fwupd* $RPM_BUILD_ROOT%{_gidocdir}
258 rm -rf $RPM_BUILD_ROOT
260 %post libs -p /sbin/ldconfig
261 %postun libs -p /sbin/ldconfig
263 %files -f %{name}.lang
264 %defattr(644,root,root,755)
265 %doc MAINTAINERS README.md README-*.md SECURITY.md
266 %{?with_efi:%attr(755,root,root) %{_bindir}/dbxtool}
267 %attr(755,root,root) %{_bindir}/dfu-tool
268 %attr(755,root,root) %{_bindir}/fwupdagent
269 %{?with_efi:%attr(755,root,root) %{_bindir}/fwupdate}
270 %attr(755,root,root) %{_bindir}/fwupdmgr
271 %attr(755,root,root) %{_bindir}/fwupdtool
272 %dir %{_libexecdir}/fwupd
273 %attr(755,root,root) %{_libexecdir}/fwupd/fwupd
274 %ifarch %{ix86} %{x8664} x32
275 %attr(755,root,root) %{_libexecdir}/fwupd/fwupd-detect-cet
277 %attr(755,root,root) %{_libexecdir}/fwupd/fwupdoffline
279 %attr(755,root,root) %{fwupd_plugins_dir}/libfu_plugin_flashrom.so
281 %if %{with modemmanager}
282 %attr(755,root,root) %{fwupd_plugins_dir}/libfu_plugin_modem_manager.so
284 %dir %{_sysconfdir}/fwupd
285 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/daemon.conf
286 %ifarch %{ix86} %{x8664} x32
287 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/msr.conf
288 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/thunderbolt.conf
291 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/redfish.conf
292 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/uefi_capsule.conf
294 %dir %{_sysconfdir}/fwupd/bios-settings.d
295 %dir %{_sysconfdir}/fwupd/remotes.d
297 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/dell-esrt.conf
299 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/lvfs.conf
300 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/lvfs-testing.conf
301 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/vendor.conf
302 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fwupd/remotes.d/vendor-directory.conf
303 #/etc/grub.d/35_fwupd
304 %dir %{_sysconfdir}/pki/fwupd
305 %{_sysconfdir}/pki/fwupd/GPG-KEY-Linux-Foundation-Firmware
306 %{_sysconfdir}/pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service
307 %{_sysconfdir}/pki/fwupd/LVFS-CA.pem
308 %dir %{_sysconfdir}/pki/fwupd-metadata
309 %{_sysconfdir}/pki/fwupd-metadata/GPG-KEY-Linux-Foundation-Metadata
310 %{_sysconfdir}/pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service
311 %{_sysconfdir}/pki/fwupd-metadata/LVFS-CA.pem
312 #/lib/modules-load.d/fwupd-msr.conf
313 %{systemdunitdir}/fwupd.service
314 %{systemdunitdir}/fwupd-offline-update.service
315 %{systemdunitdir}/fwupd-refresh.service
316 %{systemdunitdir}/fwupd-refresh.timer
317 %{systemdunitdir}/system-update.target.wants/fwupd-offline-update.service
318 /lib/systemd/system-preset/fwupd-refresh.preset
319 /lib/systemd/system-shutdown/fwupd.shutdown
320 /lib/udev/rules.d/90-fwupd-devices.rules
321 %{_datadir}/dbus-1/system.d/org.freedesktop.fwupd.conf
322 %{_datadir}/dbus-1/system-services/org.freedesktop.fwupd.service
323 %dir %{_datadir}/fwupd
324 %attr(755,root,root) %{_datadir}/fwupd/add_capsule_header.py
325 %attr(755,root,root) %{_datadir}/fwupd/firmware_packager.py
326 %attr(755,root,root) %{_datadir}/fwupd/install_dell_bios_exe.py
327 %attr(755,root,root) %{_datadir}/fwupd/simple_client.py
329 %{_datadir}/fwupd/uefi-capsule-ux.tar.xz
331 %{_datadir}/fwupd/quirks.d
332 %dir %{_datadir}/fwupd/remotes.d
334 %{_datadir}/fwupd/remotes.d/dell-esrt
336 %{_datadir}/fwupd/remotes.d/vendor
337 %{_datadir}/metainfo/org.freedesktop.fwupd.metainfo.xml
338 %dir %{_datadir}/fwupd/metainfo
339 %{_datadir}/fwupd/metainfo/org.freedesktop.fwupd.remotes.lvfs-testing.metainfo.xml
340 %{_datadir}/fwupd/metainfo/org.freedesktop.fwupd.remotes.lvfs.metainfo.xml
341 %{_datadir}/polkit-1/actions/org.freedesktop.fwupd.policy
342 %{_datadir}/polkit-1/rules.d/org.freedesktop.fwupd.rules
343 %{_iconsdir}/hicolor/scalable/apps/org.freedesktop.fwupd.svg
344 %{?with_efi:%{_mandir}/man1/dbxtool.1*}
345 %{_mandir}/man1/dfu-tool.1*
346 %{_mandir}/man1/fwupdagent.1*
347 %{?with_efi:%{_mandir}/man1/fwupdate.1*}
348 %{_mandir}/man1/fwupdmgr.1*
349 %{_mandir}/man1/fwupdtool.1*
351 %files -n bash-completion-fwupd
352 %defattr(644,root,root,755)
353 %{bash_compdir}/fwupdmgr
354 %{bash_compdir}/fwupdtool
356 %files -n fish-completion-fwupd
357 %defattr(644,root,root,755)
358 %{_datadir}/fish/vendor_completions.d/fwupdmgr.fish
361 %defattr(644,root,root,755)
362 %attr(755,root,root) %{_libdir}/libfwupd.so.*.*.*
363 %attr(755,root,root) %ghost %{_libdir}/libfwupd.so.2
364 %{_libdir}/girepository-1.0/Fwupd-2.0.typelib
365 %dir %{fwupd_plugins_dir}
366 %attr(755,root,root) %{fwupd_plugins_dir}/libfwupdengine.so
367 %attr(755,root,root) %{fwupd_plugins_dir}/libfwupdplugin.so
368 %attr(755,root,root) %{fwupd_plugins_dir}/libfwupdutil.so
371 %defattr(644,root,root,755)
372 %doc libfwupd/README.md
373 %attr(755,root,root) %{_libdir}/libfwupd.so
374 %{_includedir}/fwupd-1
375 %{_datadir}/gir-1.0/Fwupd-2.0.gir
376 %{_datadir}/dbus-1/interfaces/org.freedesktop.fwupd.xml
377 %{_pkgconfigdir}/fwupd.pc
380 %defattr(644,root,root,755)
381 %{_libdir}/libfwupd.a
382 %{fwupd_plugins_dir}/libfwupdengine.a
383 %{fwupd_plugins_dir}/libfwupdplugin.a
384 %{fwupd_plugins_dir}/libfwupdutil.a
388 %defattr(644,root,root,755)
390 %{_gidocdir}/libfwupd
391 %{_gidocdir}/libfwupdplugin
395 %defattr(644,root,root,755)
396 %{_datadir}/vala/vapi/fwupd.deps
397 %{_datadir}/vala/vapi/fwupd.vapi