Compare commits
3 commits
c188003188
...
d543c41694
Author | SHA1 | Date | |
---|---|---|---|
d543c41694 | |||
d4e7760eb8 | |||
f7e48890cd |
2 changed files with 38 additions and 29 deletions
34
pkgs/overlays/unstable-from-source.nix
Normal file
34
pkgs/overlays/unstable-from-source.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
unstableSource,
|
||||
}:
|
||||
|
||||
self: super:
|
||||
|
||||
let
|
||||
useUnstable = self.config.useUnstable or true;
|
||||
sanitizePlatform = platformConfig: self.lib.removeAttrs platformConfig [
|
||||
"emulator"
|
||||
"emulatorAvailable"
|
||||
];
|
||||
|
||||
unstablePkgsForNixpkgs = nixpkgs: import unstableSource {
|
||||
# localSystem -> pkgs.stdenv.buildPlatform
|
||||
localSystem = sanitizePlatform 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 = sanitizePlatform nixpkgs.stdenv.hostPlatform;
|
||||
});
|
||||
in
|
||||
{
|
||||
unstable = if useUnstable then unstablePkgsForNixpkgs self else self;
|
||||
}
|
|
@ -2,18 +2,9 @@ self: super:
|
|||
|
||||
let
|
||||
nixos = self.config.nixos or true;
|
||||
unstableRevision = self.config.unstableRevision or null;
|
||||
unstableRevisionHash = self.config.unstableRevisionHash or null;
|
||||
useUnstable = self.config.useUnstable or true;
|
||||
|
||||
unstablePkgsExprs = if !builtins.isNull unstableRevision
|
||||
then if !builtins.isNull unstableRevisionHash
|
||||
then builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/${unstableRevision}.tar.gz";
|
||||
sha256 = unstableRevisionHash;
|
||||
}
|
||||
else builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/${unstableRevision}.tar.gz"
|
||||
else if nixos
|
||||
unstablePkgsExprs = if nixos
|
||||
then builtins.fetchTarball "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||
else builtins.fetchTarball "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
|
||||
|
||||
|
@ -24,26 +15,10 @@ let
|
|||
];
|
||||
|
||||
nixpkgsRevision = (builtins.readFile "${unstablePkgsExprs}/.git-revision");
|
||||
unstablePkgsForNixpkgs = nixpkgs: import unstablePkgsExprs {
|
||||
# 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;
|
||||
import ./unstable-from-source.nix {
|
||||
unstableSource = unstablePkgsExprs;
|
||||
} self super // {
|
||||
unstableVersion = self.lib.optionalString useUnstable nixpkgsVersion;
|
||||
unstableRevision = self.lib.optionalString useUnstable nixpkgsRevision;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue