|
2 | 2 | description = "The Sourcegraph developer environment & packages Nix Flake"; |
3 | 3 |
|
4 | 4 | inputs = { |
5 | | - nixpkgs.url = "github:NixOS/nixpkgs/e78d25df6f1036b3fa76750ed4603dd9d5fe90fc"; |
| 5 | + nixpkgs.url = "nixpkgs/nixpkgs-unstable"; |
| 6 | + # separate nixpkgs pin for more stable changes to binaries we build |
| 7 | + nixpkgs-stable.url = "github:NixOS/nixpkgs/e78d25df6f1036b3fa76750ed4603dd9d5fe90fc"; |
6 | 8 | flake-utils.url = "github:numtide/flake-utils"; |
7 | 9 | }; |
8 | 10 |
|
9 | | - outputs = { self, nixpkgs, flake-utils }: |
| 11 | + outputs = { self, nixpkgs, nixpkgs-stable, flake-utils }: |
10 | 12 | let |
11 | | - xcompileTargets = with nixpkgs.lib.systems.examples; { |
12 | | - "aarch64-darwin" = nixpkgs.legacyPackages.aarch64-darwin.pkgsx86_64Darwin; |
13 | | - "x86_64-darwin" = import nixpkgs { system = "x86_64-darwin"; crossSystem = aarch64-darwin; }; |
| 13 | + xcompileTargets = with nixpkgs-stable.lib.systems.examples; { |
| 14 | + "aarch64-darwin" = nixpkgs-stable.legacyPackages.aarch64-darwin.pkgsx86_64Darwin; |
| 15 | + "x86_64-darwin" = import nixpkgs-stable { system = "x86_64-darwin"; crossSystem = aarch64-darwin; }; |
14 | 16 | }; |
15 | 17 | inherit (import ./dev/nix/util.nix { inherit (nixpkgs) lib; }) xcompilify; |
16 | 18 | in |
17 | 19 | flake-utils.lib.eachDefaultSystem |
18 | 20 | (system: |
19 | 21 | let |
20 | 22 | pkgs = nixpkgs.legacyPackages.${system}; |
| 23 | + pkgsBins = nixpkgs-stable.legacyPackages.${system}; |
21 | 24 | pkgs' = import nixpkgs { inherit system; overlays = builtins.attrValues self.overlays; }; |
22 | 25 | pkgsX = xcompileTargets.${system} or null; |
23 | 26 | in |
24 | 27 | { |
25 | 28 | legacyPackages = pkgs'; |
26 | 29 |
|
27 | | - packages = xcompilify { inherit pkgs pkgsX; } |
28 | | - (pkgs: { |
29 | | - ctags = pkgs.callPackage ./dev/nix/ctags.nix { }; |
30 | | - comby = pkgs.callPackage ./dev/nix/comby.nix { }; |
31 | | - p4-fusion = pkgs.callPackage ./dev/nix/p4-fusion.nix { }; |
| 30 | + packages = xcompilify { inherit pkgsX; pkgs = pkgsBins; } |
| 31 | + (p: { |
| 32 | + ctags = p.callPackage ./dev/nix/ctags.nix { }; |
| 33 | + comby = p.callPackage ./dev/nix/comby.nix { }; |
| 34 | + p4-fusion = p.callPackage ./dev/nix/p4-fusion.nix { }; |
32 | 35 | }) // { |
33 | | - nodejs-16_x = pkgs.callPackage ./dev/nix/nodejs.nix { }; |
| 36 | + # doesnt need the same stability as those above |
| 37 | + nodejs-18_x = pkgs.callPackage ./dev/nix/nodejs.nix { }; |
34 | 38 | }; |
35 | 39 |
|
36 | 40 | # We use pkgs (not pkgs') intentionally to avoid doing extra work of |
|
43 | 47 | overlays = { |
44 | 48 | ctags = final: prev: { universal-ctags = self.packages.${prev.system}.ctags; }; |
45 | 49 | comby = final: prev: { comby = self.packages.${prev.system}.comby; }; |
46 | | - nodejs-16_x = final: prev: { nodejs-16_x = self.packages.${prev.system}.nodejs-16_x; }; |
| 50 | + nodejs-18_x = final: prev: { nodejs-16_x = self.packages.${prev.system}.nodejs-18_x; }; |
47 | 51 | p4-fusion = final: prev: { p4-fusion = self.packages.${prev.system}.p4-fusion; }; |
48 | 52 | }; |
49 | 53 | }; |
|
0 commit comments