summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/os-specific/linux/fatrace/default.nix31
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 33 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/fatrace/default.nix b/pkgs/os-specific/linux/fatrace/default.nix
new file mode 100644
index 00000000000..c6e52934a77
--- /dev/null
+++ b/pkgs/os-specific/linux/fatrace/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, python3}:
+
+stdenv.mkDerivation rec {
+  version = "0.9";
+  name = "fatrace-${version}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/fatrace/trunk/${version}/+download/${name}.tar.bz2";
+    sha256 = "c028d822ffde68805e5d1f62c4e2d0f4b3d4ae565802cc9468c82b25b92e68cd";
+  };
+
+  buildInputs = [ python3 ];
+
+  makeFlagsArray = "PREFIX=$(out)";
+
+  meta = with stdenv.lib; {
+    description = "Report system-wide file access events";
+    homepage = https://launchpad.net/fatrace/;
+    license = with licenses; gpl3Plus;
+    longDescription = ''
+      fatrace reports file access events from all running processes.
+      Its main purpose is to find processes which keep waking up the disk
+      unnecessarily and thus prevent some power saving.
+
+      Requires a Linux kernel with the FANOTIFY configuration option enabled.
+      Enabling X86_MSR is also recommended for power-usage-report on x86.
+    '';
+    maintainers = with maintainers; [ nckx ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9e3cd16fe6b..c39b98a6b4c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1127,6 +1127,8 @@ let
 
   fakechroot = callPackage ../tools/system/fakechroot { };
 
+  fatrace = callPackage ../os-specific/linux/fatrace { };
+
   fcitx = callPackage ../tools/inputmethods/fcitx { };
 
   fcitx-anthy = callPackage ../tools/inputmethods/fcitx/fcitx-anthy.nix { };