Python: use separate output for tkinter#19309
Conversation
|
@FRidh, thanks for your PR! By analyzing the history of the files in this pull request, we identified @edolstra, @chaoflow and @domenkozar to be potential reviewers. |
d728388 to
5d41890
Compare
|
Sigh... putting curses in a separate output won't help because python and libpython directly link against it. |
4d3fc5a to
1c72375
Compare
|
@FRidh that's fine I think. It's not ideal, but this way Python will be way less painful on Nix. |
|
@vcunat yes they should. I thought I got them all. |
|
ahh yes, it wasn't just pythonPackages.modules.sqlite3 but also pythonPackages.sqlite3. I forgot those. |
|
I'm sure I've asked this before but how can one test whether the whole of Nixpkgs evaluates? |
|
There are also |
|
@FRidh: for quick eval I regularly use But one can do |
|
No, there were quite a few more: 6eeea6e. |
|
hmm, it seemed to evaluate. But thank you for fixing the (hopefully) last ones. |
|
Thank you @FRidh for doing this ❤️ |
|
Argh, a complication: the darwin stdenv bootstrap depends on python (because LLVM's build process uses it) and this change massively slowed down our bootstrap process, since it now needs to build a ton of TK stuff, multiple times since we have multiple pythons to kill dependencies on the bootstrap tools 😦 Can we make the TK stuff optional so I can ask for a TK-free python during bootstrap? Then only the final "userspace" one would get TK. |
|
Also, it actually seems to have broken the python build, which prevents bootstrap 😢 |
|
@copumpkin: I think that should be solved by using |
|
I am actually thinking of getting rid of the tkinter output again, and just On Oct 16, 2016 10:00 AM, "Vladimír Čunát" [email protected] wrote:
|
|
@vcunat @copumpkin see #19594 , I think it's a better solution than what I merged earlier. |
In NixOS#19309 a separate output for tkinter was added. Several dependencies of Python depend indirectly on Python. We have the following two paths: ``` ‘python-2.7.12’ - ‘tk-8.6.6’ - ‘libXft-2.3.2’ - ‘libXrender-0.9.10’ - ‘libX11-1.6.4’ - ‘libxcb-1.12’ - ‘libxslt-1.1.29’- ‘libxml2-2.9.4’ - ‘python-2.7.12’ ‘python-2.7.12’ - ‘tk-8.6.6’ - ‘libXft-2.3.2’ - ‘fontconfig-2.12.1’ - ‘dejavu-fonts-2.37’ - ‘fontforge-20160404’ - ‘python-2.7.12’ ``` Because only `tkinter` needs this, I added ``` pythonSmall = python.override {x11Support = false;}; ``` to break the infinite recursion. We also still have the output `tkinter`. However, we might as well build without x11Support by default. Then we build with x11Support as well so we get the tkinter module and put that in a separate package.
|
Dammit, I was just reaching for |
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
Motivation for this change
See issue #19255 and #1819.
Things done
(nix.useSandbox on NixOS,
or option
build-use-sandboxinnix.confon non-NixOS)
nix-shell -p nox --run "nox-review wip"./result/bin/)