fdo-client/fdo-client.spec

147 lines
4.7 KiB
RPMSpec

#
# spec file for package fdo-client
#
# Copyright (c) 2024 SUSE LLC
#
# 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/
#
Name: fdo-client
Version: 1.1.4+git20221209.c8ef757
Release: 0
Summary: FIDO Device Onboard Client
License: Apache-2.0
Group: System/Base
URL: https://github.com/intel/safestringlib/tree/v1.0.0
Source0: fdo-client-%{version}.tar.xz
Source1: safestringlib-1.0.0+git20171208.5da1bad.tar.xz
Source2: tinycbor-1.0.0+git20191022.755f9ef.tar.xz
Source3: fdo-client-service
Source4: fdoclient.service
Source5: README
Patch0: build.patch
Patch1: gcc.patch
Requires: openssl
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: libcurl-devel
BuildRequires: libopenssl-devel
BuildRequires: vim
%{?systemd_ordering}
%description
FDO-Client is a portable implementation of the FIDO Device Onboard Spec.
This component is portable across multiple environments,
including to various microprocessors (MPUs) and microcontrollers (MCUs).
%package devel
Summary: FIDO Device Onboard Client SDK
Group: Development/Libraries/C and C++
Requires: libopenssl-devel
%description devel
This is a production-ready implementation of the Device component defined
in FIDO Device Onboard Spec published by the FIDO Alliance.
Appropriate security measures should be taken for storing the device
credentials while porting this to different platforms.
%prep
%setup -q
%setup -q -D -a 1
%setup -q -D -a 2
%patch -P 0 -p1
%patch -P 1 -p1
%build
echo "%_builddir"
pushd .
cd safestringlib*
mkdir obj
make
popd
pushd tinycbor*
make
popd
export SAFESTRING_ROOT=%{_builddir}/%{name}-%{version}/safestringlib-1.0.0+git20171208.5da1bad
export TINYCBOR_ROOT=%{_builddir}/%{name}-%{version}/tinycbor-1.0.0+git20191022.755f9ef
export BLOB_PATH=%{_sharedstatedir}/%{name}
export RO_BLOB_PATH=%{_datadir}/%{name}
cmake .
make
#bash utils/keys_gen.sh .
%install
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/%{_libdir}
mkdir -p %{buildroot}/%{_sbindir}
mkdir -p %{buildroot}/%{_docdir}/%{name}
mkdir -p %{buildroot}/%{_includedir}
mkdir -p %{buildroot}/%{_datadir}/%{name}/data
mkdir -p %{buildroot}/%{_sharedstatedir}/%{name}/data
%{__install} -m 0755 build/linux-client %{buildroot}/%{_bindir}/%{name}
%{__install} -m 0755 %{SOURCE3} %{buildroot}/%{_bindir}/fdo-client-service
%{__install} -D -m 644 %{SOURCE4} %{buildroot}/%{_unitdir}/fdoclient.service
%{__install} -m 0644 %{SOURCE5} %{buildroot}/%{_docdir}/%{name}/README
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcfdoclient
%{__install} -m 644 build/*.a %{buildroot}/%{_libdir}
%{__install} -m 644 include/*.h %{buildroot}/%{_includedir}
#%{__install} data/ecdsa* %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/manufacturer_addr.bin %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/max_serviceinfo_sz.bin %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/mfg_proxy.dat %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/owner_proxy.dat %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/raw.blob %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/rv_proxy.dat %{buildroot}/%{_datadir}/%{name}/data
%{__install} data/Normal.blob %{buildroot}/%{_sharedstatedir}/%{name}/data
%{__install} data/platform_aes_key.bin %{buildroot}/%{_sharedstatedir}/%{name}/data
%{__install} data/platform_hmac_key.bin %{buildroot}/%{_sharedstatedir}/%{name}/data
%{__install} data/platform_iv.bin %{buildroot}/%{_sharedstatedir}/%{name}/data
%{__install} data/Secure.blob %{buildroot}/%{_sharedstatedir}/%{name}/data
%pre
%service_add_pre fdoclient.service
%preun
%service_del_preun fdoclient.service
%post
%service_add_post fdoclient.service
%postun
%service_del_postun fdoclient.service
%files
%license LICENSE
%doc README
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/data
%dir %{_sharedstatedir}/%{name}
%dir %{_sharedstatedir}/%{name}/data/
%{_bindir}/%{name}
%{_bindir}/fdo-client-service
%{_datadir}/%{name}/data/*
%{_sharedstatedir}/%{name}/data/*
%{_unitdir}/fdoclient.service
%{_sbindir}/rcfdoclient
%files devel
%license LICENSE
%{_includedir}/*.h
%{_libdir}/*.a
%changelog