feat(3p/nixpkgs): Plumb through externalArgs.nixpkgsBisectPath
This lets the import of the depot root accept an additional argument called `externalArgs`, which can be used to pass additional arguments into a depot package set. This is used in //third_party/nixpkgs for replacing the source of the nixos-unstable channel with a path. With this we can bisect the nixpkgs used in third_party easily. Change-Id: I4f65eb3d6b521ed9f437649b7b068f1e6ab8210f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2925 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
726eff80f1
commit
6c4ece917d
2 changed files with 17 additions and 4 deletions
|
@ -5,7 +5,7 @@
|
|||
# This makes packages accessible via the Nixery instance that is configured to
|
||||
# use this repository as its nixpkgs source.
|
||||
|
||||
{ ... }@args:
|
||||
{ nixpkgsBisectPath ? null, ... }@args:
|
||||
|
||||
with builtins;
|
||||
|
||||
|
@ -24,6 +24,13 @@ let
|
|||
# Pass third_party as 'pkgs' (for compatibility with external
|
||||
# imports for certain subdirectories)
|
||||
pkgs = depot.third_party.nixpkgs;
|
||||
|
||||
# Pass arguments passed to the entire depot through, for packages
|
||||
# that would like to add functionality based on this.
|
||||
#
|
||||
# Note that it is intended for exceptional circumstance, such as
|
||||
# debugging by bisecting nixpkgs.
|
||||
externalArgs = args;
|
||||
};
|
||||
|
||||
readTree' = import ./nix/readTree {};
|
||||
|
|
12
third_party/nixpkgs/default.nix
vendored
12
third_party/nixpkgs/default.nix
vendored
|
@ -6,7 +6,7 @@
|
|||
# in //default.nix passes this attribute as the `pkgs` argument to all
|
||||
# readTree derivations.
|
||||
|
||||
{ depot, ... }:
|
||||
{ depot, externalArgs, ... }:
|
||||
|
||||
let
|
||||
# This provides the sources of nixpkgs. We track both
|
||||
|
@ -25,10 +25,16 @@ let
|
|||
sha256 = "073327ris0frqa3kpid3nsjr9w8yx2z83xpsc24w898mrs9r7d5v";
|
||||
};
|
||||
|
||||
nixpkgsSrc = fetchTarball {
|
||||
# import the nixos-unstable package set, or optionally use the
|
||||
# source (e.g. a path) specified by the `nixpkgsBisectPath`
|
||||
# argument. This is intended for use-cases where the depot is
|
||||
# bisected against nixpkgs to find the root cause of an issue in a
|
||||
# channel bump.
|
||||
nixpkgsSrc = externalArgs.nixpkgsBisectPath or (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/${unstableHashes.commit}.tar.gz";
|
||||
sha256 = unstableHashes.sha256;
|
||||
};
|
||||
});
|
||||
|
||||
stableNixpkgsSrc = fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/${stableHashes.commit}.tar.gz";
|
||||
sha256 = stableHashes.sha256;
|
||||
|
|
Loading…
Reference in a new issue