<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/6df3cf1e93c1dd8a7c953aafe3ed21684849aa29">https://github.com/macports/macports-ports/commit/6df3cf1e93c1dd8a7c953aafe3ed21684849aa29</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 6df3cf1e93c1dd8a7c953aafe3ed21684849aa29
</span>Author: Renee Otten <reneeotten@macports.org>
AuthorDate: Mon Oct 14 10:31:11 2024 -0400
<span style='display:block; white-space:pre;color:#404040;'> py27-matplotlib: move to separate port
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> - add patch to allow building on macOS 15
</span><span style='display:block; white-space:pre;color:#404040;'> - remove no longer supported backends
</span>---
python/py27-matplotlib/Portfile | 209 +++++++++++++++++++++
python/py27-matplotlib/files/patch-jquery-ui.diff | 15 ++
python/py27-matplotlib/files/patch-qhull.diff | 28 +++
python/py27-matplotlib/files/patch-setup.cfg.diff | 28 +++
.../py27-matplotlib/files/patch-setupext.py.diff | 17 ++
.../files/patch-src_ft2font.cpp.diff | 30 +++
6 files changed, 327 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py27-matplotlib/Portfile b/python/py27-matplotlib/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6807bedd025
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py27-matplotlib/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,209 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compiler_wrapper 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name py27-matplotlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.rootname matplotlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 2.2.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories-append graphics math
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license {PSF BSD}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {reneeotten @reneeotten} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Matplotlib is a python plotting library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description Matplotlib strives to produce publication quality 2D \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ graphics for interactive graphing, scientific publishing, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ user interface development and web application servers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ targeting multiple user interfaces and hardcopy output \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ formats. There is a 'pylab' mode which emulates matlab \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ graphics. The library uses numpy for handling large data \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sets and supports a variety of output backends. This port \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ provides variants for the different GUIs (gtk2, gtk3, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tkinter, qt4, qt5, cairo, latex).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://matplotlib.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 4532a205e8f40d6f40346b2e461d3dca144b38b9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 a3037a840cd9dfdc2df9fee8af8f76ca82bfab173c0f9468193ca7a89a2b60ea \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 36678633
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.pep517 no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:bin/pkg-config:pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-setuptools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:freetype \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:qhull \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-cycler \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-dateutil \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-kiwisolver \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-numpy \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-parsing \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libpng \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-backports-functools_lru_cache \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-six \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-subprocess32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-tz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${python.version} < 310} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python.version}-importlib-resources
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set configfile setup.cfg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-setup.cfg.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-qhull.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-setupext.py.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-jquery-ui.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-src_ft2font.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant gtk2 description "Enable GTKAgg backend" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-pygtk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^gtk=False|gtk=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^gtkagg=False|gtkagg=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|@@PREFIX@@|${prefix}|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant qt4 description "Enable Qt4Agg backend" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-pyqt4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^qt4agg=False|qt4agg=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# jquery-ui is included in the PyPI files, patch added for setup.py that avoids trying
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# to install if from the cache or download from URL. Just copy the directory in the post-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# build phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set libdir [glob -nocomplain ${worksrcpath}/build/lib*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![file exists ${libdir}/matplotlib/backends/web_backend/jquery-ui-1.12.1]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${worksrcpath}/lib/matplotlib/backends/web_backend/jquery-ui-1.12.1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${libdir}/matplotlib/backends/web_backend/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.env-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PKG_CONFIG_PATH=${python.prefix}/lib/pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS=${configure.cxxflags} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXFLAGS=${configure.cxxflags} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.env-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PKG_CONFIG_PATH=${python.prefix}/lib/pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS=${configure.cxxflags} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXFLAGS=${configure.cxxflags} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# build fails with gcc-4.0 on Leopard, use gcc-4.2 (#37069)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist gcc-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# additionally on Leopard the macosx backend cannot be compiled anymore, see Trac ticket:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://trac.macports.org/ticket/61757
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# this is a compiler issue, not OS version issue; this backend should be disabled for gcc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cc1obj: error: '-Werror=unguarded-availability': no option '-Wunguarded-availability'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# src/_macosx.m: error: incompatible type for argument 1 of 'updateDevicePixelRatio'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# src/_macosx.m: error: incompatible types when initializing type 'CGFloat' {aka 'float'} using type 'id'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^macosx=True|macosx=False|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/share/doc/${subport} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 {*}[glob ${worksrcpath}/README.*] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 -W ${worksrcpath} matplotlibrc.template \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${worksrcpath}/examples \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant webagg description "Enable WebAgg backend" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-tornado
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant tkinter description "Enable TkAgg backend" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-tkinter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^tkagg=False|tkagg=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant gtk3 description "Enable GTK3Agg backend" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-gobject3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path:lib/pkgconfig/gtk+-3.0.pc:gtk3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^gtk3agg=False|gtk3agg=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant qt5 description "Enable Qt5Agg backend" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-pyqt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^qt5agg=False|qt5agg=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant cairo description "Enable Cairo backends" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:py${python.version}-cairo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^cairo=False|cairo=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant dvipng description "Enable dvipng support" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:dvipng
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant ghostscript description "Enable GhostScript support" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:ghostscript
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant latex description "Enable LaTeX support" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append bin:latex:texlive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant pdftops description "Enable pdftops support" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append bin:pdftops:poppler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants +webagg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {![variant_isset gtk2] && ![variant_isset tkinter] && ![variant_isset qt5] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset qt4]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append +cairo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[variant_isset gtk3] && [variant_isset cairo]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|^gtk3cairo=False|gtk3cairo=True|" ${worksrcpath}/${configfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "The default backend is the interactive Mac OS X backend. Different\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ backends can be specified using the ~/.matplotlib/matplotlibrc file.\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ More details regarding backends can be found in the matplotlib FAQ:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://matplotlib.org/stable/users/explain/backends.html"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type none
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py27-matplotlib/files/patch-jquery-ui.diff b/python/py27-matplotlib/files/patch-jquery-ui.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..46b43fb069d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py27-matplotlib/files/patch-jquery-ui.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.py.orig 2019-02-25 19:18:32.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.py 2019-05-21 10:36:03.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -188,9 +188,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _download_jquery_to("lib/matplotlib/backends/web_backend/")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmdclass['sdist'] = sdist_with_jquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmdclass['install_lib'] = install_lib_with_jquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-cmdclass['develop'] = develop_with_jquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++##cmdclass['sdist'] = sdist_with_jquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++##cmdclass['install_lib'] = install_lib_with_jquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++##cmdclass['develop'] = develop_with_jquery
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # One doesn't normally see `if __name__ == '__main__'` blocks in a setup.py,
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py27-matplotlib/files/patch-qhull.diff b/python/py27-matplotlib/files/patch-qhull.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c42c5a02f75
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py27-matplotlib/files/patch-qhull.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setupext.py.orig 2019-02-25 21:07:47.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setupext.py 2019-02-27 23:27:59.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1406,23 +1406,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def check(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ self.__class__.found_external = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- try:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return self._check_for_pkg_config(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 'libqhull', 'libqhull/qhull_a.h', min_version='2015.2')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- except CheckFailed as e:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- self.__class__.found_pkgconfig = False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- self.__class__.found_external = False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return str(e) + ' Using local copy.'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return ' Using copy installed by MacPorts.'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def add_flags(self, ext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if self.found_external:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pkg_config.setup_extension(ext, 'qhull',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- default_libraries=['qhull'])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ext.include_dirs.insert(0, 'extern')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ext.sources.extend(sorted(glob.glob('extern/libqhull/*.c')))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if sysconfig.get_config_var('LIBM') == '-lm':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ext.libraries.extend('m')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ext.libraries.append('qhull')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class TTConv(SetupPackage):
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py27-matplotlib/files/patch-setup.cfg.diff b/python/py27-matplotlib/files/patch-setup.cfg.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9a677a0951d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py27-matplotlib/files/patch-setup.cfg.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setup.cfg 2018-10-03 11:50:33.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setup.cfg 2018-10-03 11:54:34.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[gui_support]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++agg=True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cairo=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gtk=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gtk3agg=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gtk3cairo=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gtkagg=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++macosx=True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++pyside=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++qt4agg=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++qt5agg=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++tkagg=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++windowing=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++wxagg=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[packages]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++sample_data=True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++toolkits=True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++tests=False
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[rc_options]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++backend=MacOSX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[directories]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++basedirlist=@@PREFIX@@
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py27-matplotlib/files/patch-setupext.py.diff b/python/py27-matplotlib/files/patch-setupext.py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b85bd4f71df
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py27-matplotlib/files/patch-setupext.py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- setupext.py.orig 2019-02-27 23:27:59.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ setupext.py 2019-02-27 23:28:57.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1541,10 +1541,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class BackendTkAgg(OptionalBackendPackage):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ name = "tkagg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- force = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- def check(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return "installing; run-time loading from Python Tcl / Tk"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## force = True
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++##
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## def check(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## return "installing; run-time loading from Python Tcl / Tk"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def runtime_check(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ """ Checks whether TkAgg runtime dependencies are met
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py27-matplotlib/files/patch-src_ft2font.cpp.diff b/python/py27-matplotlib/files/patch-src_ft2font.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b93f89d6d5c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py27-matplotlib/files/patch-src_ft2font.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Avoids the errors:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build src/ft2font.cpp:207:29: error: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build 207 | tags = outline.tags + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build | ~~~~~~~~~~~~~^~~~~~~
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build src/ft2font.cpp:323:29: error: assigning to 'char *' from 'unsigned char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build 323 | tags = outline.tags + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build | ~~~~~~~~~~~~~^~~~~~~
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+:info:build 2 errors generated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/ft2font.cpp.orig 2024-10-28 22:40:16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/ft2font.cpp 2024-10-28 22:40:28
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -204,7 +204,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ v_control = v_start;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ point = outline.points + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tags = outline.tags + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tags = (char*)(outline.tags) + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tag = FT_CURVE_TAG(tags[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // A contour cannot start with a cubic control point!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -320,7 +320,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ v_control = v_start;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ point = outline.points + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tags = outline.tags + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tags = (char*)(outline.tags) + first;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tag = FT_CURVE_TAG(tags[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double x, y;
</span></pre><pre style='margin:0'>
</pre>