Merge pull request #65874 from adisbladis/emacs-melpa-overrides
emacs-packages: Clean up redundant packages & allow overriding attrsets
This commit is contained in:
commit
f20d403ab7
@ -50,4 +50,4 @@ self:
|
||||
|
||||
elpaPackages = super // overrides;
|
||||
|
||||
in elpaPackages // { inherit elpaBuild elpaPackages; }
|
||||
in elpaPackages // { inherit elpaBuild; }
|
||||
|
@ -1,57 +0,0 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, emacs, libvterm-neovim }:
|
||||
|
||||
let
|
||||
emacsSources = stdenv.mkDerivation {
|
||||
name = emacs.name + "-sources";
|
||||
src = emacs.src;
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
fixupPhase = ":";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -a * $out
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
libvterm = libvterm-neovim.overrideAttrs(old: rec {
|
||||
pname = "libvterm-neovim";
|
||||
version = "2019-04-27";
|
||||
name = pname + "-" + version;
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "libvterm";
|
||||
rev = "89675ffdda615ffc3f29d1c47a933f4f44183364";
|
||||
sha256 = "0l9ixbj516vl41v78fi302ws655xawl7s94gmx1kb3fmfgamqisy";
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "emacs-libvterm-${version}";
|
||||
version = "unstable-2019-07-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "akermu";
|
||||
repo = "emacs-libvterm";
|
||||
rev = "301fe9fdfd5fb2496c8428a11e0812fd8a4c0820";
|
||||
sha256 = "0i1hn5gcxayqcbjrnpgczvbicq2vsyn59646ary3crs0mz9wlbpr";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ emacs libvterm ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DEMACS_SOURCE=${emacsSources}"
|
||||
"-DUSE_SYSTEM_LIBVTERM=True"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/share/emacs/site-lisp
|
||||
install ../*.el $out/share/emacs/site-lisp
|
||||
install ../*.so $out/share/emacs/site-lisp
|
||||
'';
|
||||
}
|
145
pkgs/applications/editors/emacs-modes/manual-packages.nix
Normal file
145
pkgs/applications/editors/emacs-modes/manual-packages.nix
Normal file
@ -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 { };
|
||||
|
||||
}
|
@ -12,37 +12,34 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
|
||||
|
||||
*/
|
||||
|
||||
{ lib, external }:
|
||||
{ lib, external, pkgs }: variant: self: let
|
||||
|
||||
self:
|
||||
|
||||
let
|
||||
inherit (import ./libgenerated.nix lib self) melpaDerivation;
|
||||
imported = lib.listToAttrs (map (melpaDerivation "unstable")
|
||||
(lib.importJSON ./recipes-archive-melpa.json));
|
||||
super = builtins.removeAttrs imported [
|
||||
"swbuff-x" # required dependency swbuff is missing
|
||||
];
|
||||
|
||||
dontConfigure = pkg: pkg.override (args: {
|
||||
dontConfigure = pkg: if pkg != null then pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
configureScript = "true";
|
||||
});
|
||||
});
|
||||
}) else null;
|
||||
|
||||
markBroken = pkg: pkg.override (args: {
|
||||
markBroken = pkg: if pkg != null then pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
meta = (drv.meta or {}) // { broken = true; };
|
||||
});
|
||||
});
|
||||
}) else null;
|
||||
|
||||
overrides = {
|
||||
generateMelpa = lib.makeOverridable ({
|
||||
archiveJson ? ./recipes-archive-melpa.json
|
||||
}: let
|
||||
|
||||
inherit (import ./libgenerated.nix lib self) melpaDerivation;
|
||||
super = lib.listToAttrs (map (melpaDerivation variant) (lib.importJSON archiveJson));
|
||||
|
||||
generic = import ./melpa-generic.nix;
|
||||
|
||||
overrides = rec {
|
||||
shared = {
|
||||
# Expects bash to be at /bin/bash
|
||||
ac-rtags = markBroken super.ac-rtags;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
ack-menu = markBroken super.ack-menu;
|
||||
|
||||
airline-themes = super.airline-themes.override {
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
@ -60,22 +57,12 @@ self:
|
||||
inherit (self.melpaPackages) easy-kill;
|
||||
};
|
||||
|
||||
editorconfig = super.editorconfig.overrideAttrs (attrs: {
|
||||
propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
|
||||
});
|
||||
|
||||
egg = super.egg.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# upstream issue: missing file header
|
||||
elmine = markBroken super.elmine;
|
||||
|
||||
ess-R-data-view = super.ess-R-data-view.override {
|
||||
inherit (self.melpaPackages) ess ctable popup;
|
||||
};
|
||||
elpy = super.elpy.overrideAttrs(old: {
|
||||
propagatedUserEnvPkgs = old.propagatedUserEnvPkgs ++ [ external.elpy ];
|
||||
});
|
||||
|
||||
evil-magit = super.evil-magit.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
@ -83,28 +70,26 @@ self:
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# missing dependencies
|
||||
evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: {
|
||||
packageRequires = with self; [ evil highlight ];
|
||||
});
|
||||
ess-R-data-view = super.ess-R-data-view.override {
|
||||
inherit (self.melpaPackages) ess ctable popup;
|
||||
};
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
flycheck-rtags = markBroken super.flycheck-rtags;
|
||||
|
||||
forge = super.forge.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# build timeout
|
||||
graphene = markBroken super.graphene;
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
helm-lobsters = markBroken super.helm-lobsters;
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
helm-rtags = markBroken super.helm-rtags;
|
||||
pdf-tools = super.pdf-tools.overrideAttrs(old: {
|
||||
nativeBuildInputs = [ external.pkgconfig ];
|
||||
buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
|
||||
preBuild = "make server/epdfinfo";
|
||||
recipe = pkgs.writeText "recipe" ''
|
||||
(pdf-tools
|
||||
:repo "politza/pdf-tools" :fetcher github
|
||||
:files ("lisp/pdf-*.el" "server/epdfinfo"))
|
||||
'';
|
||||
});
|
||||
|
||||
# Build same version as Haskell package
|
||||
hindent = super.hindent.overrideAttrs (attrs: {
|
||||
@ -118,7 +103,28 @@ self:
|
||||
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
|
||||
|
||||
# upstream issue: missing file header
|
||||
initsplit = super.initsplit;
|
||||
initsplit = markBroken super.initsplit;
|
||||
|
||||
irony = super.irony.overrideAttrs(old: {
|
||||
preConfigure = ''
|
||||
cd server
|
||||
'';
|
||||
preBuild = ''
|
||||
make
|
||||
'';
|
||||
postInstall = ''
|
||||
mkdir -p $out
|
||||
mv $out/share/emacs/site-lisp/elpa/*/server/bin $out
|
||||
rm -rf $out/share/emacs/site-lisp/elpa/*/server
|
||||
'';
|
||||
preCheck = ''
|
||||
cd source/server
|
||||
'';
|
||||
dontUseCmakeBuildDir = true;
|
||||
doCheck = true;
|
||||
packageRequires = [ self.emacs ];
|
||||
nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ];
|
||||
});
|
||||
|
||||
# tries to write a log file to $HOME
|
||||
insert-shebang = super.insert-shebang.overrideAttrs (attrs: {
|
||||
@ -131,6 +137,27 @@ self:
|
||||
# upstream issue: missing file header
|
||||
jsfmt = markBroken super.jsfmt;
|
||||
|
||||
# upstream issue: missing file header
|
||||
maxframe = markBroken super.maxframe;
|
||||
|
||||
magit = super.magit.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
magit-todos = super.magit-todos.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
kubernetes = super.kubernetes.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
@ -138,15 +165,225 @@ self:
|
||||
});
|
||||
|
||||
# upstream issue: missing file header
|
||||
maxframe = markBroken super.maxframe;
|
||||
mhc = super.mhc.override {
|
||||
inherit (self.melpaPackages) calfw;
|
||||
};
|
||||
|
||||
magit =
|
||||
super.magit.overrideAttrs (attrs: {
|
||||
# missing .NET
|
||||
nemerle = markBroken super.nemerle;
|
||||
|
||||
# part of a larger package
|
||||
notmuch = dontConfigure super.notmuch;
|
||||
|
||||
# missing OCaml
|
||||
ocp-indent = markBroken super.ocp-indent;
|
||||
|
||||
# upstream issue: missing file header
|
||||
qiita = markBroken super.qiita;
|
||||
|
||||
# upstream issue: missing file header
|
||||
speech-tagger = markBroken super.speech-tagger;
|
||||
|
||||
shm = super.shm.overrideAttrs (attrs: {
|
||||
propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
|
||||
});
|
||||
|
||||
# upstream issue: missing file header
|
||||
tawny-mode = markBroken super.tawny-mode;
|
||||
|
||||
# upstream issue: missing file header
|
||||
textmate = markBroken super.textmate;
|
||||
|
||||
# missing OCaml
|
||||
utop = markBroken super.utop;
|
||||
|
||||
vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# upstream issue: missing file header
|
||||
voca-builder = markBroken super.voca-builder;
|
||||
|
||||
# upstream issue: missing file header
|
||||
window-numbering = markBroken super.window-numbering;
|
||||
|
||||
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 rec {
|
||||
inherit (super.vterm) name version src;
|
||||
|
||||
nativeBuildInputs = [ pkgs.cmake ];
|
||||
buildInputs = [ self.emacs libvterm ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DEMACS_SOURCE=${emacsSources}"
|
||||
"-DUSE_SYSTEM_LIBVTERM=True"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/share/emacs/site-lisp
|
||||
install ../*.el $out/share/emacs/site-lisp
|
||||
install ../*.so $out/share/emacs/site-lisp
|
||||
'';
|
||||
};
|
||||
# Legacy alias
|
||||
emacs-libvterm = shared.vterm;
|
||||
|
||||
zmq = super.zmq.overrideAttrs(old: {
|
||||
stripDebugList = [ "share" ];
|
||||
preBuild = ''
|
||||
make
|
||||
'';
|
||||
nativeBuildInputs = [
|
||||
external.autoconf external.automake external.pkgconfig external.libtool
|
||||
(external.zeromq.override { enableDrafts = true; })
|
||||
];
|
||||
postInstall = ''
|
||||
mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
|
||||
rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
|
||||
rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
|
||||
'';
|
||||
});
|
||||
|
||||
# Map legacy renames from emacs2nix since code generation was ported to emacs lisp
|
||||
_0blayout = super."0blayout";
|
||||
_0xc = super."0xc";
|
||||
_2048-game = super."2048-game";
|
||||
_4clojure = super."4clojure";
|
||||
at = super."@";
|
||||
desktop-plus = super."desktop+";
|
||||
ghub-plus = super."ghub+";
|
||||
git-gutter-plus = super."git-gutter+";
|
||||
git-gutter-fringe-plus = super."git-gutter-fringe+";
|
||||
ido-completing-read-plus = super."ido-completing-read+";
|
||||
image-plus = super."image+";
|
||||
image-dired-plus = super."image-dired+";
|
||||
markdown-mode-plus = super."markdown-mode+";
|
||||
package-plus = super."package+";
|
||||
rect-plus = super."rect+";
|
||||
term-plus = super."term+";
|
||||
term-plus-key-intercept = super."term+key-intercept";
|
||||
term-plus-mux = super."term+mux";
|
||||
xml-plus = super."xml+";
|
||||
};
|
||||
|
||||
stable = {
|
||||
# part of a larger package
|
||||
# upstream issue: missing package version
|
||||
cmake-mode = markBroken (dontConfigure super.cmake-mode);
|
||||
|
||||
# upstream issue: missing file header
|
||||
connection = markBroken super.connection;
|
||||
|
||||
# upstream issue: missing file header
|
||||
dictionary = markBroken super.dictionary;
|
||||
|
||||
# missing git
|
||||
egg = markBroken super.egg;
|
||||
|
||||
# upstream issue: missing dependency redshank
|
||||
emr = markBroken super.emr;
|
||||
|
||||
# upstream issue: doesn't build
|
||||
eterm-256color = markBroken super.eterm-256color;
|
||||
|
||||
# upstream issue: missing dependency highlight
|
||||
evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
|
||||
|
||||
# upstream issue: missing dependency highlight
|
||||
floobits = markBroken super.floobits;
|
||||
|
||||
# missing OCaml
|
||||
flycheck-ocaml = markBroken super.flycheck-ocaml;
|
||||
|
||||
# upstream issue: missing dependency
|
||||
fold-dwim-org = markBroken super.fold-dwim-org;
|
||||
|
||||
# build timeout
|
||||
graphene = markBroken super.graphene;
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
helm-rtags = markBroken super.helm-rtags;
|
||||
|
||||
# upstream issue: missing file header
|
||||
link = markBroken super.link;
|
||||
|
||||
# missing OCaml
|
||||
merlin = markBroken super.merlin;
|
||||
|
||||
# upstream issue: missing file header
|
||||
po-mode = markBroken super.po-mode;
|
||||
|
||||
# upstream issue: truncated file
|
||||
powershell = markBroken super.powershell;
|
||||
};
|
||||
|
||||
unstable = shared // {
|
||||
# upstream issue: mismatched filename
|
||||
ack-menu = markBroken super.ack-menu;
|
||||
|
||||
editorconfig = super.editorconfig.overrideAttrs (attrs: {
|
||||
propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
|
||||
});
|
||||
|
||||
egg = super.egg.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# missing dependencies
|
||||
evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: {
|
||||
packageRequires = with self; [ evil highlight ];
|
||||
});
|
||||
|
||||
forge = super.forge.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# upstream issue: mismatched filename
|
||||
helm-lobsters = markBroken super.helm-lobsters;
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
helm-rtags = markBroken super.helm-rtags;
|
||||
|
||||
# Fails with "package does not untar cleanly into ..."
|
||||
irony = shared.irony.overrideAttrs(old: {
|
||||
meta = old.meta // {
|
||||
broken = true;
|
||||
};
|
||||
});
|
||||
|
||||
magit-annex = super.magit-annex.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
@ -171,31 +408,6 @@ self:
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
magit-todos = super.magit-todos.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
mhc = super.mhc.override {
|
||||
inherit (self.melpaPackages) calfw;
|
||||
};
|
||||
|
||||
# missing .NET
|
||||
nemerle = markBroken super.nemerle;
|
||||
|
||||
# part of a larger package
|
||||
notmuch = dontConfigure super.notmuch;
|
||||
|
||||
# missing OCaml
|
||||
ocp-indent = markBroken super.ocp-indent;
|
||||
|
||||
orgit =
|
||||
(super.orgit.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
@ -211,9 +423,6 @@ self:
|
||||
# upstream issue: mismatched filename
|
||||
processing-snippets = markBroken super.processing-snippets;
|
||||
|
||||
# upstream issue: missing file header
|
||||
qiita = markBroken super.qiita;
|
||||
|
||||
racer = super.racer.overrideAttrs (attrs: {
|
||||
postPatch = attrs.postPatch or "" + ''
|
||||
substituteInPlace racer.el \
|
||||
@ -228,39 +437,12 @@ self:
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
|
||||
# upstream issue: missing file header
|
||||
speech-tagger = markBroken super.speech-tagger;
|
||||
|
||||
# upstream issue: missing file header
|
||||
stgit = markBroken super.stgit;
|
||||
|
||||
# upstream issue: missing file header
|
||||
tawny-mode = markBroken super.tawny-mode;
|
||||
|
||||
# upstream issue: missing file header
|
||||
textmate = markBroken super.textmate;
|
||||
|
||||
treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# missing OCaml
|
||||
utop = markBroken super.utop;
|
||||
|
||||
vdiff-magit =
|
||||
(super.vdiff-magit.overrideAttrs (attrs: {
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
}));
|
||||
|
||||
# upstream issue: missing file header
|
||||
voca-builder = markBroken super.voca-builder;
|
||||
|
||||
# upstream issue: missing file header
|
||||
window-numbering = markBroken super.window-numbering;
|
||||
|
||||
w3m = super.w3m.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
prePatch =
|
||||
@ -271,36 +453,9 @@ self:
|
||||
'';
|
||||
});
|
||||
});
|
||||
|
||||
# Map legacy renames from emacs2nix since code generation was ported to emacs lisp
|
||||
_0blayout = super."0blayout";
|
||||
_0xc = super."0xc";
|
||||
_2048-game = super."2048-game";
|
||||
_4clojure = super."4clojure";
|
||||
at = super."@";
|
||||
desktop-plus = super."desktop+";
|
||||
# filesets-plus = super."filesets+";
|
||||
ghub-plus = super."ghub+";
|
||||
git-gutter-plus = super."git-gutter+";
|
||||
git-gutter-fringe-plus = super."git-gutter-fringe+";
|
||||
ido-completing-read-plus = super."ido-completing-read+";
|
||||
image-plus = super."image+";
|
||||
image-dired-plus = super."image-dired+";
|
||||
markdown-mode-plus = super."markdown-mode+";
|
||||
package-plus = super."package+";
|
||||
rect-plus = super."rect+";
|
||||
term-plus = super."term+";
|
||||
term-plus-key-intercept = super."term+key-intercept";
|
||||
term-plus-mux = super."term+mux";
|
||||
xml-plus = super."xml+";
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
melpaPackages =
|
||||
removeAttrs (super // overrides)
|
||||
[
|
||||
"show-marks" # missing dependency: fm
|
||||
"lenlen-theme" # missing dependency: color-theme-solarized
|
||||
];
|
||||
in
|
||||
melpaPackages // { inherit melpaPackages; }
|
||||
in super // overrides."${variant}");
|
||||
|
||||
in generateMelpa { }
|
||||
|
@ -1,235 +0,0 @@
|
||||
/*
|
||||
|
||||
# Updating
|
||||
|
||||
To update the list of packages from MELPA,
|
||||
|
||||
|
||||
1. Run ./update-melpa
|
||||
2. Check for evaluation errors:
|
||||
env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackagesNg.melpaStablePackages
|
||||
env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackagesNg.melpaPackages
|
||||
3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json`
|
||||
|
||||
*/
|
||||
|
||||
{ lib, external }:
|
||||
|
||||
self:
|
||||
|
||||
let
|
||||
inherit (import ./libgenerated.nix lib self) melpaDerivation;
|
||||
imported = lib.listToAttrs (map (melpaDerivation "stable")
|
||||
(lib.importJSON ./recipes-archive-melpa.json));
|
||||
super = imported;
|
||||
|
||||
dontConfigure = pkg: pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
configureScript = "true";
|
||||
});
|
||||
});
|
||||
|
||||
markBroken = pkg: if pkg != null then pkg.override (args: {
|
||||
melpaBuild = drv: args.melpaBuild (drv // {
|
||||
meta = (drv.meta or {}) // { broken = true; };
|
||||
});
|
||||
}) else null;
|
||||
|
||||
overrides = {
|
||||
# Expects bash to be at /bin/bash
|
||||
ac-rtags = markBroken super.ac-rtags;
|
||||
|
||||
airline-themes = super.airline-themes.override {
|
||||
inherit (self.melpaPackages) powerline;
|
||||
};
|
||||
|
||||
# upstream issue: missing file header
|
||||
bufshow = markBroken super.bufshow;
|
||||
|
||||
# part of a larger package
|
||||
caml = dontConfigure super.caml;
|
||||
|
||||
# part of a larger package
|
||||
# upstream issue: missing package version
|
||||
cmake-mode = markBroken (dontConfigure super.cmake-mode);
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
company-rtags = markBroken super.company-rtags;
|
||||
|
||||
# upstream issue: missing file header
|
||||
connection = markBroken super.connection;
|
||||
|
||||
# upstream issue: missing file header
|
||||
dictionary = markBroken super.dictionary;
|
||||
|
||||
easy-kill-extras = super.easy-kill-extras.override {
|
||||
inherit (self.melpaPackages) easy-kill;
|
||||
};
|
||||
|
||||
# missing git
|
||||
egg = markBroken super.egg;
|
||||
|
||||
# upstream issue: missing file header
|
||||
elmine = markBroken super.elmine;
|
||||
|
||||
# upstream issue: missing dependency redshank
|
||||
emr = markBroken super.emr;
|
||||
|
||||
ess-R-data-view = super.ess-R-data-view.override {
|
||||
inherit (self.melpaPackages) ess ctable popup;
|
||||
};
|
||||
|
||||
# upstream issue: doesn't build
|
||||
eterm-256color = markBroken super.eterm-256color;
|
||||
|
||||
# upstream issue: missing dependency highlight
|
||||
evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
|
||||
|
||||
# upstream issue: missing dependency highlight
|
||||
floobits = markBroken super.floobits;
|
||||
|
||||
# missing OCaml
|
||||
flycheck-ocaml = markBroken super.flycheck-ocaml;
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
flycheck-rtags = markBroken super.flycheck-rtags;
|
||||
|
||||
# upstream issue: missing dependency
|
||||
fold-dwim-org = markBroken super.fold-dwim-org;
|
||||
|
||||
# build timeout
|
||||
graphene = markBroken super.graphene;
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
helm-rtags = markBroken super.helm-rtags;
|
||||
|
||||
# Build same version as Haskell package
|
||||
hindent = super.hindent.overrideAttrs (attrs: {
|
||||
version = external.hindent.version;
|
||||
src = external.hindent.src;
|
||||
packageRequires = [ self.haskell-mode ];
|
||||
propagatedUserEnvPkgs = [ external.hindent ];
|
||||
});
|
||||
|
||||
# upstream issue: missing file header
|
||||
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
|
||||
|
||||
# upstream issue: missing file header
|
||||
initsplit = markBroken super.initsplit;
|
||||
|
||||
# upstream issue: recipe fails
|
||||
insert-shebang = markBroken super.insert-shebang;
|
||||
|
||||
# Expects bash to be at /bin/bash
|
||||
ivy-rtags = markBroken super.ivy-rtags;
|
||||
|
||||
# upstream issue: missing file header
|
||||
jsfmt = markBroken super.jsfmt;
|
||||
|
||||
# upstream issue: missing file header
|
||||
link = markBroken super.link;
|
||||
|
||||
# upstream issue: missing file header
|
||||
maxframe = markBroken super.maxframe;
|
||||
|
||||
magit =
|
||||
(super.magit.override {
|
||||
# version of magit-popup needs to match magit
|
||||
# https://github.com/magit/magit/issues/3286
|
||||
inherit (self.melpaStablePackages) magit-popup;
|
||||
}).overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
magit-todos = super.magit-todos.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
# missing OCaml
|
||||
merlin = markBroken super.merlin;
|
||||
|
||||
mhc = super.mhc.override {
|
||||
inherit (self.melpaPackages) calfw;
|
||||
};
|
||||
|
||||
# missing .NET
|
||||
nemerle = markBroken super.nemerle;
|
||||
|
||||
# part of a larger package
|
||||
notmuch = dontConfigure super.notmuch;
|
||||
|
||||
# missing OCaml
|
||||
ocp-indent = markBroken super.ocp-indent;
|
||||
|
||||
# upstream issue: missing file header
|
||||
po-mode = markBroken super.po-mode;
|
||||
|
||||
# upstream issue: truncated file
|
||||
powershell = markBroken super.powershell;
|
||||
|
||||
# upstream issue: missing file header
|
||||
qiita = markBroken super.qiita;
|
||||
|
||||
# upstream issue: missing file header
|
||||
speech-tagger = markBroken super.speech-tagger;
|
||||
|
||||
# upstream issue: missing file header
|
||||
stgit = markBroken super.stgit;
|
||||
|
||||
# upstream issue: missing file header
|
||||
tawny-mode = markBroken super.tawny-mode;
|
||||
|
||||
# upstream issue: missing file header
|
||||
textmate = markBroken super.textmate;
|
||||
|
||||
# missing OCaml
|
||||
utop = markBroken super.utop;
|
||||
|
||||
vdiff-magit =
|
||||
(super.vdiff-magit.overrideAttrs (attrs: {
|
||||
nativeBuildInputs =
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
}));
|
||||
|
||||
# upstream issue: missing file header
|
||||
voca-builder = markBroken super.voca-builder;
|
||||
|
||||
# upstream issue: missing file header
|
||||
window-numbering = markBroken super.window-numbering;
|
||||
|
||||
# Map legacy renames from emacs2nix since code generation was ported to emacs lisp
|
||||
_0blayout = super."0blayout";
|
||||
_0xc = super."0xc";
|
||||
_2048-game = super."2048-game";
|
||||
_4clojure = super."4clojure";
|
||||
at = super."@";
|
||||
desktop-plus = super."desktop+";
|
||||
ghub-plus = super."ghub+";
|
||||
git-gutter-plus = super."git-gutter+";
|
||||
git-gutter-fringe-plus = super."git-gutter-fringe+";
|
||||
ido-completing-read-plus = super."ido-completing-read+";
|
||||
image-plus = super."image+";
|
||||
image-dired-plus = super."image-dired+";
|
||||
markdown-mode-plus = super."markdown-mode+";
|
||||
package-plus = super."package+";
|
||||
rect-plus = super."rect+";
|
||||
term-plus = super."term+";
|
||||
term-plus-key-intercept = super."term+key-intercept";
|
||||
term-plus-mux = super."term+mux";
|
||||
xml-plus = super."xml+";
|
||||
|
||||
};
|
||||
|
||||
melpaStablePackages = super // overrides;
|
||||
in
|
||||
melpaStablePackages // { inherit melpaStablePackages; }
|
@ -1,30 +0,0 @@
|
||||
{lib, trivialBuild, fetchFromGitHub}:
|
||||
|
||||
trivialBuild rec {
|
||||
pname = "nyan-mode";
|
||||
version = "20150128";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TeMPOraL";
|
||||
repo = pname;
|
||||
rev = "41faa2c809da7b2cb3e6f8fadefae3f338ced3f2";
|
||||
sha256 = "1idaac7sjc8hhbf5zif61ncg1pvg28c0qfihavdx61albww0ll7f";
|
||||
};
|
||||
|
||||
patches = [ ./directory.patch ];
|
||||
|
||||
preBuild = ''
|
||||
substituteInPlace nyan-mode.el \
|
||||
--replace "@OUT@" "$out/"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
cp -r img $out
|
||||
cp -r mus $out
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "An analog indicator of the position in the buffer";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
};
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
diff --git a/nyan-mode.el b/nyan-mode.el
|
||||
index 939a25a..3d0b983 100644
|
||||
--- a/nyan-mode.el
|
||||
+++ b/nyan-mode.el
|
||||
@@ -106,7 +106,7 @@ This can be t or nil."
|
||||
:group 'nyan)
|
||||
|
||||
|
||||
-(defconst +nyan-directory+ (file-name-directory (or load-file-name buffer-file-name)))
|
||||
+(defconst +nyan-directory+ "@OUT@")
|
||||
|
||||
(defconst +nyan-cat-size+ 3)
|
||||
|
@ -28,4 +28,4 @@ self:
|
||||
|
||||
orgPackages = super // overrides;
|
||||
|
||||
in orgPackages // { inherit orgPackages; }
|
||||
in orgPackages
|
||||
|
@ -1,23 +0,0 @@
|
||||
{ stdenv, fetchgit }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "redshank";
|
||||
name = "${pname}-20120510";
|
||||
|
||||
src = fetchgit {
|
||||
url = "http://www.foldr.org/~michaelw/projects/redshank.git";
|
||||
rev = "f98e68f532e622bcd464292ca4a9cf5fbea14ebb";
|
||||
sha256 = "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
cp *.el *.elc $out/share/emacs/site-lisp/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Common Lisp Editing Extensions (for Emacs)";
|
||||
homepage = http://www.foldr.org/~michaelw/emacs/redshank/;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
{ stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stgit";
|
||||
name = "${pname}-2009-10-28";
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/miracle2k/stgit/master/contrib/stgit.el";
|
||||
sha256 = "0pl8q480633vdkylr85s7cbd4653xpzwklnxrwm8xhsnvw9d501q";
|
||||
name = "stgit.el";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/emacs/site-lisp
|
||||
cp $src $out/share/emacs/site-lisp/stgit.el
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "An emacs mode for Stgit";
|
||||
homepage = http://procode.org/stgit/;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
@ -1,8 +1,6 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell --show-trace -i sh -p git nix nix-prefetch-git nix-prefetch-hg "import ./updater-emacs.nix"
|
||||
#! nix-shell --show-trace ./updater-emacs.nix -i bash
|
||||
|
||||
# "with import ../../../.. {}; emacsWithPackages (epkgs: with epkgs.melpaPackages; [ promise semaphore ])"
|
||||
SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||
|
||||
exec emacs --fg-daemon=updater --quick -l update-melpa.el -f run-updater "$@"
|
||||
|
||||
# exec emacs update-melpa.el "$@"
|
||||
exec emacs --fg-daemon=updater --quick -l $SCRIPT_DIR/update-melpa.el -f run-updater "$@"
|
||||
|
@ -1,29 +1,40 @@
|
||||
with import ../../../.. {};
|
||||
(emacsPackagesNgFor emacs26).
|
||||
emacsWithPackages (epkgs: let
|
||||
let
|
||||
pkgs = import ../../../.. {};
|
||||
|
||||
emacsEnv = (pkgs.emacsPackagesNgFor pkgs.emacs26).emacsWithPackages (epkgs: let
|
||||
|
||||
promise = epkgs.trivialBuild {
|
||||
pname = "promise";
|
||||
version = "1";
|
||||
src = fetchFromGitHub {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "bendlas";
|
||||
repo = "emacs-promise";
|
||||
rev = "4da97087c5babbd8429b5ce62a8323b9b03c6022";
|
||||
sha256 = "0yin7kj69g4zxs30pvk47cnfygxlaw7jc7chr3b36lz51yqczjsy";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
semaphore = epkgs.trivialBuild {
|
||||
pname = "semaphore";
|
||||
version = "1";
|
||||
packageRequires = [ promise ];
|
||||
src = fetchFromGitHub {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "webnf";
|
||||
repo = "semaphore.el";
|
||||
rev = "93802cb093073bc6a6ccd797328dafffcef248e0";
|
||||
sha256 = "09pfyp27m35sv340xarhld7xx2vv5fs5xj4418709iw6l6hpk853";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
in [ promise semaphore ]
|
||||
# ++ (with epkgs.melpaPackages; [ smex rainbow-delimiters paredit ])
|
||||
)
|
||||
in [ promise semaphore ]);
|
||||
|
||||
in pkgs.mkShell {
|
||||
buildInputs = [
|
||||
pkgs.git
|
||||
pkgs.nix
|
||||
pkgs.bash
|
||||
pkgs.nix-prefetch-git
|
||||
pkgs.nix-prefetch-hg
|
||||
emacsEnv
|
||||
];
|
||||
}
|
||||
|
@ -17928,7 +17928,7 @@ in
|
||||
emacs26Packages = dontRecurseIntoAttrs (emacsPackagesFor emacs26 pkgs.emacs26Packages);
|
||||
|
||||
emacsPackagesNgFor = emacs: import ./emacs-packages.nix {
|
||||
inherit lib newScope stdenv;
|
||||
inherit lib newScope stdenv pkgs;
|
||||
inherit fetchFromGitHub fetchurl;
|
||||
inherit emacs texinfo makeWrapper runCommand writeText;
|
||||
inherit (xorg) lndir;
|
||||
|
@ -39,428 +39,46 @@
|
||||
, melpaBuild
|
||||
|
||||
, external
|
||||
, pkgs
|
||||
}:
|
||||
|
||||
with lib.licenses;
|
||||
|
||||
let
|
||||
|
||||
elpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix {
|
||||
mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix {
|
||||
inherit lib stdenv texinfo;
|
||||
};
|
||||
|
||||
melpaStablePackages = import ../applications/editors/emacs-modes/melpa-stable-packages.nix {
|
||||
inherit external lib;
|
||||
# Contains both melpa stable & unstable
|
||||
melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix {
|
||||
inherit external lib pkgs;
|
||||
};
|
||||
mkMelpaStablePackages = melpaGeneric "stable";
|
||||
mkMelpaPackages = melpaGeneric "unstable";
|
||||
|
||||
melpaPackages = import ../applications/editors/emacs-modes/melpa-packages.nix {
|
||||
inherit external lib;
|
||||
};
|
||||
|
||||
orgPackages = import ../applications/editors/emacs-modes/org-packages.nix { };
|
||||
mkOrgPackages = import ../applications/editors/emacs-modes/org-packages.nix { };
|
||||
|
||||
emacsWithPackages = import ../build-support/emacs/wrapper.nix {
|
||||
inherit lib lndir makeWrapper stdenv runCommand;
|
||||
};
|
||||
|
||||
packagesFun = self: with self; {
|
||||
mkManualPackages = import ../applications/editors/emacs-modes/manual-packages.nix {
|
||||
inherit external lib pkgs;
|
||||
};
|
||||
|
||||
in lib.makeScope newScope (self: lib.makeOverridable ({
|
||||
elpaPackages ? mkElpaPackages self
|
||||
, melpaStablePackages ? mkMelpaStablePackages self
|
||||
, melpaPackages ? mkMelpaPackages self
|
||||
, orgPackages ? mkOrgPackages self
|
||||
, manualPackages ? mkManualPackages self
|
||||
}: ({}
|
||||
// elpaPackages // { inherit elpaPackages; }
|
||||
// melpaStablePackages // { inherit melpaStablePackages; }
|
||||
// melpaPackages // { inherit melpaPackages; }
|
||||
// orgPackages // { inherit orgPackages; }
|
||||
// manualPackages
|
||||
// {
|
||||
inherit emacs melpaBuild trivialBuild;
|
||||
|
||||
emacsWithPackages = emacsWithPackages self;
|
||||
|
||||
## START HERE
|
||||
|
||||
pdf-tools = melpaBuild rec {
|
||||
pname = "pdf-tools";
|
||||
version = "0.90";
|
||||
src = fetchFromGitHub {
|
||||
owner = "politza";
|
||||
repo = "pdf-tools";
|
||||
rev = "v${version}";
|
||||
sha256 = "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9";
|
||||
};
|
||||
nativeBuildInputs = [ external.pkgconfig ];
|
||||
buildInputs = with external; [ autoconf automake libpng zlib poppler ];
|
||||
preBuild = "make server/epdfinfo";
|
||||
recipe = writeText "recipe" ''
|
||||
(pdf-tools
|
||||
:repo "politza/pdf-tools" :fetcher github
|
||||
:files ("lisp/pdf-*.el" "server/epdfinfo"))
|
||||
'';
|
||||
packageRequires = [ tablist let-alist ];
|
||||
meta = {
|
||||
description = "Emacs support library for PDF files";
|
||||
license = gpl3;
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
emacsql-sqlite = melpaBuild rec {
|
||||
pname = "emacsql-sqlite";
|
||||
ename = "emacsql-sqlite";
|
||||
version = "20180128.1252";
|
||||
src = fetchFromGitHub {
|
||||
owner = "skeeto";
|
||||
repo = "emacsql";
|
||||
rev = "62d39157370219a1680265fa593f90ccd51457da";
|
||||
sha256 = "0ghl3g8n8wlw8rnmgbivlrm99wcwn93bv8flyalzs0z9j7p7fdq9";
|
||||
};
|
||||
recipe = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/3cfa28c7314fa57fa9a3aaaadf9ef83f8ae541a9/recipes/emacsql-sqlite";
|
||||
sha256 = "1y81nabzzb9f7b8azb9giy23ckywcbrrg4b88gw5qyjizbb3h70x";
|
||||
name = "recipe";
|
||||
};
|
||||
preBuild = ''
|
||||
cd sqlite
|
||||
make
|
||||
'';
|
||||
stripDebugList = [ "share" ];
|
||||
packageRequires = [ emacs emacsql ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/emacsql-sqlite";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
};
|
||||
|
||||
elpy = melpaBuild rec {
|
||||
pname = "elpy";
|
||||
version = external.elpy.version;
|
||||
src = fetchFromGitHub {
|
||||
owner = "jorgenschaefer";
|
||||
repo = pname;
|
||||
rev = "39ea47c73f040ce8dcc1c2d2639ebc0eb57ab8c8";
|
||||
sha256 = "0q3av1qv4m6aj4bil608f688hjpr5px8zqnnrdqx784nz98rpjrs";
|
||||
};
|
||||
recipe = writeText "recipe" ''
|
||||
(elpy :repo "jorgenschaefer/elpy" :fetcher github)
|
||||
'';
|
||||
|
||||
patchPhase = ''
|
||||
for file in elpy.el elpy-pkg.el; do
|
||||
substituteInPlace $file \
|
||||
--replace "company \"0.8.2\"" "company \"${company.version}\"" \
|
||||
--replace "find-file-in-project \"3.3\"" "find-file-in-project \"${(melpaPackages self).find-file-in-project.version}\"" \
|
||||
--replace "highlight-indentation \"0.5.0\"" "highlight-indentation \"${highlight-indentation.version}\"" \
|
||||
--replace "pyvenv \"1.3\"" "pyvenv \"${pyvenv.version}\"" \
|
||||
--replace "yasnippet \"0.8.0\"" "yasnippet \"${yasnippet.version}\""
|
||||
done
|
||||
'';
|
||||
|
||||
packageRequires = [
|
||||
company find-file-in-project highlight-indentation pyvenv yasnippet
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [ external.elpy ] ++ packageRequires;
|
||||
|
||||
meta = {
|
||||
description = "Emacs Python Development Environment";
|
||||
longDescription = ''
|
||||
Elpy is an Emacs package to bring powerful Python editing to Emacs.
|
||||
It combines a number of other packages, both written in Emacs Lisp as
|
||||
well as Python.
|
||||
'';
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
emacs-libvterm = callPackage ../applications/editors/emacs-modes/emacs-libvterm { };
|
||||
|
||||
evil-jumper = melpaBuild rec {
|
||||
pname = "evil-jumper";
|
||||
version = "20151017";
|
||||
src = fetchFromGitHub {
|
||||
owner = "bling";
|
||||
repo = pname;
|
||||
rev = "fcadf2d93aaea3ba88a2ae63a860b9c1f0568167";
|
||||
sha256 = "0axx6cc9z9c1wh7qgm6ya54dsp3bn82bnb0cwj1rpv509qqmwgsj";
|
||||
};
|
||||
recipe = writeText "recipe" ''
|
||||
(evil-jumper :repo "bling/evil-jumper" :fetcher github)
|
||||
'';
|
||||
packageRequires = [ evil ];
|
||||
meta = {
|
||||
description = "Jump across buffer boundaries and revive dead buffers if necessary";
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
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 { };
|
||||
|
||||
irony = melpaBuild rec {
|
||||
pname = "irony";
|
||||
ename = "irony";
|
||||
version = "20190516";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Sarcasm";
|
||||
repo = "irony-mode";
|
||||
rev = "c3ae899b61124a747ebafc705086345e460ac08e";
|
||||
sha256 = "06ld83vzyklfmrfi6pp893mvlnhacv9if75c9pbipjvy6nwfb63r";
|
||||
};
|
||||
recipe = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/3cfa28c7314fa57fa9a3aaaadf9ef83f8ae541a9/recipes/irony";
|
||||
sha256 = "1xcxrdrs7imi31nxpszgpaywq4ivni75hrdl4zzrf103xslqpl8a";
|
||||
name = "recipe";
|
||||
};
|
||||
preConfigure = ''
|
||||
cd server
|
||||
'';
|
||||
preBuild = ''
|
||||
make
|
||||
'';
|
||||
postInstall = ''
|
||||
mkdir -p $out
|
||||
mv $out/share/emacs/site-lisp/elpa/*/server/bin $out
|
||||
rm -rf $out/share/emacs/site-lisp/elpa/*/server
|
||||
'';
|
||||
preCheck = ''
|
||||
cd source/server
|
||||
'';
|
||||
dontUseCmakeBuildDir = true;
|
||||
doCheck = true;
|
||||
packageRequires = [ emacs ];
|
||||
nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ];
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/irony";
|
||||
license = lib.licenses.gpl3;
|
||||
};
|
||||
};
|
||||
|
||||
redshank = callPackage ../applications/editors/emacs-modes/redshank { };
|
||||
|
||||
rtags = melpaBuild rec {
|
||||
pname = "rtags";
|
||||
version = "2.12";
|
||||
src = external.rtags.src;
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
propagatedUserEnvPkgs = [ external.rtags ];
|
||||
recipe = writeText "recipe" ''
|
||||
(rtags
|
||||
:repo "andersbakken/rtags" :fetcher github
|
||||
:files ("src/*.el"))
|
||||
'';
|
||||
inherit (external.rtags) meta;
|
||||
};
|
||||
|
||||
lcs = melpaBuild rec {
|
||||
pname = "lcs";
|
||||
version = circe.version;
|
||||
src = circe.src;
|
||||
recipe = writeText "recipe" ''
|
||||
(lcs :repo "jorgenschaefer/circe" :fetcher github :files ("lcs.el"))
|
||||
'';
|
||||
meta = {
|
||||
description = "Longest Common Sequence (LCS) library for Emacs";
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
lib-requires =
|
||||
callPackage ../applications/editors/emacs-modes/lib-requires { };
|
||||
|
||||
lui = melpaBuild rec {
|
||||
pname = "lui";
|
||||
version = circe.version;
|
||||
src = circe.src;
|
||||
packageRequires = [ tracking ];
|
||||
recipe = writeText "recipe" ''
|
||||
(lcs :repo "jorgenschaefer/circe" :fetcher github :files ("lui*.el"))
|
||||
'';
|
||||
meta = {
|
||||
description = "User interface library for Emacs";
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
nyan-mode = callPackage ../applications/editors/emacs-modes/nyan-mode {
|
||||
inherit lib;
|
||||
};
|
||||
|
||||
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 { };
|
||||
|
||||
shorten = melpaBuild rec {
|
||||
pname = "shorten";
|
||||
version = circe.version;
|
||||
src = circe.src;
|
||||
recipe = writeText "recipe" ''
|
||||
(shorten :repo "jorgenschaefer/circe" :fetcher github :files ("shorten.el"))
|
||||
'';
|
||||
meta = {
|
||||
description = "String shortening to unique prefix library for Emacs";
|
||||
license = gpl3Plus;
|
||||
};
|
||||
};
|
||||
|
||||
stgit = callPackage ../applications/editors/emacs-modes/stgit { };
|
||||
|
||||
structured-haskell-mode = self.shm;
|
||||
shm = (melpaPackages self).shm.overrideAttrs (attrs: {
|
||||
propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
|
||||
});
|
||||
|
||||
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 { };
|
||||
|
||||
zmq = melpaBuild rec {
|
||||
pname = "zmq";
|
||||
ename = "zmq";
|
||||
version = "0.10.10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dzop";
|
||||
repo = "emacs-zmq";
|
||||
rev = "v0.10.10";
|
||||
sha256 = "0ngxm5mm0kqgvn8977ryrngamx0khzlw86d8vz5s0jhm2kgwnqp8";
|
||||
};
|
||||
recipe = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/milkypostman/melpa/72f4dcc2723de826bf1af7235ac6d9119a243c63/recipes/zmq";
|
||||
sha256 = "14bbh00a58xgxyxl8zjxl57rf6351fnwsnk4cvvy341fvf86dklc";
|
||||
name = "recipe";
|
||||
};
|
||||
stripDebugList = [ "share" ];
|
||||
packageRequires = [ emacs ];
|
||||
nativeBuildInputs = [
|
||||
external.autoconf external.automake external.pkgconfig external.libtool
|
||||
(external.zeromq.override { enableDrafts = true; })
|
||||
];
|
||||
preBuild = ''
|
||||
make
|
||||
'';
|
||||
postInstall = ''
|
||||
mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
|
||||
rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
|
||||
rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
|
||||
'';
|
||||
meta = {
|
||||
homepage = "https://melpa.org/#/zmq";
|
||||
description = "Emacs bindings to ØMQ";
|
||||
license = lib.licenses.gpl2;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
in
|
||||
lib.makeScope newScope (self:
|
||||
{}
|
||||
// elpaPackages self
|
||||
// melpaStablePackages self
|
||||
// melpaPackages self
|
||||
// orgPackages self
|
||||
// packagesFun self
|
||||
)
|
||||
})
|
||||
) {})
|
||||
|
Loading…
x
Reference in New Issue
Block a user