From a9afa48915730b4a25164892d0b04a6755ab1f70 Mon Sep 17 00:00:00 2001 From: Jake Waksbaum Date: Mon, 30 Jan 2017 22:07:44 -0500 Subject: [PATCH] smartmontools: 6.4 -> 6.5 and fix segfault on darwin --- pkgs/tools/system/smartmontools/default.nix | 24 +++++------------ .../system/smartmontools/smartmontools.patch | 26 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 pkgs/tools/system/smartmontools/smartmontools.patch 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 {