summary refs log tree commit diff
path: root/pkgs/os-specific/linux/iputils/default.nix
diff options
context:
space:
mode:
authorJulien Moutinho <julm+nixpkgs@sourcephile.fr>2020-08-08 02:01:35 +0200
committerJulien Moutinho <julm+nixpkgs@sourcephile.fr>2020-09-06 07:43:03 +0200
commitfb6d63f3fdd95a5468d43a0693c8ca7c1894363f (patch)
tree44edb88b751700b3e611999eb2998b6b518adb71 /pkgs/os-specific/linux/iputils/default.nix
parent539ae5c93299cadc0664cfff2ffc69a9386caf6d (diff)
downloadnixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.tar
nixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.tar.gz
nixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.tar.bz2
nixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.tar.lz
nixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.tar.xz
nixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.tar.zst
nixpkgs-fb6d63f3fdd95a5468d43a0693c8ca7c1894363f.zip
apparmor: fix and improve the service
Diffstat (limited to 'pkgs/os-specific/linux/iputils/default.nix')
-rw-r--r--pkgs/os-specific/linux/iputils/default.nix22
1 files changed, 22 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/iputils/default.nix b/pkgs/os-specific/linux/iputils/default.nix
index e12c44888a0..b005c65684d 100644
--- a/pkgs/os-specific/linux/iputils/default.nix
+++ b/pkgs/os-specific/linux/iputils/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub
 , meson, ninja, pkgconfig, gettext, libxslt, docbook_xsl_ns
 , libcap, systemd, libidn2
+, apparmorRulesFromClosure
 }:
 
 with stdenv.lib;
@@ -22,6 +23,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1jhbcz75a4ij1myyyi110ma1d8d5hpm3scz9pyw7js6qym50xvh4";
   };
 
+  outputs = ["out" "apparmor"];
+
   mesonFlags = [
     "-DBUILD_RARPD=true"
     "-DBUILD_TRACEROUTE6=true"
@@ -35,6 +38,25 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns ];
   buildInputs = [ libcap systemd ]
     ++ optional (!stdenv.hostPlatform.isMusl) libidn2;
+  postInstall = ''
+    install -D /dev/stdin $apparmor/bin.ping <<EOF
+    include <tunables/global>
+    $out/bin/ping {
+      include <abstractions/base>
+      include <abstractions/consoles>
+      include <abstractions/nameservice>
+      include "${apparmorRulesFromClosure {}
+       ([libcap] ++ optional (!stdenv.hostPlatform.isMusl) libidn2)}"
+      include <local/bin.ping>
+      capability net_raw,
+      network inet raw,
+      network inet6 raw,
+      mr $out/bin/ping,
+      r $out/share/locale/**,
+      r @{PROC}/@{pid}/environ,
+    }
+    EOF
+  '';
 
   meta = {
     description = "A set of small useful utilities for Linux networking";