notmuch: move the vim plugin to another output (#353500)

This commit is contained in:
Florian Klink 2024-11-22 00:18:24 +02:00 committed by GitHub
commit 653b603cef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 6 deletions

View File

@ -33,6 +33,11 @@
[v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0) [v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0)
for more information. for more information.
- the notmuch vim plugin now lives in a separate output of the `notmuch`
package. Installing `notmuch` will not bring the notmuch vim package anymore,
add `vimPlugins.notmuch-vim` to your (Neo)vim configuration if you want the
vim plugin.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Other Notable Changes {#sec-release-25.05-notable-changes} ## Other Notable Changes {#sec-release-25.05-notable-changes}

View File

@ -38,6 +38,7 @@
languagetool, languagetool,
llvmPackages, llvmPackages,
meson, meson,
notmuch,
neovim-unwrapped, neovim-unwrapped,
nim1, nim1,
nodePackages, nodePackages,
@ -1760,6 +1761,8 @@ in
nvimRequireCheck = "null-ls"; nvimRequireCheck = "null-ls";
}; };
notmuch-vim = notmuch.vim;
NotebookNavigator-nvim = super.NotebookNavigator-nvim.overrideAttrs { NotebookNavigator-nvim = super.NotebookNavigator-nvim.overrideAttrs {
nvimRequireCheck = "notebook-navigator"; nvimRequireCheck = "notebook-navigator";
}; };

View File

@ -11,6 +11,7 @@
, withEmacs ? true , withEmacs ? true
, withRuby ? true , withRuby ? true
, withSfsexp ? true # also installs notmuch-git, which requires sexp-support , withSfsexp ? true # also installs notmuch-git, which requires sexp-support
# TODO upstream: it takes too long ! 800 ms here
, withVim ? true , withVim ? true
}: }:
@ -76,7 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
outputs = [ "out" "man" "info" "bindingconfig" ] outputs = [ "out" "man" "info" "bindingconfig" ]
++ lib.optional withEmacs "emacs"; ++ lib.optional withEmacs "emacs"
++ lib.optional withVim "vim";
# if notmuch is built with s-expression support, the testsuite (T-850.sh) only # if notmuch is built with s-expression support, the testsuite (T-850.sh) only
# passes if notmuch-git can be executed, so we need to patch its shebang. # passes if notmuch-git can be executed, so we need to patch its shebang.
@ -133,14 +135,14 @@ stdenv.mkDerivation (finalAttrs: {
cp notmuch-git $out/bin/notmuch-git cp notmuch-git $out/bin/notmuch-git
wrapProgram $out/bin/notmuch-git --prefix PATH : $out/bin:${lib.getBin git}/bin wrapProgram $out/bin/notmuch-git --prefix PATH : $out/bin:${lib.getBin git}/bin
'' + lib.optionalString withVim '' '' + lib.optionalString withVim ''
make -C vim DESTDIR="$out/share/vim-plugins/notmuch" prefix="" install make -C vim DESTDIR="$vim/share/vim-plugins/notmuch" prefix="" install
mkdir -p $out/share/nvim mkdir -p $vim/share/nvim
ln -s $out/share/vim-plugins/notmuch $out/share/nvim/site ln -s $vim/share/vim-plugins/notmuch $vim/share/nvim/site
'' + lib.optionalString (withVim && withRuby) '' '' + lib.optionalString (withVim && withRuby) ''
PLUG=$out/share/vim-plugins/notmuch/plugin/notmuch.vim PLUG=$vim/share/vim-plugins/notmuch/plugin/notmuch.vim
cat >> $PLUG << EOF cat >> $PLUG << EOF
let \$GEM_PATH=\$GEM_PATH . ":${finalAttrs.passthru.gemEnv}/${ruby.gemPath}" let \$GEM_PATH=\$GEM_PATH . ":${finalAttrs.passthru.gemEnv}/${ruby.gemPath}"
let \$RUBYLIB=\$RUBYLIB . ":$out/${ruby.libPath}/${ruby.system}" let \$RUBYLIB=\$RUBYLIB . ":$vim/${ruby.libPath}/${ruby.system}"
if has('nvim') if has('nvim')
EOF EOF
for gem in ${finalAttrs.passthru.gemEnv}/${ruby.gemPath}/gems/*/lib; do for gem in ${finalAttrs.passthru.gemEnv}/${ruby.gemPath}/gems/*/lib; do