{ config, pkgs, ... }: with import ; { nixpkgs.config.packageOverrides = super: let # This callPackage will try to detect obsolete overrides. callPackage = path: args: let override = super.callPackage path args; upstream = optionalAttrs (override ? "name") (super.${(parseDrvName override.name).name} or {}); in if upstream ? "name" && override ? "name" && compareVersions upstream.name override.name != -1 then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override else override; in {} // mapAttrs (_: flip callPackage {}) (filterAttrs (_: dir: pathExists (dir + "/default.nix")) (subdirsOf ./.)) // { # TODO use XDG_RUNTIME_DIR? cr = pkgs.writeDashBin "cr" '' set -efu export LC_TIME=de_DE.utf8 exec ${pkgs.chromium}/bin/chromium \ --ssl-version-min=tls1 \ --disk-cache-dir=/tmp/chromium-disk-cache_"$LOGNAME" \ --disk-cache-size=50000000 \ "$@" ''; ejabberd = callPackage ./ejabberd { erlang = pkgs.erlangR16; }; ff = pkgs.writeDashBin "ff" '' exec ${pkgs.firefoxWrapper}/bin/firefox "$@" ''; gnupg = pkgs.gnupg21; }; }