File libmceliece.spec of Package libmceliece

#
# spec file for package libmceliece
#
# Copyright (c) 2025 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/
#

%define sover 1
Name:           libmceliece
Version:        20250507
Release:        0
Summary:        Classic McEliece microlibrary with simple stateless API based on the SUPERCOP API
# FIXME: Select a correct license from https://github.com/openSUSE/spec-cleaner#spdx-licenses
License:        MIT
Group:          Development/Libraries/C and C++
URL:            https://libmceliece.cr.yp.to/
Source:         https://libmceliece.cr.yp.to/libmceliece-%{version}.tar.gz
# PATCH-FIX-SUSE: Ignore not recognized configure arguments and fix installation paths
Patch1:         fix-configure.patch
# PATCH-FIX-SUSE: Change shebang interpreter
Patch2:         python3-env-interpret.patch
BuildRequires:  gcc
BuildRequires:  python3
BuildRequires:  valgrind-devel
BuildRequires:  libcpucycles-devel
BuildRequires:  librandombytes-devel
BuildRequires:  python3-capstone

%description
libmceliece is a Classic McEliece microlibrary. libmceliece has a very simple stateless API based on the SUPERCOP API, with wire-format inputs and outputs for the mceliece6960119 KEM.

%package -n libmceliece%{sover}
Summary:        Classic McEliece microlibrary with simple stateless API based on the SUPERCOP API
Group:          Development/Libraries/C and C++

%description  -n libmceliece%{sover}
libmceliece is a Classic McEliece microlibrary. libmceliece has a very simple stateless API based on the SUPERCOP API, with wire-format inputs and outputs for the mceliece6960119 KEM.

%package devel
Summary:        Development files for libmceliece library
Group:          Development/Languages/C and C++
Requires:       libmceliece%{sover} = %{version}

%description devel
Development files for libmceliece - a Classic McEliece microlibrary
with wire-format inputs and outputs for the mceliece6960119 KEM.

%package tools
Summary:        Cli tools from libmceliece
Group:          Development/Languages/C and C++
Requires:       libmceliece%{sover} = %{version}

%description tools
CLI tool for libmceliece  - a Classic McEliece microlibrary
with wire-format inputs and outputs for the mceliece6960119 KEM.


%package docs
Summary:        Documentation for libmceliece and libmceliece-tools 
Group:          Development/Languages/C and C++
Requires:       libmceliece%{sover} = %{version}
BuildArch:      noarch

%description docs
Documentation tool for libmceliece and libmceliece-tools - a Classic McEliece microlibrary. libmceliece has a very simple stateless API based on the SUPERCOP API, 
with wire-format inputs and outputs for the mceliece6960119 KEM.

%prep
%autosetup -p1

%build
%configure
%make_build

%install
%make_install
chmod +x %{buildroot}%{_libdir}/libmceliece.so.%{sover}

%check

%post -n libmceliece%{sover} -p /sbin/ldconfig
%postun -n libmceliece%{sover} -p /sbin/ldconfig

%files -n libmceliece%{sover}
%license doc/license.md
%{_libdir}/libmceliece.so.%{sover}

%files devel
%{_includedir}/mceliece.h
%{_libdir}/libmceliece.so

%files tools
%{_bindir}/mceliece-fulltest
%{_bindir}/mceliece-speed
%{_bindir}/mceliece-test
%{_bindir}/mceliece348864-dec
%{_bindir}/mceliece348864-enc
%{_bindir}/mceliece348864-keypair
%{_bindir}/mceliece348864f-keypair
%{_bindir}/mceliece348864pc-dec
%{_bindir}/mceliece348864pc-enc
%{_bindir}/mceliece348864pc-keypair
%{_bindir}/mceliece348864pcf-keypair
%{_bindir}/mceliece460896-dec
%{_bindir}/mceliece460896-enc
%{_bindir}/mceliece460896-keypair
%{_bindir}/mceliece460896f-keypair
%{_bindir}/mceliece460896pc-dec
%{_bindir}/mceliece460896pc-enc
%{_bindir}/mceliece460896pc-keypair
%{_bindir}/mceliece460896pcf-keypair
%{_bindir}/mceliece6688128-dec
%{_bindir}/mceliece6688128-enc
%{_bindir}/mceliece6688128-keypair
%{_bindir}/mceliece6688128f-keypair
%{_bindir}/mceliece6688128pc-dec
%{_bindir}/mceliece6688128pc-enc
%{_bindir}/mceliece6688128pc-keypair
%{_bindir}/mceliece6688128pcf-keypair
%{_bindir}/mceliece6960119-dec
%{_bindir}/mceliece6960119-enc
%{_bindir}/mceliece6960119-keypair
%{_bindir}/mceliece6960119f-keypair
%{_bindir}/mceliece6960119pc-dec
%{_bindir}/mceliece6960119pc-enc
%{_bindir}/mceliece6960119pc-keypair
%{_bindir}/mceliece6960119pcf-keypair
%{_bindir}/mceliece8192128-dec
%{_bindir}/mceliece8192128-enc
%{_bindir}/mceliece8192128-keypair
%{_bindir}/mceliece8192128f-keypair
%{_bindir}/mceliece8192128pc-dec
%{_bindir}/mceliece8192128pc-enc
%{_bindir}/mceliece8192128pc-keypair
%{_bindir}/mceliece8192128pcf-keypair

