= 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

