ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
113 lines
2.9 KiB
Nix
113 lines
2.9 KiB
Nix
{ lib
|
|
, fetchFromGitHub
|
|
, python3
|
|
, version
|
|
, hash
|
|
, plugins ? ps: []
|
|
, extraPatches ? []
|
|
, tests ? {}
|
|
, maintainers ? []
|
|
, eol ? false
|
|
}:
|
|
let
|
|
extraBuildInputs = plugins python3.pkgs;
|
|
in
|
|
python3.pkgs.buildPythonApplication rec {
|
|
pname = "netbox";
|
|
inherit version;
|
|
|
|
format = "other";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "netbox-community";
|
|
repo = pname;
|
|
rev = "refs/tags/v${version}";
|
|
inherit hash;
|
|
};
|
|
|
|
patches = extraPatches;
|
|
|
|
propagatedBuildInputs = with python3.pkgs; [
|
|
bleach
|
|
boto3
|
|
django_4
|
|
django-cors-headers
|
|
django-debug-toolbar
|
|
django-filter
|
|
django-graphiql-debug-toolbar
|
|
django-mptt
|
|
django-pglocks
|
|
django-prometheus
|
|
django-redis
|
|
django-rq
|
|
django-tables2
|
|
django-taggit
|
|
django-timezone-field
|
|
djangorestframework
|
|
drf-spectacular
|
|
drf-spectacular-sidecar
|
|
drf-yasg
|
|
dulwich
|
|
swagger-spec-validator # from drf-yasg[validation]
|
|
feedparser
|
|
graphene-django
|
|
jinja2
|
|
markdown
|
|
markdown-include
|
|
netaddr
|
|
pillow
|
|
psycopg2
|
|
pyyaml
|
|
requests
|
|
sentry-sdk
|
|
social-auth-core
|
|
social-auth-app-django
|
|
svgwrite
|
|
tablib
|
|
jsonschema
|
|
] ++ extraBuildInputs;
|
|
|
|
buildInputs = with python3.pkgs; [
|
|
mkdocs-material
|
|
mkdocs-material-extensions
|
|
mkdocstrings
|
|
mkdocstrings-python
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
python3.pkgs.mkdocs
|
|
];
|
|
|
|
postBuild = ''
|
|
PYTHONPATH=$PYTHONPATH:netbox/
|
|
python -m mkdocs build
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/opt/netbox
|
|
cp -r . $out/opt/netbox
|
|
chmod +x $out/opt/netbox/netbox/manage.py
|
|
makeWrapper $out/opt/netbox/netbox/manage.py $out/bin/netbox \
|
|
--prefix PYTHONPATH : "$PYTHONPATH"
|
|
'';
|
|
|
|
passthru = {
|
|
# PYTHONPATH of all dependencies used by the package
|
|
pythonPath = python3.pkgs.makePythonPath propagatedBuildInputs;
|
|
gunicorn = python3.pkgs.gunicorn;
|
|
inherit tests;
|
|
};
|
|
|
|
meta = {
|
|
homepage = "https://github.com/netbox-community/netbox";
|
|
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
|
|
mainProgram = "netbox";
|
|
license = lib.licenses.asl20;
|
|
knownVulnerabilities = (lib.optional eol "Netbox version ${version} is EOL; please upgrade by following the current release notes instructions.");
|
|
# Warning:
|
|
# Notice the missing `lib` in the inherit: it is using this function argument rather than a `with lib;` argument.
|
|
# If you replace this by `with lib;`, pay attention it does not inherit all maintainers in nixpkgs.
|
|
inherit maintainers;
|
|
};
|
|
}
|