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 then builtins.fetchTarball "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" else builtins.fetchTarball "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; # Compiled nixpkgs expression eg expressions from a nix channel nixpkgsVersion = builtins.concatStringsSep "." [ (builtins.readFile "${unstablePkgsExprs}/.version") (builtins.readFile "${unstablePkgsExprs}/.version-suffix") ]; nixpkgsRevision = (builtins.readFile "${unstablePkgsExprs}/.git-revision"); in import ./unstable-from-source.nix { unstableSource = unstablePkgsExprs; } self super // { unstableVersion = self.lib.optionalString useUnstable nixpkgsVersion; unstableRevision = self.lib.optionalString useUnstable nixpkgsRevision; }