emacs: factor out elisp package override helpers (#341964)

authored by

Lin Jian and committed by
GitHub
3b216ee0 189af30d

+41 -39
+3 -5
pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
··· 26 26 27 27 self: let 28 28 29 - markBroken = pkg: pkg.override { 30 - elpaBuild = args: self.elpaBuild (args // { 31 - meta = (args.meta or {}) // { broken = true; }; 32 - }); 33 - }; 29 + inherit (import ./lib-override-helper.nix pkgs) 30 + markBroken 31 + ; 34 32 35 33 # Use custom elpa url fetcher with fallback/uncompress 36 34 fetchurl = buildPackages.callPackage ./fetchelpa.nix { };
+3 -5
pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
··· 26 26 27 27 self: let 28 28 29 - markBroken = pkg: pkg.override { 30 - elpaBuild = args: self.elpaBuild (args // { 31 - meta = (args.meta or {}) // { broken = true; }; 32 - }); 33 - }; 29 + inherit (import ./lib-override-helper.nix pkgs) 30 + markBroken 31 + ; 34 32 35 33 # Use custom elpa url fetcher with fallback/uncompress 36 34 fetchurl = buildPackages.callPackage ./fetchelpa.nix { };
+28
pkgs/applications/editors/emacs/elisp-packages/lib-override-helper.nix
··· 1 + pkgs: 2 + 3 + rec { 4 + buildWithGit = 5 + pkg: 6 + pkg.overrideAttrs (previousAttrs: { 7 + nativeBuildInputs = previousAttrs.nativeBuildInputs or [ ] ++ [ pkgs.git ]; 8 + }); 9 + 10 + dontConfigure = pkg: pkg.overrideAttrs { dontConfigure = true; }; 11 + 12 + externalSrc = 13 + pkg: epkg: 14 + pkg.overrideAttrs (previousAttrs: { 15 + inherit (epkg) src version; 16 + propagatedUserEnvPkgs = previousAttrs.propagatedUserEnvPkgs or [ ] ++ [ epkg ]; 17 + }); 18 + 19 + fix-rtags = pkg: dontConfigure (externalSrc pkg pkgs.rtags); 20 + 21 + markBroken = 22 + pkg: 23 + pkg.overrideAttrs (previousAttrs: { 24 + meta = previousAttrs.meta or { } // { 25 + broken = true; 26 + }; 27 + }); 28 + }
+7 -29
pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
··· 30 30 31 31 { lib, pkgs }: variant: self: 32 32 let 33 - dontConfigure = pkg: 34 - pkg.override (args: { 35 - melpaBuild = drv: args.melpaBuild (drv // { 36 - dontConfigure = true; 37 - }); 38 - }); 39 - 40 - markBroken = pkg: 41 - pkg.override (args: { 42 - melpaBuild = drv: args.melpaBuild (drv // { 43 - meta = (drv.meta or { }) // { broken = true; }; 44 - }); 45 - }); 46 - 47 - externalSrc = pkg: epkg: 48 - pkg.override (args: { 49 - melpaBuild = drv: args.melpaBuild (drv // { 50 - inherit (epkg) src version; 51 - 52 - propagatedUserEnvPkgs = [ epkg ]; 53 - }); 54 - }); 55 - 56 - buildWithGit = pkg: pkg.overrideAttrs (attrs: { 57 - nativeBuildInputs = 58 - (attrs.nativeBuildInputs or [ ]) ++ [ pkgs.git ]; 59 - }); 60 - 61 - fix-rtags = pkg: dontConfigure (externalSrc pkg pkgs.rtags); 33 + inherit (import ./lib-override-helper.nix pkgs) 34 + buildWithGit 35 + dontConfigure 36 + externalSrc 37 + fix-rtags 38 + markBroken 39 + ; 62 40 63 41 generateMelpa = lib.makeOverridable ({ archiveJson ? defaultArchive 64 42 }: