anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / editors / emacs / elisp-packages / nongnu-devel-packages.nix
blobbba1f73f02afc786405b9b20d662344f700ef1f4
1 /*
2   # Updating
4   To update the list of packages from nongnu devel (ELPA),
6   1. Run `./update-nongnu-devel`.
7   2. Check for evaluation errors:
8        # "../../../../../" points to the default.nix from root of Nixpkgs tree
9        env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate ../../../../../ -A emacs.pkgs.nongnuDevelPackages
10   3. Run `git commit -m "nongnu-devel-packages $(date -Idate)" -- nongnu-devel-generated.nix`
14   lib,
15   pkgs,
16   buildPackages,
19 self:
20 let
22   inherit (import ./lib-override-helper.nix pkgs lib)
23     addPackageRequires
24     ;
26   generateNongnu = lib.makeOverridable (
27     {
28       generated ? ./nongnu-devel-generated.nix,
29     }:
30     let
32       imported = import generated {
33         callPackage =
34           pkgs: args:
35           self.callPackage pkgs (
36             args
37             // {
38               # Use custom elpa url fetcher with fallback/uncompress
39               fetchurl = buildPackages.callPackage ./fetchelpa.nix { };
40             }
41           );
42       };
44       super = imported;
46       commonOverrides = import ./nongnu-common-overrides.nix pkgs lib;
48       overrides = self: super: {
49         # missing optional dependencies
50         haskell-tng-mode = addPackageRequires super.haskell-tng-mode [
51           self.shut-up
52           self.lsp-mode
53         ];
54       };
56     in
57     let
58       super' = super // (commonOverrides self super);
59     in
60     super' // (overrides self super')
61   );
64 generateNongnu { }