From f698c4dd154885c1edf953de65ca44edda253ea8 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Wed, 5 Mar 2025 10:02:55 +0800 Subject: [PATCH] emacs: support __structuredAttrs in elisp build helpers --- .../editors/emacs/build-support/elpa.nix | 4 +++- .../editors/emacs/build-support/elpa2nix.el | 16 ++++------------ .../editors/emacs/build-support/melpa.nix | 4 +++- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/editors/emacs/build-support/elpa.nix b/pkgs/applications/editors/emacs/build-support/elpa.nix index fcaef43953ef..50abadccf9d9 100644 --- a/pkgs/applications/editors/emacs/build-support/elpa.nix +++ b/pkgs/applications/editors/emacs/build-support/elpa.nix @@ -43,7 +43,9 @@ lib.extendMkDerivation { emacs --batch -Q -l "$elpa2nix" \ -f elpa2nix-install-package \ - "$src" "$out/share/emacs/site-lisp/elpa" + "$src" "$out/share/emacs/site-lisp/elpa" \ + ${if finalAttrs.turnCompilationWarningToError then "t" else "nil"} \ + ${if finalAttrs.ignoreCompilationError then "t" else "nil"} runHook postInstall ''; diff --git a/pkgs/applications/editors/emacs/build-support/elpa2nix.el b/pkgs/applications/editors/emacs/build-support/elpa2nix.el index 97cf2fd58a06..5b363b7b6640 100644 --- a/pkgs/applications/editors/emacs/build-support/elpa2nix.el +++ b/pkgs/applications/editors/emacs/build-support/elpa2nix.el @@ -5,8 +5,10 @@ (if (not noninteractive) (error "`elpa2nix-install-package' is to be used only with -batch")) (pcase command-line-args-left - (`(,archive ,elpa) - (progn (setq package-user-dir elpa) + (`(,archive ,elpa ,turn-compilation-warning-to-error ,ignore-compilation-error) + (progn (setq byte-compile-error-on-warn (string= turn-compilation-warning-to-error "t")) + (setq byte-compile-debug (string= ignore-compilation-error "nil")) + (setq package-user-dir elpa) (elpa2nix-install-file archive))))) (defun elpa2nix-install-from-buffer () @@ -31,13 +33,3 @@ The file can either be a tar file or an Emacs Lisp file." ;; Allow installing package tarfiles larger than 10MB (setq large-file-warning-threshold nil) - -(let ((flag (getenv "turnCompilationWarningToError"))) - (when (and flag - ;; we do not use `string-empty-p' because it requires subr-x in Emacs <= 26 - (not (string= flag ""))) - (setq byte-compile-error-on-warn t))) - -(let ((flag (getenv "ignoreCompilationError"))) - (when (string= flag "") - (setq byte-compile-debug t))) diff --git a/pkgs/applications/editors/emacs/build-support/melpa.nix b/pkgs/applications/editors/emacs/build-support/melpa.nix index bdca913e865d..876cf9a46ddc 100644 --- a/pkgs/applications/editors/emacs/build-support/melpa.nix +++ b/pkgs/applications/editors/emacs/build-support/melpa.nix @@ -185,7 +185,9 @@ lib.extendMkDerivation { emacs --batch -Q \ -l "$elpa2nix" \ -f elpa2nix-install-package \ - "$archive" "$out/share/emacs/site-lisp/elpa" + "$archive" "$out/share/emacs/site-lisp/elpa" \ + ${if finalAttrs.turnCompilationWarningToError then "t" else "nil"} \ + ${if finalAttrs.ignoreCompilationError then "t" else "nil"} runHook postInstall '';