emacs: support and enable __structuredAttrs in elisp build helpers (#387193)
This commit is contained in:
@@ -204,6 +204,9 @@
|
||||
|
||||
- `pkgs.nextcloud28` has been removed since it's out of support upstream.
|
||||
|
||||
- Emacs lisp build helpers, such as `emacs.pkgs.melpaBuild`, now enables `__structuredAttrs` by default.
|
||||
Environment variables have to be passed via the `env` attribute.
|
||||
|
||||
- `buildGoModule` now passes environment variables via the `env` attribute. `CGO_ENABLED` should now be specified with `env.CGO_ENABLED` when passing to buildGoModule. Direct specification of `CGO_ENABLED` is now redirected by a compatibility layer with a warning, but will become an error in future releases.
|
||||
|
||||
Go-related environment variables previously shadowed by `buildGoModule` now results in errors when specified directly. Such variables include `GOOS` and `GOARCH`.
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -61,6 +61,7 @@ lib.extendMkDerivation {
|
||||
propagatedUserEnvPkgs = finalAttrs.packageRequires ++ propagatedUserEnvPkgs;
|
||||
|
||||
strictDeps = args.strictDeps or true;
|
||||
__structuredAttrs = args.__structuredAttrs or true;
|
||||
|
||||
inherit turnCompilationWarningToError ignoreCompilationError;
|
||||
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
|
||||
@@ -153,8 +153,10 @@ let
|
||||
# https://github.com/Golevka/emacs-clang-complete-async/issues/90
|
||||
auto-complete-clang-async = (addPackageRequires super.auto-complete-clang-async [ self.auto-complete ]).overrideAttrs (old: {
|
||||
buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.llvm ];
|
||||
CFLAGS = "-I${lib.getLib pkgs.llvmPackages.libclang}/include";
|
||||
LDFLAGS = "-L${lib.getLib pkgs.llvmPackages.libclang}/lib";
|
||||
env = old.env or { } // {
|
||||
CFLAGS = "-I${lib.getLib pkgs.llvmPackages.libclang}/include";
|
||||
LDFLAGS = "-L${lib.getLib pkgs.llvmPackages.libclang}/lib";
|
||||
};
|
||||
});
|
||||
|
||||
# part of a larger package
|
||||
@@ -242,7 +244,7 @@ let
|
||||
# - https://github.com/vedang/pdf-tools/issues/102
|
||||
# - https://github.com/vedang/pdf-tools/issues/103
|
||||
# - https://github.com/vedang/pdf-tools/issues/109
|
||||
CXXFLAGS = "-std=c++17";
|
||||
env = old.env or { } // { CXXFLAGS = "-std=c++17"; };
|
||||
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [
|
||||
pkgs.autoconf
|
||||
@@ -294,7 +296,7 @@ let
|
||||
|
||||
irony = super.irony.overrideAttrs (old: {
|
||||
cmakeFlags = old.cmakeFlags or [ ] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
|
||||
env.NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR";
|
||||
env = old.env or { } // { NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR"; };
|
||||
preConfigure = ''
|
||||
pushd server
|
||||
'';
|
||||
|
||||
Reference in New Issue
Block a user