diff --git a/pkgs/applications/editors/vim/cflags-prune.diff b/pkgs/applications/editors/vim/cflags-prune.diff new file mode 100644 index 00000000000..6bec4fec09e --- /dev/null +++ b/pkgs/applications/editors/vim/cflags-prune.diff @@ -0,0 +1,15 @@ +diff --git a/src/Makefile b/src/Makefile +index 864f54b..fd85f76 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -2806,8 +2806,8 @@ auto/pathdef.c: Makefile auto/config.mk + -@echo '#include "vim.h"' >> $@ + -@echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' | $(QUOTESED) >> $@ + -@echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' | $(QUOTESED) >> $@ +- -@echo 'char_u *all_cflags = (char_u *)"$(CC) -c -I$(srcdir) $(ALL_CFLAGS)";' | $(QUOTESED) >> $@ +- -@echo 'char_u *all_lflags = (char_u *)"$(CC) $(ALL_LIB_DIRS) $(LDFLAGS) -o $(VIMTARGET) $(ALL_LIBS) ";' | $(QUOTESED) >> $@ ++ -@echo 'char_u *all_cflags = (char_u *)"see nix-store --read-log $(out)";' | $(QUOTESED) >> $@ ++ -@echo 'char_u *all_lflags = (char_u *)"see nix-store --read-log $(out)";' | $(QUOTESED) >> $@ + -@echo 'char_u *compiled_user = (char_u *)"' | tr -d $(NL) >> $@ + -@if test -n "$(COMPILEDBY)"; then \ + echo "$(COMPILEDBY)" | tr -d $(NL) >> $@; \ diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix index dc7fa3fa398..793f554970f 100644 --- a/pkgs/applications/editors/vim/configurable.nix +++ b/pkgs/applications/editors/vim/configurable.nix @@ -61,31 +61,27 @@ composableDerivation { }.src; }; - prePatch = "cd src"; + patches = [ ./cflags-prune.diff ]; configureFlags = [ "--enable-gui=${args.gui}" "--with-features=${args.features}" ]; - nativeBuildInputs - = [ ncurses pkgconfig gtk2 libX11 libXext libSM libXpm libXt libXaw libXau + nativeBuildInputs = [ pkgconfig ]; + + buildInputs + = [ ncurses gtk2 libX11 libXext libSM libXpm libXt libXaw libXau libXmu glib libICE ]; # most interpreters aren't tested yet.. (see python for example how to do it) flags = { ftNix = { - # because we cd to src in the main patch phase, we can't just add this - # patch to the list, we have to apply it manually - postPatch = '' - cd ../runtime - patch -p2 < ${./ft-nix-support.patch} - cd .. - ''; + patches = [ ./ft-nix-support.patch ]; }; } // edf { name = "darwin"; enable = { - nativeBuildInputs = [ CoreServices CoreData Cocoa Foundation libobjc cf-private ]; + buildInputs = [ CoreServices CoreData Cocoa Foundation libobjc cf-private ]; NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; }; @@ -99,7 +95,7 @@ composableDerivation { name = "python"; feat = "python${if python ? isPy3 then "3" else ""}interp"; enable = { - nativeBuildInputs = [ python ]; + buildInputs = [ python ]; } // lib.optionalAttrs stdenv.isDarwin { configureFlags = [ "--enable-python${if python ? isPy3 then "3" else ""}interp=yes" @@ -108,13 +104,13 @@ composableDerivation { }; } - // edf { name = "tcl"; feat = "tclinterp"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter. - // edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter. + // edf { name = "tcl"; feat = "tclinterp"; enable = { buildInputs = [tcl]; }; } #Include Tcl interpreter. + // edf { name = "ruby"; feat = "rubyinterp"; enable = { buildInputs = [ruby]; };} #Include Ruby interpreter. // edf { name = "lua"; feat = "luainterp"; enable = { - nativeBuildInputs = [lua]; + buildInputs = [lua]; configureFlags = [ "--with-lua-prefix=${args.lua}" "--enable-luainterp" @@ -166,16 +162,11 @@ composableDerivation { */ postInstall = stdenv.lib.optionalString stdenv.isLinux '' - rpath=`patchelf --print-rpath $out/bin/vim`; - for i in $nativeBuildInputs; do - echo adding $i/lib - rpath=$rpath:$i/lib - done - echo $nativeBuildInputs - echo $rpath - patchelf --set-rpath $rpath $out/bin/{vim,gvim} + patchelf --set-rpath \ + "$(patchelf --print-rpath $out/bin/vim):${lib.makeLibraryPath buildInputs}" \ + "$out"/bin/{vim,gvim} - ln -sfn ${nixosRuntimepath} $out/share/vim/vimrc + ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc ''; dontStrip = 1;