diff options
Diffstat (limited to 'pkgs/applications/editors/emacs-modes/melpa-packages.nix')
-rw-r--r-- | pkgs/applications/editors/emacs-modes/melpa-packages.nix | 265 |
1 files changed, 142 insertions, 123 deletions
diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index 87da2079605f..f228d34a654e 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -10,44 +10,62 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackages.melpaPackages 3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json` -*/ - -{ lib, external, pkgs }: variant: self: let - - dontConfigure = pkg: if pkg != null then pkg.override (args: { - melpaBuild = drv: args.melpaBuild (drv // { - dontConfigure = 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; - - externalSrc = pkg : epkg : if pkg != null then pkg.override (args : { - melpaBuild = drv : args.melpaBuild (drv // { - inherit (epkg) src version; +## Update from overlay - propagatedUserEnvPkgs = [ epkg ]; - }); - }) else null; +Alternatively, run the following command: - fix-rtags = pkg : if pkg != null then dontConfigure (externalSrc pkg external.rtags) - else null; +./update-from-overlay - generateMelpa = lib.makeOverridable ({ - archiveJson ? ./recipes-archive-melpa.json - }: let +It will update both melpa and elpa packages using +https://github.com/nix-community/emacs-overlay. It's almost +instantenous and formats commits for you. - inherit (import ./libgenerated.nix lib self) melpaDerivation; - super = lib.listToAttrs (builtins.filter (s: s != null) - (map (melpaDerivation variant) - (lib.importJSON archiveJson))); +*/ - overrides = rec { - shared = rec { +{ lib, external, pkgs }: variant: self: +let + dontConfigure = pkg: + if pkg != null then pkg.override (args: { + melpaBuild = drv: args.melpaBuild (drv // { + dontConfigure = 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; + + externalSrc = pkg: epkg: + if pkg != null then pkg.override (args: { + melpaBuild = drv: args.melpaBuild (drv // { + inherit (epkg) src version; + + propagatedUserEnvPkgs = [ epkg ]; + }); + }) else null; + + fix-rtags = pkg: + if pkg != null then dontConfigure (externalSrc pkg external.rtags) + else null; + + generateMelpa = lib.makeOverridable ({ archiveJson ? ./recipes-archive-melpa.json + }: + let + inherit (import ./libgenerated.nix lib self) melpaDerivation; + super = ( + lib.listToAttrs (builtins.filter + (s: s != null) + (map + (melpaDerivation variant) + (lib.importJSON archiveJson) + ) + ) + ); + + overrides = { # Expects bash to be at /bin/bash ac-rtags = fix-rtags super.ac-rtags; @@ -55,12 +73,11 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac inherit (self.melpaPackages) powerline; }; - auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs(old: { + auto-complete-clang-async = super.auto-complete-clang-async.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ external.llvmPackages.llvm ]; CFLAGS = "-I${external.llvmPackages.clang}/include"; LDFLAGS = "-L${external.llvmPackages.clang}/lib"; }); - emacsClangCompleteAsync = auto-complete-clang-async; # part of a larger package caml = dontConfigure super.caml; @@ -75,7 +92,9 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac inherit (self.melpaPackages) easy-kill; }; - emacsql-sqlite = super.emacsql-sqlite.overrideAttrs(old: { + dune = dontConfigure super.dune; + + emacsql-sqlite = super.emacsql-sqlite.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ pkgs.sqlite ]; postBuild = '' @@ -104,26 +123,32 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac evil-magit = super.evil-magit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); eopengrok = super.eopengrok.overrideAttrs (attrs: { nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); ess-R-data-view = super.ess-R-data-view.override { inherit (self.melpaPackages) ess ctable popup; }; + forge = super.forge.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; + }); + flycheck-rtags = fix-rtags super.flycheck-rtags; gnuplot = super.gnuplot.overrideAttrs (old: { nativeBuildInputs = - (old.nativeBuildInputs or []) ++ [ pkgs.autoreconfHook ]; + (old.nativeBuildInputs or [ ]) ++ [ pkgs.autoreconfHook ]; }); - pdf-tools = super.pdf-tools.overrideAttrs(old: { + pdf-tools = super.pdf-tools.overrideAttrs (old: { nativeBuildInputs = [ external.pkgconfig ]; buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ]; preBuild = "make server/epdfinfo"; @@ -140,7 +165,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac }); irony = super.irony.overrideAttrs (old: { - cmakeFlags = old.cmakeFlags or [] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ]; + cmakeFlags = old.cmakeFlags or [ ] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ]; NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR"; preConfigure = '' cd server @@ -174,115 +199,115 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac magit = super.magit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-find-file = super.magit-find-file.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-gh-pulls = super.magit-gh-pulls.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-imerge = super.magit-imerge.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-lfs = super.magit-lfs.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-org-todos = super.magit-org-todos.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-stgit = super.magit-stgit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-tbdiff = super.magit-tbdiff.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-topgit = super.magit-topgit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-vcsh = super.magit-vcsh.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-gerrit = super.magit-gerrit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-annex = super.magit-annex.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-todos = super.magit-todos.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magithub = super.magithub.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-svn = super.magit-svn.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); kubernetes = super.kubernetes.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); kubernetes-evil = super.kubernetes-evil.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); # upstream issue: missing file header @@ -298,12 +323,14 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac rtags = dontConfigure (externalSrc super.rtags external.rtags); + rtags-xref = dontConfigure super.rtags; + shm = super.shm.overrideAttrs (attrs: { propagatedUserEnvPkgs = [ external.structured-haskell-mode ]; }); # Telega has a server portion for it's network protocol - telega = super.telega.overrideAttrs(old: { + telega = super.telega.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ pkgs.tdlib ]; postBuild = '' @@ -318,18 +345,27 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac ''; }); + treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: { + # searches for Git at build time + nativeBuildInputs = + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; + }); + vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: { nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); - zmq = super.zmq.overrideAttrs(old: { + zmq = super.zmq.overrideAttrs (old: { stripDebugList = [ "share" ]; preBuild = '' make ''; nativeBuildInputs = [ - external.autoconf external.automake external.pkgconfig external.libtool + external.autoconf + external.automake + external.pkgconfig + external.libtool (external.zeromq.override { enableDrafts = true; }) ]; postInstall = '' @@ -351,9 +387,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac markdown-mode-plus = super."markdown-mode+"; package-plus = super."package+"; rect-plus = super."rect+"; - }; - - stable = shared // { # upstream issue: missing file header bufshow = markBroken super.bufshow; @@ -364,9 +397,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: missing file header dictionary = markBroken super.dictionary; - # missing git - egg = markBroken super.egg; - # upstream issue: missing file header elmine = markBroken super.elmine; @@ -385,8 +415,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: doesn't build eterm-256color = markBroken super.eterm-256color; - helm-rtags = fix-rtags super.helm-rtags; - # upstream issue: missing file header qiita = markBroken super.qiita; @@ -405,9 +433,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac # upstream issue: missing file header window-numbering = markBroken super.window-numbering; - }; - - unstable = shared // { editorconfig = super.editorconfig.overrideAttrs (attrs: { propagatedUserEnvPkgs = [ external.editorconfig-core-c ]; }); @@ -415,7 +440,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac egg = super.egg.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); # missing dependencies @@ -426,91 +451,85 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac kapacitor = super.kapacitor.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); - - forge = super.forge.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); gerrit = super.gerrit.overrideAttrs (attrs: { nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); gerrit-download = super.gerrit-download.overrideAttrs (attrs: { nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); github-pullrequest = super.github-pullrequest.overrideAttrs (attrs: { nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); helm-rtags = fix-rtags super.helm-rtags; jist = super.jist.overrideAttrs (attrs: { nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); mandoku = super.mandoku.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); mandoku-tls = super.mandoku-tls.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-p4 = super.magit-p4.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-rbr = super.magit-rbr.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-diff-flycheck = super.magit-diff-flycheck.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-reviewboard = super.magit-reviewboard.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-patch-changelog = super.magit-patch-changelog.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); magit-circleci = super.magit-circleci.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; }); orgit = (super.orgit.overrideAttrs (attrs: { # searches for Git at build time nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - })); + (attrs.nativeBuildInputs or [ ]) ++ [ external.git ]; + })); # tries to write to $HOME php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: { @@ -528,13 +547,7 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac inherit (self.melpaPackages) powerline; }; - treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: { - # searches for Git at build time - nativeBuildInputs = - (attrs.nativeBuildInputs or []) ++ [ external.git ]; - }); - - vterm = super.vterm.overrideAttrs(old: { + vterm = super.vterm.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ self.emacs pkgs.cmake pkgs.libvterm-neovim ]; cmakeFlags = [ "-DEMACS_SOURCE=${self.emacs.src}" @@ -550,32 +563,38 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h} ''; }); - # Legacy alias - emacs-libvterm = unstable.vterm; - - # Map legacy renames from emacs2nix since code generation was ported to emacs lisp - _0xc = super."0xc"; - _2048-game = super."2048-game"; - _4clojure = super."4clojure"; - at = super."@"; - term-plus = super."term+"; - term-plus-key-intercept = super."term+key-intercept"; - term-plus-mux = super."term+mux"; - xml-plus = super."xml+"; w3m = super.w3m.override (args: { melpaBuild = drv: args.melpaBuild (drv // { prePatch = - let w3m = "${lib.getBin external.w3m}/bin/w3m"; in '' + let w3m = "${lib.getBin external.w3m}/bin/w3m"; in + '' substituteInPlace w3m.el \ - --replace 'defcustom w3m-command nil' \ - 'defcustom w3m-command "${w3m}"' + --replace 'defcustom w3m-command nil' \ + 'defcustom w3m-command "${w3m}"' ''; }); }); }; - }; - - in super // overrides.${variant}); -in generateMelpa { } + # Deprecated legacy aliases for backwards compat + aliases = lib.listToAttrs (lib.attrValues (lib.mapAttrs (n: v: { name = v; value = builtins.trace "Melpa attribute '${v}' is a legacy alias that will be removed in 21.03, use '${n}' instead" melpaPackages.${n}; }) (lib.filterAttrs (n: v: lib.hasAttr n melpaPackages) { + "auto-complete-clang-async" = "emacsClangCompleteAsync"; + "vterm" = "emacs-libvterm"; + "0xc" = "_0xc"; + "2048-game" = "_2048-game"; + "4clojure" = "_4clojure"; + "@" = "at"; + "term+" = "term-plus"; + "term+key-intercept" = "term-plus-key-intercept"; + "term+mux" = "term-plus-mux"; + "xml+" = "xml-plus"; + }))); + + melpaPackages = lib.mapAttrs (n: v: if lib.hasAttr n overrides then overrides.${n} else v) super; + + in + melpaPackages // aliases); + +in +generateMelpa { } |