3 %bcond_with doc # Sphinx documentation
4 %bcond_with tests # unit tests [many failures as of 3.5.1, esp. with system freetype]
5 %bcond_without system_freetype # system freetype library
6 %bcond_without system_qhull # system qhull library
10 # - use system fonts (mpl-data/fonts/ttf/{STIX,cm}*.ttf) and metrics (mpl-data/fonts/{afm,pdfcorefonts}/*.afm) in mpl-data dir?
11 # - make sure all dependencies that are available for Python3 are build for Python3
12 # and included in BR when neccessary
13 %define module matplotlib
14 Summary: Matlab(TM) style Python plotting package
15 Summary(pl.UTF-8): Pakiet do rysowania w Pythonie podobny do Matlaba(TM)
16 Name: python3-%{module}
20 Group: Libraries/Python
21 #Source0Download: https://github.com/matplotlib/matplotlib/releases
22 Source0: https://github.com/matplotlib/matplotlib/archive/v%{version}/matplotlib-%{version}.tar.gz
23 # Source0-md5: 3e865ad2653e5c9ba068823075bb2b44
24 URL: https://matplotlib.org/
25 # currently internal agg is used
26 #BuildRequires: agg-devel
27 %{?with_system_freetype:BuildRequires: freetype-devel >= 1:2.6.1}
28 BuildRequires: libstdc++-devel
29 BuildRequires: pkgconfig
30 BuildRequires: python3 >= 1:3.7
31 BuildRequires: python3-certifi >= 2020.6.20
32 BuildRequires: python3-devel >= 1:3.7
33 BuildRequires: python3-numpy-devel >= 1:1.17
34 BuildRequires: python3-setuptools
35 BuildRequires: python3-setuptools_scm >= 4
36 BuildRequires: python3-setuptools_scm < 7
37 BuildRequires: python3-setuptools_scm_git_archive
38 %{?with_system_qhull:BuildRequires: qhull-devel >= 2015.2}
39 BuildRequires: rpm-pythonprov
40 BuildRequires: rpmbuild(macros) >= 1.714
42 BuildRequires: ghostscript
43 BuildRequires: gtk+3 >= 3.0
45 BuildRequires: poppler-progs
46 # or PyQt6>=6.1, PySide6, PySide2
47 BuildRequires: python3-PyQt5
48 BuildRequires: python3-cycler >= 0.10
49 BuildRequires: python3-dateutil >= 2.7
50 BuildRequires: python3-fonttools >= 4.22.0
51 BuildRequires: python3-kiwisolver >= 1.0.1
52 BuildRequires: python3-packaging >= 20.0
53 BuildRequires: python3-pillow >= 6.2.0
55 BuildRequires: python3-pycairo >= 1.11.0
56 BuildRequires: python3-pygobject3 >= 3.0
57 BuildRequires: python3-pyparsing >= 2.2.1
58 BuildRequires: python3-pytest >= 3.6
59 BuildRequires: python3-pytz
60 BuildRequires: python3-tkinter >= 1:3.7
61 BuildRequires: python3-tornado >= 5
62 #BuildRequires: python3-wxPython >= 4
64 BuildRequires: texlive
65 BuildRequires: texlive-xetex
66 # Font EU1/lmr/m/n/10=[lmroman10-regular]:mapping=tex-text at 10.0pt
67 #BuildRequires: texlive-???
70 BuildRequires: python3-colorspacious
71 BuildRequires: python3-ipython
72 BuildRequires: python3-ipywidgets
73 BuildRequires: python3-mpl-sphinx-theme
74 BuildRequires: python3-numpydoc >= 0.8
75 BuildRequires: python3-packaging >= 20
76 BuildRequires: python3-scipy
77 BuildRequires: python3-sphinx_copybutton
78 BuildRequires: python3-sphinx_gallery >= 0.10
79 BuildRequires: python3-sphinx_panels
80 BuildRequires: python3-sphinxcontrib-svg2pdfconverter >= 1.1.0
81 BuildRequires: sphinx-pdg >= 2.0.1
83 %{?with_system_freetype:Requires: freetype >= 1:2.6.1}
84 Requires: python3-modules >= 1:3.7
85 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88 matplotlib strives to produce publication quality 2D graphics using
89 matlab plotting for inspiration. Although the main lib is object
90 oriented, there is a functional interface "pylab" for people coming
93 %description -l pl.UTF-8
94 matplotlib usiłuje tworzyć grafikę 2D o jakości publikacji przy użyciu
95 wykresów matlaba jako inspiracji. Chociaż główna biblioteka jest
96 zorientowana obiektowo, jest interfejs funkcyjny "pylab" dla ludzi
97 przechodzących z Matlaba.
100 %setup -q -n %{module}-%{version}
102 cat >mplsetup.cfg <<EOF
104 %if %{with system_freetype}
105 system_freetype = True
107 %if %{with system_qhull}
113 export CFLAGS="%{rpmcflags}"
118 LIB=$(readlink -f build-3/lib.*)
119 ln -sf $(readlink -f lib/matplotlib/tests/baseline_images) $LIB/matplotlib/tests/baseline_images
120 PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
122 %{__python3} -m pytest $LIB/matplotlib/tests -m 'not network'
123 %{__rm} $LIB/matplotlib/tests/baseline_images
127 rm -rf $RPM_BUILD_ROOT
131 %{__rm} -r $RPM_BUILD_ROOT%{py3_sitedir}/matplotlib/tests
132 # matplotlib can use system fonts, so drop these copies
133 %{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/matplotlib/mpl-data/fonts/ttf/DejaVu*.ttf
136 rm -rf $RPM_BUILD_ROOT
139 %defattr(644,root,root,755)
140 %doc README.rst LICENSE/LICENSE
141 %dir %{py3_sitedir}/%{module}
142 %{py3_sitedir}/%{module}/*.py
143 %{py3_sitedir}/%{module}/__pycache__
144 %attr(755,root,root) %{py3_sitedir}/%{module}/*.so
145 %{py3_sitedir}/%{module}/_api
146 %{py3_sitedir}/%{module}/axes
147 %dir %{py3_sitedir}/%{module}/backends
148 %{py3_sitedir}/%{module}/backends/*.py
149 %{py3_sitedir}/%{module}/backends/__pycache__
150 %attr(755,root,root) %{py3_sitedir}/%{module}/backends/*.so
151 %dir %{py3_sitedir}/%{module}/backends/qt_editor
152 %{py3_sitedir}/%{module}/backends/qt_editor/*.py
153 %{py3_sitedir}/%{module}/backends/qt_editor/__pycache__
154 %{py3_sitedir}/%{module}/backends/web_backend
155 %{py3_sitedir}/%{module}/cbook
156 %{py3_sitedir}/%{module}/mpl-data
157 %{py3_sitedir}/%{module}/projections
158 %{py3_sitedir}/%{module}/sphinxext
159 %{py3_sitedir}/%{module}/style
160 %{py3_sitedir}/%{module}/testing
161 %{py3_sitedir}/%{module}/tri
162 %{py3_sitedir}/mpl_toolkits
163 %{py3_sitedir}/pylab.py
164 %{py3_sitedir}/__pycache__
165 %{py3_sitedir}/%{module}-%{version}-py*.egg-info
166 %{py3_sitedir}/%{module}-%{version}-py*-nspkg.pth