about summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
diff options
context:
space:
mode:
authorAndersonTorres <torres.anderson.85@protonmail.com>2021-05-20 20:03:41 -0300
committerAndersonTorres <torres.anderson.85@protonmail.com>2021-05-21 00:32:06 -0300
commit70a5cbc2987b61e2c964c3390cffcedf394de1ad (patch)
tree07924f521df443a9a305490a33517de6885eb9ee /pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
parent788deaad9dbc27b94c0d930b617f659e71ea7987 (diff)
downloadnixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.tar
nixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.tar.gz
nixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.tar.bz2
nixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.tar.lz
nixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.tar.xz
nixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.tar.zst
nixlib-70a5cbc2987b61e2c964c3390cffcedf394de1ad.zip
Rename emacs-modes to emacs/elisp-packages
Diffstat (limited to 'pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix')
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix66
1 files changed, 66 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
new file mode 100644
index 000000000000..293f33e83169
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -0,0 +1,66 @@
+/*
+
+# Updating
+
+To update the list of packages from MELPA,
+
+1. Run `./update-elpa`.
+2. Check for evaluation errors: 
+     `nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages`.
+3. Run `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
+
+## Update from overlay
+
+Alternatively, run the following command:
+
+./update-from-overlay
+
+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.
+
+*/
+
+{ lib, stdenv, texinfo, writeText }:
+
+self: let
+
+  markBroken = pkg: pkg.override {
+    elpaBuild = args: self.elpaBuild (args // {
+      meta = (args.meta or {}) // { broken = true; };
+    });
+  };
+
+  elpaBuild = import ../../../../build-support/emacs/elpa.nix {
+    inherit lib stdenv texinfo writeText;
+    inherit (self) emacs;
+  };
+
+  generateElpa = lib.makeOverridable ({
+    generated ? ./elpa-generated.nix
+  }: let
+
+    imported = import generated {
+      inherit (self) callPackage;
+    };
+
+    super = removeAttrs imported [ "dash" ];
+
+    overrides = {
+      rcirc-menu = markBroken super.rcirc-menu; # Missing file header
+      cl-lib = null; # builtin
+      tle = null; # builtin
+      advice = null; # builtin
+      seq = if lib.versionAtLeast self.emacs.version "27"
+            then null
+            else super.seq;
+      project = if lib.versionAtLeast self.emacs.version "28"
+                then null
+                else super.project;
+    };
+
+    elpaPackages = super // overrides;
+
+  in elpaPackages // { inherit elpaBuild; });
+
+in generateElpa { }