about summary refs log tree commit diff
path: root/nixpkgs/pkgs/os-specific/linux/jool
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/jool')
-rw-r--r--nixpkgs/pkgs/os-specific/linux/jool/cli.nix30
-rw-r--r--nixpkgs/pkgs/os-specific/linux/jool/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/linux/jool/source.nix11
3 files changed, 76 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/jool/cli.nix b/nixpkgs/pkgs/os-specific/linux/jool/cli.nix
new file mode 100644
index 000000000000..d851a47924d6
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/jool/cli.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, libnl }:
+
+let
+  sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; };
+in
+
+stdenv.mkDerivation {
+  name = "jool-cli-${sourceAttrs.version}";
+
+  src = sourceAttrs.src;
+
+  setSourceRoot = ''
+    sourceRoot=$(echo */usr)
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ libnl ];
+
+  postPatch = ''
+    chmod u+w -R ../common
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.jool.mx/;
+    description = "Fairly compliant SIIT and Stateful NAT64 for Linux - CLI tools";
+    platforms = platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/jool/default.nix b/nixpkgs/pkgs/os-specific/linux/jool/default.nix
new file mode 100644
index 000000000000..d65be175fc1d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/jool/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, kernel }:
+
+assert stdenv.lib.versionOlder kernel.version "4.18";
+
+let
+  sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; };
+in
+
+stdenv.mkDerivation {
+  name = "jool-${sourceAttrs.version}-${kernel.version}";
+
+  src = sourceAttrs.src;
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+  hardeningDisable = [ "pic" ];
+
+  prePatch = ''
+    sed -e 's@/lib/modules/\$(.*)@${kernel.dev}/lib/modules/${kernel.modDirVersion}@' -i mod/*/Makefile
+  '';
+
+  buildPhase = ''
+    make -C mod
+  '';
+
+  installPhase = ''
+    make -C mod modules_install INSTALL_MOD_PATH=$out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.jool.mx/;
+    description = "Fairly compliant SIIT and Stateful NAT64 for Linux - kernel modules";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fpletz ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/jool/source.nix b/nixpkgs/pkgs/os-specific/linux/jool/source.nix
new file mode 100644
index 000000000000..24134b8b8182
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/jool/source.nix
@@ -0,0 +1,11 @@
+{ fetchFromGitHub }:
+
+rec {
+  version = "unstable-20180706";
+  src = fetchFromGitHub {
+    owner = "NICMx";
+    repo = "Jool";
+    rev = "de791931d94e972c36bb3c102a9cadab5230c285";
+    sha256 = "09mr7lc9k17znpslsfmndx4vgl240llcgblxm92fizmwz23y1d6c";
+  };
+}