anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / editors / emacs / elisp-packages / melpa-packages.nix
blob670b6faa51b51d495fff8ff2925d7ed288b299e0
1 /*
3 # Updating
5 To update the list of packages from MELPA,
7 1. Run `./update-melpa`
8 2. Check for evaluation errors:
9      # "../../../../../" points to the default.nix from root of Nixpkgs tree
10      env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
11      env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
12 3. Run `git commit -m "melpa-packages $(date -Idate)" recipes-archive-melpa.json`
14 ## Update from overlay
16 Alternatively, run the following command:
18 ./update-from-overlay
20 It will update both melpa and elpa packages using
21 https://github.com/nix-community/emacs-overlay. It's almost instantenous and
22 formats commits for you.
26 let
27   # Read ./recipes-archive-melpa.json in an outer let to make sure we only do this once.
28   defaultArchive = builtins.fromJSON (builtins.readFile ./recipes-archive-melpa.json);
31 { lib, pkgs }: variant: self:
32 let
33   inherit (import ./lib-override-helper.nix pkgs lib)
34     addPackageRequires
35     addPackageRequiresIfOlder
36     buildWithGit
37     dontConfigure
38     externalSrc
39     fix-rtags
40     fixRequireHelmCore
41     ignoreCompilationError
42     ignoreCompilationErrorIfOlder
43     markBroken
44     mkHome
45     ;
47   generateMelpa = lib.makeOverridable ({ archiveJson ? defaultArchive
48                                        }:
49     let
50       inherit (import ./libgenerated.nix lib self) melpaDerivation;
51       super = (
52         lib.listToAttrs (builtins.filter
53           (s: s != null)
54           (map
55             (melpaDerivation variant)
56             (if builtins.isList archiveJson then archiveJson else lib.importJSON archiveJson)
57           )
58         )
59       );
61       overrides = lib.optionalAttrs (variant == "stable") {
63         # upstream issue: missing file header
64         abridge-diff =
65           if super.abridge-diff.version == "0.1"
66           then markBroken super.abridge-diff
67           else super.abridge-diff;
69         # upstream issue: missing file header
70         bufshow = markBroken super.bufshow;
72         # upstream issue: missing file header
73         speech-tagger = markBroken super.speech-tagger;
75         # upstream issue: missing file header
76         textmate = markBroken super.textmate;
78         # upstream issue: missing file header
79         window-numbering = markBroken super.window-numbering;
81         # upstream issue: missing file header
82         voca-builder = markBroken super.voca-builder;
84         # upstream issue: missing file header
85         initsplit = markBroken super.initsplit;
87         # upstream issue: missing file header
88         jsfmt = markBroken super.jsfmt;
90         # upstream issue: missing file header
91         maxframe = markBroken super.maxframe;
93         # upstream issue: missing file header
94         connection = markBroken super.connection;
96         # upstream issue: missing file header
97         dictionary = markBroken super.dictionary;
99         # upstream issue: missing file header
100         fold-dwim =
101           if super.fold-dwim.version == "1.2"
102           then markBroken super.fold-dwim
103           else super.fold-dwim;
105         # upstream issue: missing file header
106         gl-conf-mode =
107           if super.gl-conf-mode.version == "0.3"
108           then markBroken super.gl-conf-mode
109           else super.gl-conf-mode;
111         # upstream issue: missing file header
112         ligo-mode =
113           if super.ligo-mode.version == "0.3"
114           then markBroken super.ligo-mode
115           else super.ligo-mode;
117         # upstream issue: missing file header
118         link = markBroken super.link;
120         # upstream issue: missing file header
121         org-dp =
122           if super.org-dp.version == "1"
123           then markBroken super.org-dp
124           else super.org-dp;
126         # upstream issue: missing file header
127         revbufs =
128           if super.revbufs.version == "1.2"
129           then markBroken super.revbufs
130           else super.revbufs;
132         # upstream issue: missing file header
133         elmine = markBroken super.elmine;
135         # upstream issue: missing file header
136         ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
138       } // {
139         # Expects bash to be at /bin/bash
140         ac-rtags = ignoreCompilationError (fix-rtags super.ac-rtags); # elisp error
142         age = super.age.overrideAttrs (attrs: {
143           postPatch = attrs.postPatch or "" + ''
144             substituteInPlace age.el \
145               --replace-fail 'age-program (executable-find "age")' 'age-program "${lib.getExe pkgs.age}"'
146           '';
147         });
149         airline-themes = super.airline-themes.override {
150           inherit (self.melpaPackages) powerline;
151         };
153         # https://github.com/Golevka/emacs-clang-complete-async/issues/90
154         auto-complete-clang-async = (addPackageRequires super.auto-complete-clang-async [ self.auto-complete ]).overrideAttrs (old: {
155           buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.llvm ];
156           CFLAGS = "-I${lib.getLib pkgs.llvmPackages.libclang}/include";
157           LDFLAGS = "-L${lib.getLib pkgs.llvmPackages.libclang}/lib";
158         });
160         # part of a larger package
161         caml = dontConfigure super.caml;
163         # part of a larger package
164         # upstream issue: missing package version
165         cmake-mode = dontConfigure super.cmake-mode;
167         company-rtags = ignoreCompilationError (fix-rtags super.company-rtags); # elisp error
169         easy-kill-extras = super.easy-kill-extras.override {
170           inherit (self.melpaPackages) easy-kill;
171         };
173         dune = dontConfigure super.dune;
175         emacsql = super.emacsql.overrideAttrs (old: {
176           buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
178           postBuild = ''
179             pushd sqlite
180             make
181             popd
182           '';
184           postInstall = (old.postInstall or "") + "\n" + ''
185             install -m=755 -D sqlite/emacsql-sqlite \
186               $out/share/emacs/site-lisp/elpa/emacsql-${old.version}/sqlite/emacsql-sqlite
187           '';
189           stripDebugList = [ "share" ];
190         });
192         emacsql-sqlite = super.emacsql-sqlite.overrideAttrs (old: lib.optionalAttrs (lib.versionOlder old.version "20240808.2016") {
193           buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
195           postBuild = ''
196             pushd sqlite
197             make
198             popd
199           '';
201           postInstall = (old.postInstall or "") + "\n" + ''
202             install -m=755 -D sqlite/emacsql-sqlite \
203               $out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite
204           '';
206           stripDebugList = [ "share" ];
207         });
209         epkg = super.epkg.overrideAttrs (old: {
210           postPatch = ''
211             substituteInPlace lisp/epkg.el \
212               --replace '(call-process "sqlite3"' '(call-process "${pkgs.sqlite}/bin/sqlite3"'
213           '';
214         });
216         erlang = super.erlang.overrideAttrs (attrs: {
217           buildInputs = attrs.buildInputs ++ [
218             pkgs.perl
219             pkgs.ncurses
220           ];
221         });
223         # https://github.com/syl20bnr/evil-escape/pull/86
224         evil-escape = super.evil-escape.overrideAttrs (attrs: {
225           postPatch = ''
226             substituteInPlace evil-escape.el \
227               --replace ' ;;; evil' ';;; evil'
228           '';
229           packageRequires = with self; [ evil ];
230         });
232         ess-R-data-view = super.ess-R-data-view.override {
233           inherit (self.melpaPackages) ess ctable popup;
234         };
236         flycheck-rtags = ignoreCompilationError (fix-rtags super.flycheck-rtags); # elisp error
238         pdf-tools = super.pdf-tools.overrideAttrs (old: {
239           # Temporary work around for:
240           #   - https://github.com/vedang/pdf-tools/issues/102
241           #   - https://github.com/vedang/pdf-tools/issues/103
242           #   - https://github.com/vedang/pdf-tools/issues/109
243           CXXFLAGS = "-std=c++17";
245           nativeBuildInputs = old.nativeBuildInputs ++ [
246             pkgs.autoconf
247             pkgs.automake
248             pkgs.pkg-config
249             pkgs.removeReferencesTo
250           ];
251           buildInputs = old.buildInputs ++ [ pkgs.libpng pkgs.zlib pkgs.poppler ];
252           preBuild = ''
253             make server/epdfinfo
254             remove-references-to ${lib.concatStringsSep " " (
255               map (output: "-t " + output) (
256                 [
257                   pkgs.glib.dev
258                   pkgs.libpng.dev
259                   pkgs.poppler.dev
260                   pkgs.zlib.dev
261                   pkgs.cairo.dev
262                 ]
263                 ++ lib.optional pkgs.stdenv.hostPlatform.isLinux pkgs.stdenv.cc.libc.dev
264               )
265             )} server/epdfinfo
266           '';
267           recipe = pkgs.writeText "recipe" ''
268             (pdf-tools
269             :repo "politza/pdf-tools" :fetcher github
270             :files ("lisp/pdf-*.el" "server/epdfinfo"))
271           '';
272         });
274         # Build same version as Haskell package
275         hindent = (externalSrc super.hindent pkgs.haskellPackages.hindent).overrideAttrs (attrs: {
276           packageRequires = [ self.haskell-mode ];
277         });
279         hotfuzz = super.hotfuzz.overrideAttrs (old: {
280           nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.cmake ];
282           dontUseCmakeBuildDir = true;
284           preBuild = ''
285             make -j$NIX_BUILD_CORES
286           '';
288           postInstall = (old.postInstall or "") + "\n" + ''
289             install hotfuzz-module.so $out/share/emacs/site-lisp/elpa/hotfuzz-*
290           '';
291         });
293         irony = super.irony.overrideAttrs (old: {
294           cmakeFlags = old.cmakeFlags or [ ] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
295           env.NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR";
296           preConfigure = ''
297             pushd server
298           '';
299           preBuild = ''
300             make
301             install -D bin/irony-server $out/bin/irony-server
302             popd
303           '';
304           checkPhase = ''
305             pushd server
306             make check
307             popd
308           '';
309           preFixup = ''
310             rm -rf $out/share/emacs/site-lisp/elpa/*/server
311           '';
312           dontUseCmakeBuildDir = true;
313           doCheck = pkgs.stdenv.hostPlatform.isLinux;
314           buildInputs = old.buildInputs ++ [ pkgs.llvmPackages.libclang ];
315           nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.cmake pkgs.llvmPackages.llvm ];
316         });
318         # tries to write a log file to $HOME
319         insert-shebang = super.insert-shebang.overrideAttrs (attrs: {
320           HOME = "/tmp";
321         });
323         ivy-rtags = ignoreCompilationError (fix-rtags super.ivy-rtags); # elisp error
325         jinx = super.jinx.overrideAttrs (old: let
326           libExt = pkgs.stdenv.hostPlatform.extensions.sharedLibrary;
327         in {
328           nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
329             pkgs.pkg-config
330           ];
332           buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.enchant2 ];
334           postBuild = ''
335             NIX_CFLAGS_COMPILE="$($PKG_CONFIG --cflags enchant-2) $NIX_CFLAGS_COMPILE"
336             $CC -shared -o jinx-mod${libExt} jinx-mod.c -lenchant-2
337           '';
339           postInstall = (old.postInstall or "") + "\n" + ''
340             outd=$(echo $out/share/emacs/site-lisp/elpa/jinx-*)
341             install -m444 --target-directory=$outd jinx-mod${libExt}
342             rm $outd/jinx-mod.c $outd/emacs-module.h
343           '';
345           meta = old.meta // {
346             maintainers = [ lib.maintainers.DamienCassou ];
347           };
348         });
350         sqlite3 = super.sqlite3.overrideAttrs (old: {
351           buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.sqlite ];
353           postBuild = ''
354             make
355           '';
357           postInstall = (old.postInstall or "") + "\n" + ''
358             outd=$out/share/emacs/site-lisp/elpa/sqlite3-*
359             install -m444 -t $outd sqlite3-api.so
360             rm $outd/*.c $outd/*.h
361           '';
363           meta = old.meta // {
364             maintainers = [ lib.maintainers.DamienCassou ];
365           };
366         });
368         evil-magit = buildWithGit super.evil-magit;
370         eopengrok = buildWithGit super.eopengrok;
372         forge = buildWithGit super.forge;
374         gnuplot = super.gnuplot.overrideAttrs (attrs: {
375            postPatch = attrs.postPatch or "" + ''
376              substituteInPlace gnuplot.el \
377                --replace-fail 'gnuplot-program "gnuplot"' 'gnuplot-program "${lib.getExe pkgs.gnuplot}"'
378            '';
379         });
381         gnuplot-mode = super.gnuplot-mode.overrideAttrs (attrs: {
382           postPatch = attrs.postPatch or "" + ''
383             substituteInPlace gnuplot-mode.el \
384               --replace-fail 'gnuplot-program "gnuplot"' 'gnuplot-program "${lib.getExe pkgs.gnuplot}"'
385           '';
386         });
388         magit = buildWithGit super.magit;
390         magit-find-file = buildWithGit super.magit-find-file;
392         magit-gh-pulls = buildWithGit super.magit-gh-pulls;
394         magit-imerge = buildWithGit super.magit-imerge;
396         magit-lfs = buildWithGit super.magit-lfs;
398         magit-org-todos = buildWithGit super.magit-org-todos;
400         magit-tbdiff = buildWithGit super.magit-tbdiff;
402         magit-topgit = ignoreCompilationError (buildWithGit super.magit-topgit); # elisp error
404         magit-vcsh = buildWithGit super.magit-vcsh;
406         magit-gerrit = buildWithGit super.magit-gerrit;
408         magit-annex = buildWithGit super.magit-annex;
410         magit-todos = buildWithGit super.magit-todos;
412         magit-filenotify = buildWithGit super.magit-filenotify;
414         magit-gitflow = buildWithGit super.magit-gitflow;
416         magithub = ignoreCompilationError (buildWithGit super.magithub); # elisp error
418         magit-svn = buildWithGit super.magit-svn;
420         kubernetes = buildWithGit super.kubernetes;
422         kubernetes-evil = buildWithGit super.kubernetes-evil;
424         egg = buildWithGit super.egg;
426         kapacitor = buildWithGit super.kapacitor;
428         gerrit = buildWithGit super.gerrit;
430         gerrit-download = buildWithGit super.gerrit-download;
432         github-pullrequest = buildWithGit super.github-pullrequest;
434         jist = buildWithGit super.jist;
436         mandoku = addPackageRequires super.mandoku [ self.git ]; # upstream is archived
438         magit-p4 = buildWithGit super.magit-p4;
440         magit-rbr = buildWithGit super.magit-rbr;
442         magit-diff-flycheck = buildWithGit super.magit-diff-flycheck;
444         magit-reviewboard = buildWithGit super.magit-reviewboard;
446         magit-patch-changelog = buildWithGit super.magit-patch-changelog;
448         magit-circleci = buildWithGit super.magit-circleci;
450         magit-delta = buildWithGit super.magit-delta;
452         orgit = buildWithGit super.orgit;
454         orgit-forge = buildWithGit super.orgit-forge;
456         ormolu = super.ormolu.overrideAttrs (attrs: {
457           postPatch = attrs.postPatch or "" + ''
458             substituteInPlace ormolu.el \
459               --replace-fail 'ormolu-process-path "ormolu"' 'ormolu-process-path "${lib.getExe pkgs.ormolu}"'
460           '';
461         });
463         ox-rss = buildWithGit super.ox-rss;
465         python-isort = super.python-isort.overrideAttrs (attrs: {
466           postPatch = attrs.postPatch or "" + ''
467             substituteInPlace python-isort.el \
468               --replace '-isort-command "isort"' '-isort-command "${lib.getExe pkgs.isort}"'
469           '';
470         });
472         # upstream issue: missing file header
473         # elisp error
474         mhc = (ignoreCompilationError super.mhc).override {
475           inherit (self.melpaPackages) calfw;
476         };
478         # missing .NET
479         nemerle = markBroken super.nemerle;
481         # part of a larger package
482         notmuch = dontConfigure super.notmuch;
484         pikchr-mode = super.pikchr-mode.overrideAttrs (attrs: {
485           postPatch = attrs.postPatch or "" + ''
486             substituteInPlace pikchr-mode.el \
487               --replace '"pikchr")' '"${lib.getExe pkgs.pikchr}")'
488           '';
489         });
491         rtags = ignoreCompilationError (dontConfigure (externalSrc super.rtags pkgs.rtags)); # elisp error
493         rtags-xref = dontConfigure super.rtags;
495         rime = super.rime.overrideAttrs (old: {
496           buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.librime ];
497           preBuild = (old.preBuild or "") + ''
498             make lib CC=$CC MODULE_FILE_SUFFIX=${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}
499           '';
500           postInstall = (old.postInstall or "") + ''
501             install -m444 -t $out/share/emacs/site-lisp/elpa/rime-* librime-emacs.*
502           '';
503         });
505         # https://github.com/projectional-haskell/structured-haskell-mode/issues/165
506         shm =
507           (addPackageRequires super.shm [
508             self.haskell-mode
509             self.hindent
510           ]).overrideAttrs
511             (attrs: {
512               propagatedUserEnvPkgs = attrs.propagatedUserEnvPkgs or [ ] ++ [
513                 pkgs.haskellPackages.structured-haskell-mode
514               ];
515             });
517         # Telega has a server portion for it's network protocol
518         # elisp error
519         telega = (ignoreCompilationError super.telega).overrideAttrs (old: {
520           buildInputs = old.buildInputs ++ [ pkgs.tdlib ];
521           nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkg-config ];
523           postPatch = ''
524             substituteInPlace telega-customize.el \
525               --replace 'defcustom telega-server-command "telega-server"' \
526                         "defcustom telega-server-command \"$out/bin/telega-server\""
528             substituteInPlace telega-sticker.el --replace '"dwebp' '"${pkgs.libwebp}/bin/dwebp'
529             substituteInPlace telega-sticker.el --replace '"ffmpeg' '"${pkgs.ffmpeg}/bin/ffmpeg'
531             substituteInPlace telega-vvnote.el --replace '"ffmpeg' '"${pkgs.ffmpeg}/bin/ffmpeg'
532           '';
534           postBuild = ''
535             pushd server
536             make
537             popd
538           '';
540           postInstall = (old.postInstall or "") + "\n" + ''
541             mkdir -p $out/bin
542             install -m755 -Dt $out/bin server/telega-server
543           '';
544         });
546         tokei = super.tokei.overrideAttrs (attrs: {
547           postPatch = attrs.postPatch or "" + ''
548             substituteInPlace tokei.el \
549               --replace 'tokei-program "tokei"' 'tokei-program "${lib.getExe pkgs.tokei}"'
550           '';
551         });
553         treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
554           # searches for Git at build time
555           nativeBuildInputs =
556             (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
557         });
559         typst-mode = super.typst-mode.overrideAttrs (attrs: {
560           postPatch = attrs.postPatch or "" + ''
561             substituteInPlace typst-mode.el \
562               --replace 'typst-executable-location  "typst"' 'typst-executable-location "${lib.getExe pkgs.typst}"'
563           '';
564         });
566         units-mode = super.units-mode.overrideAttrs (attrs: {
567           postPatch = attrs.postPatch or "" + ''
568             substituteInPlace units-mode.el \
569               --replace-fail 'units-binary-path "units"' 'units-binary-path "${lib.getExe pkgs.units}"'
570           '';
571         });
573         vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
574           nativeBuildInputs =
575             (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ];
576         });
578         zig-mode = super.zig-mode.overrideAttrs (attrs: {
579           postPatch = attrs.postPatch or "" + ''
580             substituteInPlace zig-mode.el \
581               --replace-fail 'zig-zig-bin "zig"' 'zig-zig-bin "${lib.getExe pkgs.zig}"'
582           '';
583         });
585         zmq = super.zmq.overrideAttrs (old: {
586           stripDebugList = [ "share" ];
587           preBuild = ''
588             export EZMQ_LIBDIR=$(mktemp -d)
589             make
590           '';
591           nativeBuildInputs = old.nativeBuildInputs ++ [
592             pkgs.autoconf
593             pkgs.automake
594             pkgs.pkg-config
595             pkgs.libtool
596             (pkgs.zeromq.override { enableDrafts = true; })
597           ];
598           postInstall = (old.postInstall or "") + "\n" + ''
599             mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-*
600             rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
601             rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
602           '';
603         });
605         # Map legacy renames from emacs2nix since code generation was ported to emacs lisp
606         _0blayout = super."0blayout";
607         desktop-plus = super."desktop+";
608         ghub-plus = super."ghub+";
609         git-gutter-plus = super."git-gutter+";
610         git-gutter-fringe-plus = super."git-gutter-fringe+";
611         ido-completing-read-plus = super."ido-completing-read+";
612         image-plus = super."image+";
613         image-dired-plus = super."image-dired+";
614         markdown-mode-plus = super."markdown-mode+";
615         package-plus = super."package+";
616         rect-plus = super."rect+";
618         # upstream issue: missing file header
619         instapaper = markBroken super.instapaper;
621         # upstream issue: doesn't build
622         magit-stgit = markBroken super.magit-stgit;
624         # upstream issue: missing file header
625         melancholy-theme = markBroken super.melancholy-theme;
627         # upstream issue: doesn't build
628         eterm-256color = markBroken super.eterm-256color;
630         # upstream issue: doesn't build
631         per-buffer-theme = markBroken super.per-buffer-theme;
633         # upstream issue: missing file header
634         qiita = markBroken super.qiita;
636         # upstream issue: missing file header
637         sql-presto = markBroken super.sql-presto;
639         editorconfig = super.editorconfig.overrideAttrs (attrs: {
640           propagatedUserEnvPkgs = [ pkgs.editorconfig-core-c ];
641         });
643         # missing dependencies
644         evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: {
645           packageRequires = with self; [ evil highlight ];
646         });
648         hamlet-mode = super.hamlet-mode.overrideAttrs (attrs: {
649           patches = [
650             # Fix build; maintainer email fails to parse
651             (pkgs.fetchpatch {
652               url = "https://github.com/lightquake/hamlet-mode/commit/253495d1330d6ec88d97fac136c78f57c650aae0.patch";
653               sha256 = "dSxS5yuXzCW96CUyvJWwjkhf1FMGBfiKKoBxeDVdz9Y=";
654             })
655           ];
656         });
658         helm-rtags = ignoreCompilationError (fix-rtags super.helm-rtags); # elisp error
660         # tries to write to $HOME
661         php-auto-yasnippets = super.php-auto-yasnippets.overrideAttrs (attrs: {
662           HOME = "/tmp";
663         });
665         racer = super.racer.overrideAttrs (attrs: {
666           postPatch = attrs.postPatch or "" + ''
667             substituteInPlace racer.el \
668               --replace /usr/local/src/rust/src ${pkgs.rustPlatform.rustcSrc}
669           '';
670         });
672         spaceline = super.spaceline.override {
673           inherit (self.melpaPackages) powerline;
674         };
676         vterm = super.vterm.overrideAttrs (old: {
677           nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.cmake ];
678           buildInputs = old.buildInputs ++ [ self.emacs pkgs.libvterm-neovim ];
679           cmakeFlags = [
680             "-DEMACS_SOURCE=${self.emacs.src}"
681             "-DUSE_SYSTEM_LIBVTERM=ON"
682           ];
683           # we need the proper out directory to exist, so we do this in the
684           # postInstall instead of postBuild
685           postInstall = (old.postInstall or "") + "\n" + ''
686             make
687             install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so
688             rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h}
689           '';
690         });
692         w3m = super.w3m.override (args: {
693           melpaBuild = drv: args.melpaBuild (drv // {
694             prePatch =
695               let w3m = "${lib.getBin pkgs.w3m}/bin/w3m"; in
696               ''
697                 substituteInPlace w3m.el \
698                 --replace 'defcustom w3m-command nil' \
699                 'defcustom w3m-command "${w3m}"'
700               '';
701           });
702         });
704         wordnut = super.wordnut.overrideAttrs (attrs: {
705           postPatch = attrs.postPatch or "" + ''
706             substituteInPlace wordnut.el \
707               --replace 'wordnut-cmd "wn"' 'wordnut-cmd "${lib.getExe pkgs.wordnet}"'
708           '';
709         });
711         mozc = super.mozc.overrideAttrs (attrs: {
712           postPatch = attrs.postPatch or "" + ''
713             substituteInPlace src/unix/emacs/mozc.el \
714               --replace '"mozc_emacs_helper"' '"${pkgs.ibus-engines.mozc}/lib/mozc/mozc_emacs_helper"'
715           '';
716         });
718         # Build a helper executable that interacts with the macOS Dictionary.app
719         osx-dictionary =
720           if pkgs.stdenv.hostPlatform.isDarwin
721           then super.osx-dictionary.overrideAttrs (old: {
722             buildInputs =
723               old.buildInputs ++
724               (with pkgs.darwin.apple_sdk.frameworks; [CoreServices Foundation]);
725             postBuild = (old.postBuild or "") + ''
726               $CXX -O3 -framework CoreServices -framework Foundation osx-dictionary.m -o osx-dictionary-cli
727             '';
728             postInstall = (old.postInstall or "") + "\n" + ''
729               outd=$out/share/emacs/site-lisp/elpa/osx-dictionary-*
730               mkdir -p $out/bin
731               install -m444 -t $out/bin osx-dictionary-cli
732               rm $outd/osx-dictionary.m
733             '';
734           })
735           else super.osx-dictionary;
737         # https://github.com/skeeto/at-el/issues/9
738         "@" = ignoreCompilationErrorIfOlder super."@" "20240923.1318";
740         abgaben = addPackageRequires (mkHome super.abgaben) [ self.mu4e ];
742         # https://github.com/afroisalreadyinu/abl-mode/issues/9
743         abl-mode = addPackageRequires super.abl-mode [ self.f ];
745         ac-php-core = super.ac-php-core.overrideAttrs (old: {
746           # empty file causing native-compiler-error-empty-byte
747           preBuild =
748             ''
749               rm --verbose ac-php-comm-tags-data.el
750             ''
751             + old.preBuild or "";
752         });
754         # Optimizer error: too much on the stack
755         ack-menu = ignoreCompilationError super.ack-menu;
757         # https://github.com/gongo/airplay-el/issues/2
758         airplay = addPackageRequires super.airplay [ self.request-deferred ];
760         alectryon = super.alectryon.overrideAttrs (
761           finalAttrs: previousAttrs: {
762             # https://github.com/melpa/melpa/pull/9185
763             preBuild =
764               if lib.versionOlder finalAttrs.version "20241006.1902" then
765                 previousAttrs.preBuild or ""
766                 + "\n"
767                 + ''
768                   rm --recursive --verbose etc/elisp/screenshot
769                 ''
770               else
771                 previousAttrs.preBuild or null;
772           }
773         );
775         # https://github.com/gergelypolonkai/alert-termux/issues/2
776         alert-termux = addPackageRequires super.alert-termux [ self.alert ];
778         # https://github.com/magnars/angular-snippets.el/issues/7
779         angular-snippets = addPackageRequires super.angular-snippets [ self.yasnippet ];
781         # https://github.com/ragone/asx/pull/3
782         asx = addPackageRequires super.asx [ self.request ];
784         auctex-cluttex = mkHome super.auctex-cluttex;
786         auctex-latexmk = mkHome super.auctex-latexmk;
788         auto-indent-mode = ignoreCompilationError super.auto-indent-mode; # elisp error
790         # missing optional dependencies
791         auto-complete-auctex = addPackageRequires (mkHome super.auto-complete-auctex) [ self.auctex ];
793         # depends on distel which is not on any ELPA https://github.com/massemanet/distel/issues/21
794         auto-complete-distel = ignoreCompilationError super.auto-complete-distel;
796         aws-ec2 = ignoreCompilationError super.aws-ec2; # elisp error
798         badger-theme = ignoreCompilationError super.badger-theme; # elisp error
800         # https://github.com/BinaryAnalysisPlatform/bap-mode/pull/4
801         bap-mode = fixRequireHelmCore (addPackageRequires super.bap-mode [ self.helm-core ]);
803         # try to open non-existent ~/.emacs.d/.blog_minimal.config during compilation
804         blog-minimal = ignoreCompilationError super.blog-minimal;
806         boa-mode = ignoreCompilationError super.boa-mode; # elisp error
808         # missing optional dependencies
809         # https://github.com/boogie-org/boogie-friends/issues/42
810         boogie-friends = ignoreCompilationError (addPackageRequires super.boogie-friends [ self.lsp-mode ]);
812         # this package probably should not be compiled in nix build sandbox
813         borg = ignoreCompilationError super.borg;
815         bpr = super.bpr.overrideAttrs (
816           finalAttrs: previousAttrs: {
817             # https://github.com/melpa/melpa/pull/9181
818             preBuild =
819               if lib.versionOlder finalAttrs.version "20241013.1803" then
820                 previousAttrs.preBuild or ""
821                 + "\n"
822                 + ''
823                   rm --verbose --force test-bpr.el
824                 ''
825               else
826                 previousAttrs;
827           }
828         );
830         bts = ignoreCompilationError super.bts; # elisp error
832         bts-github = ignoreCompilationError super.bts-github; # elisp error
834         buffer-buttons = ignoreCompilationError super.buffer-buttons; # elisp error
836         # https://github.com/kiwanami/emacs-calfw/pull/106
837         calfw-cal = addPackageRequires super.calfw-cal [ self.calfw ];
839         # https://github.com/kiwanami/emacs-calfw/pull/106
840         calfw-gcal = addPackageRequires super.calfw-gcal [ self.calfw ];
842         # https://github.com/kiwanami/emacs-calfw/pull/106
843         calfw-howm = addPackageRequires super.calfw-howm [
844           self.calfw
845           self.howm
846         ];
848         # https://github.com/kiwanami/emacs-calfw/pull/106
849         calfw-ical = addPackageRequires super.calfw-ical [ self.calfw ];
851         # https://github.com/kiwanami/emacs-calfw/pull/106
852         calfw-org = addPackageRequires super.calfw-org [ self.calfw ];
854         cardano-tx = ignoreCompilationError super.cardano-tx; # elisp error
856         cardano-wallet = ignoreCompilationError super.cardano-wallet; # elisp error
858         # elisp error and missing optional dependencies
859         cask-package-toolset = ignoreCompilationError super.cask-package-toolset;
861         # missing optional dependencies
862         chee = addPackageRequires super.chee [ self.helm ];
864         cheerilee = ignoreCompilationError super.cheerilee; # elisp error
866         # elisp error and missing optional dependencies
867         # one optional dependency spark is removed in https://github.com/melpa/melpa/pull/9151
868         chronometrist = ignoreCompilationError super.chronometrist;
870         chronometrist-key-values = super.chronometrist-key-values.overrideAttrs (
871           finalAttrs: previousAttrs: {
872             # https://github.com/melpa/melpa/pull/9184
873             recipe =
874               if lib.versionOlder finalAttrs.version "20241006.1831" then
875                 ''
876                   (chronometrist-key-values :fetcher git :url ""
877                    :files (:defaults "elisp/chronometrist-key-values.*"))
878                 ''
879               else
880                 previousAttrs.recipe;
881           }
882         );
884         clingo-mode = super.clingo-mode.overrideAttrs (
885           finalAttrs: previousAttrs: {
886             patches = previousAttrs.patches or [ ] ++ [
887               (pkgs.fetchpatch {
888                 name = "add-missing-end-parenthesis.patch";
889                 url = "https://github.com/llaisdy/clingo-mode/pull/3/commits/063445a24afb176c3f16af7a2763771dbdc4ecf6.patch";
890                 hash = "sha256-OYP5LaZmCUJFgFk1Pf30e7sml8fC+xI4HSyDz7lck7E=";
891               })
892             ];
893           }
894         );
896         # https://github.com/atilaneves/cmake-ide/issues/176
897         cmake-ide = addPackageRequires super.cmake-ide [ self.dash ];
899         code-review = ignoreCompilationError super.code-review; # elisp error
901         codesearch = super.codesearch.overrideAttrs (
902           finalAttrs: previousAttrs: {
903             patches =
904               if lib.versionOlder finalAttrs.version "20240827.805" then
905                 previousAttrs.patches or [ ]
906                 ++ [
907                   (pkgs.fetchpatch {
908                     name = "remove-unused-dash.patch";
909                     url = "https://github.com/abingham/emacs-codesearch/commit/bd24a152ab6ea9f69443ae8e5b7351bb2f990fb6.patch";
910                     hash = "sha256-cCHY8Ak2fHuuhymjSF7w2MLPDJa84mBUdKg27mB9yto=";
911                   })
912                 ]
913               else
914                 previousAttrs.patches or null;
915           }
916         );
918         # https://github.com/hying-caritas/comint-intercept/issues/2
919         comint-intercept = addPackageRequires super.comint-intercept [ self.vterm ];
921         company-auctex = mkHome super.company-auctex;
923         # depends on distel which is not on any ELPA https://github.com/massemanet/distel/issues/21
924         company-distel = ignoreCompilationError super.company-distel;
926         # qmltypes-table.el causing native-compiler-error-empty-byte
927         company-qml = ignoreCompilationError super.company-qml;
929         # https://github.com/neuromage/ycm.el/issues/6
930         company-ycm = ignoreCompilationError (addPackageRequires super.company-ycm [ self.company ]);
932         composable = ignoreCompilationError super.composable; # elisp error
934         # missing optional dependencies
935         conda = addPackageRequires super.conda [ self.projectile ];
937         consult-gh = super.consult-gh.overrideAttrs (old: {
938           propagatedUserEnvPkgs = old.propagatedUserEnvPkgs or [ ] ++ [ pkgs.gh ];
939         });
941         consult-gh-forge = buildWithGit super.consult-gh-forge;
943         counsel-gtags = ignoreCompilationError super.counsel-gtags; # elisp error
945         # https://github.com/fuxialexander/counsel-notmuch/issues/3
946         counsel-notmuch = addPackageRequires super.counsel-notmuch [ self.counsel ];
948         # needs dbus during compilation
949         counsel-spotify = ignoreCompilationError super.counsel-spotify;
951         creole = ignoreCompilationError super.creole; # elisp error
953         cssh = ignoreCompilationError super.cssh; # elisp error
955         dap-mode = super.dap-mode.overrideAttrs (old: {
956           # empty file causing native-compiler-error-empty-byte
957           preBuild =
958             ''
959               rm --verbose dapui.el
960             ''
961             + old.preBuild or "";
962         });
964         db-pg = ignoreCompilationError super.db-pg; # elisp error
966         describe-number = ignoreCompilationError super.describe-number; # elisp error
968         # missing optional dependencies: text-translator, not on any ELPA
969         dic-lookup-w3m = ignoreCompilationError super.dic-lookup-w3m;
971         # https://github.com/nlamirault/dionysos/issues/17
972         dionysos = addPackageRequires super.dionysos [ self.f ];
974         # https://github.com/emacsorphanage/dired-k/issues/48
975         # missing optional dependencies
976         dired-k = addPackageRequires super.dired-k [ self.direx ];
978         # depends on distel which is not on any ELPA https://github.com/massemanet/distel/issues/21
979         distel-completion-lib = ignoreCompilationError super.distel-completion-lib;
981         django-mode = ignoreCompilationError super.django-mode; # elisp error
983         # elisp error and missing optional dependencies
984         drupal-mode = ignoreCompilationError super.drupal-mode;
986         e2wm-pkgex4pl = ignoreCompilationError super.e2wm-pkgex4pl; # elisp error
988         ecb = ignoreCompilationError super.ecb; # elisp error
990         # Optimizer error: too much on the stack
991         edit-color-stamp = ignoreCompilationError super.edit-color-stamp;
993         edts = ignoreCompilationError (mkHome super.edts); # elisp error
995         eimp = super.eimp.overrideAttrs (old: {
996           postPatch =
997             old.postPatch or ""
998             + "\n"
999             + ''
1000               substituteInPlace eimp.el --replace-fail \
1001                 '(defcustom eimp-mogrify-program "mogrify"' \
1002                 '(defcustom eimp-mogrify-program "${pkgs.imagemagick}/bin/mogrify"'
1003             '';
1004         });
1006         ein = ignoreCompilationError super.ein; # elisp error
1008         # missing optional dependencies
1009         ejc-sql = addPackageRequires super.ejc-sql [
1010           self.auto-complete
1011           self.company
1012         ];
1014         # missing optional dependencies
1015         ekg = addPackageRequires super.ekg [ self.denote ];
1017         elisp-sandbox = ignoreCompilationError super.elisp-sandbox; # elisp error
1019         elnode = ignoreCompilationError super.elnode; # elisp error
1021         elscreen = super.elscreen.overrideAttrs (old: {
1022           patches = old.patches or [ ] ++ [
1023             (pkgs.fetchpatch {
1024               name = "do-not-require-unneeded-wl.patch";
1025               url = "https://github.com/knu/elscreen/pull/34/commits/2ffbeb11418d1b98809909c389e7010666d511fd.patch";
1026               hash = "sha256-7JoDGtFECZEkB3xmMBXZcx6oStkEV06soiqOkDevWtM=";
1027             })
1028           ];
1029         });
1031         el-secretario-mu4e = addPackageRequires super.el-secretario-mu4e [ self.mu4e ];
1033         embark-vc = buildWithGit super.embark-vc;
1035         # https://github.com/nubank/emidje/issues/23
1036         emidje = addPackageRequires super.emidje [ self.pkg-info ];
1038         # depends on later-do which is not on any ELPA
1039         emms-player-simple-mpv = ignoreCompilationError super.emms-player-simple-mpv;
1040         emms-player-mpv-jp-radios = ignoreCompilationError super.emms-player-mpv-jp-radios;
1042         enotify = ignoreCompilationError super.enotify; # elisp error
1044         # https://github.com/leathekd/ercn/issues/6
1045         ercn = addPackageRequires super.ercn [ self.dash ];
1047         # missing optional dependencies
1048         eval-in-repl = addPackageRequires super.eval-in-repl (
1049           with self;
1050           [
1051             alchemist
1052             cider
1053             elm-mode
1054             erlang
1055             geiser
1056             hy-mode
1057             elixir-mode
1058             js-comint
1059             lua-mode
1060             tuareg
1061             racket-mode
1062             inf-ruby
1063             slime
1064             sly
1065             sml-mode
1066           ]
1067         );
1069         # elisp error and missing dependencies
1070         evalator = ignoreCompilationError super.evalator;
1072         evalator-clojure = ignoreCompilationError super.evalator-clojure; # elisp error
1074         # https://github.com/PythonNut/evil-easymotion/issues/74
1075         evil-easymotion = addPackageRequires super.evil-easymotion [ self.evil ];
1077         evil-mu4e = addPackageRequires super.evil-mu4e [ self.mu4e ];
1079         # https://github.com/VanLaser/evil-nl-break-undo/issues/2
1080         evil-nl-break-undo = addPackageRequiresIfOlder super.evil-nl-break-undo [
1081           self.evil
1082         ] "20240921.953";
1084         evil-python-movement = ignoreCompilationError super.evil-python-movement; # elisp error
1086         evil-tex = mkHome super.evil-tex;
1088         # Error: Bytecode overflow
1089         ewal-doom-themes = ignoreCompilationError super.ewal-doom-themes;
1091         # https://github.com/agzam/exwm-edit/issues/32
1092         exwm-edit = addPackageRequires super.exwm-edit [ self.exwm ];
1094         # https://github.com/syl20bnr/flymake-elixir/issues/4
1095         flymake-elixir = addPackageRequires super.flymake-elixir [ self.flymake-easy ];
1097         flyparens = ignoreCompilationError super.flyparens; # elisp error
1099         fold-dwim-org = ignoreCompilationError super.fold-dwim-org; # elisp error
1101         frontside-javascript = super.frontside-javascript.overrideAttrs (
1102           finalAttrs: previousAttrs: {
1103             # https://github.com/melpa/melpa/pull/9182
1104             preBuild =
1105               if lib.versionOlder finalAttrs.version "20240929.1858" then
1106                 previousAttrs.preBuild or ""
1107                 + "\n"
1108                 + ''
1109                   rm --verbose packages/javascript/test-suppport.el
1110                 ''
1111               else
1112                 previousAttrs.preBuild or null;
1113           }
1114         );
1116         fxrd-mode = ignoreCompilationError super.fxrd-mode; # elisp error
1118         # missing optional dependencies
1119         gap-mode = addPackageRequires super.gap-mode [
1120           self.company
1121           self.flycheck
1122         ];
1124         gh-notify = buildWithGit super.gh-notify;
1126         "git-gutter-fringe+" = ignoreCompilationError super."git-gutter-fringe+"; # elisp error
1128         # https://github.com/nlamirault/emacs-gitlab/issues/68
1129         gitlab = addPackageRequires super.gitlab [ self.f ];
1131         # TODO report to upstream
1132         global-tags = addPackageRequires super.global-tags [ self.s ];
1134         go = ignoreCompilationError super.go; # elisp error
1136         graphene = ignoreCompilationError super.graphene; # elisp error
1138         greader = ignoreCompilationError super.greader; # elisp error
1140         # TODO report to upstream
1141         guix = addPackageRequires super.guix [ self.geiser-guile ];
1143         # missing optional dependencies
1144         gumshoe = addPackageRequires super.gumshoe [ self.perspective ];
1146         helm-chrome-control = super.helm-chrome-control.overrideAttrs (old: {
1147           patches = old.patches or [ ] ++ [
1148             (pkgs.fetchpatch {
1149               name = "require-helm-core-instead-of-helm.patch";
1150               url = "https://github.com/xuchunyang/helm-chrome-control/pull/2/commits/7765cd2483adef5cfa6cf77f52259ad6e1dd0daf.patch";
1151               hash = "sha256-tF+IaICbveYJvd3Tjx52YBBztpjifZdCA4O+Z2r1M3s=";
1152             })
1153           ];
1154         });
1156         # https://github.com/xuchunyang/helm-chrome-history/issues/3
1157         helm-chrome-history = fixRequireHelmCore super.helm-chrome-history;
1159         helm-cider = ignoreCompilationError super.helm-cider; # elisp error
1161         helm-ext = ignoreCompilationError super.helm-ext; # elisp error
1163         # https://github.com/iory/emacs-helm-ghs/issues/1
1164         helm-ghs = addPackageRequires super.helm-ghs [ self.helm-ghq ];
1166         # https://github.com/maio/helm-git/issues/7
1167         helm-git = addPackageRequires super.helm-git [
1168           self.helm
1169           self.magit
1170         ];
1172         # TODO report to upstream
1173         helm-flycheck = fixRequireHelmCore super.helm-flycheck;
1175         # https://github.com/yasuyk/helm-git-grep/issues/54
1176         helm-git-grep = addPackageRequires super.helm-git-grep [ self.helm ];
1178         # https://github.com/yasuyk/helm-go-package/issues/8
1179         helm-go-package = fixRequireHelmCore super.helm-go-package;
1181         # https://github.com/torgeir/helm-js-codemod.el/pull/1
1182         helm-js-codemod = fixRequireHelmCore super.helm-js-codemod;
1184         helm-kythe = ignoreCompilationError super.helm-kythe; # elisp error
1186         # https://github.com/emacs-jp/helm-migemo/issues/8
1187         helm-migemo = addPackageRequiresIfOlder super.helm-migemo [ self.helm ] "20240921.1550";
1189         helm-mu = addPackageRequires super.helm-mu [ self.mu4e ];
1191         # https://github.com/xuchunyang/helm-osx-app/pull/1
1192         helm-osx-app = addPackageRequires super.helm-osx-app [ self.helm ];
1194         # https://github.com/cosmicexplorer/helm-rg/issues/36
1195         helm-rg = ignoreCompilationError super.helm-rg; # elisp error
1197         # https://github.com/yasuyk/helm-spaces/issues/1
1198         helm-spaces = fixRequireHelmCore super.helm-spaces;
1200         hideshow-org = ignoreCompilationError super.hideshow-org; # elisp error
1202         # https://github.com/purcell/hippie-expand-slime/issues/2
1203         hippie-expand-slime = addPackageRequires super.hippie-expand-slime [ self.slime ];
1205         hyperbole = ignoreCompilationError (addPackageRequires (mkHome super.hyperbole) [ self.el-mock ]); # elisp error
1207         # needs non-existent "browser database directory" during compilation
1208         # TODO report to upsteam about missing dependency websocket
1209         ibrowse = ignoreCompilationError (addPackageRequires super.ibrowse [ self.websocket ]);
1211         # elisp error and missing optional dependencies
1212         identica-mode = ignoreCompilationError super.identica-mode;
1214         # missing optional dependencies
1215         idris-mode = addPackageRequires super.idris-mode [ self.flycheck ];
1217         imbot = ignoreCompilationError super.imbot; # elisp error
1219         indium = mkHome super.indium;
1221         # TODO report to upsteam
1222         inlineR = addPackageRequires super.inlineR [ self.ess ];
1224         # https://github.com/duelinmarkers/insfactor.el/issues/7
1225         insfactor = addPackageRequires super.insfactor [ self.cider ];
1227         # https://github.com/wandersoncferreira/ivy-clojuredocs/issues/5
1228         ivy-clojuredocs = addPackageRequires super.ivy-clojuredocs [ self.parseedn ];
1230         # TODO report to upstream
1231         jack-connect = addPackageRequires super.jack-connect [ self.dash ];
1233         jdee = ignoreCompilationError super.jdee; # elisp error
1235         # https://github.com/fred-o/jekyll-modes/issues/6
1236         jekyll-modes = addPackageRequires super.jekyll-modes [ self.poly-markdown ];
1238         jss = ignoreCompilationError super.jss; # elisp error
1240         # missing optional dependencies: vterm or eat
1241         julia-snail = addPackageRequires super.julia-snail [ self.eat ];
1243         kanagawa-themes = super.kanagawa-themes.overrideAttrs (
1244           finalAttrs: previousAttrs: {
1245             patches =
1246               if lib.versionOlder finalAttrs.version "20241015.2237" then
1247                 previousAttrs.patches or [ ]
1248                 ++ [
1249                   (pkgs.fetchpatch {
1250                     name = "fix-compilation-error.patch";
1251                     url = "https://github.com/Fabiokleis/kanagawa-emacs/commit/83c2b5c292198b46a06ec0ad62619d83fd965433.patch";
1252                     hash = "sha256-pB1ht03XCh+BWKHhxBAp701qt/KWAMJ2SQQaN3FgMjU=";
1253                   })
1254                 ]
1255               else
1256                 previousAttrs.patches or null;
1257           }
1258         );
1260         kite = ignoreCompilationError super.kite; # elisp error
1262         # missing optional dependencies
1263         laas = addPackageRequires super.laas [ self.math-symbol-lists ];
1265         latex-change-env = mkHome super.latex-change-env;
1267         latex-extra = mkHome super.latex-extra;
1269         latex-table-wizard = mkHome super.latex-table-wizard;
1271         leaf-defaults = ignoreCompilationError super.leaf-defaults; # elisp error
1273         # https://github.com/abo-abo/lispy/pull/683
1274         # missing optional dependencies
1275         lispy = addPackageRequires (mkHome super.lispy) [ self.indium ];
1277         # missing optional dependencies
1278         magik-mode = addPackageRequires super.magik-mode [
1279           self.auto-complete
1280           self.flycheck
1281         ];
1283         # missing optional dependencies
1284         magnatune = addPackageRequires super.magnatune [ self.helm ];
1286         major-mode-icons = ignoreCompilationError super.major-mode-icons; # elisp error
1288         malinka = ignoreCompilationError super.malinka; # elisp error
1290         mastodon = ignoreCompilationError super.mastodon; # elisp error
1292         # https://github.com/org2blog/org2blog/issues/339
1293         metaweblog = addPackageRequires super.metaweblog [ self.xml-rpc ];
1295         mu-cite = ignoreCompilationError super.mu-cite; # elisp error
1297         mu4e-alert = addPackageRequires super.mu4e-alert [ self.mu4e ];
1299         mu4e-column-faces = addPackageRequires super.mu4e-column-faces [ self.mu4e ];
1301         mu4e-conversation = addPackageRequires super.mu4e-conversation [ self.mu4e ];
1303         mu4e-jump-to-list = addPackageRequires super.mu4e-jump-to-list [ self.mu4e ];
1305         mu4e-marker-icons = addPackageRequires super.mu4e-marker-icons [ self.mu4e ];
1307         mu4e-overview = addPackageRequires super.mu4e-overview [ self.mu4e ];
1309         mu4e-query-fragments = addPackageRequires super.mu4e-query-fragments [ self.mu4e ];
1311         mu4e-views = addPackageRequires super.mu4e-views [ self.mu4e ];
1313         # https://github.com/magnars/multifiles.el/issues/9
1314         multifiles = addPackageRequires super.multifiles [ self.dash ];
1316         # missing optional dependencies
1317         mykie = addPackageRequires super.mykie [ self.helm ];
1319         myrddin-mode = ignoreCompilationError super.myrddin-mode; # elisp error
1321         nand2tetris = super.nand2tetris.overrideAttrs (old: {
1322           patches = old.patches or [ ] ++ [
1323             (pkgs.fetchpatch {
1324               name = "remove-unneeded-require.patch";
1325               url = "https://github.com/CestDiego/nand2tetris.el/pull/16/commits/d06705bf52f3cf41f55498d88fe15a1064bc2cfa.patch";
1326               hash = "sha256-8OJXN9MuwBbL0afus53WroIxtIzHY7Bryv5ZGcS/inI=";
1327             })
1328           ];
1329         });
1331         # elisp error and missing dependency spamfilter which is not on any ELPA
1332         navi2ch = ignoreCompilationError super.navi2ch;
1334         navorski = super.navorski.overrideAttrs (old: {
1335           patches = old.patches or [ ] ++ [
1336             (pkgs.fetchpatch {
1337               name = "stop-using-assoc.patch";
1338               url = "https://github.com/roman/navorski.el/pull/12/commits/b7b6c331898cae239c176346ac87c8551b1e0c72.patch";
1339               hash = "sha256-CZxOSGuJXATonHMSLGCzO4kOlQqRAOcNNq0i4Qh21y8=";
1340             })
1341           ];
1342         });
1344         # empty tools/ncl-mode-keywords.el causing native-compiler-error-empty-byte
1345         ncl-mode = ignoreCompilationError super.ncl-mode;
1347         # missing optional dependencies
1348         netease-cloud-music = addPackageRequires super.netease-cloud-music [ self.async ];
1350         nim-mode = ignoreCompilationError super.nim-mode; # elisp error
1352         noctilux-theme = ignoreCompilationError super.noctilux-theme; # elisp error
1354         # https://github.com/nicferrier/emacs-noflet/issues/12
1355         noflet = ignoreCompilationError super.noflet; # elisp error
1357         norns = ignoreCompilationError super.norns; # elisp error
1359         # missing optional dependencies
1360         nu-mode = addPackageRequires super.nu-mode [ self.evil ];
1362         # try to open non-existent ~/.emacs.d/.chatgpt-shell.el during compilation
1363         ob-chatgpt-shell = ignoreCompilationError super.ob-chatgpt-shell;
1365         org-change = ignoreCompilationError super.org-change; # elisp error
1367         org-edit-latex = mkHome super.org-edit-latex;
1369         # https://github.com/GuiltyDolphin/org-evil/issues/24
1370         # hydra has that error: https://hydra.nixos.org/build/274852065
1371         # but I cannot reproduce that locally
1372         org-evil = ignoreCompilationError super.org-evil;
1374         org-gnome = ignoreCompilationError super.org-gnome; # elisp error
1376         org-gtd = ignoreCompilationError super.org-gtd; # elisp error
1378         # needs newer org than the Eamcs 29.4 builtin one
1379         org-link-beautify = addPackageRequires super.org-link-beautify [ self.org ];
1381         # TODO report to upstream
1382         org-kindle = addPackageRequires super.org-kindle [ self.dash ];
1384         org-special-block-extras = ignoreCompilationError super.org-special-block-extras; # elisp error
1386         org-trello = ignoreCompilationError super.org-trello; # elisp error
1388         # Requires xwidgets compiled into emacs, so mark this package
1389         # as broken if emacs hasn't been compiled with the flag.
1390         org-xlatex =
1391           if self.emacs.withXwidgets
1392           then super.org-xlatex
1393           else markBroken super.org-xlatex;
1395         # Optimizer error: too much on the stack
1396         orgnav = ignoreCompilationError super.orgnav;
1398         org-noter = super.org-noter.overrideAttrs (
1399           finalAttrs: previousAttrs: {
1400             patches =
1401               if lib.versionOlder finalAttrs.version "20240915.344" then
1402                 previousAttrs.patches or [ ]
1403                 ++ [
1404                   (pkgs.fetchpatch {
1405                     name = "catch-error-for-optional-dep-org-roam.patch";
1406                     url = "https://github.com/org-noter/org-noter/commit/761c551ecc88fec57e840d346c6af5f5b94591d5.patch";
1407                     hash = "sha256-Diw9DgjANDWu6CBMOlRaihQLOzeAr7VcJPZT579dpYU=";
1408                   })
1409                 ]
1410               else
1411                 previousAttrs.patches or null;
1412           }
1413         );
1415         org-noter-pdftools = mkHome super.org-noter-pdftools;
1417         # elisp error and missing optional dependencies
1418         org-ref = ignoreCompilationError super.org-ref;
1420         # missing optional dependencies
1421         org-roam-bibtex = addPackageRequires super.org-roam-bibtex [
1422           self.helm-bibtex
1423           self.ivy-bibtex
1424         ];
1426         org-pdftools = mkHome super.org-pdftools;
1428         org-projectile = super.org-projectile.overrideAttrs (
1429           finalAttrs: previousAttrs: {
1430             # https://github.com/melpa/melpa/pull/9150
1431             preBuild =
1432               if lib.versionOlder finalAttrs.version "20240901.2041" then
1433                 ''
1434                   rm --verbose org-projectile-helm.el
1435                 ''
1436                 + previousAttrs.preBuild or ""
1437               else
1438                 previousAttrs.preBuild or null;
1439           }
1440         );
1442         # https://github.com/colonelpanic8/org-project-capture/issues/66
1443         org-projectile-helm = addPackageRequires super.org-projectile-helm [ self.helm-org ];
1445         # https://github.com/DarwinAwardWinner/mac-pseudo-daemon/issues/9
1446         osx-pseudo-daemon = addPackageRequiresIfOlder super.osx-pseudo-daemon [ self.mac-pseudo-daemon ] "20240922.2024";
1448         # missing optional dependencies
1449         outlook = addPackageRequires super.outlook [ self.mu4e ];
1451         pastery = ignoreCompilationError super.pastery; # elisp error
1453         pgdevenv = ignoreCompilationError super.pgdevenv; # elisp error
1455         pinot = ignoreCompilationError super.pinot; # elisp error
1457         # https://github.com/polymode/poly-R/issues/41
1458         poly-R = addPackageRequires super.poly-R [ self.ess ];
1460         # missing optional dependencies: direx e2wm yaol, yaol not on any ELPA
1461         pophint = ignoreCompilationError super.pophint;
1463         portage-navi = ignoreCompilationError super.portage-navi; # elisp error
1465         preview-dvisvgm = mkHome super.preview-dvisvgm;
1467         # https://github.com/micdahl/projectile-trailblazer/issues/4
1468         projectile-trailblazer = addPackageRequires super.projectile-trailblazer [ self.projectile-rails ];
1470         projmake-mode = ignoreCompilationError super.projmake-mode; # elisp error
1472         # https://github.com/tumashu/pyim-basedict/issues/4
1473         pyim-basedict = addPackageRequires super.pyim-basedict [ self.pyim ];
1475         # TODO report to upstream
1476         realgud-lldb = super.realgud-lldb.overrideAttrs (old: {
1477           preBuild =
1478             old.preBuild or ""
1479             + "\n"
1480             + ''
1481               rm --verbose cask-install.el
1482             '';
1483         });
1485         # empty .yas-compiled-snippets.el causing native-compiler-error-empty-byte
1486         requirejs = ignoreCompilationError super.requirejs;
1488         rhtml-mode = ignoreCompilationError super.rhtml-mode; # elisp error
1490         roguel-ike = ignoreCompilationError super.roguel-ike; # elisp error
1492         rpm-spec-mode = ignoreCompilationError super.rpm-spec-mode; # elisp error
1494         # https://github.com/emacsfodder/emacs-theme-sakura/issues/1
1495         sakura-theme = addPackageRequiresIfOlder super.sakura-theme [ self.autothemer ] "20240921.1028";
1497         scad-preview = ignoreCompilationError super.scad-preview; # elisp error
1499         # https://github.com/wanderlust/semi/pull/29
1500         # missing optional dependencies
1501         semi = addPackageRequires super.semi [ self.bbdb-vcard ];
1503         shadchen = ignoreCompilationError super.shadchen; # elisp error
1505         # missing optional dependencies and one of them (mew) is not on any ELPA
1506         shimbun = ignoreCompilationError (
1507           addPackageRequires super.shimbun [
1508             self.apel
1509             self.flim
1510             self.w3m
1511           ]
1512         );
1514         slack = mkHome super.slack;
1516         # https://github.com/ffevotte/slurm.el/issues/14
1517         slurm-mode = addPackageRequires super.slurm-mode [
1518           self.dash
1519           self.s
1520         ];
1522         smart-tabs-mode = ignoreCompilationError super.smart-tabs-mode; # elisp error
1524         # needs network during compilation
1525         # https://github.com/md-arif-shaikh/soccer/issues/14
1526         soccer = ignoreCompilationError (addPackageRequires super.soccer [ self.s ]);
1528         # elisp error and missing optional dependencies
1529         soundklaus = ignoreCompilationError super.soundklaus;
1531         # missing optional dependencies
1532         sparql-mode = addPackageRequires super.sparql-mode [ self.company ];
1534         speechd-el = ignoreCompilationError super.speechd-el; # elisp error
1536         spu = ignoreCompilationError super.spu; # elisp error
1538         # missing optional dependencies
1539         ssh-tunnels = addPackageRequires super.ssh-tunnels [ self.helm ];
1541         # https://github.com/brianc/jade-mode/issues/73
1542         stylus-mode = addPackageRequires super.stylus-mode [ self.sws-mode ];
1544         # missing optional dependencies
1545         suggest = addPackageRequires super.suggest [ self.shut-up ];
1547         symex = ignoreCompilationError super.symex; # elisp error
1549         term-alert = mkHome super.term-alert;
1551         # https://github.com/colonelpanic8/term-manager/issues/9
1552         term-manager = addPackageRequires super.term-manager [ self.eat ];
1554         texfrag = mkHome super.texfrag;
1556         # https://github.com/Dspil/text-categories/issues/3
1557         text-categories = addPackageRequiresIfOlder super.text-categories [ self.dash ] "20240921.824";
1559         timp = ignoreCompilationError super.timp; # elisp error
1561         tommyh-theme = ignoreCompilationError super.tommyh-theme; # elisp error
1563         tramp-hdfs = ignoreCompilationError super.tramp-hdfs; # elisp error
1565         universal-emotions-emoticons = ignoreCompilationError super.universal-emotions-emoticons; # elisp error
1567         use-package-el-get = addPackageRequires super.use-package-el-get [ self.el-get ];
1569         vala-mode = ignoreCompilationError super.vala-mode; # elisp error
1571         # needs network during compilation
1572         wandbox = ignoreCompilationError super.wandbox; # needs network
1574         # optional dependency spamfilter is not on any ELPA
1575         wanderlust = ignoreCompilationError (addPackageRequires super.wanderlust [ self.shimbun ]);
1577         # https://github.com/nicklanasa/xcode-mode/issues/28
1578         xcode-mode = addPackageRequires super.xcode-mode [ self.hydra ];
1580         weechat = ignoreCompilationError super.weechat; # elisp error
1582         weechat-alert = ignoreCompilationError super.weechat-alert; # elisp error
1584         weibo = ignoreCompilationError super.weibo; # elisp error
1586         xenops = mkHome super.xenops;
1588         # missing optional dependencies
1589         xmlunicode = addPackageRequires super.xmlunicode [ self.helm ];
1591         # https://github.com/canatella/xwwp/issues/18
1592         xwwp-follow-link-ivy = addPackageRequires super.xwwp-follow-link-ivy [ self.ivy ];
1594         # https://github.com/canatella/xwwp/issues/19
1595         xwwp-follow-link-helm = addPackageRequires super.xwwp-follow-link-helm [ self.helm ];
1597         yara-mode = ignoreCompilationError super.yara-mode; # elisp error
1599         # https://github.com/leanprover-community/yasnippet-lean/issues/6
1600         yasnippet-lean = addPackageRequires super.yasnippet-lean [ self.lean-mode ];
1602         yasnippet-snippets = mkHome super.yasnippet-snippets;
1604         yatex = ignoreCompilationError super.yatex; # elisp error
1606         # elisp error and incomplete recipe
1607         ycm = ignoreCompilationError (
1608           addPackageRequires super.ycm [
1609             self.flycheck
1610             self.f
1611           ]
1612         );
1614         # missing optional dependencies
1615         zotxt = addPackageRequires super.zotxt [ self.org-noter ];
1616       };
1618     in lib.mapAttrs (n: v: if lib.hasAttr n overrides then overrides.${n} else v) super);
1621 generateMelpa { }