# Contributor: Isaac Dunham # Contributor: Aiden Grossman # Contributor: Holger Jaekel maintainer="fossdd " pkgname=py3-matplotlib pkgver=3.10.3 _ftver=2.13.1 pkgrel=1 pkgdesc="Python3 library for plots" url="https://matplotlib.org" arch="all" license="PSF-2.0" depends=" py3-contourpy py3-cycler py3-dateutil py3-fonttools py3-kiwisolver $pkgname-data py3-numpy py3-packaging py3-parsing py3-pillow " makedepends=" freetype-dev py3-gpep517 py3-meson-python py3-numpy-dev py3-pybind11-dev py3-setuptools_scm python3-dev qhull-dev " checkdepends=" font-opensans ghostscript inkscape jupyter-nbformat jupyter-nbconvert py3-pandas py3-pikepdf py3-psutil py3-pytest py3-pytest-cov py3-pytest-timeout py3-pytest-xdist py3-pytzdata py3-sphinx py3-xarray " subpackages=" $pkgname-fonts::noarch $pkgname-data::noarch $pkgname-qt5-pyc:qt5_pyc $pkgname-qt5::noarch $pkgname-qt6::noarch $pkgname-gtk3-pyc:gtk3_pyc $pkgname-gtk3::noarch $pkgname-gtk4-pyc:gtk4_pyc $pkgname-gtk4::noarch $pkgname-tk-pyc:tk_pyc $pkgname-tk $pkgname-wx-pyc:wx_pyc $pkgname-wx::noarch $pkgname-pyc " # from https://src.fedoraproject.org/rpms/python-matplotlib/tree/rawhide source="https://github.com/matplotlib/matplotlib/archive/v$pkgver/matplotlib-v$pkgver.tar.gz https://github.com/QuLogic/mpl-images/archive/v$pkgver-with-freetype-$_ftver/mpl-images-$pkgver-ft$_ftver.tar.gz 0001-matplotlibrc-path-search-fix.patch 0002-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch 0003-Unpin-meson-python-build-requirement.patch 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch 0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch pillow13.patch python3.14.patch " builddir="$srcdir/matplotlib-$pkgver" [ "$CARCH" = "riscv64" ] && options="$options !check" # FIXME: lots of fails build() { export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver gpep517 build-wheel \ --wheel-dir .dist \ --config-json '{"setup-args": ["-Dsystem-freetype=true", "-Dsystem-qhull=true"]}' \ --output-fd 3 3>&1 >&2 } check() { local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') python3 -m venv --clear --without-pip --system-site-packages test-env test-env/bin/python3 -m installer .dist/*.whl mkdir -p test-env/share/matplotlib cp -r test-env/lib/python$python_version/site-packages/matplotlib/mpl-data test-env/share/matplotlib/mpl-data for _module in matplotlib mpl_toolkits do cp -r lib/$_module/* test-env/lib/python$python_version/site-packages/$_module cp -r "$srcdir"/mpl-images-$pkgver-with-freetype-$_ftver/lib/$_module/* test-env/lib/python$python_version/site-packages/$_module done # musl locale deficiencies local k="not test_locale_comma" case "$CARCH" in aarch64|arm*|ppc64le|s390x|x86_64) # FIXME: failing on at least armhf & s390x package builders k="$k and not test_get_font_names" ;; esac case "$CARCH" in loongarch64|riscv64) # some tests fail on loongarch64 and riscv64 k="$k and not test_imshow_clip and not test_contour_addlines and not test_contour_colorbar and not test_contour3d" ;; esac case "$CARCH" in aarch64|ppc64le|s390x|loongarch64|riscv64) # FIXME: fails for some reason only on these architectures k="$k and not test_zoom_inset_connector_styles" ;; esac test-env/bin/python3 -m pytest -n $JOBS -v \ --pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d \ -k "$k" } package() { python3 -m installer --destdir="$pkgdir" .dist/*.whl # Remove tests from installation find "$pkgdir" -type d -name tests -exec rm -r {} \+ } fonts() { pkgdesc="Fonts used by $pkgname" license="OFL-1.0 AND Bitstream-Vera AND Public-Domain" depends="" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/mpl-data/fonts } data() { pkgdesc="Data used by $pkgname" depends="$pkgname-fonts=$pkgver-r$pkgrel" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/mpl-data } qt5() { pkgdesc="Qt5 backend for $pkgname" depends="$pkgname=$pkgver-r$pkgrel py3-cairocffi py3-qt5" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/backend_qt5*.py } qt5_pyc() { pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}" install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc" depends="$pkgname-qt5=$pkgver-r$pkgrel" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/__pycache__/backend_qt5*.pyc } qt6() { pkgdesc="Qt6 backend for $pkgname" depends="$pkgname=$pkgver-r$pkgrel py3-cairocffi py3-qt6" # This is handled by backend_qt*.py (no number), so the package exists only for # the dependencies. mkdir $subpkgdir } gtk3() { pkgdesc="GTK3 backend for $pkgname" depends="$pkgname=$pkgver-r$pkgrel py3-gobject3" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/backend_gtk3*.py } gtk3_pyc() { pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}" install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc" depends="$pkgname-gtk3=$pkgver-r$pkgrel" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/__pycache__/backend_gtk3*.pyc } gtk4() { pkgdesc="GTK4 backend for $pkgname" depends="$pkgname=$pkgver-r$pkgrel py3-gobject3" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/backend_gtk4*.py } gtk4_pyc() { pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}" install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc" depends="$pkgname-gtk4=$pkgver-r$pkgrel" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/__pycache__/backend_gtk4*.pyc } tk() { pkgdesc="Tk backend for $pkgname" depends="$pkgname=$pkgver-r$pkgrel python3-tkinter" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/backend_tk*.py amove usr/lib/python$python_version/site-packages/matplotlib/backends/_backend_tk.py amove usr/lib/python$python_version/site-packages/matplotlib/backends/_tkagg.* } tk_pyc() { pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}" install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc" depends="$pkgname-tk=$pkgver-r$pkgrel" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/__pycache__/backend_tk*.pyc amove usr/lib/python$python_version/site-packages/matplotlib/backends/__pycache__/_backend_tk*.pyc } wx() { pkgdesc="WX backend for $pkgname" depends="$pkgname=$pkgver-r$pkgrel py3-wxpython" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/backend_wx*.py } wx_pyc() { pkgdesc="Precompiled Python bytecode for ${subpkgname%-pyc}" install_if="${subpkgname%-pyc}=$pkgver-r$pkgrel pyc" depends="$pkgname-wx=$pkgver-r$pkgrel" local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') amove usr/lib/python$python_version/site-packages/matplotlib/backends/__pycache__/backend_wx*.pyc } sha512sums=" a321d3eebd043fb20ce56e1b0795923d4dad559e449a31058256167eb70ef5bb71714400949c33da4d311545f4a5a97af82ebafec4889161044993b4c3511cb9 matplotlib-v3.10.3.tar.gz bb32e57bbd341c652d03361e3785145a9e89f59709eb588882f81cba4061c8aa7250c0d46ed07a588d75a055d72bbc6126c59e8777634385a458287f6ef8812f mpl-images-3.10.3-ft2.13.1.tar.gz 8a8590f69acbb2b7896e5269fd066b3b7bd4563f230306505500829d059dc736a6d7cfc1805ff58edc9545d51db685cd7827593ef88651443c9150b3c5d093a9 0001-matplotlibrc-path-search-fix.patch fc6076275d9e2e6ae5d89ccd066d90a3736ef765cc790de503f8e25f8c729e80dc4a9bfe7bb19c6f31a71d6b0ca22d88d18a14f79de72a73207d1d8f0534046e 0002-Set-FreeType-version-to-2.13.1-and-update-tolerances.patch b5eaa828b3cd98a28ca7c51a81b4f6264e93fe5279d1bdf6661a8e913f8ef2a005f9b99f0b69a987999061b2133b138b2b180cf630687c0a28a49514de520aaf 0003-Unpin-meson-python-build-requirement.patch 21da2dde4db4d513e6af086ccd7d4cdbe2faf016e11bb7a273ef4825f8e9b2291f8c42d6ec9b4ebe4d4d80f655739fe4ff683f07f0b7adfb4d2e4960eba0c699 0004-Use-old-stride_windows-implementation-on-32-bit-x86.patch 89433c2e704373fa3ca3a77e661c41dd7ce40df2b8da34e5dcfc732145ab39cf7245f64122c1eff4da230b889ec1e1cf935366c18b903b3157daa9ebc91db339 0005-Partially-revert-TST-Fix-minor-issues-in-interactive.patch 57ba1fefec92a6258ea32210942bb65647d628ca6f29047edb601a7a3f5f2cc4ab24ab5a7c09438304a2324e2bb6c1c5f2d904aa0347023d593111e5295e2571 pillow13.patch e135d3a31e6556a0fba9671852053edce51093705097cd3536e8ce81d9a6f7cdc17c11db4088b8b31854a3223f18f145bb8ec6a13858f366d2042150eb8b8e0c python3.14.patch "