From 891122697121ac52a250bcfca891fd2bd4b19c70 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sat, 3 Aug 2019 20:42:26 +0100 Subject: [PATCH 01/20] emacs-packages: Allow update script to be called from any location Previously working directory was important --- .../editors/emacs-modes/update-melpa | 8 +-- .../editors/emacs-modes/updater-emacs.nix | 65 +++++++++++-------- 2 files changed, 41 insertions(+), 32 deletions(-) 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 + ]; +} From 47d3b98b4b3f52e862fe62186ec5dcbb0a233202 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sat, 3 Aug 2019 20:48:11 +0100 Subject: [PATCH 02/20] melpa-packages: Add ability to ovveride melpa JSON archive location This enables using the melpa json generator in an overlay --- .../editors/emacs-modes/melpa-packages.nix | 524 ++++++++++-------- .../emacs-modes/melpa-stable-packages.nix | 235 -------- pkgs/top-level/emacs-packages.nix | 30 +- 3 files changed, 302 insertions(+), 487 deletions(-) delete mode 100644 pkgs/applications/editors/emacs-modes/melpa-stable-packages.nix diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 7f8ac548653..5f05d3b2695 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -12,124 +12,115 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac */ -{ lib, external }: +{ lib, external }: variant: self: let -self: + dontConfigure = pkg: if pkg != null then pkg.override (args: { + melpaBuild = drv: args.melpaBuild (drv // { + configureScript = "true"; + }); + }) else null; + + markBroken = pkg: if pkg != null then pkg.override (args: { + melpaBuild = drv: args.melpaBuild (drv // { + meta = (drv.meta or {}) // { broken = true; }; + }); + }) else null; + + generateMelpa = lib.makeOverridable ({ + archiveJson ? ./recipes-archive-melpa.json + }: let - 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 - ]; + super = lib.listToAttrs (map (melpaDerivation variant) (lib.importJSON archiveJson)); - dontConfigure = pkg: pkg.override (args: { - melpaBuild = drv: args.melpaBuild (drv // { - configureScript = "true"; - }); - }); + generic = import ./melpa-generic.nix; - markBroken = pkg: pkg.override (args: { - melpaBuild = drv: args.melpaBuild (drv // { - meta = (drv.meta or {}) // { broken = true; }; - }); - }); + overrides = rec { + shared = { + # Expects bash to be at /bin/bash + ac-rtags = markBroken super.ac-rtags; - 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: mismatched filename - ack-menu = markBroken super.ack-menu; + # upstream issue: missing file header + bufshow = markBroken super.bufshow; - airline-themes = super.airline-themes.override { - inherit (self.melpaPackages) powerline; - }; + # part of a larger package + caml = dontConfigure super.caml; - # upstream issue: missing file header - bufshow = markBroken super.bufshow; + # Expects bash to be at /bin/bash + company-rtags = markBroken super.company-rtags; - # part of a larger package - caml = dontConfigure super.caml; + easy-kill-extras = super.easy-kill-extras.override { + inherit (self.melpaPackages) easy-kill; + }; - # Expects bash to be at /bin/bash - company-rtags = markBroken super.company-rtags; + # upstream issue: missing file header + elmine = markBroken super.elmine; - easy-kill-extras = super.easy-kill-extras.override { - inherit (self.melpaPackages) easy-kill; - }; + evil-magit = super.evil-magit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - editorconfig = super.editorconfig.overrideAttrs (attrs: { - propagatedUserEnvPkgs = [ external.editorconfig-core-c ]; - }); + ess-R-data-view = super.ess-R-data-view.override { + inherit (self.melpaPackages) ess ctable popup; + }; - egg = super.egg.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); + # Expects bash to be at /bin/bash + flycheck-rtags = markBroken super.flycheck-rtags; - # upstream issue: missing file header - elmine = markBroken super.elmine; + # build timeout + graphene = markBroken super.graphene; - ess-R-data-view = super.ess-R-data-view.override { - inherit (self.melpaPackages) ess ctable popup; - }; + # 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 ]; + }); - evil-magit = super.evil-magit.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; - # missing dependencies - evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: { - packageRequires = with self; [ evil highlight ]; - }); + # upstream issue: missing file header + initsplit = markBroken super.initsplit; - # Expects bash to be at /bin/bash - flycheck-rtags = markBroken super.flycheck-rtags; + # tries to write a log file to $HOME + insert-shebang = super.insert-shebang.overrideAttrs (attrs: { + HOME = "/tmp"; + }); - forge = super.forge.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; - # build timeout - graphene = markBroken super.graphene; + # upstream issue: missing file header + jsfmt = markBroken super.jsfmt; - # upstream issue: mismatched filename - helm-lobsters = markBroken super.helm-lobsters; + # upstream issue: missing file header + maxframe = markBroken super.maxframe; - # Expects bash to be at /bin/bash - helm-rtags = markBroken super.helm-rtags; + magit = super.magit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); - # 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 ]; - }); + magit-todos = super.magit-todos.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 = super.initsplit; - - # tries to write a log file to $HOME - insert-shebang = super.insert-shebang.overrideAttrs (attrs: { - HOME = "/tmp"; - }); - - # Expects bash to be at /bin/bash - ivy-rtags = markBroken super.ivy-rtags; - - # upstream issue: missing file header - jsfmt = markBroken super.jsfmt; + 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 @@ -138,169 +129,224 @@ 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; + + # 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+"; + }; + + 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 ]; }); - magit-annex = super.magit-annex.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 ]; + }); - magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); - - magithub = super.magithub.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); - - magit-svn = super.magit-svn.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 ]; - }); - - 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: { + forge = super.forge.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 + helm-lobsters = markBroken super.helm-lobsters; - # upstream issue: mismatched filename - processing-snippets = markBroken super.processing-snippets; + # Expects bash to be at /bin/bash + helm-rtags = markBroken super.helm-rtags; - # upstream issue: missing file header - qiita = markBroken super.qiita; - - 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; - }; - - # 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: { + magit-annex = super.magit-annex.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; - - # 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}"' - ''; }); - }); - # 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+"; + magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + magithub = super.magithub.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + magit-svn = super.magit-svn.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or []) ++ [ external.git ]; + }); + + 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/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index e1b93954448..23e00708949 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -49,13 +49,18 @@ let inherit lib stdenv texinfo; }; - melpaStablePackages = import ../applications/editors/emacs-modes/melpa-stable-packages.nix { + # Contains both melpa stable & unstable + melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix { inherit external lib; }; - melpaPackages = import ../applications/editors/emacs-modes/melpa-packages.nix { - inherit external lib; - }; + melpaStablePackages = self: let + m = melpaGeneric "stable" self; + in {melpaStablePackages = m;} // m; + + melpaPackages = self: let + m = melpaGeneric "unstable" self; + in {melpaPackages = m;} // m; orgPackages = import ../applications/editors/emacs-modes/org-packages.nix { }; @@ -455,12 +460,11 @@ let }; -in - lib.makeScope newScope (self: - {} - // elpaPackages self - // melpaStablePackages self - // melpaPackages self - // orgPackages self - // packagesFun self - ) +in lib.makeScope newScope (self: + removeAttrs ({} + // elpaPackages self + // melpaStablePackages self + // melpaPackages self + // orgPackages self + // packagesFun self) [ "override" "overrideDerivation" ] +) From b88c30579a16499ad76ebc333e5d9df625aef854 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sat, 3 Aug 2019 22:55:20 +0100 Subject: [PATCH 03/20] emacs-packages.nix: Fix indent --- pkgs/top-level/emacs-packages.nix | 674 +++++++++++++++--------------- 1 file changed, 337 insertions(+), 337 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 23e00708949..900cd3e01ca 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -70,393 +70,393 @@ let packagesFun = self: with self; { - inherit emacs melpaBuild trivialBuild; + inherit emacs melpaBuild trivialBuild; - emacsWithPackages = emacsWithPackages self; + emacsWithPackages = emacsWithPackages self; - ## START HERE + ## START HERE - pdf-tools = melpaBuild rec { - pname = "pdf-tools"; - version = "0.90"; - src = fetchFromGitHub { - owner = "politza"; - repo = "pdf-tools"; - rev = "v${version}"; - sha256 = "0iv2g5kd14zk3r5dzdw7b7hk4b5w7qpbilcqkja46jgxbb6xnpl9"; + 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; + }; }; - 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 { + 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. + }; + buildInputs = [ external.libffi ]; + preBuild = "make"; + recipe = writeText "recipe" '' + (elisp-ffi + :repo "skeeto/elisp-ffi" + :fetcher github + :files ("ffi-glue" "ffi.el")) ''; - license = publicDomain; + 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; + agda2-mode = with external; trivialBuild { + pname = "agda-mode"; + version = Agda.version; - phases = [ "buildPhase" "installPhase" ]; + 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. + # already byte-compiled by Agda builder + buildPhase = '' + agda=`${Agda}/bin/agda-mode locate` + cp `dirname $agda`/*.el* . ''; - homepage = Agda.meta.homepage; - license = Agda.meta.license; + + 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. + 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 ''; - license = gpl3Plus; + stripDebugList = [ "share" ]; + packageRequires = [ emacs emacsql ]; + meta = { + homepage = "https://melpa.org/#/emacsql-sqlite"; + license = lib.licenses.free; + }; }; - }; - emacs-libvterm = callPackage ../applications/editors/emacs-modes/emacs-libvterm { }; + 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) + ''; - evil-jumper = melpaBuild rec { - pname = "evil-jumper"; - version = "20151017"; - src = fetchFromGitHub { - owner = "bling"; - repo = pname; - rev = "fcadf2d93aaea3ba88a2ae63a860b9c1f0568167"; - sha256 = "0axx6cc9z9c1wh7qgm6ya54dsp3bn82bnb0cwj1rpv509qqmwgsj"; + 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; + }; }; - 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; + + 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 { }; + ess-R-object-popup = + callPackage ../applications/editors/emacs-modes/ess-R-object-popup { }; - filesets-plus = callPackage ../applications/editors/emacs-modes/filesets-plus { }; + filesets-plus = callPackage ../applications/editors/emacs-modes/filesets-plus { }; - font-lock-plus = callPackage ../applications/editors/emacs-modes/font-lock-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; + 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"; + 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; + }; }; - 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; + }; }; - }; - hexrgb = callPackage ../applications/editors/emacs-modes/hexrgb { }; + redshank = callPackage ../applications/editors/emacs-modes/redshank { }; - header2 = callPackage ../applications/editors/emacs-modes/header2 { }; + rtags = melpaBuild rec { + pname = "rtags"; + version = "2.12"; + src = external.rtags.src; - helm-words = callPackage ../applications/editors/emacs-modes/helm-words { }; + dontConfigure = true; - 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"; + propagatedUserEnvPkgs = [ external.rtags ]; + recipe = writeText "recipe" '' + (rtags + :repo "andersbakken/rtags" :fetcher github + :files ("src/*.el")) + ''; + inherit (external.rtags) meta; }; - recipe = fetchurl { - url = "https://raw.githubusercontent.com/milkypostman/melpa/3cfa28c7314fa57fa9a3aaaadf9ef83f8ae541a9/recipes/irony"; - sha256 = "1xcxrdrs7imi31nxpszgpaywq4ivni75hrdl4zzrf103xslqpl8a"; - name = "recipe"; + + 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; + }; }; - 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; + + 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; + }; }; - }; - 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; + nyan-mode = callPackage ../applications/editors/emacs-modes/nyan-mode { + inherit lib; }; - }; - lib-requires = - callPackage ../applications/editors/emacs-modes/lib-requires { }; + org-mac-link = + callPackage ../applications/editors/emacs-modes/org-mac-link { }; - 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; + 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; + }; }; - }; - nyan-mode = callPackage ../applications/editors/emacs-modes/nyan-mode { - inherit lib; - }; + stgit = callPackage ../applications/editors/emacs-modes/stgit { }; - org-mac-link = - callPackage ../applications/editors/emacs-modes/org-mac-link { }; + structured-haskell-mode = self.shm; + shm = (melpaPackages self).shm.overrideAttrs (attrs: { + propagatedUserEnvPkgs = [ external.structured-haskell-mode ]; + }); - perl-completion = - callPackage ../applications/editors/emacs-modes/perl-completion { }; + thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { }; - railgun = callPackage ../applications/editors/emacs-modes/railgun { }; + tramp = callPackage ../applications/editors/emacs-modes/tramp { }; - gn = callPackage ../applications/editors/emacs-modes/gn { }; + yaoddmuse = callPackage ../applications/editors/emacs-modes/yaoddmuse { }; - 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; + 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; + }; }; - }; - - 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; - }; - }; }; From 6742c9976a57c1bca1a427b02a6c02f3b744068b Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 02:26:52 +0100 Subject: [PATCH 04/20] emacs-packages: Move shm Use autogenerated modules from melpa instead --- pkgs/applications/editors/emacs-modes/melpa-packages.nix | 4 ++++ pkgs/top-level/emacs-packages.nix | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 5f05d3b2695..c44f302044c 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -151,6 +151,10 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: missing file header stgit = markBroken super.stgit; + shm = super.shm.overrideAttrs (attrs: { + propagatedUserEnvPkgs = [ external.structured-haskell-mode ]; + }); + # upstream issue: missing file header tawny-mode = markBroken super.tawny-mode; diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 900cd3e01ca..920f6757f60 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -410,9 +410,6 @@ let 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 { }; From 1fc89fcad83568ab947f634198b5d1add102fec3 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 02:28:27 +0100 Subject: [PATCH 05/20] emacs-packages: Drop manually created nyan-mode derivation Use autogenerated modules from melpa instead --- .../editors/emacs-modes/nyan-mode/default.nix | 30 ------------------- .../emacs-modes/nyan-mode/directory.patch | 13 -------- pkgs/top-level/emacs-packages.nix | 4 --- 3 files changed, 47 deletions(-) delete mode 100644 pkgs/applications/editors/emacs-modes/nyan-mode/default.nix delete mode 100644 pkgs/applications/editors/emacs-modes/nyan-mode/directory.patch 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/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 920f6757f60..69f4fa66d16 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -380,10 +380,6 @@ let }; }; - nyan-mode = callPackage ../applications/editors/emacs-modes/nyan-mode { - inherit lib; - }; - org-mac-link = callPackage ../applications/editors/emacs-modes/org-mac-link { }; From 20ff3edcfa1875f9ab7cd75d0354344e274b2dd9 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 02:39:10 +0100 Subject: [PATCH 06/20] emacs-packages: Drop stgit Use autogenerated modules from melpa instead --- .../editors/emacs-modes/melpa-packages.nix | 3 --- .../editors/emacs-modes/stgit/default.nix | 25 ------------------- pkgs/top-level/emacs-packages.nix | 2 -- 3 files changed, 30 deletions(-) delete mode 100644 pkgs/applications/editors/emacs-modes/stgit/default.nix diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index c44f302044c..f548b3372b8 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -148,9 +148,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: missing file header speech-tagger = markBroken super.speech-tagger; - # upstream issue: missing file header - stgit = markBroken super.stgit; - shm = super.shm.overrideAttrs (attrs: { propagatedUserEnvPkgs = [ external.structured-haskell-mode ]; }); 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/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 69f4fa66d16..278ada87e44 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -403,8 +403,6 @@ let }; }; - stgit = callPackage ../applications/editors/emacs-modes/stgit { }; - structured-haskell-mode = self.shm; thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { }; From 334d3d90f6043274838b6aa996fde9d3f939df78 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 16:07:51 +0100 Subject: [PATCH 07/20] emacsPackagesNg.evil-jumper: Drop package It's now merged upstream in evil-mode --- pkgs/top-level/emacs-packages.nix | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 278ada87e44..17c0ea50a64 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -222,25 +222,6 @@ let 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 { }; From 843eae6a51c874bbdf4c70af51168673c9aeeb63 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 16:11:56 +0100 Subject: [PATCH 08/20] emacs-packages: Drop emacsql-sqlite package Use melpa generated package instead --- pkgs/top-level/emacs-packages.nix | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 17c0ea50a64..413090ce5b6 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -152,33 +152,6 @@ let }; }; - 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; From 6551f2aa5b9559566913697512524efcb2a98c3b Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 16:14:55 +0100 Subject: [PATCH 09/20] emacs-packages: Drop lcs package It's in the melpa generated package `circe` --- pkgs/top-level/emacs-packages.nix | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 413090ce5b6..4916a226be5 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -304,19 +304,6 @@ let 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 { }; From 1236d2d7f53f049a0068477b69baffccf0026077 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 16:15:38 +0100 Subject: [PATCH 10/20] emacs-packages: Drop package `lui` It's in the melpa generated package `circe` --- pkgs/top-level/emacs-packages.nix | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 4916a226be5..32fe0085e4b 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -307,20 +307,6 @@ let 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; - }; - }; - org-mac-link = callPackage ../applications/editors/emacs-modes/org-mac-link { }; From 7d1c5e84caf3a9bd11981daca014586823a54e49 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 16:17:04 +0100 Subject: [PATCH 11/20] emacs-packages: Drop `redshank` package Use melpa generated package instead --- .../editors/emacs-modes/redshank/default.nix | 23 ------------------- pkgs/top-level/emacs-packages.nix | 2 -- 2 files changed, 25 deletions(-) delete mode 100644 pkgs/applications/editors/emacs-modes/redshank/default.nix 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/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 32fe0085e4b..30adef9ff79 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -286,8 +286,6 @@ let }; }; - redshank = callPackage ../applications/editors/emacs-modes/redshank { }; - rtags = melpaBuild rec { pname = "rtags"; version = "2.12"; From 48428ce6ec77bc1eba0064e8e5675848bcbf1c82 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 16:18:01 +0100 Subject: [PATCH 12/20] emacs-packages: Drop `shorten` package It's in the melpa generated package `circe` --- pkgs/top-level/emacs-packages.nix | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 30adef9ff79..3b299502fb4 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -315,19 +315,6 @@ let 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; - }; - }; - structured-haskell-mode = self.shm; thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { }; From f7627be84404b4abcf76209e0036506dffb03259 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 17:55:15 +0100 Subject: [PATCH 13/20] emacs-packages: Drop manually packaged pdf-tools Use autogenerated package from melpa --- .../editors/emacs-modes/melpa-packages.nix | 13 ++++++++- pkgs/top-level/all-packages.nix | 2 +- pkgs/top-level/emacs-packages.nix | 27 ++----------------- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index f548b3372b8..9d9134e51a9 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -12,7 +12,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac */ -{ lib, external }: variant: self: let +{ lib, external, pkgs }: variant: self: let dontConfigure = pkg: if pkg != null then pkg.override (args: { melpaBuild = drv: args.melpaBuild (drv // { @@ -76,6 +76,17 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # 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")) + ''; + }); + # Build same version as Haskell package hindent = super.hindent.overrideAttrs (attrs: { version = external.hindent.version; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 25515fe593c..cf7ba86af89 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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; diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 3b299502fb4..5547e01cd15 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -39,6 +39,7 @@ , melpaBuild , external +, pkgs }: with lib.licenses; @@ -51,7 +52,7 @@ let # Contains both melpa stable & unstable melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix { - inherit external lib; + inherit external lib pkgs; }; melpaStablePackages = self: let @@ -76,30 +77,6 @@ let ## 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"; From 460e02a9c013697092d37ba86ed201d2bac8a3c2 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 19:08:35 +0100 Subject: [PATCH 14/20] emacs-packages: Drop zmq package Use generated melpa package instead --- .../editors/emacs-modes/melpa-packages.nix | 16 +++++++++ pkgs/top-level/emacs-packages.nix | 36 ------------------- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 9d9134e51a9..f8ef53e6d21 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -183,6 +183,22 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: missing file header window-numbering = markBroken super.window-numbering; + 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"; diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 5547e01cd15..9a232c6899d 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -302,42 +302,6 @@ let 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: From b00038c151846bb367ad55636bb1bed8627df520 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 19:21:15 +0100 Subject: [PATCH 15/20] emacs-packages: Drop emacs-libvterm package Use auto-generated melpa package --- .../emacs-modes/emacs-libvterm/default.nix | 57 ------------------- .../editors/emacs-modes/melpa-packages.nix | 49 ++++++++++++++++ pkgs/top-level/emacs-packages.nix | 2 - 3 files changed, 49 insertions(+), 59 deletions(-) delete mode 100644 pkgs/applications/editors/emacs-modes/emacs-libvterm/default.nix 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/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index f8ef53e6d21..43086bbd1e6 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -183,6 +183,55 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # 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 = '' diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 9a232c6899d..22ce1d9120b 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -170,8 +170,6 @@ let }; }; - emacs-libvterm = callPackage ../applications/editors/emacs-modes/emacs-libvterm { }; - ess-R-object-popup = callPackage ../applications/editors/emacs-modes/ess-R-object-popup { }; From af70adbc892e0b1c548cffa4a05749085dce2cbf Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 19:36:57 +0100 Subject: [PATCH 16/20] emacs-packages: Drop elpy package Use auto-generated melpa package --- .../editors/emacs-modes/melpa-packages.nix | 4 ++ pkgs/top-level/emacs-packages.nix | 41 ------------------- 2 files changed, 4 insertions(+), 41 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 43086bbd1e6..47cc7ce1c64 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -60,6 +60,10 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: missing file header elmine = markBroken super.elmine; + elpy = super.elpy.overrideAttrs(old: { + propagatedUserEnvPkgs = old.propagatedUserEnvPkgs ++ [ external.elpy ]; + }); + evil-magit = super.evil-magit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 22ce1d9120b..95a3a7d34f4 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -129,47 +129,6 @@ let }; }; - 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; - }; - }; - ess-R-object-popup = callPackage ../applications/editors/emacs-modes/ess-R-object-popup { }; From 978b34622bccce24f179ffaf4475544dbe2e61dd Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 20:53:10 +0100 Subject: [PATCH 17/20] emacs-packages: Drop irony package Use auto-generated melpa package --- .../editors/emacs-modes/melpa-packages.nix | 28 +++++++++++++ pkgs/top-level/emacs-packages.nix | 39 ------------------- 2 files changed, 28 insertions(+), 39 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 47cc7ce1c64..920572198d0 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -105,6 +105,27 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # 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 ]; + }); + # tries to write a log file to $HOME insert-shebang = super.insert-shebang.overrideAttrs (attrs: { HOME = "/tmp"; @@ -356,6 +377,13 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # 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 = diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 95a3a7d34f4..2b9e21ac13b 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -181,45 +181,6 @@ let 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; - }; - }; - rtags = melpaBuild rec { pname = "rtags"; version = "2.12"; From d490bcdf0fb5f02499cce77a6b862a4a5ea616a2 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 20:57:42 +0100 Subject: [PATCH 18/20] emacs-packages.rtags: Inherit correct version --- pkgs/top-level/emacs-packages.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 2b9e21ac13b..5732e47bf9c 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -182,9 +182,9 @@ let icicles = callPackage ../applications/editors/emacs-modes/icicles { }; rtags = melpaBuild rec { + inherit (external.rtags) version src meta; + pname = "rtags"; - version = "2.12"; - src = external.rtags.src; dontConfigure = true; @@ -194,7 +194,6 @@ let :repo "andersbakken/rtags" :fetcher github :files ("src/*.el")) ''; - inherit (external.rtags) meta; }; lib-requires = From 97a069609f16f64a7291933d56d4c5818f4a0e00 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 4 Aug 2019 21:44:07 +0100 Subject: [PATCH 19/20] emacs-packages: Add overriding capability to emacsPackagesNg This allows overriding the individual package sets composing emacsPackagesNg. Example: ``` myEmacsPackages = emacsPackagesNg.override { melpaPackages = {}; }; ``` --- .../editors/emacs-modes/elpa-packages.nix | 2 +- .../editors/emacs-modes/org-packages.nix | 2 +- pkgs/top-level/emacs-packages.nix | 47 +++++++++---------- 3 files changed, 24 insertions(+), 27 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/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/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 5732e47bf9c..f8484793299 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -46,7 +46,7 @@ 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; }; @@ -54,28 +54,16 @@ let melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix { inherit external lib pkgs; }; + mkMelpaStablePackages = melpaGeneric "stable"; + mkMelpaPackages = melpaGeneric "unstable"; - melpaStablePackages = self: let - m = melpaGeneric "stable" self; - in {melpaStablePackages = m;} // m; - - melpaPackages = self: let - m = melpaGeneric "unstable" self; - in {melpaPackages = m;} // m; - - 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; { - - inherit emacs melpaBuild trivialBuild; - - emacsWithPackages = emacsWithPackages self; - - ## START HERE + mkManualPackages = self: with self; { elisp-ffi = melpaBuild rec { pname = "elisp-ffi"; @@ -221,11 +209,20 @@ let }; -in lib.makeScope newScope (self: - removeAttrs ({} - // elpaPackages self - // melpaStablePackages self - // melpaPackages self - // orgPackages self - // packagesFun self) [ "override" "overrideDerivation" ] -) +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; + }) +) {}) From be74dec846743ab56072903738adf9657343da54 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 5 Aug 2019 00:26:29 +0100 Subject: [PATCH 20/20] emacs-packages: Move manually created packages to it's own file And let emacs-packages.nix only aggregate the attrsets --- .../editors/emacs-modes/manual-packages.nix | 145 +++++++++++++++++ pkgs/top-level/emacs-packages.nix | 148 +----------------- 2 files changed, 147 insertions(+), 146 deletions(-) create mode 100644 pkgs/applications/editors/emacs-modes/manual-packages.nix diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix new file mode 100644 index 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/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index f8484793299..5719c5a74fe 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -42,8 +42,6 @@ , pkgs }: -with lib.licenses; - let mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix { @@ -63,150 +61,8 @@ let inherit lib lndir makeWrapper stdenv runCommand; }; - mkManualPackages = self: with self; { - - elisp-ffi = melpaBuild rec { - pname = "elisp-ffi"; - version = "1.0.0"; - src = fetchFromGitHub { - owner = "skeeto"; - repo = "elisp-ffi"; - rev = "${version}"; - sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22"; - }; - buildInputs = [ external.libffi ]; - preBuild = "make"; - recipe = writeText "recipe" '' - (elisp-ffi - :repo "skeeto/elisp-ffi" - :fetcher github - :files ("ffi-glue" "ffi.el")) - ''; - meta = { - description = "Emacs Lisp Foreign Function Interface"; - longDescription = '' - This library provides an FFI for Emacs Lisp so that Emacs - programs can invoke functions in native libraries. It works by - driving a subprocess to do the heavy lifting, passing result - values on to Emacs. - ''; - license = publicDomain; - }; - }; - - agda2-mode = with external; trivialBuild { - pname = "agda-mode"; - version = Agda.version; - - phases = [ "buildPhase" "installPhase" ]; - - # already byte-compiled by Agda builder - buildPhase = '' - agda=`${Agda}/bin/agda-mode locate` - cp `dirname $agda`/*.el* . - ''; - - meta = { - description = "Agda2-mode for Emacs extracted from Agda package"; - longDescription = '' - Wrapper packages that liberates init.el from `agda-mode locate` magic. - Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el. - ''; - homepage = Agda.meta.homepage; - license = Agda.meta.license; - }; - }; - - ess-R-object-popup = - callPackage ../applications/editors/emacs-modes/ess-R-object-popup { }; - - filesets-plus = callPackage ../applications/editors/emacs-modes/filesets-plus { }; - - font-lock-plus = callPackage ../applications/editors/emacs-modes/font-lock-plus { }; - - ghc-mod = melpaBuild rec { - pname = "ghc"; - version = external.ghc-mod.version; - src = external.ghc-mod.src; - packageRequires = [ haskell-mode ]; - propagatedUserEnvPkgs = [ external.ghc-mod ]; - recipe = writeText "recipe" '' - (ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el")) - ''; - fileSpecs = [ "elisp/*.el" ]; - meta = { - description = "An extension of haskell-mode that provides completion of symbols and documentation browsing"; - license = bsd3; - }; - }; - - haskell-unicode-input-method = melpaBuild rec { - pname = "emacs-haskell-unicode-input-method"; - version = "20110905.2307"; - src = fetchFromGitHub { - owner = "roelvandijk"; - repo = "emacs-haskell-unicode-input-method"; - rev = "d8d168148c187ed19350bb7a1a190217c2915a63"; - sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78"; - }; - recipe = writeText "recipe" '' - (haskell-unicode-input-method - :repo "roelvandijk/emacs-haskell-unicode-input-method" - :fetcher github) - ''; - packageRequires = []; - meta = { - homepage = "https://melpa.org/#haskell-unicode-input-method/"; - license = lib.licenses.free; - }; - }; - - hexrgb = callPackage ../applications/editors/emacs-modes/hexrgb { }; - - header2 = callPackage ../applications/editors/emacs-modes/header2 { }; - - helm-words = callPackage ../applications/editors/emacs-modes/helm-words { }; - - icicles = callPackage ../applications/editors/emacs-modes/icicles { }; - - rtags = melpaBuild rec { - inherit (external.rtags) version src meta; - - pname = "rtags"; - - dontConfigure = true; - - propagatedUserEnvPkgs = [ external.rtags ]; - recipe = writeText "recipe" '' - (rtags - :repo "andersbakken/rtags" :fetcher github - :files ("src/*.el")) - ''; - }; - - lib-requires = - callPackage ../applications/editors/emacs-modes/lib-requires { }; - - org-mac-link = - callPackage ../applications/editors/emacs-modes/org-mac-link { }; - - perl-completion = - callPackage ../applications/editors/emacs-modes/perl-completion { }; - - railgun = callPackage ../applications/editors/emacs-modes/railgun { }; - - gn = callPackage ../applications/editors/emacs-modes/gn { }; - - structured-haskell-mode = self.shm; - - thingatpt-plus = callPackage ../applications/editors/emacs-modes/thingatpt-plus { }; - - tramp = callPackage ../applications/editors/emacs-modes/tramp { }; - - yaoddmuse = callPackage ../applications/editors/emacs-modes/yaoddmuse { }; - - zeitgeist = callPackage ../applications/editors/emacs-modes/zeitgeist { }; - + mkManualPackages = import ../applications/editors/emacs-modes/manual-packages.nix { + inherit external lib pkgs; }; in lib.makeScope newScope (self: lib.makeOverridable ({