about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/jool
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/jool')
-rw-r--r--pkgs/os-specific/linux/jool/cli.nix42
-rw-r--r--pkgs/os-specific/linux/jool/default.nix35
-rw-r--r--pkgs/os-specific/linux/jool/source.nix11
-rw-r--r--pkgs/os-specific/linux/jool/validate-config.patch193
4 files changed, 0 insertions, 281 deletions
diff --git a/pkgs/os-specific/linux/jool/cli.nix b/pkgs/os-specific/linux/jool/cli.nix
deleted file mode 100644
index ee5ee1128a86..000000000000
--- a/pkgs/os-specific/linux/jool/cli.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, nixosTests
-, autoreconfHook, pkg-config, libnl, iptables
-}:
-
-let
-  sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; };
-in
-
-stdenv.mkDerivation {
-  pname = "jool-cli";
-  version = sourceAttrs.version;
-
-  src = sourceAttrs.src;
-
-  patches = [
-    ./validate-config.patch
-  ];
-
-  outputs = [
-    "out"
-    "man"
-  ];
-
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ libnl iptables ];
-
-  makeFlags = [ "-C" "src/usr" ];
-
-  prePatch = ''
-    sed -e 's%^XTABLES_SO_DIR = .*%XTABLES_SO_DIR = '"$out"'/lib/xtables%g' -i src/usr/iptables/Makefile
-  '';
-
-  passthru.tests = { inherit (nixosTests) jool; };
-
-  meta = with 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/pkgs/os-specific/linux/jool/default.nix b/pkgs/os-specific/linux/jool/default.nix
deleted file mode 100644
index 91276cbc11b1..000000000000
--- a/pkgs/os-specific/linux/jool/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, kernel, nixosTests }:
-
-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 src/mod/*/Makefile
-  '';
-
-  makeFlags = kernel.makeFlags ++ [
-    "-C src/mod"
-    "INSTALL_MOD_PATH=${placeholder "out"}"
-  ];
-
-  installTargets = "modules_install";
-
-  passthru.tests = { inherit (nixosTests) jool; };
-
-  meta = with lib; {
-    homepage = "https://www.jool.mx/";
-    description = "Fairly compliant SIIT and Stateful NAT64 for Linux - kernel modules";
-    platforms = platforms.linux;
-    license = licenses.gpl2Only;
-    maintainers = with maintainers; [ fpletz ];
-  };
-}
diff --git a/pkgs/os-specific/linux/jool/source.nix b/pkgs/os-specific/linux/jool/source.nix
deleted file mode 100644
index 59c224cef6dc..000000000000
--- a/pkgs/os-specific/linux/jool/source.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ fetchFromGitHub }:
-
-rec {
-  version = "4.1.11";
-  src = fetchFromGitHub {
-    owner = "NICMx";
-    repo = "Jool";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-fTYUdtU51/zOBbd568QtfUYnqWl+ZN9uSbE29tJC6UM=";
-  };
-}
diff --git a/pkgs/os-specific/linux/jool/validate-config.patch b/pkgs/os-specific/linux/jool/validate-config.patch
deleted file mode 100644
index 8841b6fb14f3..000000000000
--- a/pkgs/os-specific/linux/jool/validate-config.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From df0a1cf61188b5b7bb98675d746cb63d9300f148 Mon Sep 17 00:00:00 2001
-From: rnhmjoj <rnhmjoj@inventati.org>
-Date: Sat, 1 Jul 2023 18:47:05 +0200
-Subject: [PATCH] Add mode to validate the atomic configuration
-
----
- src/usr/argp/main.c       |  6 ++++++
- src/usr/argp/wargp/file.c | 26 +++++++++++++++++++++++++-
- src/usr/argp/wargp/file.h |  1 +
- src/usr/nl/file.c         | 32 ++++++++++++++++++++++----------
- src/usr/nl/file.h         |  3 ++-
- 5 files changed, 56 insertions(+), 12 deletions(-)
-
-diff --git a/src/usr/argp/main.c b/src/usr/argp/main.c
-index 744a6df0..d04917da 100644
---- a/src/usr/argp/main.c
-+++ b/src/usr/argp/main.c
-@@ -238,6 +238,12 @@ static struct cmd_option file_ops[] = {
- 			.handler = handle_file_update,
- 			.handle_autocomplete = autocomplete_file_update,
- 		},
-+		{
-+			.label = "check",
-+			.xt = XT_ANY,
-+			.handler = handle_file_check,
-+			.handle_autocomplete = autocomplete_file_update,
-+		},
- 		{ 0 },
- };
- 
-diff --git a/src/usr/argp/wargp/file.c b/src/usr/argp/wargp/file.c
-index 0951b544..27ee3e64 100644
---- a/src/usr/argp/wargp/file.c
-+++ b/src/usr/argp/wargp/file.c
-@@ -26,6 +26,30 @@ static struct wargp_option update_opts[] = {
- 	{ 0 },
- };
- 
-+int handle_file_check(char *iname, int argc, char **argv, void const *arg)
-+{
-+	struct update_args uargs = { 0 };
-+	struct joolnl_socket sk = { 0 };
-+	struct jool_result result;
-+
-+	result.error = wargp_parse(update_opts, argc, argv, &uargs);
-+	if (result.error)
-+		return result.error;
-+
-+	if (!uargs.file_name.value) {
-+		struct requirement reqs[] = {
-+				{ false, "a file name" },
-+				{ 0 }
-+		};
-+		return requirement_print(reqs);
-+	}
-+
-+	result = joolnl_file_parse(&sk, xt_get(), iname, uargs.file_name.value,
-+			uargs.force.value, true);
-+
-+	return pr_result(&result);
-+}
-+
- int handle_file_update(char *iname, int argc, char **argv, void const *arg)
- {
- 	struct update_args uargs = { 0 };
-@@ -49,7 +73,7 @@ int handle_file_update(char *iname, int argc, char **argv, void const *arg)
- 		return pr_result(&result);
- 
- 	result = joolnl_file_parse(&sk, xt_get(), iname, uargs.file_name.value,
--			uargs.force.value);
-+			uargs.force.value, false);
- 
- 	joolnl_teardown(&sk);
- 	return pr_result(&result);
-diff --git a/src/usr/argp/wargp/file.h b/src/usr/argp/wargp/file.h
-index ce5de508..8ea4a4d2 100644
---- a/src/usr/argp/wargp/file.h
-+++ b/src/usr/argp/wargp/file.h
-@@ -2,6 +2,7 @@
- #define SRC_USR_ARGP_WARGP_FILE_H_
- 
- int handle_file_update(char *iname, int argc, char **argv, void const *arg);
-+int handle_file_check(char *iname, int argc, char **argv, void const *arg);
- void autocomplete_file_update(void const *args);
- 
- #endif /* SRC_USR_ARGP_WARGP_FILE_H_ */
-diff --git a/src/usr/nl/file.c b/src/usr/nl/file.c
-index f9413236..51a668bd 100644
---- a/src/usr/nl/file.c
-+++ b/src/usr/nl/file.c
-@@ -29,6 +29,7 @@ static struct joolnl_socket sk;
- static char const *iname;
- static xlator_flags flags;
- static __u8 force;
-+static bool check;
- 
- struct json_meta {
- 	char const *name; /* This being NULL signals the end of the array. */
-@@ -163,9 +164,11 @@ static struct jool_result handle_array(cJSON *json, int attrtype, char *name,
- 				goto too_small;
- 
- 			nla_nest_end(msg, root);
--			result = joolnl_request(&sk, msg, NULL, NULL);
--			if (result.error)
--				return result;
-+			if (!check) {
-+				result = joolnl_request(&sk, msg, NULL, NULL);
-+				if (result.error)
-+					return result;
-+			}
- 
- 			msg = NULL;
- 			json = json->prev;
-@@ -179,6 +182,8 @@ static struct jool_result handle_array(cJSON *json, int attrtype, char *name,
- 		return result_success();
- 
- 	nla_nest_end(msg, root);
-+	if (check)
-+		return result_success();
- 	return joolnl_request(&sk, msg, NULL, NULL);
- 
- too_small:
-@@ -244,6 +249,8 @@ static struct jool_result handle_global(cJSON *json)
- 
- 	nla_nest_end(msg, root);
- 	free(meta);
-+	if (check)
-+		return result_success();
- 	return joolnl_request(&sk, msg, NULL, NULL);
- 
- revert_meta:
-@@ -654,9 +661,11 @@ static struct jool_result send_ctrl_msg(bool init)
- 	else
- 		NLA_PUT(msg, JNLAR_ATOMIC_END, 0, NULL);
- 
--	result = joolnl_request(&sk, msg, NULL, NULL);
--	if (result.error)
--		return result;
-+	if (!check) {
-+		result = joolnl_request(&sk, msg, NULL, NULL);
-+		if (result.error)
-+			return result;
-+	}
- 
- 	return result_success();
- 
-@@ -683,9 +692,11 @@ static struct jool_result do_parsing(char const *iname, char *buffer)
- 	if (result.error)
- 		goto fail;
- 
--	result = send_ctrl_msg(true);
--	if (result.error)
--		goto fail;
-+	if (!check) {
-+		result = send_ctrl_msg(true);
-+		if (result.error)
-+			goto fail;
-+	}
- 
- 	switch (xlator_flags2xt(flags)) {
- 	case XT_SIIT:
-@@ -718,12 +729,13 @@ fail:
- }
- 
- struct jool_result joolnl_file_parse(struct joolnl_socket *_sk, xlator_type xt,
--		char const *iname, char const *file_name, bool _force)
-+		char const *iname, char const *file_name, bool _force, bool _check)
- {
- 	char *buffer;
- 	struct jool_result result;
- 
- 	sk = *_sk;
-+	check = _check;
- 	flags = xt;
- 	force = _force ? JOOLNLHDR_FLAGS_FORCE : 0;
- 
-diff --git a/src/usr/nl/file.h b/src/usr/nl/file.h
-index 51802aaf..8b4a66dd 100644
---- a/src/usr/nl/file.h
-+++ b/src/usr/nl/file.h
-@@ -9,7 +9,8 @@ struct jool_result joolnl_file_parse(
- 	xlator_type xt,
- 	char const *iname,
- 	char const *file_name,
--	bool force
-+	bool force,
-+	bool check
- );
- 
- struct jool_result joolnl_file_get_iname(
--- 
-2.40.1
-