diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix index 4020a1aca337..8de13dc0c64c 100644 --- a/pkgs/build-support/emacs/wrapper.nix +++ b/pkgs/build-support/emacs/wrapper.nix @@ -1,8 +1,15 @@ -{ stdenv, makeWrapper, emacs }: +{ lib, makeWrapper, stdenv }: self: -with stdenv.lib; +with lib; let inherit (self) emacs; in -explicitRequires: # packages explicitly requested by the user +packagesFun: # packages explicitly requested by the user + +let + explicitRequires = + if builtins.isFunction packagesFun + then packagesFun self + else packagesFun; +in stdenv.mkDerivation { name = (appendToName "with-packages" emacs).name; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5559135e2422..19f2331df4c2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11629,7 +11629,7 @@ let inherit lib newScope stdenv; inherit fetchFromGitHub fetchgit fetchhg fetchurl; - inherit emacs texinfo; + inherit emacs texinfo makeWrapper; trivialBuild = callPackage ../build-support/emacs/trivial.nix { inherit emacs; @@ -11648,8 +11648,8 @@ let emacs24PackagesNg = recurseIntoAttrs (emacsPackagesNgGen emacs24); - emacsWithPackages = callPackage ../build-support/emacs/wrapper.nix { }; - emacs24WithPackages = emacsWithPackages.override { emacs = emacs24; }; + emacs24WithPackages = emacs24PackagesNg.emacsWithPackages; + emacsWithPackages = emacsPackagesNg.emacsWithPackages; inherit (gnome3) empathy; diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 727ceb24c8a2..3a93a32d1609 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -35,7 +35,7 @@ , lib, newScope, stdenv, fetchurl, fetchgit, fetchFromGitHub, fetchhg -, emacs, texinfo +, emacs, texinfo, makeWrapper , trivialBuild , melpaBuild @@ -58,10 +58,16 @@ let inherit lib; }; + emacsWithPackages = import ../build-support/emacs/wrapper.nix { + inherit lib makeWrapper stdenv; + }; + packagesFun = self: with self; { inherit emacs melpaBuild trivialBuild; + emacsWithPackages = emacsWithPackages self; + ## START HERE ac-haskell-process = melpaBuild rec {