diff --git a/pkgs/applications/editors/emacs/elisp-packages/elisp-ffi/default.nix b/pkgs/applications/editors/emacs/elisp-packages/elisp-ffi/default.nix new file mode 100644 index 000000000000..74b829701b0b --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/elisp-ffi/default.nix @@ -0,0 +1,47 @@ +{ lib +, melpaBuild +, fetchFromGitHub +, pkg-config +, libffi +, writeText +}: + +let + rev = "da37c516a0e59bdce63fb2dc006a231dee62a1d9"; +in melpaBuild { + pname = "elisp-ffi"; + version = "20170518.0"; + + commit = rev; + + src = fetchFromGitHub { + owner = "skeeto"; + repo = "elisp-ffi"; + inherit rev; + sha256 = "sha256-StOezQEnNTjRmjY02ub5FRh59aL6gWfw+qgboz0wF94="; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ libffi ]; + + preBuild = '' + mv ffi.el elisp-ffi.el + make + ''; + + recipe = writeText "recipe" '' + (elisp-ffi :repo "skeeto/elisp-ffi" :fetcher github) + ''; + + meta = { + description = "Emacs Lisp Foreign Function Interface"; + longDescription = '' + This library provides an FFI for Emacs Lisp so that Emacs + programs can invoke functions in native libraries. It works by + driving a subprocess to do the heavy lifting, passing result + values on to Emacs. + ''; + license = lib.licenses.publicDomain; + }; +} diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix index 0a6f581411e5..64f81c97250d 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix @@ -2,47 +2,7 @@ self: with self; { - elisp-ffi = let - rev = "da37c516a0e59bdce63fb2dc006a231dee62a1d9"; - in melpaBuild { - pname = "elisp-ffi"; - version = "20170518.0"; - - commit = rev; - - src = pkgs.fetchFromGitHub { - owner = "skeeto"; - repo = "elisp-ffi"; - inherit rev; - sha256 = "sha256-StOezQEnNTjRmjY02ub5FRh59aL6gWfw+qgboz0wF94="; - }; - - nativeBuildInputs = [ pkgs.pkg-config ]; - - buildInputs = [ pkgs.libffi ]; - - preBuild = '' - mv ffi.el elisp-ffi.el - make - ''; - - recipe = pkgs.writeText "recipe" '' - (elisp-ffi - :repo "skeeto/elisp-ffi" - :fetcher github) - ''; - - meta = { - description = "Emacs Lisp Foreign Function Interface"; - longDescription = '' - This library provides an FFI for Emacs Lisp so that Emacs - programs can invoke functions in native libraries. It works by - driving a subprocess to do the heavy lifting, passing result - values on to Emacs. - ''; - license = lib.licenses.publicDomain; - }; - }; + elisp-ffi = callPackage ./elisp-ffi { }; ghc-mod = melpaBuild { pname = "ghc";