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

243 lines
8.0 KiB
RPMSpec

#
# spec file for package fwupd
#
# Copyright (c) 2018 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 http://bugs.opensuse.org/
#
%ifarch %{ix86} x86_64 aarch64
%bcond_without efi_fw_update
%else
%bcond_with efi_fw_update
%endif
Name: fwupd
Version: 1.1.0
Release: 0
Summary: Allow session software to update device firmware
License: GPL-2.0-or-later AND LGPL-2.1-or-later
Group: System/Management
URL: https://fwupd.org/
Source: %{name}-%{version}.tar.xz
BuildRequires: dejavu-fonts
BuildRequires: docbook-utils-minimal
BuildRequires: gcab
BuildRequires: gnu-efi
# for certtool
BuildRequires: gnutls
BuildRequires: gobject-introspection
BuildRequires: gobject-introspection-devel
BuildRequires: gpgme-devel
BuildRequires: help2man
BuildRequires: intltool
BuildRequires: libelf-devel
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: procps
BuildRequires: python3-Pillow
BuildRequires: python3-cairo
BuildRequires: python3-gobject-Gdk
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)
%if %{with efi_fw_update}
BuildRequires: pkgconfig(efiboot)
BuildRequires: pkgconfig(efivar)
BuildRequires: pkgconfig(fwup) >= 10
%endif
%ifarch %{ix86} x86_64
BuildRequires: pkgconfig(libsmbios_c) >= 2.3.0
%endif
%description
fwupd is a simple daemon to allow session software to update device firmware on
your local machine. It's designed for desktops, but this project is probably
quite interesting for phones, tablets and server farms, so I'd be really happy
if this gets used on other non-desktop hardware.
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 simple daemon to allow session software to update device firmware on
your local machine. It's designed for desktops, but this project is probably
quite interesting for phones, tablets and server farms, so I'd be really happy
if this gets used on other non-desktop hardware.
%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 simple daemon to allow session software to update device firmware on
your local machine. It's designed for desktops, but this project is probably
quite interesting for phones, tablets and server farms, so I'd be really happy
if this gets used on other non-desktop hardware.
%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 simple daemon to allow session software to update device firmware on
your local machine. It's designed for desktops, but this project is probably
quite interesting for phones, tablets and server farms, so I'd be really happy
if this gets used on other non-desktop hardware.
%lang_package
%prep
%setup -q
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_uefi=false \
%endif
%ifnarch %{ix86} x86_64
-Dplugin_dell=false \
-Dplugin_synaptics=false \
%endif
-Dtests=false
%meson_build
%install
%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 package tests
rm -fr %{buildroot}%{_datadir}/installed-tests
%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
%postun
%service_del_postun %{name}.service fwupd-offline-update.service
%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
%{_datadir}/polkit-1/rules.d/org.freedesktop.fwupd.rules
%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
%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
%{_datadir}/locale/*/LC_IMAGES/
%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