Federico Beffa <be...@ieee.org> skribis: > On Mon, Nov 16, 2015 at 9:42 AM, Ludovic Courtès <l...@gnu.org> wrote: >> In ‘tk-update’ the ‘python’ packages now have a separate ‘tk’ output for >> Tkinter (adding ~50 MiB to the closure of Python.) I’ve tested it along >> these lines, for 2.x and 3.x: >> >> guix environment --ad-hoc python python:tk --pure -- python >> > import Tkinter >> > root = Tkinter.Tk() >> >> One thing I haven’t checked is whether some packages need to have an >> additional python:tk input. Matplotlib maybe? Federico? > > Yes, given that the back-end currently used by matploblib doesn't > work, I would change that by using 'Tkinter'. > > Since you are at it, I would also change the default back-end by > changing 'GTK3Agg' to 'TkAgg' in the following snippet: > > (lambda (port) > (format port "[rc_options]~% > backend = GTK3Agg~%")))))
OTOH I see that Matploblib already depends on GTK+ 3.x and python-pygobject, so maybe it’s best to stick to GTK+ by default? > I'm not convinced that having 2 versions of packages (a "normal" and a > "minimal" one) is a good idea. The reason is that you often end up > downloading both instead of just one. As one example, I just > downloaded 'vlc' and I noticed that it downloaded both 'cups' and > 'cups-minimal'. Similarly, for python, anyone needing 'Tkinter' will > end up with 2 versions in the store. The ‘minimal’ variants are there to break cyclic dependencies most of the time. This is the case for cups/cups-filters and Python/Tk. At run time, cups indeed depends on cups-filters, which depends on cups-minimal. In that case, as you say, we end up downloading those two variants. But there’s not much of a choice, as was discussed during the initial review: https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00057.html Conversely, python does not depend on python-minimal. So python-minimal is here just to break the cycle with Tk/libxcb, as noted in python.scm and discussed in: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20889 As for Tkinter, it is in a separate “tk” output, which users can choose to install or not. The “tk” output contains a single file, but it pulls in Tcl/Tk. I hope this clarifies things. Thanks for your feedback, Ludo’.