liboqs/liboqs.spec
Yaakov Selkowitz 43c0e30ec3 Skip code style tests
Linters are for upstream CI but do not make sense in downstream tests:

https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
2023-10-30 12:25:41 -04:00

120 lines
4.1 KiB
RPMSpec

%global oqs_version 0.9.0
Name: liboqs
Version: %{oqs_version}
Release: 2%{?dist}
Summary: liboqs is an open source C library for quantum-safe cryptographic algorithms.
#liboqs uses MIT license by itself but includes several files licensed under different terms.
#src/common/crypto/sha3/xkcp_low/.../KeccakP-1600-AVX2.s : BSD-like CRYPTOGAMS license
#src/common/rand/rand_nist.c: See file
#see https://github.com/open-quantum-safe/liboqs/blob/main/README.md#license for more details
License: MIT AND Apache 2.0 AND BSD 3-Clause AND (BSD-3-Clause OR GPL-1.0-or-later) AND CC0-1.0 AND Unlicense
URL: https://github.com/open-quantum-safe/liboqs.git
Source: https://github.com/open-quantum-safe/liboqs/archive/refs/tags/0.9.0.tar.gz
BuildRequires: ninja-build
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: openssl-devel
BuildRequires: python3-pytest
%if %{undefined rhel}
BuildRequires: python3-pytest-xdist
%endif
BuildRequires: unzip
BuildRequires: xsltproc
#BuildRequires: doxygen
BuildRequires: graphviz
BuildRequires: python3-yaml
BuildRequires: valgrind
%description
liboqs provides:
- a collection of open source implementations of quantum-safe key encapsulation mechanism (KEM) and digital signature algorithms; the full list can be found below
- a common API for these algorithms
- a test harness and benchmarking routines
liboqs is part of the Open Quantum Safe (OQS) project led by Douglas Stebila and Michele Mosca, which aims to develop and integrate into applications quantum-safe cryptography to facilitate deployment and testing in real world contexts. In particular, OQS provides prototype integrations of liboqs into TLS and SSH, through OpenSSL and OpenSSH.
%package devel
Summary: Development libraries for liboqs
Requires: liboqs%{?_isa} = %{version}-%{release}
%description devel
Header and Library files for doing development with liboqs.
%prep
%setup -T -b 0 -q -n liboqs-%{oqs_version}
%autopatch -p1
#hobble
rm -rf src/kem/bike
rm -rf src/kem/bike/additional_r4
rm -rf src/kem/classic_mceliece
rm -rf src/kem/frodokem
rm -rf src/kem/hqc
rm -rf src/kem/ntruprime
# code_conventions is for upstream CI, requires astyle
# pytest-xdist is not available in RHEL due to dependencies
sed -e '/COMMAND.*pytest/s|$| --ignore tests/test_code_conventions.py|' \
%if %{defined rhel}
-e 's/--numprocesses=auto//' \
%endif
-i tests/CMakeLists.txt
%build
%cmake -GNinja -DBUILD_SHARED_LIBS=ON -DOQS_USE_AES_OPENSSL=ON -DOQS_USE_AES_INSTRUCTIONS=OFF -DOQS_DIST_BUILD=ON -DOQS_ALGS_ENABLED=STD -DOQS_USE_SHA3_OPENSSL=ON -DCMAKE_BUILD_TYPE=Debug -LAH ..
%cmake_build
#ninja gen_docs
%check
cd "%{_vpath_builddir}"
ninja run_tests
%install
%cmake_install
for i in liboqsTargets.cmake liboqsTargets-debug.cmake
do
cp $RPM_BUILD_ROOT/%{_libdir}/cmake/liboqs/$i /tmp/$i
sed -e "s;$RPM_BUILD_ROOT;;g" /tmp/$i > $RPM_BUILD_ROOT/%{_libdir}/cmake/liboqs/$i
rm /tmp/$i
done
%files
%license LICENSE.txt
%{_libdir}/liboqs.so.%{oqs_version}
%{_libdir}/liboqs.so.4
%files devel
%{_libdir}/liboqs.so
%dir %{_includedir}/oqs
%{_includedir}/oqs/*
%dir %{_libdir}/cmake/liboqs
%{_libdir}/cmake/liboqs/liboqsTargets.cmake
%{_libdir}/cmake/liboqs/liboqsTargets-debug.cmake
%{_libdir}/cmake/liboqs/liboqsConfig.cmake
%{_libdir}/cmake/liboqs/liboqsConfigVersion.cmake
%{_libdir}/pkgconfig/liboqs.pc
#%dir %%{_datadir}/doc/oqs
#%doc %%{_datadir}/doc/oqs/html/*
#%doc %%{_datadir}/doc/oqs/xml/*
%changelog
* Mon Oct 30 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 0.9.0-2
- Skip code style tests
* Fri Oct 27 2023 Dmitry Belyavskiy <dbelyavs@redhat.com> - 0.9.0-1
- Switch to 0.9.0 version
Resolves: rhbz#2241615
* Wed Oct 04 2023 Stephen Gallagher <sgallagh@redhat.com> - 0.8.0-4
- Bump release to rebuild for ELN issue
- https://github.com/fedora-eln/eln/issues/125
* Wed Jul 26 2023 Dmitry Belyavskiy <dbelyavs@redhat.com> - 0.8.0-3
- The exception we get covers avx2 implementation, no need to remove it
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Mon Feb 13 2023 Dmitry Belyavskiy - 0.8.0-1
- Initial build of liboqs for Fedora