From 375eaca2690bc16ec26c03e54fc4a0a971f411ff Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 1 Mar 2017 15:55:22 +0100
Subject: [PATCH] m 5 default: auto-detect packages

---
 5pkgs/default.nix | 41 +++++++++++++++++++----------------------
 1 file changed, 19 insertions(+), 22 deletions(-)

diff --git a/5pkgs/default.nix b/5pkgs/default.nix
index 71354a0..25ae2fe 100644
--- a/5pkgs/default.nix
+++ b/5pkgs/default.nix
@@ -1,38 +1,35 @@
 { pkgs, ... }:
 
-let
-  inherit (pkgs) callPackage;
-in
+with import <stockholm/lib>;
 {
-  nixpkgs.config.packageOverrides = rec {
-    acdcli = callPackage ./acdcli {};
+  nixpkgs.config.packageOverrides = oldpkgs: let
+
+    # This callPackage will try to detect obsolete overrides.
+    callPackage = path: args: let
+      override = pkgs.callPackage path args;
+      upstream = optionalAttrs (override ? "name")
+        (oldpkgs.${(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 ./.))
+  // {
     alsa-hdspconf = callPackage ./alsa-tools { alsaToolTarget="hdspconf";};
     alsa-hdspmixer = callPackage ./alsa-tools { alsaToolTarget="hdspmixer";};
     alsa-hdsploader = callPackage ./alsa-tools { alsaToolTarget="hdsploader";};
-    awesomecfg = callPackage ./awesomecfg {};
-    bintray-upload = callPackage ./bintray-upload {};
-    debmirror = callPackage ./debmirror {};
     inherit (callPackage ./devpi {}) devpi-web devpi-server devpi-client;
-    elchhub = callPackage ./elchhub {};
-    f3 = callPackage ./f3 {};
-    farpd = callPackage ./farpd {};
-    git-xlsx-textconv = callPackage ./git-xlsx-textconv {};
-    mergerfs = callPackage ./mergerfs {};
-    mycube-flask = callPackage ./mycube-flask {};
     nodemcu-uploader = callPackage ./nodemcu-uploader {};
-    ps3netsrv = callPackage ./ps3netsrv {};
     pwqgen-ger = callPackage ../../krebs/5pkgs/passwdqc-utils {
       wordset-file = pkgs.fetchurl {
         url = https://gist.githubusercontent.com/makefu/b56f5554c9ef03fe6e09878962e6fd8d/raw/1f147efec51325bc9f80c823bad8381d5b7252f6/wordset_4k.c ;
         sha256 = "18ddzyh11bywrhzdkzvrl7nvgp5gdb4k1s0zxbz2bkhd14vi72bb";
       };
     };
-    qcma = pkgs.qt5.callPackage ./qcma {};
-    tw-upload-plugin = callPackage ./tw-upload-plugin {};
-    skytraq-logger = callPackage ./skytraq-logger {};
-    taskserver = callPackage ./taskserver {};
-    udpt = callPackage ./udpt {};
-    wol = callPackage ./wol {};
-    snapraid = callPackage ./snapraid {};
   };
 }