python3Packages.matplotlib: 3.6.2 -> 3.7.0

https://github.com/matplotlib/matplotlib/releases/tag/v3.7.0
This commit is contained in:
Martin Weinelt 2023-02-27 02:14:29 +01:00
parent fea4e40b98
commit 0d5041f805

View File

@ -1,15 +1,74 @@
{ lib, stdenv, fetchPypi, writeText, buildPythonPackage, isPy3k, pycairo
, which, cycler, python-dateutil, numpy, pyparsing, sphinx, tornado, kiwisolver
, freetype, qhull, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection
, certifi, contourpy, pillow, fonttools, setuptools-scm, setuptools-scm-git-archive, packaging
, enableGhostscript ? true, ghostscript, gtk3
, enableGtk3 ? false, cairo
# darwin has its own "MacOSX" backend
, enableTk ? !stdenv.isDarwin, tcl, tk, tkinter
, enableQt ? false, pyqt5
# required for headless detection
, libX11, wayland
{ lib
, stdenv
, fetchPypi
, writeText
, buildPythonPackage
, pythonOlder
# https://github.com/matplotlib/matplotlib/blob/main/doc/devel/dependencies.rst
# build-system
, pkg-config
, pybind11
, setuptools
, setuptools-scm
# native libraries
, ffmpeg-headless
, fontconfig
, freetype
, imagemagick
, qhull
# propagates
, contourpy
, cycler
, fonttools
, kiwisolver
, numpy
, packaging
, pillow
, pyparsing
, python-dateutil
# optional
, importlib-resources
# GTK3
, enableGtk3 ? false
, cairo
, gobject-introspection
, gtk3
, pycairo
, pygobject3
# Tk
, enableTk ? !stdenv.isDarwin # darwin has its own "MacOSX" backend
, tcl
, tk
, tkinter
# Ghostscript
, enableGhostscript ? true
, ghostscript
# Qt
, enableQt ? false
, pyqt5
# Webagg
, enableWebagg ? false
, tornado
# nbagg
, enableNbagg ? false
, ipykernel
# darwin
, Cocoa
# required for headless detection
, libX11
, wayland
}:
let
@ -17,83 +76,18 @@ let
in
buildPythonPackage rec {
version = "3.6.2";
version = "3.7.0";
pname = "matplotlib";
format = "setuptools";
format = "pyproject";
disabled = !isPy3k;
disabled = pythonOlder "3.9";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-sD/RChcJ0BAcBUiDtVD3xMXpdPdR4mgDGHWa8AWWSZA=";
hash = "sha256-j279MTQw1+9wo4oydigcsuhkazois7IesifaIOFeaBM=";
};
XDG_RUNTIME_DIR = "/tmp";
nativeBuildInputs = [
pkg-config
setuptools-scm
setuptools-scm-git-archive
];
buildInputs = [
which
sphinx
] ++ lib.optionals enableGhostscript [
ghostscript
] ++ lib.optionals stdenv.isDarwin [
Cocoa
];
# clang-11: error: argument unused during compilation: '-fno-strict-overflow' [-Werror,-Wunused-command-line-argument]
hardeningDisable = lib.optionals stdenv.isDarwin [
"strictoverflow"
];
propagatedBuildInputs = [
certifi
contourpy
cycler
fonttools
freetype
kiwisolver
libpng
mock
numpy
packaging
pillow
pyparsing
python-dateutil
pytz
qhull
tornado
] ++ lib.optionals enableGtk3 [
cairo
gobject-introspection
gtk3
pycairo
pygobject3
] ++ lib.optionals enableTk [
libX11
tcl
tk
tkinter
] ++ lib.optionals enableQt [
pyqt5
];
passthru.config = {
directories = { basedirlist = "."; };
libs = {
system_freetype = true;
system_qhull = true;
} // lib.optionalAttrs stdenv.isDarwin {
# LTO not working in darwin stdenv, see #19312
enable_lto = false;
};
};
MPLSETUPCFG = writeText "mplsetup.cfg" (lib.generators.toINI {} passthru.config);
env.XDG_RUNTIME_DIR = "/tmp";
# Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
# corresponding interpreter object for its library paths. This fails if
@ -113,24 +107,90 @@ buildPythonPackage rec {
--replace libX11.so.6 ${libX11}/lib/libX11.so.6 \
--replace libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0
'' +
# avoid matplotlib trying to download dependencies
# bring our own system libraries
# https://github.com/matplotlib/matplotlib/blob/main/doc/devel/dependencies.rst#c-libraries
''
echo "[libs]
system_freetype=true
system_qhull=true" > mplsetup.cfg
substituteInPlace setup.py \
--replace "setuptools_scm>=4,<7" "setuptools_scm>=4"
'';
nativeBuildInputs = [
pkg-config
pybind11
setuptools-scm
];
buildInputs = [
ffmpeg-headless
freetype
qhull
] ++ lib.optionals enableGhostscript [
ghostscript
] ++ lib.optionals enableGtk3 [
cairo
gobject-introspection
gtk3
] ++ lib.optionals enableTk [
libX11
tcl
tk
tkinter
] ++ lib.optionals stdenv.isDarwin [
Cocoa
];
# clang-11: error: argument unused during compilation: '-fno-strict-overflow' [-Werror,-Wunused-command-line-argument]
hardeningDisable = lib.optionals stdenv.isDarwin [
"strictoverflow"
];
propagatedBuildInputs = [
# explicit
contourpy
cycler
fonttools
kiwisolver
numpy
packaging
pillow
pyparsing
python-dateutil
] ++ lib.optionals (pythonOlder "3.10") [
importlib-resources
] ++ lib.optionals enableGtk3 [
pycairo
pygobject3
] ++ lib.optionals enableQt [
pyqt5
] ++ lib.optionals enableWebagg [
tornado
] ++ lib.optionals enableNbagg [
ipykernel
];
passthru.config = {
directories = { basedirlist = "."; };
libs = {
system_freetype = true;
system_qhull = true;
} // lib.optionalAttrs stdenv.isDarwin {
# LTO not working in darwin stdenv, see #19312
enable_lto = false;
};
};
env.MPLSETUPCFG = writeText "mplsetup.cfg" (lib.generators.toINI {} passthru.config);
# Matplotlib needs to be built against a specific version of freetype in
# order for all of the tests to pass.
doCheck = false;
meta = with lib; {
description = "Python plotting library, making publication quality plots";
homepage = "https://matplotlib.org/";
license = with licenses; [ psfl bsd0 ];
homepage = "https://matplotlib.org/";
changelog = "https://github.com/matplotlib/matplotlib/releases/tag/v${version}";
license = with licenses; [ psfl bsd0 ];
maintainers = with maintainers; [ lovek323 veprbl ];
};
}