From dadfd93811c9ddef93024f164edef636bdd48481 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Wed, 16 Dec 2015 20:53:12 -0600 Subject: [PATCH] emacsWithPackages: know its own package set Fixes #10819. emacsWithPackages will know its own package set. This requires it to be in a package set, rather than at the top level, so it lives in emacsPackagesNg. --- pkgs/build-support/emacs/wrapper.nix | 13 ++++++++++--- pkgs/top-level/all-packages.nix | 6 +++--- pkgs/top-level/emacs-packages.nix | 8 +++++++- 3 files changed, 20 insertions(+), 7 deletions(-) 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 {