= matplotlib = == Description == From the Matplotlib website: matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala matlab or mathematica), web application servers, and six graphical user interface toolkits. == License == The Matplotlib license - see http://matplotlib.sourceforge.net/users/license.html: Matplotlib only uses BSD compatible code, and its license is based on the PSF license. See the Open Source Initiative licenses page for details on individual licenses. Non-BSD compatible licenses (eg LGPL) are acceptable in matplotlib Toolkits. For a discussion of the motivations behind the licencing choice, see Licenses. == SPKG Maintainers == * Jason Grout == Upstream Contact == The matplotlib mailing lists: see http://sourceforge.net/projects/matplotlib == Dependencies == * python * numpy * freetype * patch (used in spkg-install) == Build Instructions/Changes == The following patches are in the patches subdirectory. The patches are applied during the build process. * setupext.py.patch: explicitly searches for and uses 'libpng12' instead of 'libpng' to apparently avoid some name clashes on OS X and other platforms which don't have 'pkg-config' installed. As of spkg version 1.0.1.p0, this patch tests for the presence of 'pkg-config': if it is not installed, then it uses libpng12 instead of libpng, as above; otherwise it uses libpng, which is the behavior before the patch. See Sage trac #4774 and #11686. * NOTE: as of matplotlib-1.0.0 and Sage 4.6, Sage does not use $HOME/.matplotlib (or whatever the user has set in MPLCONFIGDIR). Instead, it sets MPLCONFIGDIR to $DOT_SAGE/matplotlib-VER, where VER is the matplotlib version number. This is because of incompatibilities between the contents of .matplotlib between matplotlib versions 0.99.3 and 1.0.0. Sage reads the version number VER by searching through SAGE_ROOT/local/lib/python/site-packages/matplotlib/__init__.py, looking for a line of the form __version__ = '1.0.0' So when updating matplotlib, make sure that src/lib/matplotlib/__init__.py has a line of this form. Extra white spaces shouldn't matter, but if the single quotes change to double quotes, for example, we either need to patch that file or patch the sage-env script. See http://trac.sagemath.org/sage_trac/ticket/6235. Also, at the end of the install process for matplotlib, the spkg-install file prints a message showing what MPLCONFIGDIR will be set to, using the command from sage-env, so this should provide a check. * NOTE: To drastically cut down on spkg size, we delete the internal testing images. To do this, after extracting the source and putting it in src/, remove the contents of src/lib/matplotlib/tests/baseline_images/* == Changelog == === matplotlib-1.2.1 (Jean-Pierre Flori, 28 March 2013) === * Trac #13693: Update matplotlib to 1.2.1. === matplotlib-1.2.0 (Jason Grout, 09 Nov 2012) === * Trac #13693: Update to matplotlib 1.2.0. * Delete the mkdir race condition patch; it's been incorporated upstream. === matplotlib-1.1.0 (Jason Grout, 15 Dec 2011) === * Update matplotlib to 1.1.0. See Sage trac #11915. * Replace the three __init__.py.patch, finance.py.patch, and texmanager.py.patch patches with one consolidated mkdir-race-condition.patch (which also updates the exceptions to use 2.6, 2.7, 3.x style exceptions). This patch has been submitted upstream now. * Rebase setupext.py.patch file * Deleted the src/lib/matplotlib/tests/baseline_images/* test images to conserve lots of space, and noted this in the special instructions above. === matplotlib-1.0.1.p0 (John Palmieri, 17 Aug 2011) === * Patch __init__.py, finance.py, and texmanager.py to avoid race conditions when creating directories. See Sage trac #11686 and #10159. * Updated the list of prerequisites in this file. * Changed spkg-install so that the patches are now applied using 'patch'. * The patch to setupext.py tests whether pkg-config is installed: if so, it maintains the status quo, and if not, it passes the argument 'libpng12' when configuring the png package. * Replaced the "src" directory with a freshly downloaded copy of the vanilla source code. === matplotlib-1.0.1 (Ryan Grout, 10 Jan 2011) === * Update to matplotlib 1.0.1. Fixes a handful of annoying bugs in Sage. === matplotlib-1.0.0 (Jason Grout, 01 Oct 2010) === * Update to matplotlib 1.0.0. Include two upstream fixes that were committed since 1.0.0. === matplotlib-0.99.3-svn8415 (Jason Grout, 11 Jun 2010) === * Update to SVN revision 8415 (which is 0.99.3 + some bugfixes we would like). Removed pprdrv_tt2.cpp patch (no longer needed) and incorporated the functionality of the setupext.py and setup.py patches into the make-setup-config.py script, which uses the matplotlib-supported way to effect the changes. The only other patch was to change libpng to libpng12; this patch was left as the patch for setupext.py. === matplotlib-0.99.1.p4 (Craig Citro, 14 Jan 2010) === * Removed hideous hack, now that OSX 10.6 bug is fixed. === matplotlib-0.99.1.p2 (William Stein, 6 Jan 2010) === * Re-implemented hideous temporary hack (trac 7865). === matplotlib-0.99.1.p2 (William Stein, 29 Sep 2009) === * Implemented hideous temporary hack to get around issue with pyCXX crashing on OS X 10.6 === matplotlib-0.99.1 (Jason Grout, 22 Sep 2009) === * Update to matplotlib 0.99.1. Several of our patches were incorporated upstream, so deleted those and updated the others. === matplotlib-0.99.0 (Jason Grout, August 9th, 2009) === * Update to matplotlib 0.99.0 === matplotlib-0.98.5.3rc0-svn6910.p3 (Michael Abshoff, February 20th, 2009) === * Turn off GUI backend unconditionally since they cause trouble on systems without X, ie. sage.math, too. This might be a bug in Matplotlib, but until this is resolved it stays off. === matplotlib-0.98.5.3rc0-svn6910.p2 (William Stein, February 20th, 2009) === * Don't build GUI backends on OS X by default. See trac #5301. This is really a problem with libpng, so this is temporary. === matplotlib-0.98.5.3rc0-svn6910.p1 (Jason Grout, February 14, 2009) === * Add a patch for patches.py, which ignores the errors generated when trying to draw arrows that are "too short". === matplotlib-0.98.5.3rc0-svn6910.p0 (Michael Abshoff, February 14, 2009) === * link against libpng12 instead of libpng (#4774) * disable tkagg on all machines since it causes too much trouble === matplotlib-0.98.5.3rc0-svn6910 (Jason Grout, February 13, 2009) === * Update to the latest SVN version (6910) of Matplotlib and update patches. Two patches disappear because one patch was just updating quiver.py to a mid-release version and arrow_line.py is now subsumed by much nicer functionality in Matplotlib. * in order to save space, removed the two images src/doc/_static/eeg* and src/doc/pyplots/(plotmap.png|tex_demo.pdf|plotmap.hires.png|plotmap.pdf) === matplotlib-0.98.3.p5 (Michael Abshoff, January 19th, 2009) === * Work around Solaris 10 with gcc 4.3.2 problem in ttconv/pprdrv_tt2.cpp (#5008) === matplotlib-0.98.3.p4 (Michael Abshoff, December 12th, 2008) === * apply Craig Citro's OSX build fix (#4680) === matplotlib-0.98.3.p3 (William Stein, 25 Nov 2008) === * fix so matplotlib may build in a fallback case (there is a stupid bug in upstreams setupext.py) == matplotlib-0.98.3.p2 (Jason Grout, 20 Sep 2008) === * Update quiver.py to the SVN version 6115 to make the vector field plots respect aspect ratio. == matplotlib-0.98.3.p1 (Jason Grout, 03 Sep 2008) === * Add an arrow_line.py file as a patch for "nice" arrows in matplotlib === matplotlib-0.98.3.p0 (Michael Abshoff, August 27th, 2008) === * Merge Ondrej Certik's fix from #3792 === matplotlib-0.98.3 (Jason Grout, 20 Aug 2008) === * updated to 0.98.3. Deleted gcc 4.3 fix since it is merged in. === matplotlib-0.91.1.p5 (Michael Abshoff, May 18th, 2008) === * add 64 bit OSX build support === matplotlib-0.91.1.p4 (Michael Abshoff, April 14th, 2008) === * apply gcc 4.3 build fix - should go upstream === matplotlib-0.91.1.p3 (Michael Abshoff, Jan. 31st, 2008) === * fix local issues in cbook.py (#1967) [William Stein] * remove bianry crap (#2014) === matplotlib-0.91.1.p2 (Michael Abshoff, Jan. 17th, 2008) === * bump version due to ucs4 update === matplotlib-0.91.1.p1 === * FIXME