diff --git a/pkgs/by-name/ni/nipap/package.nix b/pkgs/by-name/ni/nipap/package.nix new file mode 100644 index 000000000000..ba60b802d831 --- /dev/null +++ b/pkgs/by-name/ni/nipap/package.nix @@ -0,0 +1,5 @@ +{ + python3Packages, +}: + +python3Packages.toPythonApplication python3Packages.nipap diff --git a/pkgs/development/python-modules/nipap/default.nix b/pkgs/development/python-modules/nipap/default.nix new file mode 100644 index 000000000000..d124306df59c --- /dev/null +++ b/pkgs/development/python-modules/nipap/default.nix @@ -0,0 +1,100 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build deps + setuptools, + docutils, + + # dependencies + zipp, + importlib-metadata, + flask, + flask-compress, + flask-xml-rpc-re, + flask-restx, + requests, + ipy, + # indirect deps omitted: jinja2/markupsafe/werkzeug, + parsedatetime, + psutil, + psycopg2, + pyparsing, + python-dateutil, + pytz, + pyjwt, + tornado, + + # optional deps + ## ldap + python-ldap, +}: + +buildPythonPackage rec { + pname = "nipap"; + version = "0.32.7"; + pyproject = true; + + src = fetchFromGitHub { + owner = "SpriteLink"; + repo = "NIPAP"; + tag = "v${version}"; + hash = "sha256-FnCHW/yEhWtx+2fU+G6vxz50lWC7WL3cYKYOQzmH8zs="; + }; + + sourceRoot = "${src.name}/nipap"; + + pythonRelaxDeps = true; # deps are tightly specified by upstream + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail 'docutils==0.20.1' 'docutils' + ''; + + build-system = [ + setuptools + docutils + ]; + + dependencies = [ + zipp + importlib-metadata + flask + flask-compress + flask-xml-rpc-re + flask-restx + requests + ipy + # indirect deps omitted: jinja2/markupsafe/werkzeug + parsedatetime + psutil + psycopg2 + pyparsing + python-dateutil + pytz + pyjwt + tornado + ]; + + optional-dependencies = { + ldap = [ python-ldap ]; + }; + + doCheck = false; # tests require nose, /etc/nipap/nipap.conf and a running nipapd + + meta = { + description = "Neat IP Address Planner"; + longDescription = '' + NIPAP is the best open source IPAM in the known universe, + challenging classical IP address management (IPAM) systems in many areas. + ''; + homepage = "https://github.com/SpriteLink/NIPAP"; + changelog = "https://github.com/SpriteLink/NIPAP/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + lukegb + ]; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 55a1932550d1..ecf0477f3785 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10204,6 +10204,8 @@ self: super: with self; { ninja = callPackage ../development/python-modules/ninja { inherit (pkgs) ninja; }; + nipap = callPackage ../development/python-modules/nipap { }; + nipreps-versions = callPackage ../development/python-modules/nipreps-versions { }; nipy = callPackage ../development/python-modules/nipy { };