about summary refs log tree commit diff
path: root/pkgs/top-level/emacs-packages.nix
diff options
context:
space:
mode:
authoradisbladis <adisbladis@gmail.com>2021-02-24 15:25:48 +0100
committeradisbladis <adisbladis@gmail.com>2021-02-24 15:46:08 +0100
commit2b84cf6e185281d2c644f73528c20b371e384325 (patch)
tree8daebed045c0b3933d4646fd66afb8579b52464b /pkgs/top-level/emacs-packages.nix
parentc68c81fb0150b251b2e72d9cdd5d735403c3df50 (diff)
emacs-packages: Make pkgs & lib overrideable
With these changes it's possible to override pkgs & lib by:
```
emacs.pkgs.override { pkgs = fooPkgs; }
```
and get them to coherently apply to all emacs packages.
Diffstat (limited to 'pkgs/top-level/emacs-packages.nix')
-rw-r--r--pkgs/top-level/emacs-packages.nix59
1 files changed, 31 insertions, 28 deletions
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index d3c62b3ff7796..cb81a5308410d 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -32,49 +32,42 @@
 #   `meta` with `platforms` and `homepage` set to something you are
 #   unlikely to want to override for most packages
 
-{ pkgs, lib ? pkgs.lib, emacs }:
+{ pkgs', makeScope, makeOverridable, emacs }:
 
 let
 
-  trivialBuild = pkgs.callPackage ../build-support/emacs/trivial.nix {
-    inherit emacs;
-  };
-
-  melpaBuild = pkgs.callPackage ../build-support/emacs/melpa.nix {
-    inherit emacs;
-  };
-
-  mkElpaPackages = import ../applications/editors/emacs-modes/elpa-packages.nix {
+  mkElpaPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/elpa-packages.nix {
     inherit (pkgs) stdenv texinfo writeText;
     inherit lib;
   };
 
   # Contains both melpa stable & unstable
-  melpaGeneric = import ../applications/editors/emacs-modes/melpa-packages.nix {
+  melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs-modes/melpa-packages.nix {
     inherit lib pkgs;
   };
-  mkMelpaStablePackages = melpaGeneric "stable";
-  mkMelpaPackages = melpaGeneric "unstable";
 
-  mkOrgPackages = import ../applications/editors/emacs-modes/org-packages.nix {
+  mkOrgPackages = { lib }: import ../applications/editors/emacs-modes/org-packages.nix {
     inherit lib;
   };
 
-  emacsWithPackages = import ../build-support/emacs/wrapper.nix {
-    inherit (pkgs) lndir makeWrapper runCommand;
-    inherit lib;
+  mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs-modes/manual-packages.nix {
+    inherit lib pkgs;
   };
 
-  mkManualPackages = import ../applications/editors/emacs-modes/manual-packages.nix {
-    inherit lib pkgs;
+  emacsWithPackages = { pkgs, lib }: import ../build-support/emacs/wrapper.nix {
+    inherit (pkgs) makeWrapper runCommand;
+    inherit (pkgs.xorg) lndir;
+    inherit lib;
   };
 
-in lib.makeScope pkgs.newScope (self: lib.makeOverridable ({
-  elpaPackages ? mkElpaPackages self
-  , melpaStablePackages ? mkMelpaStablePackages self
-  , melpaPackages ? mkMelpaPackages self
-  , orgPackages ? mkOrgPackages self
-  , manualPackages ? mkManualPackages self
+in makeScope pkgs'.newScope (self: makeOverridable ({
+  pkgs ? pkgs'
+  , lib ? pkgs.lib
+  , elpaPackages ? mkElpaPackages { inherit pkgs lib; } self
+  , melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self
+  , melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self
+  , orgPackages ? mkOrgPackages { inherit lib; } self
+  , manualPackages ? mkManualPackages { inherit pkgs lib; } self
 }: ({}
   // elpaPackages // { inherit elpaPackages; }
   // melpaStablePackages // { inherit melpaStablePackages; }
@@ -82,8 +75,18 @@ in lib.makeScope pkgs.newScope (self: lib.makeOverridable ({
   // orgPackages // { inherit orgPackages; }
   // manualPackages // { inherit manualPackages; }
   // {
-    inherit emacs melpaBuild trivialBuild;
-    emacsWithPackages = emacsWithPackages self;
-    withPackages = emacsWithPackages self;
+
+    inherit emacs;
+
+    trivialBuild = pkgs.callPackage ../build-support/emacs/trivial.nix {
+      inherit (self) emacs;
+    };
+
+    melpaBuild = pkgs.callPackage ../build-support/emacs/melpa.nix {
+      inherit (self) emacs;
+    };
+
+    emacsWithPackages = emacsWithPackages { inherit pkgs lib; } self;
+    withPackages = emacsWithPackages { inherit pkgs lib; } self;
   })
 ) {})