{
  unstableSource,
  revision,
}: self: super:

let
  version = builtins.readFile "${unstableSource}/lib/.version" + ".git." + builtins.substring 0 12 revision;
  useUnstable = self.config.useUnstable or true;

in
import ./unstable-from-source.nix {
  inherit unstableSource;
} self super // {
  unstableVersion = self.lib.optionalString useUnstable version;
  unstableRevision = self.lib.optionalString useUnstable revision;
}