about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJake Waksbaum <jake.waksbaum@gmail.com>2017-01-30 22:07:44 -0500
committerJake Waksbaum <jake.waksbaum@gmail.com>2017-01-30 22:09:21 -0500
commita9afa48915730b4a25164892d0b04a6755ab1f70 (patch)
tree5ac9d20bdc6b884311f7d58f57fba039667574a3
parentd1b8b0dd52e728e2c68a1fbc36307d21cd3c902b (diff)
downloadnixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.tar
nixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.tar.gz
nixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.tar.bz2
nixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.tar.lz
nixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.tar.xz
nixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.tar.zst
nixlib-a9afa48915730b4a25164892d0b04a6755ab1f70.zip
smartmontools: 6.4 -> 6.5 and fix segfault on darwin
-rw-r--r--pkgs/tools/system/smartmontools/default.nix24
-rw-r--r--pkgs/tools/system/smartmontools/smartmontools.patch26
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 33 insertions, 19 deletions
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index cc30cd7a4881..1a9e2d3b5b9b 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,30 +1,18 @@
-{ stdenv, fetchurl
-, IOKit ? null }:
+{ stdenv, fetchurl,
+IOKit ? null , ApplicationServices ? null }:
 
-let
-  version = "6.4";
-  drivedbBranch = "RELEASE_${builtins.replaceStrings ["."] ["_"] version}_DRIVEDB";
-  dbrev = "4167";
-  driverdb = fetchurl {
-    url = "http://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
-    sha256 = "14rv1cxbpmnq12hjwr3icjiahx5i0ak7j69310c09rah0241l5j1";
-    name = "smartmontools-drivedb.h";
-  };
-in
 stdenv.mkDerivation rec {
+  version = "6.5";
   name = "smartmontools-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/smartmontools/${name}.tar.gz";
-    sha256 = "11bsxcghh7adzdklcslamlynydxb708vfz892d5w7agdq405ddza";
+    sha256 = "1g25r6sx85b5lay5n6sbnqv05qxzj6xsafsp93hnrg1h044bps49";
   };
 
-  buildInputs = [] ++ stdenv.lib.optional stdenv.isDarwin IOKit;
+  buildInputs = [] ++ stdenv.lib.optionals stdenv.isDarwin [IOKit ApplicationServices];
 
-  patchPhase = ''
-    cp ${driverdb} drivedb.h
-    sed -i -e 's@which which >/dev/null || exit 1@alias which="type -p"@' update-smart-drivedb.in
-  '';
+  patches = [ ./smartmontools.patch ];
 
   meta = with stdenv.lib; {
     description = "Tools for monitoring the health of hard drives";
diff --git a/pkgs/tools/system/smartmontools/smartmontools.patch b/pkgs/tools/system/smartmontools/smartmontools.patch
new file mode 100644
index 000000000000..144b2be2d334
--- /dev/null
+++ b/pkgs/tools/system/smartmontools/smartmontools.patch
@@ -0,0 +1,26 @@
+diff --git a/../smartmontools-6.5/configure b/./configure
+index acb028a..5e2c7a1 100755
+--- a/../smartmontools-6.5/configure
++++ b/./configure
+@@ -6703,7 +6703,7 @@ fi
+     ;;
+   *-*-darwin*)
+     os_deps='os_darwin.o'
+-    os_libs='-framework CoreFoundation -framework IOKit'
++    os_libs='-framework ApplicationServices -framework IOKit'
+     os_darwin=yes
+     os_man_filter=Darwin
+     ;;
+diff --git a/../smartmontools-6.5/configure.ac b/./configure.ac
+index 6bd61d7..32ff50c 100644
+--- a/../smartmontools-6.5/configure.ac
++++ b/./configure.ac
+@@ -508,7 +508,7 @@ case "${host}" in
+     ;;
+   *-*-darwin*)
+     os_deps='os_darwin.o'
+-    os_libs='-framework CoreFoundation -framework IOKit'
++    os_libs='-framework ApplicationServices -framework IOKit'
+     os_darwin=yes
+     os_man_filter=Darwin
+     ;;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1b587b4fd430..32db483785a6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3804,7 +3804,7 @@ with pkgs;
   slsnif = callPackage ../tools/misc/slsnif { };
 
   smartmontools = callPackage ../tools/system/smartmontools {
-    inherit (darwin.apple_sdk.frameworks) IOKit;
+    inherit (darwin.apple_sdk.frameworks) IOKit ApplicationServices;
   };
 
   smbldaptools = callPackage ../tools/networking/smbldaptools {