|
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