31 lines
951 B
Nix
31 lines
951 B
Nix
|
{
|
||
|
unstableSource,
|
||
|
}:
|
||
|
|
||
|
self: super:
|
||
|
|
||
|
let
|
||
|
useUnstable = self.config.useUnstable or true;
|
||
|
|
||
|
unstablePkgsForNixpkgs = nixpkgs: import unstableSource {
|
||
|
# localSystem -> pkgs.stdenv.buildPlatform
|
||
|
localSystem = nixpkgs.stdenv.buildPlatform;
|
||
|
# crossSystem -> pkgs.stdenv.hostPlatform or pkgs.stdenv.targetPlatform ??
|
||
|
# passing below
|
||
|
# config -> pkgs.config
|
||
|
config = nixpkgs.config;
|
||
|
# overlays -> partial of pkgs.overlays
|
||
|
overlays = nixpkgs.overlays;
|
||
|
# crossOverlays -> partial of pkgs.overlays
|
||
|
# crossOverlays are merged to overlays, not sure what issues that might raise.
|
||
|
# ignoring.
|
||
|
} // (if nixpkgs.stdenv.buildPlatform == nixpkgs.stdenv.hostPlatform then {} else {
|
||
|
# workaround for some odd structured packages that changes behaviour
|
||
|
# when crossSystem is passed.
|
||
|
crossSystem = nixpkgs.stdenv.hostPlatform;
|
||
|
});
|
||
|
in
|
||
|
{
|
||
|
unstable = if useUnstable then unstablePkgsForNixpkgs self else self;
|
||
|
}
|