diff --git a/Botan-1.10.17-add-riscv64.patch b/Botan-1.10.17-add-riscv64.patch deleted file mode 100644 index c2da72d..0000000 --- a/Botan-1.10.17-add-riscv64.patch +++ /dev/null @@ -1,7 +0,0 @@ -diff --git a/src/build-data/arch/riscv64.txt b/src/build-data/arch/riscv64.txt -new file mode 100644 -index 0000000..6e5e0ff ---- /dev/null -+++ b/src/build-data/arch/riscv64.txt -@@ -0,0 +1 @@ -+endian little diff --git a/botan-1.10.17-doc-conf-2to3.patch b/botan-1.10.17-doc-conf-2to3.patch deleted file mode 100644 index e826ca6..0000000 --- a/botan-1.10.17-doc-conf-2to3.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -up Botan-1.10.17/doc/conf.py.orig Botan-1.10.17/doc/conf.py ---- Botan-1.10.17/doc/conf.py.orig 2017-10-02 08:00:00.000000000 +0200 -+++ Botan-1.10.17/doc/conf.py 2021-09-11 17:57:38.159934955 +0200 -@@ -40,10 +40,10 @@ version. - def check_sphinx_version(): - import sphinx - -- version = map(int, sphinx.__version__.split('.')) -+ version = list(map(int, sphinx.__version__.split('.'))) - if version[0] == 1 and version[1] == 0 and version[2] < 7: - # Exit rather than throwing to avoid a confusing backtrace -- print "This Sphinx is too old - upgrade to at least 1.0.7" -+ print("This Sphinx is too old - upgrade to at least 1.0.7") - import sys - sys.exit(1) - -@@ -66,8 +66,8 @@ source_suffix = '.txt' - master_doc = 'contents' - - # General information about the project. --project = u'botan' --copyright = u'2000-2011, Jack Lloyd' -+project = 'botan' -+copyright = '2000-2011, Jack Lloyd' - - # The version info for the project you're documenting, acts as replacement for - # |version| and |release|, also used in various other places throughout the -@@ -214,8 +214,8 @@ htmlhelp_basename = 'botandoc' - # Grouping the document tree into LaTeX files. List of tuples - # (source start file, target name, title, author, documentclass [howto/manual]). - latex_documents = [ -- ('contents', 'botan.tex', u'botan Reference Manual', -- u'Jack Lloyd', 'manual'), -+ ('contents', 'botan.tex', 'botan Reference Manual', -+ 'Jack Lloyd', 'manual'), - ] - - # The name of an image file (relative to this directory) to place at the top of diff --git a/botan-1.10.17-u64bit.patch b/botan-1.10.17-u64bit.patch deleted file mode 100644 index ea90706..0000000 --- a/botan-1.10.17-u64bit.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up Botan-1.10.17/src/hash/gost_3411/gost_3411.cpp~ Botan-1.10.17/src/hash/gost_3411/gost_3411.cpp ---- Botan-1.10.17/src/hash/gost_3411/gost_3411.cpp~ 2017-10-02 08:00:00.000000000 +0200 -+++ Botan-1.10.17/src/hash/gost_3411/gost_3411.cpp 2023-01-22 13:01:38.984150336 +0100 -@@ -91,7 +91,7 @@ void GOST_34_11::compress_n(const byte i - // P transformation - for(size_t k = 0; k != 4; ++k) - { -- const uint64_t UVk = U[k] ^ V[k]; -+ const u64bit UVk = U[k] ^ V[k]; - for(size_t l = 0; l != 8; ++l) - key[4*l+k] = get_byte(l, UVk); - } diff --git a/botan.spec b/botan.spec index 975d0a8..8ad36e0 100644 --- a/botan.spec +++ b/botan.spec @@ -1,12 +1,16 @@ %global major_version 1.10 +%if 0%{?fedora} || 0%{?rhel} > 7 +%global with_python3 1 +%endif + Name: botan Version: %{major_version}.17 -Release: 51%{?dist} +Release: 1%{?dist} Summary: Crypto library written in C++ -# Automatically converted from old format: BSD - review is highly recommended. -License: LicenseRef-Callaway-BSD +Group: System Environment/Libraries +License: BSD URL: http://botan.randombit.net/ # tarfile is stripped using repack.sh. original tarfile to be found # here: http://botan.randombit.net/releases/Botan-%%{version}.tgz @@ -18,26 +22,31 @@ Patch0: botan-1.10.5-ecc-fix.patch Patch1: botan-boost_python.patch # Fix wrong path Patch2: botan-1.10.13-python-init.patch -# 2to3 doc/conf.py -Patch3: botan-1.10.17-doc-conf-2to3.patch -# Fix FTBFS -Patch4: botan-1.10.17-u64bit.patch -# Add RISC-V (riscv64) -# Upstream in later versions: -# https://github.com/randombit/botan/blob/master/src/build-data/arch/riscv64.txt -Patch9: Botan-1.10.17-add-riscv64.patch BuildRequires: gcc-c++ +BuildRequires: python2 +BuildRequires: python2-devel +BuildRequires: boost-python-devel +%if 0%{?with_python3} BuildRequires: python3 BuildRequires: python3-devel -BuildRequires: python3-sphinx -BuildRequires: boost-devel +BuildRequires: boost-python3-devel +%endif # with_python3 + +BuildRequires: %{_bindir}/sphinx-build BuildRequires: bzip2-devel BuildRequires: zlib-devel -BuildRequires: make +%if 0%{?fedora} >=26 || 0%{?rhel} > 7 +BuildRequires: compat-openssl10-devel +%else +BuildRequires: openssl-devel +%endif # do not check .so files in the python_sitelib directories +%global __provides_exclude_from ^(%{python2_sitearch}/.*\\.so)$ +%if 0%{?with_python3} %global __provides_exclude_from ^(%{python3_sitearch}/.*\\.so)$ +%endif # with_python3 %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -52,10 +61,16 @@ flavor of the library. %package devel Summary: Development files for %{name} +Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: pkgconfig Requires: bzip2-devel Requires: zlib-devel +%if 0%{?fedora} >=26 || 0%{?rhel} > 7 +Requires: compat-openssl10-devel +%else +Requires: openssl-devel +%endif %description devel The %{name}-devel package contains libraries and header files for @@ -64,6 +79,7 @@ developing applications that use %{name}. %package doc Summary: Documentation for %{name} +Group: Documentation BuildArch: noarch %description doc @@ -72,8 +88,26 @@ BuildArch: noarch This package contains HTML documentation for %{name}. +%package -n python2-%{name} +Summary: Python2 bindings for %{name} +Group: System Environment/Libraries +%{?python_provide:%python_provide python2-%{name}} +# the python2 package was named botan-python up to 1.10.13-1 +Provides: %{name}-python = %{version}-%{release} +Obsoletes: %{name}-python < 1.10.13-2 + +%description -n python2-%{name} +%{summary} + +This package contains the Python2 binding for %{name}. + +Note: The Python binding should be considered alpha software, and the +interfaces may change in the future. + +%if 0%{?with_python3} %package -n python3-%{name} Summary: Python3 bindings for %{name} +Group: System Environment/Libraries %{?python_provide:%python_provide python3-%{name}} %description -n python3-%{name} @@ -83,24 +117,26 @@ This package contains the Python3 binding for %{name}. Note: The Python binding should be considered alpha software, and the interfaces may change in the future. +%endif # with_python3 %prep %setup -q -n Botan-%{version} -%autosetup -p1 -n Botan-%{version} +%patch0 -p1 -b .eccfix +%patch1 -p1 +%patch2 -p1 # These tests will fail. rm -rf checks/ec_tests.cpp %build - # we have the necessary prerequisites, so enable optional modules -%global enable_modules bzip2,zlib +%global enable_modules bzip2,zlib,openssl # fixme: maybe disable unix_procs, very slow. %global disable_modules gnump -%{__python3} ./configure.py \ +./configure.py \ --prefix=%{_prefix} \ --libdir=%{_lib} \ --cc=gcc \ @@ -112,14 +148,27 @@ rm -rf checks/ec_tests.cpp --with-python-version=dummy.dummy \ --with-sphinx +%if 0%{?with_python3} +cp -a build/python{,3} +%endif # with_python3 + # (ab)using CXX as an easy way to inject our CXXFLAGS make CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags} +make -f Makefile.python \ + CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags} \ + PYTHON_INC="$(python2-config --includes)" \ + PYTHON_ROOT=. + +%if 0%{?with_python3} +mv build/python{,2} ; mv build/python{3,} make -f Makefile.python \ CXX="g++ -std=c++11 ${CXXFLAGS:-%{optflags}}" %{?_smp_mflags} \ PYTHON_INC="$(python3-config --includes)" \ PYTHON_ROOT=. \ - BOOST_PYTHON=boost_python%{python3_version_nodots} + BOOST_PYTHON=boost_python3 +mv build/python{,3} ; mv build/python{2,} +%endif # with_python3 %install make install \ @@ -129,8 +178,14 @@ make install \ INSTALL_CMD_DATA="install -p -m 644" make -f Makefile.python install \ - PYTHON_SITE_PACKAGE_DIR=%{buildroot}%{python3_sitearch} + PYTHON_SITE_PACKAGE_DIR=%{buildroot}%{python2_sitearch} +%if 0%{?with_python3} +mv build/python{,2} ; mv build/python{3,} +make -f Makefile.python install \ + PYTHON_SITE_PACKAGE_DIR=%{buildroot}%{python3_sitearch} +mv build/python{,3} ; mv build/python{2,} +%endif # with_python3 # fixups find doc/examples -type f -exec chmod -x {} \; @@ -141,10 +196,10 @@ cp -a %{SOURCE1} %{buildroot}%{_pkgdocdir} rm -r %{buildroot}%{_pkgdocdir}/manual/{.doctrees,.buildinfo} -%ldconfig_post +%post -p /sbin/ldconfig -%ldconfig_postun +%postun -p /sbin/ldconfig %files @@ -185,8 +240,14 @@ rm -r %{buildroot}%{_pkgdocdir}/manual/{.doctrees,.buildinfo} %{_pkgdocdir}/python2-examples +%files -n python2-%{name} +%{python2_sitearch}/%{name} + + +%if 0%{?with_python3} %files -n python3-%{name} %{python3_sitearch}/%{name} +%endif # with_python3 %check @@ -200,162 +261,6 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./check --validate %changelog -* Mon Jan 12 2026 Jonathan Wakely - 1.10.17-51 -- Rebuilt for Boost 1.90 - -* Fri Sep 19 2025 Python Maint - 1.10.17-50 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 1.10.17-49 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Wed Jul 23 2025 Fedora Release Engineering - 1.10.17-48 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 1.10.17-47 -- Rebuilt for Python 3.14 - -* Thu Jan 16 2025 Fedora Release Engineering - 1.10.17-46 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Aug 28 2024 Miroslav Suchý - 1.10.17-45 -- convert license to SPDX - -* Wed Jul 17 2024 Fedora Release Engineering - 1.10.17-44 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jun 08 2024 Python Maint - 1.10.17-43 -- Rebuilt for Python 3.13 - -* Sat Feb 24 2024 David Abdurachmanov - 1.10.17-42 -- Add support for riscv64 - -* Tue Jan 23 2024 Fedora Release Engineering - 1.10.17-41 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.10.17-40 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jan 17 2024 Jonathan Wakely - 1.10.17-39 -- Rebuilt for Boost 1.83 - -* Wed Jul 19 2023 Fedora Release Engineering - 1.10.17-38 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Jun 14 2023 Python Maint - 1.10.17-37 -- Rebuilt for Python 3.12 - -* Mon Feb 20 2023 Jonathan Wakely - 1.10.17-36 -- Rebuilt for Boost 1.81 - -* Sun Jan 22 2023 Thomas Moschny - 1.10.17-35 -- Add patch to fix FTBFS. - -* Wed Jan 18 2023 Fedora Release Engineering - 1.10.17-34 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 1.10.17-33 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jun 24 2022 Jonathan Wakely - .17-32 -- Replace obsolete boost-python3-devel build dependency (#2100748) - -* Mon Jun 13 2022 Python Maint - 1.10.17-31 -- Rebuilt for Python 3.11 - -* Wed May 04 2022 Thomas Rodgers - 1.10.17-30 -- Rebuilt for Boost 1.78 - -* Wed Jan 19 2022 Fedora Release Engineering - 1.10.17-29 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Sat Sep 11 2021 Thomas Moschny - 1.10.17-28 -- Fix FTBFS on F35 and later. - -* Fri Aug 06 2021 Jonathan Wakely - 1.10.17-27 -- Rebuilt for Boost 1.76 - -* Wed Jul 21 2021 Fedora Release Engineering - 1.10.17-26 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 1.10.17-25 -- Rebuilt for Python 3.10 - -* Tue Jan 26 2021 Fedora Release Engineering - 1.10.17-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jan 22 2021 Jonathan Wakely - 1.10.17-23 -- Rebuilt for Boost 1.75 - -* Thu Oct 01 2020 Jeff Law - 1.10.17-22 -- Re-enable LTO - -* Mon Aug 10 2020 Jeff Law - 1.10.17-21 -- Disable LTO on armv7hl for now. - -* Mon Jul 27 2020 Fedora Release Engineering - 1.10.17-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Fri May 29 2020 Jonathan Wakely - 1.10.17-19 -- Rebuilt for Boost 1.73 - -* Tue May 26 2020 Miro Hrončok - 1.10.17-18 -- Rebuilt for Python 3.9 - -* Tue Jan 28 2020 Fedora Release Engineering - 1.10.17-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Oct 03 2019 Miro Hrončok - 1.10.17-16 -- Rebuilt for Python 3.8.0rc1 (#1748018) - -* Mon Aug 19 2019 Miro Hrončok - 1.10.17-15 -- Rebuilt for Python 3.8 - -* Wed Aug 14 2019 Thomas Moschny - 1.10.17-14 -- Remove dependency on OpenSSL (for F31+). - -* Wed Jul 24 2019 Fedora Release Engineering - 1.10.17-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 1.10.17-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Jan 30 2019 Jonathan Wakely - 1.10.17-11 -- Use %%{python3_version_nodots} for Boost.Python library name - -* Tue Jan 29 2019 Jonathan Wakely - 1.10.17-11 -- Use boost_python37 for library name - -* Thu Jan 24 2019 Jonathan Wakely - 1.10.17-11 -- Rebuilt for Boost 1.69 - -* Tue Sep 18 2018 Miro Hrončok - 1.10.17-10 -- Remove Python 2 subpackage (#1627321) - -* Thu Jul 12 2018 Fedora Release Engineering - 1.10.17-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Mon Jul 02 2018 Miro Hrončok - 1.10.17-8 -- Rebuilt for Python 3.7 - -* Fri Jun 29 2018 Thomas Moschny - 1.10.17-7 -- Use ldconfig scriptlet macros. - -* Fri Jun 29 2018 Miro Hrončok - 1.10.17-6 -- Rebuilt for Python 3.7 - -* Thu Jun 28 2018 David Abdurachmanov - 1.10.17-5 -- Switch BR boost-python-devel to boost-python2-devel - -* Tue Jun 19 2018 Miro Hrončok - 1.10.17-4 -- Rebuilt for Python 3.7 - -* Wed Feb 07 2018 Fedora Release Engineering - 1.10.17-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Tue Jan 23 2018 Jonathan Wakely - 1.10.17-2 -- Rebuilt for Boost 1.66 - * Mon Oct 2 2017 Thomas Moschny - 1.10.17-1 - Update to 1.10.17. - Remove obsolete patches.