From d38317f341e3a213810a2d66b114099db37d37ff Mon Sep 17 00:00:00 2001 From: Fabio Alessandro Locati Date: Wed, 13 Jan 2016 23:15:45 +0100 Subject: [PATCH] 3.3-1 Fix CVE-2016-1494 and multiple other problems --- python-rsa.spec | 213 ++++++++++++++++++++++++++++++------------------ 1 file changed, 133 insertions(+), 80 deletions(-) diff --git a/python-rsa.spec b/python-rsa.spec index 26eb386..72add2e 100644 --- a/python-rsa.spec +++ b/python-rsa.spec @@ -1,112 +1,164 @@ -%global pkgname rsa - -%if 0%{?fedora} > 12 -%bcond_without python3 +%global pypi_name rsa + +%if 0%{?rhel} +%global with_python3 0 +%{!?__python2: %global __python2 /usr/bin/python2} +%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python2_sitearch: %global python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%{!?py2_build: %global py2_build %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} build --executable="%{__python2} -s"}} +%{!?py2_install: %global py2_install %{expand: CFLAGS="%{optflags}" %{__python2} setup.py %{?py_setup_args} install -O1 --skip-build --root %{buildroot}}} %else -%bcond_with python3 +%global with_python3 1 %endif -Name: python-rsa -Version: 3.1.4 -Release: 3%{?dist} +Name: python-%{pypi_name} +Version: 3.3 +Release: 1%{?dist} Summary: Pure-Python RSA implementation License: ASL 2.0 URL: http://stuvel.eu/rsa -Source0: https://pypi.python.org/packages/source/r/rsa/%{pkgname}-%{version}.tar.gz +Source0: https://pypi.python.org/packages/source/r/%{pypi_name}/%{pypi_name}-%{version}.tar.gz Patch0: rsa-3.1.4-debian-804430.patch BuildArch: noarch BuildRequires: python2-devel BuildRequires: python-setuptools BuildRequires: python-pyasn1 >= 0.1.3 -BuildRequires: python-unittest2 -Requires: python-pyasn1 >= 0.1.3 - -%description -Pure-Python RSA implementation. - -%if %with python3 -%package -n python3-rsa -Summary: Pure-Python RSA implementation +%if 0%{?with_python3} BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pyasn1 >= 0.1.3 -BuildRequires: python3-unittest2 -Requires: python3-pyasn1 >= 0.1.3 +%endif # with_python3 -%description -n python3-rsa -Pure-Python RSA implementation for Python 3. -%endif +%description +Python-RSA is a pure-Python RSA implementation. It supports encryption +and decryption, signing and verifying signatures, and key generation +according to PKCS#1 version 1.5. It can be used as a Python library as +well as on the command-line. -%prep -%setup -q -n %{pkgname}-%{version} +%package -n python2-%{pypi_name} +Summary: Pure-Python RSA implementation +%{?python_provide:%python_provide python2-%{pypi_name}} +%{?el6:Provides: python-%{pypi_name}} -# Fix FTBFS (Debian Bug #804430) -%patch0 +Requires: python-pyasn1 >= 0.1.3 +Requires: python-setuptools +%description -n python2-%{pypi_name} +Python-RSA is a pure-Python RSA implementation. It supports encryption +and decryption, signing and verifying signatures, and key generation +according to PKCS#1 version 1.5. It can be used as a Python library as +well as on the command-line. + +%if 0%{?with_python3} +%package -n python3-%{pypi_name} +Summary: Pure-Python RSA implementation +%{?python_provide:%python_provide python3-%{pypi_name}} -# Get rid of upstream's egg-info, we'll use our own -rm -rf %{pkgname}-*.egg-info +Requires: python3-pyasn1 >= 0.1.3 +Requires: python3-setuptools +%description -n python3-%{pypi_name} +Python-RSA is a pure-Python RSA implementation. It supports encryption +and decryption, signing and verifying signatures, and key generation +according to PKCS#1 version 1.5. It can be used as a Python library as +well as on the command-line. +%endif # with_python3 -%if %with python3 -rm -rf %{py3dir} -cp -a . %{py3dir} -%endif +%prep +%setup -q -n %{pypi_name}-%{version} +# Fix FTBFS (https://bitbucket.org/sybren/python-rsa/pull-requests/15/) +%patch0 +rm -rf %{pypi_name}.egg-info %build -%if %with python3 -pushd %{py3dir} -%{__python3} setup.py build -popd -%endif - -%{__python2} setup.py build +%py2_build +%if 0%{?with_python3} +%py3_build +%endif # with_python3 %install -%if %with python3 -pushd %{py3dir} -%{__python3} setup.py install --skip-build --root %{buildroot} -for B in %{buildroot}%{_bindir}/pyrsa-* - do mv $B $(echo $B |sed 's/pyrsa-/python3-pyrsa/'); done -popd -%endif - -%{__python2} setup.py install -O1 --skip-build --root %{buildroot} +%py2_install +cp %{buildroot}%{_bindir}/pyrsa-priv2pub %{buildroot}%{_bindir}/pyrsa-priv2pub-2 +cp %{buildroot}%{_bindir}/pyrsa-keygen %{buildroot}%{_bindir}/pyrsa-keygen-2 +cp %{buildroot}%{_bindir}/pyrsa-encrypt %{buildroot}%{_bindir}/pyrsa-encrypt-2 +cp %{buildroot}%{_bindir}/pyrsa-decrypt %{buildroot}%{_bindir}/pyrsa-decrypt-2 +cp %{buildroot}%{_bindir}/pyrsa-sign %{buildroot}%{_bindir}/pyrsa-sign-2 +cp %{buildroot}%{_bindir}/pyrsa-verify %{buildroot}%{_bindir}/pyrsa-verify-2 +cp %{buildroot}%{_bindir}/pyrsa-encrypt-bigfile %{buildroot}%{_bindir}/pyrsa-encrypt-bigfile-2 +cp %{buildroot}%{_bindir}/pyrsa-decrypt-bigfile %{buildroot}%{_bindir}/pyrsa-decrypt-bigfile-2 + +%if 0%{?with_python3} +%py3_install +cp %{buildroot}%{_bindir}/pyrsa-priv2pub %{buildroot}%{_bindir}/pyrsa-priv2pub-3 +cp %{buildroot}%{_bindir}/pyrsa-keygen %{buildroot}%{_bindir}/pyrsa-keygen-3 +cp %{buildroot}%{_bindir}/pyrsa-encrypt %{buildroot}%{_bindir}/pyrsa-encrypt-3 +cp %{buildroot}%{_bindir}/pyrsa-decrypt %{buildroot}%{_bindir}/pyrsa-decrypt-3 +cp %{buildroot}%{_bindir}/pyrsa-sign %{buildroot}%{_bindir}/pyrsa-sign-3 +cp %{buildroot}%{_bindir}/pyrsa-verify %{buildroot}%{_bindir}/pyrsa-verify-3 +cp %{buildroot}%{_bindir}/pyrsa-encrypt-bigfile %{buildroot}%{_bindir}/pyrsa-encrypt-bigfile-3 +cp %{buildroot}%{_bindir}/pyrsa-decrypt-bigfile %{buildroot}%{_bindir}/pyrsa-decrypt-bigfile-3 +%endif # with_python3 + +%files -n python2-%{pypi_name} +%{!?_licensedir:%global license %doc} +%doc README.rst +%license LICENSE +%if 0%{!?with_python3} +%{_bindir}/pyrsa-priv2pub +%{_bindir}/pyrsa-keygen +%{_bindir}/pyrsa-encrypt +%{_bindir}/pyrsa-decrypt +%{_bindir}/pyrsa-sign +%{_bindir}/pyrsa-verify +%{_bindir}/pyrsa-encrypt-bigfile +%{_bindir}/pyrsa-decrypt-bigfile +%endif # with_python3 +%{_bindir}/pyrsa-priv2pub-2 +%{_bindir}/pyrsa-keygen-2 +%{_bindir}/pyrsa-encrypt-2 +%{_bindir}/pyrsa-decrypt-2 +%{_bindir}/pyrsa-sign-2 +%{_bindir}/pyrsa-verify-2 +%{_bindir}/pyrsa-encrypt-bigfile-2 +%{_bindir}/pyrsa-decrypt-bigfile-2 +%{python2_sitelib}/%{pypi_name} +%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info + +%if 0%{?with_python3} +%files -n python3-%{pypi_name} +%doc README.rst LICENSE +%{_bindir}/pyrsa-priv2pub +%{_bindir}/pyrsa-keygen +%{_bindir}/pyrsa-encrypt +%{_bindir}/pyrsa-decrypt +%{_bindir}/pyrsa-sign +%{_bindir}/pyrsa-verify +%{_bindir}/pyrsa-encrypt-bigfile +%{_bindir}/pyrsa-decrypt-bigfile +%{_bindir}/pyrsa-priv2pub-3 +%{_bindir}/pyrsa-keygen-3 +%{_bindir}/pyrsa-encrypt-3 +%{_bindir}/pyrsa-decrypt-3 +%{_bindir}/pyrsa-sign-3 +%{_bindir}/pyrsa-verify-3 +%{_bindir}/pyrsa-encrypt-bigfile-3 +%{_bindir}/pyrsa-decrypt-bigfile-3 +%{python3_sitelib}/%{pypi_name} +%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info +%endif # with_python3 %check -%if %with python3 -pushd %{py3dir} +%{__python2} setup.py test +%if 0%{?with_python3} %{__python3} setup.py test -popd -%endif - -%{__python2} run_tests.py - -%files -%if 0%{?_licensedir:1} -%license LICENSE -%else -%doc LICENSE -%endif -%doc README.rst -%{_bindir}/pyrsa* -%{python2_sitelib}/rsa/ -%{python2_sitelib}/rsa-*.egg-info/ - -%if %with python3 -%files -n python3-rsa -%if 0%{?_licensedir:1} -%license LICENSE -%else -%doc LICENSE -%endif -%doc README.rst -%{_bindir}/python3-pyrsa* -%{python3_sitelib}/rsa/ -%{python3_sitelib}/rsa-*.egg-info/ -%endif +%endif # with_python3 %changelog +* Wed Jan 13 2016 Fabio Alessandro Locati - 3.3-1 +- Update to current upstream +- Fix CVE-2016-1494 +- Bring spec compliant with current policy + * Tue Dec 8 2015 Paul Howarth - 3.1.4-3 - Fix FTBFS (Debian Bug #804430) - Run the tests for both python2 and python3 @@ -133,5 +185,6 @@ popd * Sun May 26 2013 Yohan Graterol - 3.1.1-2 - Change license name, remove MANIFEST.in + * Sun May 19 2013 Yohan Graterol - 3.1.1-1 -- Initial packaging +- Initial packaging