%files docs
%{_mandir}/man1/mceliece-fulltest.1.gz
%{_mandir}/man1/mceliece-speed.1.gz
%{_mandir}/man1/mceliece-test.1.gz
%{_mandir}/man1/mceliece.1.gz
%{_mandir}/man1/mceliece348864-dec.1.gz
%{_mandir}/man1/mceliece348864-enc.1.gz
%{_mandir}/man1/mceliece348864-keypair.1.gz
%{_mandir}/man1/mceliece348864.1.gz
%{_mandir}/man1/mceliece348864f-keypair.1.gz
%{_mandir}/man1/mceliece348864f.1.gz
%{_mandir}/man1/mceliece348864pc-dec.1.gz
%{_mandir}/man1/mceliece348864pc-enc.1.gz
%{_mandir}/man1/mceliece348864pc-keypair.1.gz
%{_mandir}/man1/mceliece348864pc.1.gz
%{_mandir}/man1/mceliece348864pcf-keypair.1.gz
%{_mandir}/man1/mceliece348864pcf.1.gz
%{_mandir}/man1/mceliece460896-dec.1.gz
%{_mandir}/man1/mceliece460896-enc.1.gz
%{_mandir}/man1/mceliece460896-keypair.1.gz
%{_mandir}/man1/mceliece460896.1.gz
%{_mandir}/man1/mceliece460896f-keypair.1.gz
%{_mandir}/man1/mceliece460896f.1.gz
%{_mandir}/man1/mceliece460896pc-dec.1.gz
%{_mandir}/man1/mceliece460896pc-enc.1.gz
%{_mandir}/man1/mceliece460896pc-keypair.1.gz
%{_mandir}/man1/mceliece460896pc.1.gz
%{_mandir}/man1/mceliece460896pcf-keypair.1.gz
%{_mandir}/man1/mceliece460896pcf.1.gz
%{_mandir}/man1/mceliece6688128-dec.1.gz
%{_mandir}/man1/mceliece6688128-enc.1.gz
%{_mandir}/man1/mceliece6688128-keypair.1.gz
%{_mandir}/man1/mceliece6688128.1.gz
%{_mandir}/man1/mceliece6688128f-keypair.1.gz
%{_mandir}/man1/mceliece6688128f.1.gz
%{_mandir}/man1/mceliece6688128pc-dec.1.gz
%{_mandir}/man1/mceliece6688128pc-enc.1.gz
%{_mandir}/man1/mceliece6688128pc-keypair.1.gz
%{_mandir}/man1/mceliece6688128pc.1.gz
%{_mandir}/man1/mceliece6688128pcf-keypair.1.gz
%{_mandir}/man1/mceliece6688128pcf.1.gz
%{_mandir}/man1/mceliece6960119-dec.1.gz
%{_mandir}/man1/mceliece6960119-enc.1.gz
%{_mandir}/man1/mceliece6960119-keypair.1.gz
%{_mandir}/man1/mceliece6960119.1.gz
%{_mandir}/man1/mceliece6960119f-keypair.1.gz
%{_mandir}/man1/mceliece6960119f.1.gz
%{_mandir}/man1/mceliece6960119pc-dec.1.gz
%{_mandir}/man1/mceliece6960119pc-enc.1.gz
%{_mandir}/man1/mceliece6960119pc-keypair.1.gz
%{_mandir}/man1/mceliece6960119pc.1.gz
%{_mandir}/man1/mceliece6960119pcf-keypair.1.gz
%{_mandir}/man1/mceliece6960119pcf.1.gz
%{_mandir}/man1/mceliece8192128-dec.1.gz
%{_mandir}/man1/mceliece8192128-enc.1.gz
%{_mandir}/man1/mceliece8192128-keypair.1.gz
%{_mandir}/man1/mceliece8192128.1.gz
%{_mandir}/man1/mceliece8192128f-keypair.1.gz
%{_mandir}/man1/mceliece8192128f.1.gz
%{_mandir}/man1/mceliece8192128pc-dec.1.gz
%{_mandir}/man1/mceliece8192128pc-enc.1.gz
%{_mandir}/man1/mceliece8192128pc-keypair.1.gz
%{_mandir}/man1/mceliece8192128pc.1.gz
%{_mandir}/man1/mceliece8192128pcf-keypair.1.gz
%{_mandir}/man1/mceliece8192128pcf.1.gz
%{_mandir}/man3/mceliece.3.gz
%{_mandir}/man3/mceliece348864.3.gz
%{_mandir}/man3/mceliece348864_dec.3.gz
%{_mandir}/man3/mceliece348864_enc.3.gz
%{_mandir}/man3/mceliece348864_keypair.3.gz
%{_mandir}/man3/mceliece348864f.3.gz
%{_mandir}/man3/mceliece348864f_dec.3.gz
%{_mandir}/man3/mceliece348864f_enc.3.gz
%{_mandir}/man3/mceliece348864f_keypair.3.gz
%{_mandir}/man3/mceliece348864pc.3.gz
%{_mandir}/man3/mceliece348864pc_dec.3.gz
%{_mandir}/man3/mceliece348864pc_enc.3.gz
%{_mandir}/man3/mceliece348864pc_keypair.3.gz
%{_mandir}/man3/mceliece348864pcf.3.gz
%{_mandir}/man3/mceliece348864pcf_dec.3.gz
%{_mandir}/man3/mceliece348864pcf_enc.3.gz
%{_mandir}/man3/mceliece348864pcf_keypair.3.gz
%{_mandir}/man3/mceliece460896.3.gz
%{_mandir}/man3/mceliece460896_dec.3.gz
%{_mandir}/man3/mceliece460896_enc.3.gz
%{_mandir}/man3/mceliece460896_keypair.3.gz
%{_mandir}/man3/mceliece460896f.3.gz
%{_mandir}/man3/mceliece460896f_dec.3.gz
%{_mandir}/man3/mceliece460896f_enc.3.gz
%{_mandir}/man3/mceliece460896f_keypair.3.gz
%{_mandir}/man3/mceliece460896pc.3.gz
%{_mandir}/man3/mceliece460896pc_dec.3.gz
%{_mandir}/man3/mceliece460896pc_enc.3.gz
%{_mandir}/man3/mceliece460896pc_keypair.3.gz
%{_mandir}/man3/mceliece460896pcf.3.gz
%{_mandir}/man3/mceliece460896pcf_dec.3.gz
%{_mandir}/man3/mceliece460896pcf_enc.3.gz
%{_mandir}/man3/mceliece460896pcf_keypair.3.gz
%{_mandir}/man3/mceliece6688128.3.gz
%{_mandir}/man3/mceliece6688128_dec.3.gz
%{_mandir}/man3/mceliece6688128_enc.3.gz
%{_mandir}/man3/mceliece6688128_keypair.3.gz
%{_mandir}/man3/mceliece6688128f.3.gz
%{_mandir}/man3/mceliece6688128f_dec.3.gz
%{_mandir}/man3/mceliece6688128f_enc.3.gz
%{_mandir}/man3/mceliece6688128f_keypair.3.gz
%{_mandir}/man3/mceliece6688128pc.3.gz
%{_mandir}/man3/mceliece6688128pc_dec.3.gz
%{_mandir}/man3/mceliece6688128pc_enc.3.gz
%{_mandir}/man3/mceliece6688128pc_keypair.3.gz
%{_mandir}/man3/mceliece6688128pcf.3.gz
%{_mandir}/man3/mceliece6688128pcf_dec.3.gz
%{_mandir}/man3/mceliece6688128pcf_enc.3.gz
%{_mandir}/man3/mceliece6688128pcf_keypair.3.gz
%{_mandir}/man3/mceliece6960119.3.gz
%{_mandir}/man3/mceliece6960119_dec.3.gz
%{_mandir}/man3/mceliece6960119_enc.3.gz
%{_mandir}/man3/mceliece6960119_keypair.3.gz
%{_mandir}/man3/mceliece6960119f.3.gz
%{_mandir}/man3/mceliece6960119f_dec.3.gz
%{_mandir}/man3/mceliece6960119f_enc.3.gz
%{_mandir}/man3/mceliece6960119f_keypair.3.gz
%{_mandir}/man3/mceliece6960119pc.3.gz
%{_mandir}/man3/mceliece6960119pc_dec.3.gz
%{_mandir}/man3/mceliece6960119pc_enc.3.gz
%{_mandir}/man3/mceliece6960119pc_keypair.3.gz
%{_mandir}/man3/mceliece6960119pcf.3.gz
%{_mandir}/man3/mceliece6960119pcf_dec.3.gz
%{_mandir}/man3/mceliece6960119pcf_enc.3.gz
%{_mandir}/man3/mceliece6960119pcf_keypair.3.gz
%{_mandir}/man3/mceliece8192128.3.gz
%{_mandir}/man3/mceliece8192128_dec.3.gz
%{_mandir}/man3/mceliece8192128_enc.3.gz
%{_mandir}/man3/mceliece8192128_keypair.3.gz
%{_mandir}/man3/mceliece8192128f.3.gz
%{_mandir}/man3/mceliece8192128f_dec.3.gz
%{_mandir}/man3/mceliece8192128f_enc.3.gz
%{_mandir}/man3/mceliece8192128f_keypair.3.gz
%{_mandir}/man3/mceliece8192128pc.3.gz
%{_mandir}/man3/mceliece8192128pc_dec.3.gz
%{_mandir}/man3/mceliece8192128pc_enc.3.gz
%{_mandir}/man3/mceliece8192128pc_keypair.3.gz
%{_mandir}/man3/mceliece8192128pcf.3.gz
%{_mandir}/man3/mceliece8192128pcf_dec.3.gz
%{_mandir}/man3/mceliece8192128pcf_enc.3.gz
%{_mandir}/man3/mceliece8192128pcf_keypair.3.gz

%changelog
openSUSE Build Service is sponsored by