{ sources, ... }@args:

let
  pkgs = import sources.nixpkgs args;
  oldstable = import sources.nixpkgs-oldstable args;
  unstable = import sources.nixpkgs-unstable args;

  callPackage = pkgs.lib.callPackageWith (pkgs // newpkgs);

  newpkgs = {

    mattermost = callPackage ./mattermost.nix {
      buildGoModule = unstable.buildGo122Module;
    };

    morph = callPackage ./morph.nix {
      buildGoModule = unstable.buildGo122Module;
    };

    tracktrain = import sources.tracktrain {
      nixpkgs = unstable;
      compiler = "default";
    };

    uffd = oldstable.callPackage ./uffd { };

    hacc-scripts = callPackage ./scripts {};

    inherit (oldstable) uwsgi flask;
  };

in pkgs.extend(_: _: newpkgs)