diff --git a/pkgs/development/libraries/qtkeychain/default.nix b/pkgs/development/libraries/qtkeychain/default.nix
index ef0f5d4014ea..b2c513541fac 100644
--- a/pkgs/development/libraries/qtkeychain/default.nix
+++ b/pkgs/development/libraries/qtkeychain/default.nix
@@ -1,13 +1,15 @@
 { stdenv, fetchFromGitHub, cmake, qt4 ? null
 , withQt5 ? false, qtbase ? null, qttools ? null
+, darwin ? null
 }:
 
 assert withQt5 -> qtbase != null;
 assert withQt5 -> qttools != null;
+assert stdenv.isDarwin -> darwin != null;
 
 stdenv.mkDerivation rec {
   name = "qtkeychain-${if withQt5 then "qt5" else "qt4"}-${version}";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "frankosterfeld";
@@ -16,16 +18,26 @@ stdenv.mkDerivation rec {
     sha256 = "04v6ymkw7qd1pf9lwijgqrl89w2hhsnqgz7dm4cdrh8i8dffpn52";
   };
 
-  cmakeFlags = [ "-DQT_TRANSLATIONS_DIR=share/qt/translations" ];
+  cmakeFlags = [ "-DQT_TRANSLATIONS_DIR=share/qt/translations" ]
+    ++ stdenv.lib.optional stdenv.isDarwin [
+       # correctly detect the compiler
+       # for details see cmake --help-policy CMP0025
+       "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
+       ]
+   ;
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = if withQt5 then [ qtbase qttools ] else [ qt4 ];
+  buildInputs = if withQt5 then [ qtbase qttools ] else [ qt4 ]
+    ++ stdenv.lib.optional stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+         CoreFoundation Security
+    ])
+  ;
 
   meta = {
     description = "Platform-independent Qt API for storing passwords securely";
     homepage = https://github.com/frankosterfeld/qtkeychain;
     license = stdenv.lib.licenses.bsd3;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }