-
-
Notifications
You must be signed in to change notification settings - Fork 15.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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. |
So all those remaining |
@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: https://discourse.nixos.org/t/help-setting-up-nix-shell-with-python-and-vulkan/14512/2 |
Motivation for this change
See issue #19255 and #1819.
Things done
(nix.useSandbox on NixOS,
or option
build-use-sandbox
innix.conf
on non-NixOS)
nix-shell -p nox --run "nox-review wip"
./result/bin/
)