3 %bcond_without python2 # CPython 2.x module
4 %bcond_without python3 # CPython 3.x module
5 %bcond_without doc # Sphinx documentation
6 %bcond_without tests # unit tests and benchmarks (any)
7 %bcond_without tests_py2 # CPython 2.x module tests
10 %undefine with_tests_py2
13 %define module greenlet
14 Summary: Lightweight in-process concurrent programming
15 Summary(pl.UTF-8): Lekkie programowanie równoległe wewnątrz procesu
16 Name: python-%{module}
19 License: MIT, PSF (Stackless Python parts)
20 Group: Libraries/Python
21 #Source0Download: https://pypi.org/simple/greenlet/
22 Source0: https://files.pythonhosted.org/packages/source/g/greenlet/%{module}-%{version}.tar.gz
23 # Source0-md5: d964c95c2d2f0f02f36c75e158d8e3dc
24 Patch0: %{name}-py3.8.patch
25 URL: https://pypi.org/project/greenlet/
26 BuildRequires: rpm-pythonprov
27 BuildRequires: rpmbuild(macros) >= 1.714
29 BuildRequires: python-devel >= 1:2.4
30 BuildRequires: python-setuptools
33 BuildRequires: python3-2to3 >= 1:3.2
34 BuildRequires: python3-devel >= 1:3.2
35 BuildRequires: python3-setuptools
36 BuildRequires: python3-modules >= 1:3.2
39 BuildRequires: sphinx-pdg
41 Requires: python-modules >= 1:2.4
42 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
44 # -fno-tree-dominator-opts because https://bugzilla.opensuse.org/show_bug.cgi?id=902146
45 %define specflags_x32 -fno-tree-dominator-opts
48 The greenlet package is a spin-off of Stackless, a version of CPython
49 that supports micro-threads called "tasklets". Tasklets run
50 pseudo-concurrently (typically in a single or a few OS-level threads)
51 and are synchronized with data exchanges on "channels".
53 %description -l pl.UTF-8
54 Pakiet greenlet to odprysk projektu Stackless - wersji CPythona
55 obsługującej mikrowątki zwane "taskletami". Tasklety działają
56 pseudorównolegle (zwykle w jednym lub kilku wątkach na poziomie
57 systemu operacyjnego) i są synchronizowane przy wymianie danych
61 Summary: C development headers for Python 2 greenlet module
62 Summary(pl.UTF-8): Pliki nagłówkowe C dla modułu Pythona 2 greenlet
63 Group: Development/Libraries
64 Requires: %{name} = %{version}-%{release}
65 Requires: python-devel >= 1:2.4
68 This package contains header files required for C modules development.
70 %description devel -l pl.UTF-8
71 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia modułów w
74 %package -n python3-%{module}
75 Summary: Lightweight in-process concurrent programming
76 Summary(pl.UTF-8): Lekkie programowanie równoległe wewnątrz procesu
77 Group: Libraries/Python
78 Requires: python3-modules >= 1:3.2
80 %description -n python3-%{module}
81 The greenlet package is a spin-off of Stackless, a version of CPython
82 that supports micro-threads called "tasklets". Tasklets run
83 pseudo-concurrently (typically in a single or a few OS-level threads)
84 and are synchronized with data exchanges on "channels".
86 %description -n python3-%{module} -l pl.UTF-8
87 Pakiet greenlet to odprysk projektu Stackless - wersji CPythona
88 obsługującej mikrowątki zwane "taskletami". Tasklety działają
89 pseudorównolegle (zwykle w jednym lub kilku wątkach na poziomie
90 systemu operacyjnego) i są synchronizowane przy wymianie danych
93 %package -n python3-%{module}-devel
94 Summary: C development headers for Python 3 greenlet module
95 Summary(pl.UTF-8): Pliki nagłówkowe C dla modułu Pythona 3 greenlet
96 Group: Development/Libraries
97 Requires: python3-%{module} = %{version}-%{release}
98 Requires: python3-devel >= 1:3.2
100 %description -n python3-%{module}-devel
101 This package contains header files required for C modules development.
103 %description -n python3-%{module}-devel -l pl.UTF-8
104 Ten pakiet zawiera pliki nagłówkowe potrzebne do tworzenia modułów w
108 Summary: API documentation for Python greenlet module
109 Summary(pl.UTF-8): Dokumentacja API modułu Pythona greenlet
113 API documentation for Python greenlet module.
115 %description apidocs -l pl.UTF-8
116 Dokumentacja API modułu Pythona greenlet.
119 %setup -q -n greenlet-%{version}
126 %if %{with tests_py2}
127 BUILDDIR=$(echo $(pwd)/build-2/lib.linux-*)
128 PYTHONPATH="$BUILDDIR" \
129 %{__python} run-tests.py -n -b build-2/tests
131 # Run the upstream benchmarking suite to further exercise the code:
132 PYTHONPATH="$BUILDDIR" \
133 %{__python} benchmarks/chain.py
141 BUILDDIR=$(echo $(pwd)/build-3/lib.linux-*)
142 PYTHONPATH="$BUILDDIR" \
143 %{__python3} run-tests.py -n -b build-3/tests
145 # Run the upstream benchmarking suite to further exercise the code:
146 mkdir -p benchmarks-3
147 2to3-%{py3_ver} -o benchmarks-3 -n -w --no-diffs benchmarks
148 PYTHONPATH="$BUILDDIR" \
149 %{__python3} benchmarks-3/chain.py
154 %{__make} -C doc html
158 rm -rf $RPM_BUILD_ROOT
171 rm -rf $RPM_BUILD_ROOT
175 %defattr(644,root,root,755)
176 %doc AUTHORS LICENSE NEWS README.rst benchmarks
177 %attr(755,root,root) %{py_sitedir}/greenlet.so
178 %{py_sitedir}/greenlet-%{version}-py*.egg-info
181 %defattr(644,root,root,755)
182 %{_includedir}/python%{py_ver}/greenlet
186 %files -n python3-%{module}
187 %defattr(644,root,root,755)
188 %doc AUTHORS LICENSE NEWS README.rst %{?with_tests:benchmarks-3}
189 %attr(755,root,root) %{py3_sitedir}/greenlet.cpython-*.so
190 %{py3_sitedir}/greenlet-%{version}-py*.egg-info
192 %files -n python3-%{module}-devel
193 %defattr(644,root,root,755)
194 %{_includedir}/python%{py3_ver}*/greenlet
199 %defattr(644,root,root,755)
200 %doc doc/_build/html/{_static,*.html,*.js}