* bug#20889: [PATCH] tk: Hardcode path to TK_LIBRARY. [not found] <8def219fd20047742c102943aaf6dea7@openmailbox.org> @ 2015-11-12 12:58 ` Ludovic Courtès [not found] ` <87ziyjxtkp.fsf@gnu.org> 1 sibling, 0 replies; 8+ messages in thread From: Ludovic Courtès @ 2015-11-12 12:58 UTC (permalink / raw) To: 宋文武; +Cc: guix-devel, iyzsong, 20889 宋文武 <iyzsong@openmailbox.org> skribis: > From 6c9ea521e88d36bd1ce990a561477ec0e2950017 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com> > Date: Thu, 12 Nov 2015 13:31:19 +0800 > Subject: [PATCH] tk: Hardcode path to TK_LIBRARY. > > Fixes <http://bugs.gnu.org/20889>. > > * gnu/packages/patches/tk-find-library.patch: New patch. > * gnu-system.am (dist_patch_DATA): Add it. > * gnu/packages/tcl.scm (tk)[source]: Add patch. [...] > +++ b/gnu/packages/patches/tk-find-library.patch > @@ -0,0 +1,30 @@ > +This patch hardcode where Tk found its script library during package ^^ ^^^^ “This patch hard-codes the Tk library directory during package initialization.” OK with this change. Thanks for providing a quick fix! :-) Could you commit it in a new ‘tk-update’ branch? At the same time, I think we should move tkinter*.so to a separate output of the Python packages; I think it’s a matter of moving the .so to a separate output, literally. Would you like to give it a try? Thanks! Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <87ziyjxtkp.fsf@gnu.org>]
* bug#20889: [PATCH] tk: Hardcode path to TK_LIBRARY. [not found] ` <87ziyjxtkp.fsf@gnu.org> @ 2015-11-13 11:55 ` 宋文武 2015-11-16 8:42 ` bug#20889: Tkinter moved to separate output Ludovic Courtès 1 sibling, 0 replies; 8+ messages in thread From: 宋文武 @ 2015-11-13 11:55 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel, 20889 ludo@gnu.org (Ludovic Courtès) writes: > 宋文武 <iyzsong@openmailbox.org> skribis: > >> From 6c9ea521e88d36bd1ce990a561477ec0e2950017 Mon Sep 17 00:00:00 2001 >> From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com> >> Date: Thu, 12 Nov 2015 13:31:19 +0800 >> Subject: [PATCH] tk: Hardcode path to TK_LIBRARY. >> >> Fixes <http://bugs.gnu.org/20889>. >> >> * gnu/packages/patches/tk-find-library.patch: New patch. >> * gnu-system.am (dist_patch_DATA): Add it. >> * gnu/packages/tcl.scm (tk)[source]: Add patch. > > [...] > >> +++ b/gnu/packages/patches/tk-find-library.patch >> @@ -0,0 +1,30 @@ >> +This patch hardcode where Tk found its script library during package > ^^ ^^^^ > “This patch hard-codes the Tk library directory during package > initialization.” > > OK with this change. Thanks for providing a quick fix! :-) > > Could you commit it in a new ‘tk-update’ branch? Done. > > At the same time, I think we should move tkinter*.so to a separate > output of the Python packages; I think it’s a matter of moving the .so > to a separate output, literally. Would you like to give it a try? I don't know much about python, so I'd like to leave it for others :-) ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#20889: Tkinter moved to separate output [not found] ` <87ziyjxtkp.fsf@gnu.org> 2015-11-13 11:55 ` 宋文武 @ 2015-11-16 8:42 ` Ludovic Courtès 2015-11-16 11:44 ` Federico Beffa 1 sibling, 1 reply; 8+ messages in thread From: Ludovic Courtès @ 2015-11-16 8:42 UTC (permalink / raw) To: 宋文武; +Cc: guix-devel, iyzsong, 20889, Federico Beffa 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? I plan to have Hydra build that branch once we’ve checked that. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#20889: Tkinter moved to separate output 2015-11-16 8:42 ` bug#20889: Tkinter moved to separate output Ludovic Courtès @ 2015-11-16 11:44 ` Federico Beffa 2015-11-16 12:57 ` Ludovic Courtès 0 siblings, 1 reply; 8+ messages in thread From: Federico Beffa @ 2015-11-16 11:44 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 宋文武, Guix-devel, iyzsong, 20889 On Mon, Nov 16, 2015 at 9:42 AM, Ludovic Courtès <ludo@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~%"))))) 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. Regards, Fede ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#20889: Tkinter moved to separate output 2015-11-16 11:44 ` Federico Beffa @ 2015-11-16 12:57 ` Ludovic Courtès 2015-11-16 13:16 ` Federico Beffa [not found] ` <CAKrPhPOXRTG10qVkEqAPmcLyPGteT_JwkbH+QFprGOcBT=6uQw@mail.gmail.com> 0 siblings, 2 replies; 8+ messages in thread From: Ludovic Courtès @ 2015-11-16 12:57 UTC (permalink / raw) To: Federico Beffa; +Cc: 宋文武, Guix-devel, iyzsong, 20889 Federico Beffa <beffa@ieee.org> skribis: > On Mon, Nov 16, 2015 at 9:42 AM, Ludovic Courtès <ludo@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’. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#20889: Tkinter moved to separate output 2015-11-16 12:57 ` Ludovic Courtès @ 2015-11-16 13:16 ` Federico Beffa [not found] ` <CAKrPhPOXRTG10qVkEqAPmcLyPGteT_JwkbH+QFprGOcBT=6uQw@mail.gmail.com> 1 sibling, 0 replies; 8+ messages in thread From: Federico Beffa @ 2015-11-16 13:16 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 宋文武, Guix-devel, iyzsong, 20889 On Mon, Nov 16, 2015 at 1:57 PM, Ludovic Courtès <ludo@gnu.org> wrote: > Federico Beffa <beffa@ieee.org> skribis: >> 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? Unfortunately, the back-ends based on GTK+ are broken and I didn't manage to find how to fix the problem. http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20888 That's why I'm looking forward to get Tkinter :-) >> 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. OK. Thanks for the explanation! Regards, Fede ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <CAKrPhPOXRTG10qVkEqAPmcLyPGteT_JwkbH+QFprGOcBT=6uQw@mail.gmail.com>]
* bug#20889: Tkinter moved to separate output [not found] ` <CAKrPhPOXRTG10qVkEqAPmcLyPGteT_JwkbH+QFprGOcBT=6uQw@mail.gmail.com> @ 2015-11-29 22:09 ` Ludovic Courtès [not found] ` <87two4e9v8.fsf@gnu.org> 1 sibling, 0 replies; 8+ messages in thread From: Ludovic Courtès @ 2015-11-29 22:09 UTC (permalink / raw) To: Federico Beffa; +Cc: 宋文武, Guix-devel, iyzsong, 20889 [-- Attachment #1: Type: text/plain, Size: 978 bytes --] Federico Beffa <beffa@ieee.org> skribis: > On Mon, Nov 16, 2015 at 1:57 PM, Ludovic Courtès <ludo@gnu.org> wrote: >> Federico Beffa <beffa@ieee.org> skribis: >>> 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? > > Unfortunately, the back-ends based on GTK+ are broken and I didn't > manage to find how to fix the problem. > http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20888 > > That's why I'm looking forward to get Tkinter :-) Could you or someone else test this patch on current master? Thanks in advance! Ludo’. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: Type: text/x-patch, Size: 963 bytes --] diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 39d0751..76bda96 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3190,6 +3190,7 @@ transcendental functions).") `(("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) + ("python-tkinter" ,python "tk") ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated ;; from 'gtk+') provides the required 'typelib' files used by ;; 'gobject-introspection'. The location of these files is set with the @@ -3244,7 +3245,7 @@ transcendental functions).") (call-with-output-file "setup.cfg" (lambda (port) (format port "[rc_options]~% -backend = GTK3Agg~%"))))) +backend = TkAgg~%"))))) (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) ^ permalink raw reply related [flat|nested] 8+ messages in thread
[parent not found: <87two4e9v8.fsf@gnu.org>]
* bug#20889: Tkinter moved to separate output [not found] ` <87two4e9v8.fsf@gnu.org> @ 2015-11-30 16:45 ` Federico Beffa 0 siblings, 0 replies; 8+ messages in thread From: Federico Beffa @ 2015-11-30 16:45 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 宋文武, Guix-devel, iyzsong, 20889 [-- Attachment #1: Type: text/plain, Size: 2994 bytes --] On Sun, Nov 29, 2015 at 11:09 PM, Ludovic Courtès <ludo@gnu.org> wrote: > Federico Beffa <beffa@ieee.org> skribis: > >> On Mon, Nov 16, 2015 at 1:57 PM, Ludovic Courtès <ludo@gnu.org> wrote: >>> Federico Beffa <beffa@ieee.org> skribis: >>>> 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? >> >> Unfortunately, the back-ends based on GTK+ are broken and I didn't >> manage to find how to fix the problem. >> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20888 >> >> That's why I'm looking forward to get Tkinter :-) > > Could you or someone else test this patch on current master? It does not work. It can't find the tcl/tk header files: ... tkagg: no [The C/C++ header for Tk (tk.h) could not be found. You may need to install the development package.] ... With the attached patch it does find the headers, but then it fails at link time. ... g++ -pthread -shared -Wl,-rpath=/gnu/store/cxrqlhbr6xqgi08x3amd0lvl6m7sxx57-python-3.4.3/lib build/temp.linux-x86_64-3.4/src/agg_py_transforms.o build/temp.linux-x86_64-3.4/src/_tkagg.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_bezier_arc.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_curves.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_image_filters.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_trans_affine.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_vcgen_contour.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_vcgen_dash.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_vcgen_stroke.o build/temp.linux-x86_64-3.4/extern/agg24/src/agg_vpgen_segmentator.o build/temp.linux-x86_64-3.4/extern/CXX/IndirectPythonInterface.o build/temp.linux-x86_64-3.4/extern/CXX/cxxsupport.o build/temp.linux-x86_64-3.4/extern/CXX/cxx_extensions.o build/temp.linux-x86_64-3.4/extern/CXX/cxxextensions.o -L/gnu/store/ipsq9hlk6k0w1qfiw0y0a03bxkp2clhl-tcl-8.6.4/lib -L/gnu/store/my9wgryzpfvksng6k7h87xz9rphdwddw-tk-8.6.4/lib -L/usr/local/lib -L/usr/local/lib -L/gnu/store/cxrqlhbr6xqgi08x3amd0lvl6m7sxx57-python-3.4.3/lib -ltcl -ltk -lstdc++ -lm -lpython3.4m -o build/lib.linux-x86_64-3.4/matplotlib/backends/_tkagg.cpython-34m.so ld: cannot find -ltcl ld: cannot find -ltk collect2: error: ld returned 1 exit status error: command 'g++' failed with exit status 1 phase `build' failed after 94.8 seconds ... Looking into the failed build directory, it seems that PKG_CONFIG_PATH is set correctly. Still, it doesn't get the correct flags. Regards, Fede [-- Attachment #2: mpl.patch --] [-- Type: text/x-diff, Size: 1510 bytes --] diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 39d0751..4dfe557 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3190,6 +3190,7 @@ transcendental functions).") `(("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) + ("python-tkinter" ,python "tk") ;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated ;; from 'gtk+') provides the required 'typelib' files used by ;; 'gobject-introspection'. The location of these files is set with the @@ -3224,7 +3225,8 @@ transcendental functions).") ;; FIXME: Add backends when available. ;("python-wxpython" ,python-wxpython) ;("python-pyqt" ,python-pyqt) - )) + ("tcl" ,tcl) + ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) ("texlive" ,texlive) @@ -3243,8 +3245,13 @@ transcendental functions).") (setenv "HOME" (getcwd)) (call-with-output-file "setup.cfg" (lambda (port) - (format port "[rc_options]~% -backend = GTK3Agg~%"))))) + (format port "[directories]~% +basedirlist = ~a,~a~% +~% +[rc_options]~% +backend = TkAgg~%" + (assoc-ref inputs "tcl") + (assoc-ref inputs "tk")))))) (alist-cons-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-11-30 16:47 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <8def219fd20047742c102943aaf6dea7@openmailbox.org> 2015-11-12 12:58 ` bug#20889: [PATCH] tk: Hardcode path to TK_LIBRARY Ludovic Courtès [not found] ` <87ziyjxtkp.fsf@gnu.org> 2015-11-13 11:55 ` 宋文武 2015-11-16 8:42 ` bug#20889: Tkinter moved to separate output Ludovic Courtès 2015-11-16 11:44 ` Federico Beffa 2015-11-16 12:57 ` Ludovic Courtès 2015-11-16 13:16 ` Federico Beffa [not found] ` <CAKrPhPOXRTG10qVkEqAPmcLyPGteT_JwkbH+QFprGOcBT=6uQw@mail.gmail.com> 2015-11-29 22:09 ` Ludovic Courtès [not found] ` <87two4e9v8.fsf@gnu.org> 2015-11-30 16:45 ` Federico Beffa
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).