diff options
Diffstat (limited to 'pkgs/applications/editors/emacs-modes')
12 files changed, 561 insertions, 629 deletions
diff --git a/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/pkgs/applications/editors/emacs-modes/elpa-packages.nix index 9c08e91af41..e7ed5a32b65 100644 --- a/pkgs/applications/editors/emacs-modes/elpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/elpa-packages.nix @@ -50,4 +50,4 @@ self: elpaPackages = super // overrides; - in elpaPackages // { inherit elpaBuild elpaPackages; } + in elpaPackages // { inherit elpaBuild; } diff --git a/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix b/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix deleted file mode 100644 index ba54b9404a0..00000000000 --- a/pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix +++ /dev/null @@ -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 - ''; -} 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 00000000000..7f75de74ed6 --- /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/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 527a82aa469..24e541f2695 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -12,289 +12,450 @@ 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: { - melpaBuild = drv: args.melpaBuild (drv // { - configureScript = "true"; - }); + dontConfigure = pkg: if pkg != null then pkg.override (args: { + melpaBuild = drv: args.melpaBuild (drv // { + configureScript = "true"; }); + }) else null; - markBroken = pkg: pkg.override (args: { - melpaBuild = drv: args.melpaBuild (drv // { - meta = (drv.meta or {}) // { broken = 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; + generateMelpa = lib.makeOverridable ({ + archiveJson ? ./recipes-archive-melpa.json + }: let - # upstream issue: mismatched filename - ack-menu = markBroken super.ack-menu; + inherit (import ./libgenerated.nix lib self) melpaDerivation; + super = lib.listToAttrs (map (melpaDerivation variant) (lib.importJSON archiveJson)); - airline-themes = super.airline-themes.override { - inherit (self.melpaPackages) powerline; - }; + generic = import ./melpa-generic.nix; - # upstream issue: missing file header - bufshow = markBroken super.bufshow; + overrides = rec { + shared = { + # Expects bash to be at /bin/bash + ac-rtags = markBroken super.ac-rtags; - # part of a larger package - caml = dontConfigure super.caml; + airline-themes = super.airline-themes.override { + inherit (self.melpaPackages) powerline; + }; - # Expects bash to be at /bin/bash - company-rtags = markBroken super.company-rtags; + # upstream issue: missing file header + bufshow = markBroken super.bufshow; - easy-kill-extras = super.easy-kill-extras.override { - inherit (self.melpaPackages) easy-kill; - }; + # part of a larger package + caml = dontConfigure super.caml; - editorconfig = super.editorconfig.overrideAttrs (attrs: { - propagatedUserEnvPkgs = [ external.editorconfig-core-c ]; - }); + # Expects bash to be at /bin/bash + company-rtags = markBroken super.company-rtags; - egg = super.egg.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + easy-kill-extras = super.easy-kill-extras.override { + inherit (self.melpaPackages) easy-kill; + }; - # upstream issue: missing file header - elmine = markBroken super.elmine; + # 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 - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + evil-magit = super.evil-magit.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 ]; - }); + 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; + + # build timeout + graphene = markBroken super.graphene; + + 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")) + ''; + }); - # Expects bash to be at /bin/bash - flycheck-rtags = markBroken super.flycheck-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 ]; + }); - forge = super.forge.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # 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; + + 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 ]; + }); - # build timeout - graphene = markBroken super.graphene; + # tries to write a log file to $HOME + insert-shebang = super.insert-shebang.overrideAttrs (attrs: { + HOME = "/tmp"; + }); - # upstream issue: mismatched filename - helm-lobsters = markBroken super.helm-lobsters; + # Expects bash to be at /bin/bash + ivy-rtags = markBroken super.ivy-rtags; - # Expects bash to be at /bin/bash - helm-rtags = markBroken super.helm-rtags; + # upstream issue: missing file header + jsfmt = markBroken super.jsfmt; - # 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 + maxframe = markBroken super.maxframe; - # upstream issue: missing file header - ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen; + magit = super.magit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - # upstream issue: missing file header - initsplit = super.initsplit; + magit-annex = super.magit-annex.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - # tries to write a log file to $HOME - insert-shebang = super.insert-shebang.overrideAttrs (attrs: { - HOME = "/tmp"; - }); + magit-todos = super.magit-todos.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - # Expects bash to be at /bin/bash - ivy-rtags = markBroken super.ivy-rtags; + magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - # upstream issue: missing file header - jsfmt = markBroken super.jsfmt; + magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - # upstream issue: missing file header - maxframe = markBroken super.maxframe; + magithub = super.magithub.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - magit = - super.magit.overrideAttrs (attrs: { + magit-svn = super.magit-svn.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); - magit-annex = super.magit-annex.overrideAttrs (attrs: { + kubernetes = super.kubernetes.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); - magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # upstream issue: missing file header + mhc = super.mhc.override { + inherit (self.melpaPackages) calfw; + }; - magithub = super.magithub.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # missing .NET + nemerle = markBroken super.nemerle; - magit-svn = super.magit-svn.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # part of a larger package + notmuch = dontConfigure super.notmuch; - magit-todos = super.magit-todos.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # missing OCaml + ocp-indent = markBroken super.ocp-indent; - magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # upstream issue: missing file header + qiita = markBroken super.qiita; - mhc = super.mhc.override { - inherit (self.melpaPackages) calfw; - }; + # upstream issue: missing file header + speech-tagger = markBroken super.speech-tagger; - # missing .NET - nemerle = markBroken super.nemerle; + shm = super.shm.overrideAttrs (attrs: { + propagatedUserEnvPkgs = [ external.structured-haskell-mode ]; + }); - # part of a larger package - notmuch = dontConfigure super.notmuch; + # upstream issue: missing file header + tawny-mode = markBroken super.tawny-mode; - # missing OCaml - ocp-indent = markBroken super.ocp-indent; + # upstream issue: missing file header + textmate = markBroken super.textmate; - orgit = - (super.orgit.overrideAttrs (attrs: { - # searches for Git at build time + # missing OCaml + utop = markBroken super.utop; + + vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: { nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ external.git ]; - })); + }); - # tries to write to $HOME - php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: { - HOME = "/tmp"; - }); + # upstream issue: missing file header + voca-builder = markBroken super.voca-builder; - # upstream issue: mismatched filename - processing-snippets = markBroken super.processing-snippets; + # upstream issue: missing file header + window-numbering = markBroken super.window-numbering; - # upstream issue: missing file header - qiita = markBroken super.qiita; + vterm = let + emacsSources = pkgs.stdenv.mkDerivation { + name = self.emacs.name + "-sources"; + src = self.emacs.src; - racer = super.racer.overrideAttrs (attrs: { - postPatch = attrs.postPatch or "" + '' - substituteInPlace racer.el \ - --replace /usr/local/src/rust/src ${external.rustPlatform.rustcSrc} - ''; - }); + dontConfigure = true; + dontBuild = true; + doCheck = false; + fixupPhase = ":"; - # upstream issue: missing file footer - seoul256-theme = markBroken super.seoul256-theme; + 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 + ''; + }); - spaceline = super.spaceline.override { - inherit (self.melpaPackages) powerline; + # 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+"; }; - # upstream issue: missing file header - speech-tagger = markBroken super.speech-tagger; + stable = shared // { + # part of a larger package + # upstream issue: missing package version + cmake-mode = markBroken (dontConfigure super.cmake-mode); - # upstream issue: missing file header - stgit = markBroken super.stgit; + # upstream issue: missing file header + connection = markBroken super.connection; - # upstream issue: missing file header - tawny-mode = markBroken super.tawny-mode; + # upstream issue: missing file header + dictionary = markBroken super.dictionary; - # upstream issue: missing file header - textmate = markBroken super.textmate; + # missing git + egg = markBroken super.egg; - treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # 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; - # missing OCaml - utop = markBroken super.utop; + # upstream issue: missing file header + link = markBroken super.link; - vdiff-magit = - (super.vdiff-magit.overrideAttrs (attrs: { + # 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 ]; - })); + }); - # upstream issue: missing file header - voca-builder = markBroken super.voca-builder; + # missing dependencies + evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: { + packageRequires = with self; [ evil highlight ]; + }); - # upstream issue: missing file header - window-numbering = markBroken super.window-numbering; - - w3m = super.w3m.override (args: { - melpaBuild = drv: args.melpaBuild (drv // { - prePatch = - let w3m = "${lib.getBin external.w3m}/bin/w3m"; in '' - substituteInPlace w3m.el \ - --replace 'defcustom w3m-command nil' \ - 'defcustom w3m-command "${w3m}"' - ''; + forge = super.forge.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; }); - }); - # 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+"; + # 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; + }; + }); + + orgit = + (super.orgit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + })); + + # tries to write to $HOME + php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: { + HOME = "/tmp"; + }); + + # upstream issue: mismatched filename + processing-snippets = markBroken super.processing-snippets; + + racer = super.racer.overrideAttrs (attrs: { + postPatch = attrs.postPatch or "" + '' + substituteInPlace racer.el \ + --replace /usr/local/src/rust/src ${external.rustPlatform.rustcSrc} + ''; + }); + + # upstream issue: missing file footer + seoul256-theme = markBroken super.seoul256-theme; + + spaceline = super.spaceline.override { + inherit (self.melpaPackages) powerline; + }; + + treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + w3m = super.w3m.override (args: { + melpaBuild = drv: args.melpaBuild (drv // { + prePatch = + let w3m = "${lib.getBin external.w3m}/bin/w3m"; in '' + substituteInPlace w3m.el \ + --replace 'defcustom w3m-command nil' \ + 'defcustom w3m-command "${w3m}"' + ''; + }); + }); + }; }; - 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 { } diff --git a/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix deleted file mode 100644 index 8f52f2d3489..00000000000 --- a/pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix +++ /dev/null @@ -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; } diff --git a/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix b/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix deleted file mode 100644 index e0057fd30ce..00000000000 --- a/pkgs/applications/editors/emacs-modes/nyan-mode/default.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch b/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch deleted file mode 100644 index b471531ec34..00000000000 --- a/pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch +++ /dev/null @@ -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) - diff --git a/pkgs/applications/editors/emacs-modes/org-packages.nix b/pkgs/applications/editors/emacs-modes/org-packages.nix index 46b90a52a09..d3ad7fa4093 100644 --- a/pkgs/applications/editors/emacs-modes/org-packages.nix +++ b/pkgs/applications/editors/emacs-modes/org-packages.nix @@ -28,4 +28,4 @@ self: orgPackages = super // overrides; - in orgPackages // { inherit orgPackages; } + in orgPackages diff --git a/pkgs/applications/editors/emacs-modes/redshank/default.nix b/pkgs/applications/editors/emacs-modes/redshank/default.nix deleted file mode 100644 index e03d2fdc90f..00000000000 --- a/pkgs/applications/editors/emacs-modes/redshank/default.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/stgit/default.nix b/pkgs/applications/editors/emacs-modes/stgit/default.nix deleted file mode 100644 index b615accd721..00000000000 --- a/pkgs/applications/editors/emacs-modes/stgit/default.nix +++ /dev/null @@ -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; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/update-melpa b/pkgs/applications/editors/emacs-modes/update-melpa index 2b2af5cb2bb..5c636416a5e 100755 --- a/pkgs/applications/editors/emacs-modes/update-melpa +++ b/pkgs/applications/editors/emacs-modes/update-melpa @@ -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 "$@" diff --git a/pkgs/applications/editors/emacs-modes/updater-emacs.nix b/pkgs/applications/editors/emacs-modes/updater-emacs.nix index b64a410e7b4..c7e858078e6 100644 --- a/pkgs/applications/editors/emacs-modes/updater-emacs.nix +++ b/pkgs/applications/editors/emacs-modes/updater-emacs.nix @@ -1,29 +1,40 @@ -with import ../../../.. {}; -(emacsPackagesNgFor emacs26). -emacsWithPackages (epkgs: let - promise = epkgs.trivialBuild { - pname = "promise"; - version = "1"; - src = fetchFromGitHub { - owner = "bendlas"; - repo = "emacs-promise"; - rev = "4da97087c5babbd8429b5ce62a8323b9b03c6022"; - sha256 = "0yin7kj69g4zxs30pvk47cnfygxlaw7jc7chr3b36lz51yqczjsy"; - +let + pkgs = import ../../../.. {}; + + emacsEnv = (pkgs.emacsPackagesNgFor pkgs.emacs26).emacsWithPackages (epkgs: let + + promise = epkgs.trivialBuild { + pname = "promise"; + version = "1"; + src = pkgs.fetchFromGitHub { + owner = "bendlas"; + repo = "emacs-promise"; + rev = "4da97087c5babbd8429b5ce62a8323b9b03c6022"; + sha256 = "0yin7kj69g4zxs30pvk47cnfygxlaw7jc7chr3b36lz51yqczjsy"; + }; }; - }; - semaphore = epkgs.trivialBuild { - pname = "semaphore"; - version = "1"; - packageRequires = [ promise ]; - src = fetchFromGitHub { - owner = "webnf"; - repo = "semaphore.el"; - rev = "93802cb093073bc6a6ccd797328dafffcef248e0"; - sha256 = "09pfyp27m35sv340xarhld7xx2vv5fs5xj4418709iw6l6hpk853"; - + + semaphore = epkgs.trivialBuild { + pname = "semaphore"; + version = "1"; + packageRequires = [ promise ]; + 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 + ]; +} |