diff --git a/pkgs/by-name/ag/aggregate6/package.nix b/pkgs/by-name/ag/aggregate6/package.nix new file mode 100644 index 0000000000000..c9a5c83e78bff --- /dev/null +++ b/pkgs/by-name/ag/aggregate6/package.nix @@ -0,0 +1,4 @@ +{ python3Packages }: + +with python3Packages; +toPythonApplication aggregate6 diff --git a/pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch b/pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch new file mode 100644 index 0000000000000..feaddc4650321 --- /dev/null +++ b/pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch @@ -0,0 +1,31 @@ +From d20c7039316ea7c76da86963b266d3c34001b9f7 Mon Sep 17 00:00:00 2001 +From: Marcel +Date: Sat, 2 Nov 2024 21:13:37 +0100 +Subject: [PATCH] setup: remove nose, coverage + +--- + setup.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index b880f27..7a47360 100644 +--- a/setup.py ++++ b/setup.py +@@ -70,7 +70,7 @@ setup( + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6' + ], +- setup_requires=["nose", "coverage", "mock"], ++ setup_requires=["mock"], + install_requires=["py-radix==0.10.0"] + ( + ["future", "ipaddress"] if sys.version_info.major == 2 else [] + ), +@@ -78,5 +78,4 @@ setup( + entry_points={'console_scripts': + ['aggregate6 = aggregate6.aggregate6:main']}, + data_files = [('man/man7', ['aggregate6.7'])], +- test_suite='nose.collector' + ) +-- +2.44.1 + diff --git a/pkgs/development/python-modules/aggregate6/default.nix b/pkgs/development/python-modules/aggregate6/default.nix new file mode 100644 index 0000000000000..2be5f07a85ac9 --- /dev/null +++ b/pkgs/development/python-modules/aggregate6/default.nix @@ -0,0 +1,48 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + py-radix-sr, + pytestCheckHook, + mock, +}: + +buildPythonPackage rec { + pname = "aggregate6"; + version = "1.0.12"; + pyproject = true; + + src = fetchFromGitHub { + owner = "job"; + repo = "aggregate6"; + rev = version; + hash = "sha256-tBo9LSmEu/0KPSeg17dlh7ngUvP9GyW6b01qqpr5Bx0="; + }; + + patches = [ ./0001-setup-remove-nose-coverage.patch ]; + + # py-radix-sr is a fork, with fixes + postPatch = '' + substituteInPlace setup.py --replace-fail 'py-radix==0.10.0' 'py-radix-sr' + ''; + + build-system = [ setuptools ]; + + dependencies = [ py-radix-sr ]; + + nativeCheckInputs = [ + pytestCheckHook + mock + ]; + + pythonImportsCheck = [ "aggregate6" ]; + + meta = { + description = "IPv4 and IPv6 prefix aggregation tool"; + mainProgram = "aggregate6"; + homepage = "https://github.com/job/aggregate6"; + license = with lib.licenses; [ bsd2 ]; + maintainers = lib.teams.wdz.members ++ (with lib.maintainers; [ marcel ]); + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 732514205908a..3af1ce77d37da 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -123,6 +123,8 @@ self: super: with self; { agent-py = callPackage ../development/python-modules/agent-py { }; + aggregate6 = callPackage ../development/python-modules/aggregate6 { }; + ago = callPackage ../development/python-modules/ago { }; aggdraw = callPackage ../development/python-modules/aggdraw { };