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
notmuch: set emacs off by default #84610
Conversation
Add a build named notmuch-emacs which adds emacs support for users who want it.
Would it be possible instead to add a |
This has been discussed in #84008, and should probably still be built, but a separate output of some sort. That way, it'd be outside the runtime closure. |
c0b2146
to
5d09a9b
Compare
I see, then allow me to take this 1 step even further. I hope you'll agree the next commits are better. Notably, there's no attribute rename now - |
API docs are not installed even with them available during build.
Add notmuch-lib and use it for neomutt.
perl & python are build inputs only, emacs & ruby are runtime dependency if you want to use this feature.
splitted outputs don't work now from some reason, but it's not that important as user who wishes not to have the documentation installed can use the attribute `notmuch-lib`.
5d09a9b
to
7d2a4ed
Compare
Well, this will not pull in emacs two times when I configure |
No, but it will pull two different version of notmuch - the 1st |
I really don't know why the split outputs got broke during my build trials, as a maintainer of this package, if you feel this is a game changer for you I'd be ready to dive deeper into this. The issue was that I got My suspicion is that the emacs files weren't moved and as a consequence BTW, just for the record, even with the current state of the derivation, the split outputs don't help removing the derivation's reference to emacs, unless you build it yourself with |
@doronbehar I think multiple outputs were made exactly for these usecases. We should get I assume Do you have the commits somewhere that tried to move emacs to a separate output? I could then take a look. |
Technically I agree it's just that I have some opinions regarding the current implementation of this idea in Nixpkgs. This is out of scope for this PR.
|
I didn't try to put |
@doronbehar in your case, the build still failed because In fact, you can tell notmuch to put emacs lisp files into another location by the I pushed a commit doing that, and cherry-picking the bash completion commit to https://github.com/flokli/nixpkgs/tree/notmuch-multiple-output. |
I added some release notes and opened #84663, PTAL. |
Closed in favor of #84663 . |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/could-weve-implemented-multi-output-packages-better/6597/1 |
Motivation for this change
Emacs takes around 150Mb in closure size.
neomutt
is a package which uses notmuch as a library and users that don't use Emacs don't need this feature enabled. Hence to reduce closure size,while still supporting Emacs users of notmuch I turned that feature to off by default and added aI created anotmuch-emacs
package targeting these users of notmuch.notmuch-lib
package that is used byneomutt
which has a much lower closure size - 560Kb because it is compiled with less features enabled.Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)