Skip to content
This repository has been archived by the owner on Apr 12, 2021. It is now read-only.

Commit

Permalink
emacs-packages: Move manually created packages to it's own file
Browse files Browse the repository at this point in the history
And let emacs-packages.nix only aggregate the attrsets
  • Loading branch information
adisbladis committed Aug 7, 2019
1 parent 97a0696 commit be74dec
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 146 deletions.
145 changes: 145 additions & 0 deletions pkgs/applications/editors/emacs-modes/manual-packages.nix
Original file line number Diff line number Diff line change
@@ -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 { };

}
148 changes: 2 additions & 146 deletions pkgs/top-level/emacs-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@
, pkgs
}:

with lib.licenses;

let

mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix {
Expand All @@ -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 ({
Expand Down

0 comments on commit be74dec

Please sign in to comment.