diff options
Diffstat (limited to 'pkgs/by-name/ea/earlyoom/package.nix')
-rw-r--r-- | pkgs/by-name/ea/earlyoom/package.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/by-name/ea/earlyoom/package.nix b/pkgs/by-name/ea/earlyoom/package.nix new file mode 100644 index 0000000000000..ba69b72b3babf --- /dev/null +++ b/pkgs/by-name/ea/earlyoom/package.nix @@ -0,0 +1,64 @@ +{ + lib, + fetchFromGitHub, + installShellFiles, + pandoc, + stdenv, + nixosTests, + # Boolean flags + withManpage ? true, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "earlyoom"; + version = "1.8"; + + src = fetchFromGitHub { + owner = "rfjakob"; + repo = "earlyoom"; + rev = "v${finalAttrs.version}"; + hash = "sha256-jgNoYOGor2i3ngDuU3It238n5ky+AppzlRKdkwXb2AI="; + }; + + outputs = [ "out" ] ++ lib.optionals withManpage [ "man" ]; + + patches = [ ./0000-fix-dbus-path.patch ]; + + nativeBuildInputs = lib.optionals withManpage [ + installShellFiles + pandoc + ]; + + makeFlags = [ + "VERSION=${finalAttrs.version}" + ]; + + installPhase = '' + runHook preInstall + install -D earlyoom $out/bin/earlyoom + '' + lib.optionalString withManpage '' + installManPage earlyoom.1 + '' + '' + runHook postInstall + ''; + + passthru.tests = { + inherit (nixosTests) earlyoom; + }; + + meta = { + homepage = "https://github.com/rfjakob/earlyoom"; + description = "Early OOM Daemon for Linux"; + longDescription = '' + earlyoom checks the amount of available memory and free swap up to 10 + times a second (less often if there is a lot of free memory). By default + if both are below 10%, it will kill the largest process (highest + oom_score). The percentage value is configurable via command line + arguments. + ''; + license = lib.licenses.mit; + mainProgram = "earlyoom"; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.linux; + }; +}) |