From 49e61479d4a5b7e091f55af9f63ca79ddf9b0227 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Mon, 5 Aug 2019 17:39:40 +0800 Subject: [PATCH 1/2] mtr: build a -gui option as well --- pkgs/tools/networking/mtr/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/mtr/default.nix b/pkgs/tools/networking/mtr/default.nix index 59242551f92927..b83e839d1a71d0 100644 --- a/pkgs/tools/networking/mtr/default.nix +++ b/pkgs/tools/networking/mtr/default.nix @@ -1,11 +1,11 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig +{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig , libcap, ncurses , withGtk ? false, gtk2 ? null }: assert withGtk -> gtk2 != null; stdenv.mkDerivation rec { - pname = "mtr"; + pname = "mtr${lib.optionalString withGtk "-gui"}"; version = "0.93"; src = fetchFromGitHub { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 77563721c587ae..cd704ce8e9feb9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4781,6 +4781,8 @@ in mtr = callPackage ../tools/networking/mtr {}; + mtr-gui = callPackage ../tools/networking/mtr { withGtk = true; }; + mtx = callPackage ../tools/backup/mtx {}; mt-st = callPackage ../tools/backup/mt-st {}; From 968d4643b0380238af6abeac56b794a7f45e7ea7 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Mon, 5 Aug 2019 17:42:17 +0800 Subject: [PATCH 2/2] nixos/mtr: make the package configurable --- nixos/modules/programs/mtr.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/nixos/modules/programs/mtr.nix b/nixos/modules/programs/mtr.nix index 1fdec4c04f682e..75b710c1584fc3 100644 --- a/nixos/modules/programs/mtr.nix +++ b/nixos/modules/programs/mtr.nix @@ -4,6 +4,7 @@ with lib; let cfg = config.programs.mtr; + in { options = { programs.mtr = { @@ -15,13 +16,22 @@ in { setcap wrapper for it. ''; }; + + package = mkOption { + type = types.package; + default = pkgs.mtr; + description = '' + The package to use. + ''; + }; }; }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ mtr ]; + environment.systemPackages = with pkgs; [ cfg.package ]; + security.wrappers.mtr-packet = { - source = "${pkgs.mtr}/bin/mtr-packet"; + source = "${cfg.package}/bin/mtr-packet"; capabilities = "cap_net_raw+p"; }; };