File fwupdate.spec of Package fwupdate
#
# spec file for package fwupdate
#
# Copyright (c) 2016 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/
#
# needssslcertforbuild
Name: fwupdate
Version: 0.5
Release: 0
Summary: Tools to manage UEFI firmware updates
License: GPL-2.0+
Group: System/Base
Url: https://github.com/rhinstaller/fwupdate
Source: https://github.com/rhinstaller/fwupdate/releases/download/0.5/%{name}-%{version}.tar.bz2
Patch0: %{name}-suse-build.patch
Patch1: %{name}-bsc988000-set-a-mode-with-efi_set_variable.patch
Patch2: %{name}-fix-efivar-0.24-api.patch
Patch3: %{name}-unset-immutable-flag.patch
Patch4: %{name}-bsc988886-add-leading-space.patch
BuildRequires: efivar-devel >= 0.21
BuildRequires: elfutils
BuildRequires: fdupes
BuildRequires: gettext
BuildRequires: gnu-efi
BuildRequires: pesign-obs-integration
BuildRequires: pkg-config
BuildRequires: popt-devel
BuildRequires: systemd-rpm-macros
Requires: %{name}-efi
Requires: efibootmgr
Requires: libfwup0 = %{version}-%{release}
Requires: shim
%{?systemd_requires}
ExclusiveArch: x86_64 %{ix86}
%if 0%{?is_opensuse}
%global efidir opensuse
%else
%global efidir sles
%endif
%description
fwupdate provides a simple command line interface to the UEFI firmware updates.
%package -n libfwup0
Summary: Library to manage UEFI firmware updates
Group: System/Libraries
%description -n libfwup0
Library to allow for the simple manipulation of UEFI firmware updates.
%package devel
Summary: Development headers for libfwup
Group: Development/Libraries/Other
Requires: efivar-devel >= 0.21
Requires: fwupdate = %{version}-%{release}
Requires: libfwup0 = %{version}-%{release}
%description devel
development headers required to use libfwup.
%package efi
Summary: UEFI binaries used by libfwup
Group: System/Base
Requires: shim
%description efi
UEFI binaries used by libfwup to update the firmware.
%package efi-debuginfo
Summary: Debuginfo of the fwupdate UEFI binaries
Group: System/Base
%description efi-debuginfo
The debuginfo of the fwupdate UEFI binaries.
%prep
%setup -q -n %{name}-%{version}
%patch0 -p1
%patch1 -p1
%if 0%{?suse_version} > 1320
%patch2 -p1
%endif
%patch3 -p1
%patch4 -p1
%build
make OPT_FLAGS="$RPM_OPT_FLAGS" libdir=%{_libdir} bindir=%{_bindir} \
EFIDIR=%{efidir} GNUEFIDIR=%{_libdir} %{?_smp_mflags}
%install
export BRP_PESIGN_FILES='%{_libdir}/efi/fwup*.efi'
%make_install libdir=%{_libdir} bindir=%{_bindir} mandir=%{_mandir} \
localedir=%{_datadir}/locale/ includedir=%{_includedir} \
libexecdir=%{_libexecdir} datadir=%{_datadir} EFIDIR=%{efidir}
%fdupes %{buildroot}%{_mandir}/*
# create rcsymlink
mkdir -p %{buildroot}%{_sbindir}
ln -sv %{_sbindir}/service %{buildroot}%{_sbindir}/rcfwupdate-cleanup
%pre
%service_add_pre fwupdate-cleanup.service
%post
%service_add_post fwupdate-cleanup.service
%preun
%service_del_preun fwupdate-cleanup.service
%postun
%service_del_postun fwupdate-cleanup.service
%post -n libfwup0 -p /sbin/ldconfig
%postun -n libfwup0 -p /sbin/ldconfig
%post -n %{name}-efi
# Create the directory for the firwmare update capsule
mkdir -p /boot/efi/EFI/%{efidir}/fw
# Install the UEFI firmware update program
cp %{_libdir}/efi/fwup*.efi /boot/efi/EFI/%{efidir}
%postun -n %{name}-efi
# Remove all the capsules
rm -rf /boot/efi/EFI/%{efidir}/fw
# Remove the UEFI firmware update program
rm -f /boot/efi/EFI/%{efidir}/fwup*.efi
%files
%defattr(-,root,root)
%doc COPYING
%{_bindir}/fwupdate
%doc %{_mandir}/man1/*
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/fwupdate
%{_unitdir}/fwupdate-cleanup.service
%ghost %attr(0755,root,root) %dir %{_rundir}/fwupdate/
%attr(0755,root,root) %dir %{_libexecdir}/fwupdate/
%{_libexecdir}/fwupdate/cleanup
%{_sbindir}/rcfwupdate-cleanup
%files devel
%defattr(-,root,root)
%doc %{_mandir}/man3/*
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%files -n libfwup0
%defattr(-,root,root)
%{_libdir}/*.so.*
%files efi
%defattr(-,root,root)
%dir %{_libdir}/efi
%{_libdir}/efi/fwup*.efi
%files efi-debuginfo
%defattr(-,root,root)
%dir /usr/lib/debug/%{_libdir}/efi/
/usr/lib/debug/%{_libdir}/efi/fwup*.efi.debug
%changelog