self: super:

let
  inherit (super) callPackage;
in
let
  pythonOverrides = self: super: {
    termtime = callPackage ./pkgs/python-packages/termtime.nix { inherit (super) buildPythonPackage  fetchPypi; };
  };
in
rec {
  coreutils-advcpmv = callPackage ./pkgs/coreutils-advcpmv.nix {};

  crosstool-ng = callPackage ./pkgs/crosstool-ng.nix {};

  gnomeExtensions = (super.gnomeExtensions or {}) // {
    hide-activities = callPackage ./pkgs/gnome-shell-extensions/hide-activities.nix {};
    hibernate-button = callPackage ./pkgs/gnome-shell-extensions/hibernate-button.nix {};
    noannoyance = callPackage ./pkgs/gnome-shell-extensions/noannoyance.nix {};
    bluetooth-quick-connect = callPackage ./pkgs/gnome-shell-extensions/bluetooth-quick-connect.nix { };
  };

  flatery-icon-theme = callPackage ./pkgs/icon-theme/flatery-icon-theme.nix {};

  openhexagon = callPackage ./pkgs/openhexagon/default.nix {};

  python3 = super.python3.override { packageOverrides = pythonOverrides; };

  mumble = super.mumble.overrideAttrs (old: {
    patches = (old.patches or []) ++ [ ./patches/mumble-os-version.patch ];
  });
}