diff --git a/doc/package-notes.xml b/doc/package-notes.xml
index c2aef8937b06..7b8657fb4a13 100644
--- a/doc/package-notes.xml
+++ b/doc/package-notes.xml
@@ -643,15 +643,15 @@ cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el
required dependencies manually - but it's tedious and there is always a
possibility that an unwanted dependency will sneak in through some other
package. To completely override such a package you can use
- overrideScope.
+ overrideScope'.
-overrides = super: self: rec {
+overrides = self: super: rec {
haskell-mode = self.melpaPackages.haskell-mode;
...
};
-((emacsPackagesNgGen emacs).overrideScope overrides).emacsWithPackages (p: with p; [
+((emacsPackagesNgGen emacs).overrideScope' overrides).emacsWithPackages (p: with p; [
# here both these package will use haskell-mode of our own choice
ghc-mod
dante
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 0107ed33d9e4..df9d977e9ec7 100644
--- a/lib/customisation.nix
+++ b/lib/customisation.nix
@@ -185,7 +185,7 @@ rec {
/* Make a set of packages with a common scope. All packages called
with the provided `callPackage' will be evaluated with the same
arguments. Any package in the set may depend on any other. The
- `overrideScope' function allows subsequent modification of the package
+ `overrideScope'` function allows subsequent modification of the package
set in a consistent way, i.e. all packages in the set will be
called with the overridden packages. The package sets may be
hierarchical: the packages in the set are called with the scope
@@ -195,10 +195,10 @@ rec {
let self = f self // {
newScope = scope: newScope (self // scope);
callPackage = self.newScope {};
- # TODO(@Ericson2314): Haromonize argument order of `g` with everything else
- overrideScope = g:
- makeScope newScope
- (lib.fixedPoints.extends (lib.flip g) f);
+ overrideScope = g: lib.warn
+ "`overrideScope` (from `lib.makeScope`) is deprecated. Do `overrideScope' (self: self: { … })` instead of `overrideScope (super: self: { … })`. All other overrides have the parameters in that order, including other definitions of `overrideScope`. This was the only definition violating the pattern."
+ (makeScope newScope (lib.fixedPoints.extends (lib.flip g) f));
+ overrideScope' = g: makeScope newScope (lib.fixedPoints.extends g f);
packages = f;
};
in self;
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index 4e780b104b08..e161daffbd37 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -21,7 +21,7 @@ set which contains `emacsWithPackages`. For example, to override
`emacsPackagesNg.emacsWithPackages`,
```
let customEmacsPackages =
- emacsPackagesNg.overrideScope (super: self: {
+ emacsPackagesNg.overrideScope' (self: super: {
# use a custom version of emacs
emacs = ...;
# use the unstable MELPA version of magit