From be74dec846743ab56072903738adf9657343da54 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 5 Aug 2019 00:26:29 +0100 Subject: [PATCH] emacs-packages: Move manually created packages to it's own file And let emacs-packages.nix only aggregate the attrsets --- .../editors/emacs-modes/manual-packages.nix | 145 +++++++++++++++++ pkgs/top-level/emacs-packages.nix | 148 +----------------- 2 files changed, 147 insertions(+), 146 deletions(-) create mode 100644 pkgs/applications/editors/emacs-modes/manual-packages.nix diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix new file mode 100644 index 000000000000..7f75de74ed63 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/manual-packages.nix @@ -0,0 +1,145 @@ +{ lib, external, pkgs }: self: with self; with lib.licenses; { + + elisp-ffi = melpaBuild rec { + pname = "elisp-ffi"; + version = "1.0.0"; + src = pkgs.fetchFromGitHub { + owner = "skeeto"; + repo = "elisp-ffi"; + rev = "${version}"; + sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22"; + }; + buildInputs = [ external.libffi ]; + preBuild = "make"; + recipe = pkgs.writeText "recipe" '' + (elisp-ffi + :repo "skeeto/elisp-ffi" + :fetcher github + :files ("ffi-glue" "ffi.el")) + ''; + 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 = publicDomain; + }; + }; + + agda2-mode = with external; trivialBuild { + pname = "agda-mode"; + version = Agda.version; + + phases = [ "buildPhase" "installPhase" ]; + + # already byte-compiled by Agda builder + buildPhase = '' + agda=`${Agda}/bin/agda-mode locate` + cp `dirname $agda`/*.el* . + ''; + + meta = { + description = "Agda2-mode for Emacs extracted from Agda package"; + longDescription = '' + Wrapper packages that liberates init.el from `agda-mode locate` magic. + Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el. + ''; + homepage = Agda.meta.homepage; + license = Agda.meta.license; + }; + }; + + ess-R-object-popup = + callPackage ./ess-R-object-popup { }; + + filesets-plus = callPackage ./filesets-plus { }; + + font-lock-plus = callPackage ./font-lock-plus { }; + + ghc-mod = melpaBuild rec { + pname = "ghc"; + version = external.ghc-mod.version; + src = external.ghc-mod.src; + packageRequires = [ haskell-mode ]; + propagatedUserEnvPkgs = [ external.ghc-mod ]; + recipe = pkgs.writeText "recipe" '' + (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el")) + ''; + fileSpecs = [ "elisp/*.el" ]; + meta = { + description = "An extension of haskell-mode that provides completion of symbols and documentation browsing"; + license = bsd3; + }; + }; + + haskell-unicode-input-method = melpaBuild rec { + pname = "emacs-haskell-unicode-input-method"; + version = "20110905.2307"; + src = pkgs.fetchFromGitHub { + owner = "roelvandijk"; + repo = "emacs-haskell-unicode-input-method"; + rev = "d8d168148c187ed19350bb7a1a190217c2915a63"; + sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78"; + }; + recipe = pkgs.writeText "recipe" '' + (haskell-unicode-input-method + :repo "roelvandijk/emacs-haskell-unicode-input-method" + :fetcher github) + ''; + packageRequires = []; + meta = { + homepage = "https://melpa.org/#haskell-unicode-input-method/"; + license = lib.licenses.free; + }; + }; + + hexrgb = callPackage ./hexrgb { }; + + header2 = callPackage ./header2 { }; + + helm-words = callPackage ./helm-words { }; + + icicles = callPackage ./icicles { }; + + rtags = melpaBuild rec { + inherit (external.rtags) version src meta; + + pname = "rtags"; + + dontConfigure = true; + + propagatedUserEnvPkgs = [ external.rtags ]; + recipe = pkgs.writeText "recipe" '' + (rtags + :repo "andersbakken/rtags" :fetcher github + :files ("src/*.el")) + ''; + }; + + lib-requires = + callPackage ./lib-requires { }; + + org-mac-link = + callPackage ./org-mac-link { }; + + perl-completion = + callPackage ./perl-completion { }; + + railgun = callPackage ./railgun { }; + + gn = callPackage ./gn { }; + + structured-haskell-mode = self.shm; + + thingatpt-plus = callPackage ./thingatpt-plus { }; + + tramp = callPackage ./tramp { }; + + yaoddmuse = callPackage ./yaoddmuse { }; + + zeitgeist = callPackage ./zeitgeist { }; + +} diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index f8484793299b..5719c5a74fe1 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -42,8 +42,6 @@ , pkgs }: -with lib.licenses; - let mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix { @@ -63,150 +61,8 @@ let inherit lib lndir makeWrapper stdenv runCommand; }; - mkManualPackages = self: with self; { - - elisp-ffi = melpaBuild rec { - pname = "elisp-ffi"; - version = "1.0.0"; - src = fetchFromGitHub { - owner = "skeeto"; - repo = "elisp-ffi"; - rev = "${version}"; - sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22"; - }; - buildInputs = [ external.libffi ]; - preBuild = "make"; - recipe = writeText "recipe" '' - (elisp-ffi - :repo "skeeto/elisp-ffi" - :fetcher github - :files ("ffi-glue" "ffi.el")) - ''; - 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 = publicDomain; - }; - }; - - agda2-mode = with external; trivialBuild { - pname = "agda-mode"; - version = Agda.version; - - phases = [ "buildPhase" "installPhase" ]; - - # already byte-compiled by Agda builder - buildPhase = '' - agda=`${Agda}/bin/agda-mode locate` - cp `dirname $agda`/*.el* . - ''; - - meta = { - description = "Agda2-mode for Emacs extracted from Agda package"; - longDescription = '' - Wrapper packages that liberates init.el from `agda-mode locate` magic. - Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el. - ''; - homepage = Agda.meta.homepage; - license = Agda.meta.license; - }; - }; - - ess-R-object-popup = - callPackage ../applications/editors/emacs-modes/ess-R-object-popup { }; - - filesets-plus = callPackage ../applications/editors/emacs-modes/filesets-plus { }; - - font-lock-plus = callPackage ../applications/editors/emacs-modes/font-lock-plus { }; - - ghc-mod = melpaBuild rec { - pname = "ghc"; - version = external.ghc-mod.version; - src = external.ghc-mod.src; - packageRequires = [ haskell-mode ]; - propagatedUserEnvPkgs = [ external.ghc-mod ]; - recipe = writeText "recipe" '' - (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el")) - ''; - fileSpecs = [ "elisp/*.el" ]; - meta = { - description = "An extension of haskell-mode that provides completion of symbols and documentation browsing"; - license = bsd3; - }; - }; - - haskell-unicode-input-method = melpaBuild rec { - pname = "emacs-haskell-unicode-input-method"; - version = "20110905.2307"; - src = fetchFromGitHub { - owner = "roelvandijk"; - repo = "emacs-haskell-unicode-input-method"; - rev = "d8d168148c187ed19350bb7a1a190217c2915a63"; - sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78"; - }; - recipe = writeText "recipe" '' - (haskell-unicode-input-method - :repo "roelvandijk/emacs-haskell-unicode-input-method" - :fetcher github) - ''; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#haskell-unicode-input-method/"; - license = lib.licenses.free; - }; - }; - - hexrgb = callPackage ../applications/editors/emacs-modes/hexrgb { }; - - header2 = callPackage ../applications/editors/emacs-modes/header2 { }; - - helm-words = callPackage ../applications/editors/emacs-modes/helm-words { }; - - icicles = callPackage ../applications/editors/emacs-modes/icicles { }; - - rtags = melpaBuild rec { - inherit (external.rtags) version src meta; - - pname = "rtags"; - - dontConfigure = true; - - propagatedUserEnvPkgs = [ external.rtags ]; - recipe = writeText "recipe" '' - (rtags - :repo "andersbakken/rtags" :fetcher github - :files ("src/*.el")) - ''; - }; - - lib-requires = - callPackage ../applications/editors/emacs-modes/lib-requires { }; - - org-mac-link = - callPackage ../applications/editors/emacs-modes/org-mac-link { }; - - perl-completion = - callPackage ../applications/editors/emacs-modes/perl-completion { }; - - railgun = callPackage ../applications/editors/emacs-modes/railgun { }; - - gn = callPackage ../applications/editors/emacs-modes/gn { }; - - structured-haskell-mode = self.shm; - - thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { }; - - tramp = callPackage ../applications/editors/emacs-modes/tramp { }; - - yaoddmuse = callPackage ../applications/editors/emacs-modes/yaoddmuse { }; - - zeitgeist = callPackage ../applications/editors/emacs-modes/zeitgeist { }; - + mkManualPackages = import ../applications/editors/emacs-modes/manual-packages.nix { + inherit external lib pkgs; }; in lib.makeScope newScope (self: lib.makeOverridable ({