diff --git a/.gitignore b/.gitignore index 1f213c8..d625d20 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/pycryptodomex-3.20.0.tar.gz +SOURCES/pycryptodomex-3.20.0.tar.gz diff --git a/.python-pycryptodomex.metadata b/.python-pycryptodomex.metadata new file mode 100644 index 0000000..f923baa --- /dev/null +++ b/.python-pycryptodomex.metadata @@ -0,0 +1 @@ +97e5ce536f285a91835d8df3a25dea711757e7ef SOURCES/pycryptodomex-3.20.0.tar.gz diff --git a/python-pycryptodomex-3.15.0-use_external_libtomcrypt.patch b/SOURCES/python-pycryptodomex-3.15.0-use_external_libtomcrypt.patch similarity index 100% rename from python-pycryptodomex-3.15.0-use_external_libtomcrypt.patch rename to SOURCES/python-pycryptodomex-3.15.0-use_external_libtomcrypt.patch diff --git a/SPECS/python-pycryptodomex.spec b/SPECS/python-pycryptodomex.spec new file mode 100644 index 0000000..918aeef --- /dev/null +++ b/SPECS/python-pycryptodomex.spec @@ -0,0 +1,275 @@ +%global srcname pycryptodomex +%global _description %{expand:PyCryptodome is a self-contained Python package of low-level cryptographic +primitives. It's a fork of PyCrypto. It brings several enhancements with respect +to the last official version of PyCrypto (2.6.1), for instance: + + * Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB) + * Accelerated AES on Intel platforms via AES-NI + * Elliptic curves cryptography (NIST P-256 curve only) + * Better and more compact API (nonce and iv attributes for ciphers, automatic + generation of random nonces and IVs, simplified CTR cipher mode, and more) + * SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms + * Salsa20 and ChaCha20 stream ciphers + * scrypt and HKDF + * Deterministic (EC)DSA + * Password-protected PKCS#8 key containers + * Shamir's Secret Sharing scheme + * Random numbers get sourced directly from the OS (and not from a CSPRNG in + userspace) + * Cleaner RSA and DSA key generation (largely based on FIPS 186-4) + * Major clean ups and simplification of the code base + +PyCryptodome is not a wrapper to a separate C library like OpenSSL. To the +largest possible extent, algorithms are implemented in pure Python. Only the +pieces that are extremely critical to performance (e.g. block ciphers) are +implemented as C extensions. + +Note: all modules are installed under the Cryptodome package to avoid conflicts +with the PyCrypto library.} + +Name: python-%{srcname} +Version: 3.20.0 +Release: 3%{?dist} +Summary: A self-contained cryptographic library for Python + +# PyCrypto-based code is public domain, further PyCryptodome contributions are +# BSD +License: BSD-2-Clause AND LicenseRef-Fedora-Public-Domain +URL: http://www.pycryptodome.org/ +Source0: https://github.com/Legrandin/pycryptodome/archive/v%{version}/%{srcname}-%{version}.tar.gz +# Use external libtomcrypt library +Patch0: %{name}-3.15.0-use_external_libtomcrypt.patch + +BuildRequires: gcc +BuildRequires: libtomcrypt-devel +BuildRequires: make +BuildRequires: python3-devel +# Needed for documentation +BuildRequires: %{py3_dist sphinx} + +%description +%{_description} + + +%package -n python3-%{srcname} +Summary: %{summary} +# GMP library is dl-opened +Requires: gmp%{?_isa} + +%description -n python3-%{srcname} +%{_description} + + +%package -n python3-%{srcname}-selftest +Summary: PyCryptodome test suite module +Requires: python3-%{srcname}%{?_isa} + +%description -n python3-%{srcname}-selftest +%{_description} + +This package provides the PyCryptodome test suite module (Cryptodome.SelfTest). + + +%prep +%autosetup -n pycryptodome-%{version} -p0 + +# Drop bundled libraries +rm -r src/libtom/ + +# Remove shebang +sed '1{\@^#! /usr/bin/env python@d}' lib/Crypto/SelfTest/__main__.py >lib/Crypto/SelfTest/__main__.py.new && \ +touch -r lib/Crypto/SelfTest/__main__.py lib/Crypto/SelfTest/__main__.py.new && \ +mv lib/Crypto/SelfTest/__main__.py.new lib/Crypto/SelfTest/__main__.py + + +%generate_buildrequires +%pyproject_buildrequires -r + + +%build +touch .separate_namespace +%pyproject_wheel + +# Build documentation +%make_build -C Doc/ man SPHINXBUILD=sphinx-build + + +%install +%pyproject_install +%pyproject_save_files Cryptodome + + +# Install man pages +install -Dpm 0644 Doc/_build/man/pycryptodome.1 $RPM_BUILD_ROOT%{_mandir}/man1/pycryptodome.1 + + +%check +PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch}/ %{__python3} %{py_setup} test + + +%files -n python3-%{srcname} -f %{pyproject_files} +%doc AUTHORS.rst Changelog.rst README.rst +%license LICENSE.rst +%exclude %{python3_sitearch}/Cryptodome/SelfTest/ +%{_mandir}/man1/pycryptodome.1* + + +%files -n python3-%{srcname}-selftest +%{python3_sitearch}/Cryptodome/SelfTest/ + + +%changelog +* Mon Dec 30 2024 Arkady L. Shane - 3.20.0-3 +- Rebuilt for MSVSphere 10 + +* Fri Jul 19 2024 Fedora Release Engineering - 3.20.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 3.20.0-2 +- Rebuilt for Python 3.13 + +* Sun Feb 25 2024 Mohamed El Morabity - 3.20.0-1 +- Update to 3.20.0 + +* Fri Jan 26 2024 Fedora Release Engineering - 3.19.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 3.19.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Sep 24 2023 Mohamed El Morabity - 3.19.0-1 +- Update to 3.19.0 + +* Fri Jul 21 2023 Fedora Release Engineering - 3.17.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 3.17.0-2 +- Rebuilt for Python 3.12 + +* Sun Feb 05 2023 Mohamed El Morabity - 3.17.0-1 +- Update to 3.17.0 +- Fix Flatpak build (see + https://src.fedoraproject.org/rpms/python-pycryptodomex/pull-request/3) + +* Fri Jan 20 2023 Fedora Release Engineering - 3.16.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sun Jan 08 2023 Mohamed El Morabity - 3.16.0-2 +- Fix build with Python 3.12 (fix deprecated unittest methods) + +* Sat Jan 07 2023 Mohamed El Morabity - 3.16.0-1 +- Update to 3.16.0 +- Switch to SPDX in license tag + +* Fri Jul 22 2022 Fedora Release Engineering - 3.15.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jun 23 2022 Mohamed El Morabity - 3.15.0-1 +- Update to 3.15.0 + +* Mon Jun 13 2022 Python Maint - 3.14.1-2 +- Rebuilt for Python 3.11 + +* Fri Feb 18 2022 Mohamed El Morabity - 3.14.1-1 +- Update to 3.14.1 + +* Wed Feb 02 2022 Mohamed El Morabity - 3.14.0-1 +- Update to 3.14.0 + +* Fri Jan 21 2022 Fedora Release Engineering - 3.11.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Nov 25 2021 Mohamed El Morabity - 3.11.0-2 +- Fix build with Python 3.11 (see RHBZ #2025587) + +* Sat Oct 09 2021 Mohamed El Morabity - 3.11.0-1 +- Update to 3.11.0 + +* Sat Sep 25 2021 Mohamed El Morabity - 3.10.4-1 +- Update to 3.10.4 + +* Thu Sep 23 2021 Mohamed El Morabity - 3.10.2-1 +- Update to 3.10.2 + +* Fri Jul 23 2021 Fedora Release Engineering - 3.10.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jul 05 2021 Mohamed El Morabity - 3.10.1-3 +- Fix build with Sphinx 4.2 + +* Fri Jun 04 2021 Python Maint - 3.10.1-2 +- Rebuilt for Python 3.10 + +* Tue Feb 09 2021 Mohamed El Morabity - 3.10.1-1 +- Update to 3.10.1 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.9.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 3.9.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 07 2020 Mohamed El Morabity - 3.9.8-1 +- Update to 3.9.8 + +* Fri Jun 05 2020 Miro Hrončok - 3.9.7-3 +- Drop python2-pycryptodomex (#1785783) + +* Tue May 26 2020 Miro Hrončok - 3.9.7-2 +- Rebuilt for Python 3.9 + +* Fri Feb 21 2020 Mohamed El Morabity - 3.9.7-1 +- Update to 3.9.7 + +* Mon Feb 17 2020 Mohamed El Morabity - 3.9.6-2 +- Move test suite module to a separate package (RHBZ #1802989) + +* Mon Feb 03 2020 Mohamed El Morabity - 3.9.6-1 +- Update to 3.9.6 + +* Thu Jan 30 2020 Fedora Release Engineering - 3.9.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Nov 19 2019 Mohamed El Morabity - 3.9.4-1 +- Update to 3.9.4 + +* Fri Nov 15 2019 Mohamed El Morabity - 3.9.3-1 +- Update to 3.9.3 + +* Fri Nov 15 2019 Mohamed El Morabity - 3.9.2-1 +- Update to 3.9.2 +- Spec cleanup + +* Thu Oct 03 2019 Miro Hrončok - 3.9.0-2 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Wed Aug 28 2019 Mohamed El Morabity - 3.9.0-1 +- Update to 3.9.0 + +* Mon Aug 19 2019 Miro Hrončok - 3.8.2-2 +- Rebuilt for Python 3.8 + +* Fri Aug 09 2019 Mohamed El Morabity - 3.8.2-1 +- Update to 3.8.2 + +* Fri Jul 26 2019 Fedora Release Engineering - 3.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Tue Apr 09 2019 Miro Hrončok - 3.8.1-2 +- Readd python2-pycryptodomex (#1672052) + +* Fri Apr 05 2019 Mohamed El Morabity - 3.8.1-1 +- Update to 3.8.1 + +* Fri Mar 29 2019 Mohamed El Morabity - 3.8.0-1 +- Update to 3.8.0 + +* Fri Feb 15 2019 Mohamed El Morabity - 3.7.3-1 +- Update to 3.7.3 + +* Sat Feb 02 2019 Fedora Release Engineering - 3.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Nov 19 2018 Mohamed El Morabity - 3.7.0-1 +- Update to 3.7.0 +- Use the same .spec file for all supported releases of Fedora and EL diff --git a/python-pycryptodomex.spec b/python-pycryptodomex.spec deleted file mode 100644 index eda26ae..0000000 --- a/python-pycryptodomex.spec +++ /dev/null @@ -1,126 +0,0 @@ -%global srcname pycryptodomex -%global _description %{expand:PyCryptodome is a self-contained Python package of low-level cryptographic -primitives. It's a fork of PyCrypto. It brings several enhancements with respect -to the last official version of PyCrypto (2.6.1), for instance: - - * Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB) - * Accelerated AES on Intel platforms via AES-NI - * Elliptic curves cryptography (NIST P-256 curve only) - * Better and more compact API (nonce and iv attributes for ciphers, automatic - generation of random nonces and IVs, simplified CTR cipher mode, and more) - * SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms - * Salsa20 and ChaCha20 stream ciphers - * scrypt and HKDF - * Deterministic (EC)DSA - * Password-protected PKCS#8 key containers - * Shamir's Secret Sharing scheme - * Random numbers get sourced directly from the OS (and not from a CSPRNG in - userspace) - * Cleaner RSA and DSA key generation (largely based on FIPS 186-4) - * Major clean ups and simplification of the code base - -PyCryptodome is not a wrapper to a separate C library like OpenSSL. To the -largest possible extent, algorithms are implemented in pure Python. Only the -pieces that are extremely critical to performance (e.g. block ciphers) are -implemented as C extensions. - -Note: all modules are installed under the Cryptodome package to avoid conflicts -with the PyCrypto library.} - -Name: python-%{srcname} -Version: 3.20.0 -Release: 1%{?dist} -Summary: A self-contained cryptographic library for Python - -# PyCrypto-based code is public domain, further PyCryptodome contributions are -# BSD -License: BSD-2-Clause AND LicenseRef-Fedora-Public-Domain -URL: http://www.pycryptodome.org/ -Source0: https://github.com/Legrandin/pycryptodome/archive/v%{version}/%{srcname}-%{version}.tar.gz -# Use external libtomcrypt library -Patch0: %{name}-3.15.0-use_external_libtomcrypt.patch - -BuildRequires: gcc -BuildRequires: libtomcrypt-devel -BuildRequires: make -BuildRequires: python3-devel -# Needed for documentation -BuildRequires: %{py3_dist sphinx} - -%description -%{_description} - - -%package -n python3-%{srcname} -Summary: %{summary} -# GMP library is dl-opened -Requires: gmp%{?_isa} - -%description -n python3-%{srcname} -%{_description} - - -%package -n python3-%{srcname}-selftest -Summary: PyCryptodome test suite module -Requires: python3-%{srcname}%{?_isa} - -%description -n python3-%{srcname}-selftest -%{_description} - -This package provides the PyCryptodome test suite module (Cryptodome.SelfTest). - - -%prep -%autosetup -n pycryptodome-%{version} -p0 - -# Drop bundled libraries -rm -r src/libtom/ - -# Remove shebang -sed '1{\@^#! /usr/bin/env python@d}' lib/Crypto/SelfTest/__main__.py >lib/Crypto/SelfTest/__main__.py.new && \ -touch -r lib/Crypto/SelfTest/__main__.py lib/Crypto/SelfTest/__main__.py.new && \ -mv lib/Crypto/SelfTest/__main__.py.new lib/Crypto/SelfTest/__main__.py - - -%generate_buildrequires -%pyproject_buildrequires -r - - -%build -touch .separate_namespace -%pyproject_wheel - -# Build documentation -%make_build -C Doc/ man SPHINXBUILD=sphinx-build - - -%install -%pyproject_install -%pyproject_save_files Cryptodome - - -# Install man pages -install -Dpm 0644 Doc/_build/man/pycryptodome.1 $RPM_BUILD_ROOT%{_mandir}/man1/pycryptodome.1 - - -%check -PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch}/ %{__python3} %{py_setup} test - - -%files -n python3-%{srcname} -f %{pyproject_files} -%doc AUTHORS.rst Changelog.rst README.rst -%license LICENSE.rst -%exclude %{python3_sitearch}/Cryptodome/SelfTest/ -%{_mandir}/man1/pycryptodome.1* - - -%files -n python3-%{srcname}-selftest -%{python3_sitearch}/Cryptodome/SelfTest/ - - -%changelog -* Sun Feb 25 2024 Mohamed El Morabity - 3.20.0-1 -- Update to 3.20.0 - -* Wed Feb 02 2022 Mohamed El Morabity - 3.14.0-1 -- Initial EPEL9 release diff --git a/sources b/sources deleted file mode 100644 index 6594073..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (pycryptodomex-3.20.0.tar.gz) = 0d65ccd93f9f78548c04aa3af01cb65b6a39e81bb3dfa4bb08acc5a5a731b17f9c5b07a1d1780739b3f358402a3596b04e446fc7b39345a4c6f03fd5a2de7ff9