Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / tkinter / default.nix
blobccfc7290701451003d9aca7c407b9388a3006854
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , python
5 , py
6 , isPyPy
7 }:
9 buildPythonPackage {
10   pname = "tkinter";
11   version = python.version;
12   src = py;
13   format = "other";
15   disabled = isPyPy;
17   installPhase = ''
18     # Move the tkinter module
19     mkdir -p $out/${py.sitePackages}
20     mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
21   '' + lib.optionalString (!stdenv.isDarwin) ''
22     # Update the rpath to point to python without x11Support
23     old_rpath=$(patchelf --print-rpath $out/${py.sitePackages}/_tkinter*)
24     new_rpath=$(sed "s#${py}#${python}#g" <<< "$old_rpath" )
25     patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
26   '';
28   meta = py.meta // {
29     # Based on first sentence from https://docs.python.org/3/library/tkinter.html
30     description = "The standard Python interface to the Tcl/Tk GUI toolkit";
31     longDescription = ''
32       The tkinter package (“Tk interface”) is the standard Python interface to
33       the Tcl/Tk GUI toolkit. Both Tk and tkinter are available on most Unix
34       platforms, including macOS, as well as on Windows systems.
36       Running python -m tkinter from the command line should open a window
37       demonstrating a simple Tk interface, letting you know that tkinter is
38       properly installed on your system, and also showing what version of
39       Tcl/Tk is installed, so you can read the Tcl/Tk documentation specific to
40       that version.
42       Tkinter supports a range of Tcl/Tk versions, built either with or without
43       thread support. The official Python binary release bundles Tcl/Tk 8.6
44       threaded. See the source code for the _tkinter module for more
45       information about supported versions.
47       Tkinter is not a thin wrapper, but adds a fair amount of its own logic to
48       make the experience more pythonic. This documentation will concentrate on
49       these additions and changes, and refer to the official Tcl/Tk
50       documentation for details that are unchanged.
51     '';
52   };