base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / system / smartmontools / default.nix
blobb8c594dde47014a0ae5c303679d2464be8e12abb
2   lib,
3   stdenv,
4   fetchurl,
5   autoreconfHook,
6   enableMail ? false,
7   gnused,
8   hostname,
9   mailutils,
10   systemdLibs,
11   IOKit,
12   ApplicationServices,
15 let
16   dbrev = "5388";
17   drivedbBranch = "RELEASE_7_3_DRIVEDB";
18   driverdb = fetchurl {
19     url = "https://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
20     sha256 = "sha256-0dtLev4JjeHsS259+qOgg19rz4yjkeX4D3ooUgS4RTI=";
21     name = "smartmontools-drivedb.h";
22   };
23   scriptPath = lib.makeBinPath (
24     [
25       gnused
26       hostname
27     ]
28     ++ lib.optionals enableMail [ mailutils ]
29   );
32 stdenv.mkDerivation rec {
33   pname = "smartmontools";
34   version = "7.4";
36   src = fetchurl {
37     url = "mirror://sourceforge/smartmontools/${pname}-${version}.tar.gz";
38     hash = "sha256-6aYfZB/5bKlTGe37F5SM0pfQzTNCc2ssScmdRxb7mT0=";
39   };
41   patches = [
42     # fixes darwin build
43     ./smartmontools.patch
44   ];
45   postPatch = ''
46     cp -v ${driverdb} drivedb.h
47   '';
49   configureFlags = [
50     "--with-scriptpath=${scriptPath}"
51     # does not work on NixOS
52     "--without-update-smart-drivedb"
53   ];
55   nativeBuildInputs = [ autoreconfHook ];
56   buildInputs =
57     lib.optionals stdenv.hostPlatform.isLinux [ systemdLibs ]
58     ++ lib.optionals stdenv.hostPlatform.isDarwin [
59       IOKit
60       ApplicationServices
61     ];
62   enableParallelBuilding = true;
64   meta = with lib; {
65     description = "Tools for monitoring the health of hard drives";
66     homepage = "https://www.smartmontools.org/";
67     license = licenses.gpl2Plus;
68     maintainers = with maintainers; [ Frostman ];
69     platforms = with platforms; linux ++ darwin;
70     mainProgram = "smartctl";
71   };