From 4487809902c684a97fb19a7b41158968027e4ec0 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Fri, 18 Oct 2019 23:38:28 +0800 Subject: emacsPackages.vterm: fix dynamic library and autoloaders We need both the .so as well as the proper autoloaders that are generated when we build an emacs package, so we cannot use the normal stdenv.mkDerivation but have to inject the building of the libraries instead. Also, use the proper libvterm-neovim we have in nixpkgs instead of vendoring it. --- .../editors/emacs-modes/melpa-packages.nix | 56 +++++----------------- 1 file changed, 13 insertions(+), 43 deletions(-) (limited to 'pkgs/applications/editors') diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 838e57343c43..39920b755f82 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -385,52 +385,22 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); - vterm = let - emacsSources = pkgs.stdenv.mkDerivation { - name = self.emacs.name + "-sources"; - src = self.emacs.src; - - dontConfigure = true; - dontBuild = true; - doCheck = false; - fixupPhase = ":"; - - installPhase = '' - mkdir -p $out - cp -a * $out - ''; - - }; - - libvterm = pkgs.libvterm-neovim.overrideAttrs(old: rec { - pname = "libvterm-neovim"; - version = "2019-04-27"; - name = pname + "-" + version; - src = pkgs.fetchFromGitHub { - owner = "neovim"; - repo = "libvterm"; - rev = "89675ffdda615ffc3f29d1c47a933f4f44183364"; - sha256 = "0l9ixbj516vl41v78fi302ws655xawl7s94gmx1kb3fmfgamqisy"; - }; - }); - - in pkgs.stdenv.mkDerivation { - inherit (super.vterm) name version src; - - nativeBuildInputs = [ pkgs.cmake ]; - buildInputs = [ self.emacs libvterm ]; - + vterm = super.vterm.overrideAttrs(old: { + buildInputs = old.buildInputs ++ [ self.emacs pkgs.cmake pkgs.libvterm-neovim ]; cmakeFlags = [ - "-DEMACS_SOURCE=${emacsSources}" - "-DUSE_SYSTEM_LIBVTERM=True" + "-DEMACS_SOURCE=${self.emacs.src}" + "-DUSE_SYSTEM_LIBVTERM=ON" ]; - - installPhase = '' - install -d $out/share/emacs/site-lisp - install ../*.el $out/share/emacs/site-lisp - install ../*.so $out/share/emacs/site-lisp + # we need the proper out directory to exist, so we do this in the + # postInstall instead of postBuild + postInstall = '' + pushd source/build >/dev/null + make + install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so + popd > /dev/null + rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h} ''; - }; + }); # Legacy alias emacs-libvterm = unstable.vterm; -- cgit 1.4.1