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