From fc9502ff295c22cc8114ecc6b550c3b0db41c267 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Mon, 23 Sep 2024 14:18:31 +0800 Subject: [PATCH] emacsPackages: fix build for elpa packages --- .../elisp-packages/elpa-common-overrides.nix | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix index 56cdd8ad733e..5d7a42928068 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-common-overrides.nix @@ -4,6 +4,14 @@ self: super: let libExt = pkgs.stdenv.hostPlatform.extensions.sharedLibrary; + inherit (import ./lib-override-helper.nix pkgs lib) + addPackageRequires + addPackageRequiresIfOlder + ignoreCompilationError + ignoreCompilationErrorIfOlder + mkHome + mkHomeIfOlder + ; in { cl-lib = null; # builtin @@ -54,6 +62,64 @@ in } ); + # native-compiler-error-empty-byte in old versions + ada-ref-man = ignoreCompilationErrorIfOlder super.ada-ref-man "2020.1.0.20201129.190419"; + + # elisp error in old versions + ampc = ignoreCompilationErrorIfOlder super.ampc "0.2.0.20240220.181558"; + + auctex = mkHome super.auctex; + + auctex-cont-latexmk = mkHome super.auctex-cont-latexmk; + + auctex-label-numbers = mkHome super.auctex-label-numbers; + + # missing optional dependencies https://codeberg.org/rahguzar/consult-hoogle/issues/4 + consult-hoogle = addPackageRequiresIfOlder super.consult-hoogle [ self.consult ] "0.2.2"; + + # missing optional dependencies https://github.com/jacksonrayhamilton/context-coloring/issues/10 + context-coloring = addPackageRequires super.context-coloring [ self.js2-mode ]; + + cpio-mode = ignoreCompilationError super.cpio-mode; # elisp error + + # fixed in https://git.savannah.gnu.org/cgit/emacs/elpa.git/commit/?h=externals/dbus-codegen&id=cfc46758c6252a602eea3dbc179f8094ea2a1a85 + dbus-codegen = ignoreCompilationErrorIfOlder super.dbus-codegen "0.1.0.20201127.221326"; # elisp error + + ebdb = super.ebdb.overrideAttrs ( + finalAttrs: previousAttrs: + let + applyOrgRoamMissingPatch = lib.versionOlder finalAttrs.version "0.8.22.0.20240205.070828"; + in + { + dontUnpack = !applyOrgRoamMissingPatch; + patches = + if applyOrgRoamMissingPatch then + previousAttrs.patches or [ ] + ++ [ + (pkgs.fetchpatch { + name = "fix-comilation-error-about-missing-org-roam.patch"; + url = "https://github.com/girzel/ebdb/commit/058f30a996eb9074feac8f94db4eb49e85ae08f1.patch"; + hash = "sha256-UI72N3lCgro6bG75sWnbw9truREToQHEzZ1TeQAIMjo="; + }) + ] + else + previousAttrs.patches or null; + preBuild = + if applyOrgRoamMissingPatch then + previousAttrs.preBuild or "" + + "\n" + + '' + pushd .. + local content_directory=$ename-$version + src=$PWD/$content_directory.tar + tar --create --verbose --file=$src $content_directory + popd + '' + else + previousAttrs.preBuild or null; + } + ); + eglot = super.eglot.overrideAttrs ( finalAttrs: previousAttrs: { postInstall = @@ -99,6 +165,29 @@ in }; }); + notes-mode = (mkHome super.notes-mode).overrideAttrs (old: { + dontUnpack = false; + buildInputs = old.buildInputs or [ ] ++ [ pkgs.perl ]; + nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [ pkgs.perl ]; + preInstall = + old.preInstall or "" + + "\n" + + '' + patchShebangs --build mkconfig + pushd .. + local content_directory=$ename-$version + src=$PWD/$content_directory.tar + tar --create --verbose --file=$src $content_directory + popd + ''; + postFixup = + old.postFixup or "" + + "\n" + + '' + patchShebangs --host --update $out/share/emacs/site-lisp/elpa/$ename-$version/mkconfig + ''; + }); + plz = super.plz.overrideAttrs (old: { dontUnpack = false; postPatch = @@ -117,10 +206,22 @@ in ''; }); + # https://sourceware.org/bugzilla/show_bug.cgi?id=32185 + poke = addPackageRequires super.poke [ self.poke-mode ]; + pq = super.pq.overrideAttrs (old: { buildInputs = old.buildInputs or [ ] ++ [ pkgs.postgresql ]; }); + preview-auto = mkHome super.preview-auto; + + preview-tailor = mkHome super.preview-tailor; + + # native-ice https://github.com/mattiase/relint/issues/15 + relint = ignoreCompilationError super.relint; + + shen-mode = ignoreCompilationErrorIfOlder super.shen-mode "0.1.0.20221221.82050"; # elisp error + # native compilation for tests/seq-tests.el never ends # delete tests/seq-tests.el to workaround this seq = super.seq.overrideAttrs (old: { @@ -136,6 +237,26 @@ in ''; }); + # https://github.com/alphapapa/taxy.el/issues/3 + taxy = super.taxy.overrideAttrs (old: { + dontUnpack = false; + postUnpack = + old.postUnpack or "" + + "\n" + + '' + local content_directory=$ename-$version + rm --verbose --recursive $content_directory/examples + src=$PWD/$content_directory.tar + tar --create --verbose --file=$src $content_directory + ''; + }); + + tex-parens = mkHomeIfOlder super.tex-parens "0.4.0.20240630.70456"; + + timerfunctions = ignoreCompilationErrorIfOlder super.timerfunctions "1.4.2.0.20201129.225252"; + + wisitoken-grammar-mode = ignoreCompilationError super.wisitoken-grammar-mode; # elisp error + xeft = super.xeft.overrideAttrs (old: { dontUnpack = false; buildInputs = old.buildInputs or [ ] ++ [ pkgs.xapian ]; @@ -153,4 +274,7 @@ in rm $outd/xapian-lite.cc $outd/emacs-module.h $outd/emacs-module-prelude.h $outd/demo.gif $outd/Makefile ''; }); + + # native-ice https://github.com/mattiase/xr/issues/9 + xr = ignoreCompilationError super.xr; }