From e78debdfa7de0edbe97abf84c01b0a097055b3c5 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 4 Feb 2025 04:00:17 +0800 Subject: [PATCH 1/4] emacs: enable strictDeps for elisp packages This is a step towards the goal[1] of enabling strictDeps by default in Nixpkgs. This helps users write better buildInputs/nativeBuildinputs and checkInputs/nativeCheckInputs. It also makes the build faster because it reduces unnecessary runs of hooks added by addEnvHooks. Previously, emacs was only in nativeBuildInputs. After strictDeps is enabled, emacs has to be also in buildInputs to provide a header file needed[2] by dynamic modules from an elisp package. Only some elisp packages contain dynamic modules but we always add emacs to buildInputs since there is no harm. [1]: https://github.com/NixOS/nixpkgs/issues/178468 [2]: info "(elisp) Module Initialization" --- pkgs/applications/editors/emacs/build-support/generic.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs/build-support/generic.nix b/pkgs/applications/editors/emacs/build-support/generic.nix index 282d42d76284..94f791d8f6cd 100644 --- a/pkgs/applications/editors/emacs/build-support/generic.nix +++ b/pkgs/applications/editors/emacs/build-support/generic.nix @@ -67,7 +67,7 @@ libBuildHelper.extendMkDerivation' stdenv.mkDerivation ( ''; inherit packageRequires; - buildInputs = finalAttrs.packageRequires ++ buildInputs; + buildInputs = [ emacs ] ++ finalAttrs.packageRequires ++ buildInputs; nativeBuildInputs = [ emacs texinfo @@ -77,6 +77,8 @@ libBuildHelper.extendMkDerivation' stdenv.mkDerivation ( setupHook = args.setupHook or setupHook; + strictDeps = args.strictDeps or true; + inherit turnCompilationWarningToError ignoreCompilationError; meta = From 1b5f66935d4d4365b89dde6c6407aaab48d83ad1 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 4 Feb 2025 04:07:35 +0800 Subject: [PATCH 2/4] emacsPackages.lsp-bridge: fix build when strictDeps is enabled --- .../emacs/elisp-packages/manual-packages/lsp-bridge/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix index cf1c84b3fd8b..e7ae5f90b7a4 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lsp-bridge/default.nix @@ -56,7 +56,9 @@ melpaBuild { checkInputs = [ # Emacs packages tempel + ]; + nativeCheckInputs = [ # Executables basedpyright git From 544a3883c58abd7a3fc898bab86a4cde2e0c5097 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 4 Feb 2025 04:08:32 +0800 Subject: [PATCH 3/4] emacsPackages.erlang: fix build when strictDeps is enabled --- .../editors/emacs/elisp-packages/melpa-packages.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix index c632a27869be..0b378079f542 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix @@ -214,8 +214,10 @@ let }); erlang = super.erlang.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [ + nativeBuildInputs = attrs.nativeBuildInputs or [ ] ++ [ pkgs.perl + ]; + buildInputs = attrs.buildInputs or [ ] ++ [ pkgs.ncurses ]; }); From d5f17b0e32d586703100da45db16b16b7c25b5fa Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 4 Feb 2025 04:09:12 +0800 Subject: [PATCH 4/4] emacsPackages.zmq: fix build when strictDeps is enabled --- .../editors/emacs/elisp-packages/melpa-packages.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix index 0b378079f542..1c04ae5c8be7 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix @@ -597,11 +597,13 @@ let export EZMQ_LIBDIR=$(mktemp -d) make ''; - nativeBuildInputs = old.nativeBuildInputs ++ [ + nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkgs.autoconf pkgs.automake pkgs.pkg-config pkgs.libtool + ]; + buildInputs = old.buildInputs or [ ] ++ [ (pkgs.zeromq.override { enableDrafts = true; }) ]; postInstall = (old.postInstall or "") + "\n" + ''