git: cdc8d9118d1c - main - net-mgmt/netbox: Update to 4.6.4

From: Kai Knoblich <kai_at_FreeBSD.org>
Date: Tue, 30 Jun 2026 18:17:35 UTC
The branch main has been updated by kai:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cdc8d9118d1cc77ac46f10eee0319bade10106bc

commit cdc8d9118d1cc77ac46f10eee0319bade10106bc
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2026-06-30 18:13:39 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2026-06-30 18:17:05 +0000

    net-mgmt/netbox: Update to 4.6.4
    
    Changelog:
    
    Enhancements:
    * Render JSON schema enum options as a dropdown selection in module and
      device profile attribute forms
    * Include the dns_name of primary & out-of-band IP addresses in event
      payloads
    * Add a 1C8P:8C1P breakout cable profile
    * Improve the styling of action buttons in the navigation sidebar
    
    Performance Improvements:
    * Improve performance of the image attachments view when using
      S3 storage
    * Avoid repeated serializer instantiation in GFKSerializerField
    * Chunk bulk updates to custom field data to better handle a large
      number of records
    
    Bug Fixes:
    * Fix LDAP group lookup failure when a returned row contains a
      null value
    * Enforce object-level permissions on custom links rendered via the
      custom_links template tag
    * Remove errant changelog relation from GraphQL schema
    * Restore inline browser display of device front/rear images instead of
      forcing a download
    * Update the cached virtual chassis name on member devices in the search
      index when a virtual chassis is renamed
    * Return JSON rather than an HTML error page for GraphQL API exceptions
    * Also check is_active in the superuser bypass for restrict() and
      IsSuperuser
    * Prevent deletion of an existing custom script's file when re-uploading
      a same-named script via the REST API
    * Fix AttributeError when importing IP addresses with is_primary/is_oob
      set but no device assigned
    
    Accessibility:
    * Announce quick search results to screen readers
    * Make the Results/Filters tabs keyboard-operable
    * Allow the left sidebar accordion to be toggled with the spacebar
    * Remove hidden <select> inputs from the accessibility tree
    * Associate a label with the "Saved Filter" combobox for screen readers
    * Provide an accessible name for the empty checkbox column header cell
      in object tables
    
    https://github.com/netbox-community/netbox/releases/tag/v4.6.4
---
 net-mgmt/netbox/Makefile  | 16 ++++++++--------
 net-mgmt/netbox/distinfo  |  6 +++---
 net-mgmt/netbox/pkg-plist | 21 +++++++++------------
 3 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/net-mgmt/netbox/Makefile b/net-mgmt/netbox/Makefile
index 90b01df0b0e5..313ca1ec3f81 100644
--- a/net-mgmt/netbox/Makefile
+++ b/net-mgmt/netbox/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	netbox
 DISTVERSIONPREFIX=	v
-DISTVERSION=	4.6.3
+DISTVERSION=	4.6.4
 CATEGORIES=	net-mgmt python
 
 MAINTAINER=	kai@FreeBSD.org
@@ -25,7 +25,7 @@ LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 #
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django60>=6.0.6<6.1:www/py-django60@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj60-django-cors-headers>=4.9.0<5:www/py-dj60-django-cors-headers@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj60-django-debug-toolbar>=6.3.0<7:www/py-dj60-django-debug-toolbar@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj60-django-debug-toolbar>=7.0.0<8:www/py-dj60-django-debug-toolbar@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj60-django-filter>=25.2<26:www/py-dj60-django-filter@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj60-django-htmx>=1.27.0<2:www/py-dj60-django-htmx@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj60-django-mptt>=0.18.0<0.19:www/py-dj60-django-mptt@${PY_FLAVOR} \
@@ -42,8 +42,8 @@ RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django60>=6.0.6<6.1:www/py-django60@${PY_FLA
 		${PYTHON_PKGNAMEPREFIX}dj60-drf-spectacular-sidecar>=2026.6.1:www/py-dj60-drf-spectacular-sidecar@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj60-social-auth-app-django>=5.9.0<6:www/py-dj60-social-auth-app-django@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj60-sorl-thumbnail>=13.0.0<14:graphics/py-dj60-sorl-thumbnail@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj60-strawberry-graphql>=0.316.0<1:devel/py-dj60-strawberry-graphql@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj60-strawberry-graphql-django>=0.86.1<1:www/py-dj60-strawberry-graphql-django@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj60-strawberry-graphql>=0.320.0<1:devel/py-dj60-strawberry-graphql@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj60-strawberry-graphql-django>=0.86.4<1:www/py-dj60-strawberry-graphql-django@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}colorama>=0.4.6<1:devel/py-colorama@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.12<7:textproc/py-feedparser@${PY_FLAVOR} \
@@ -53,23 +53,23 @@ RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django60>=6.0.6<6.1:www/py-django60@${PY_FLA
 		${PYTHON_PKGNAMEPREFIX}mkdocs>=1.6.1<2:textproc/py-mkdocs@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.7.6<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}mkdocstrings>=1.0.4<2:textproc/py-mkdocstrings@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}mkdocstrings-python>=2.0.4:textproc/py-mkdocstrings-python@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}mkdocstrings-python>=2.0.5:textproc/py-mkdocstrings-python@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}netaddr>=1.3.0<2:net/py-netaddr@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}nh3>=0.3.5<1:www/py-nh3@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}nh3>=0.3.6<1:www/py-nh3@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pillow>=11.3.0:graphics/py-pillow@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg>=3.2.13<4:databases/py-psycopg@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg-c>=3.2.13<4:databases/py-psycopg-c@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg-pool>=3.3.0<4:databases/py-psycopg-pool@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}redis>=7.4.0<8:databases/py-redis@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}requests>=2.34.2<3:www/py-requests@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}rq>=2.9.1<3:devel/py-rq@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}rq>=2.9.1<2.10:devel/py-rq@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.8.5<5:security/py-social-auth-core@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.3<2:graphics/py-svgwrite@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}tablib>=3.9.0<4:textproc/py-tablib@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}tzdata>=2026.2:devel/py-tzdata@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.3<7:devel/py-pyyaml@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}gunicorn>=26.0.0:www/py-gunicorn@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}zensical>=0.0.45<1:textproc/py-zensical@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}zensical>=0.0.46<1:textproc/py-zensical@${PY_FLAVOR}
 
 USES=		cpe pgsql:14+ python:3.12+
 CPE_VENDOR=	netbox
diff --git a/net-mgmt/netbox/distinfo b/net-mgmt/netbox/distinfo
index 2b88902fc40a..f96fc82db698 100644
--- a/net-mgmt/netbox/distinfo
+++ b/net-mgmt/netbox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1782290917
-SHA256 (netbox-community-netbox-v4.6.3_GH0.tar.gz) = b4505817b1d4e5e5c3f0c28f7e3066dabd93a73915af00299a0986eb7d9f7b19
-SIZE (netbox-community-netbox-v4.6.3_GH0.tar.gz) = 19799509
+TIMESTAMP = 1782840515
+SHA256 (netbox-community-netbox-v4.6.4_GH0.tar.gz) = 48d3b0932e0be5ea795718458bc23f4f57223f27bb180968c1c6361214301c56
+SIZE (netbox-community-netbox-v4.6.4_GH0.tar.gz) = 19766538
diff --git a/net-mgmt/netbox/pkg-plist b/net-mgmt/netbox/pkg-plist
index d8fed631447b..620f3e2b915a 100644
--- a/net-mgmt/netbox/pkg-plist
+++ b/net-mgmt/netbox/pkg-plist
@@ -345,6 +345,7 @@
 %%DATADIR%%/dcim/tests/test_management_commands.py
 %%DATADIR%%/dcim/tests/test_models.py
 %%DATADIR%%/dcim/tests/test_natural_ordering.py
+%%DATADIR%%/dcim/tests/test_search.py
 %%DATADIR%%/dcim/tests/test_signals.py
 %%DATADIR%%/dcim/tests/test_tables.py
 %%DATADIR%%/dcim/tests/test_views.py
@@ -360,6 +361,7 @@
 %%DATADIR%%/docs/administration/authentication/okta.md
 %%DATADIR%%/docs/administration/authentication/overview.md
 %%DATADIR%%/docs/administration/error-reporting.md
+%%DATADIR%%/docs/administration/management-commands.md
 %%DATADIR%%/docs/administration/netbox-shell.md
 %%DATADIR%%/docs/administration/permissions.md
 %%DATADIR%%/docs/administration/replicating-netbox.md
@@ -630,18 +632,6 @@
 %%DATADIR%%/docs/reference/filtering.md
 %%DATADIR%%/docs/reference/markdown.md
 %%DATADIR%%/docs/release-notes/index.md
-%%DATADIR%%/docs/release-notes/version-2.0.md
-%%DATADIR%%/docs/release-notes/version-2.1.md
-%%DATADIR%%/docs/release-notes/version-2.10.md
-%%DATADIR%%/docs/release-notes/version-2.11.md
-%%DATADIR%%/docs/release-notes/version-2.2.md
-%%DATADIR%%/docs/release-notes/version-2.3.md
-%%DATADIR%%/docs/release-notes/version-2.4.md
-%%DATADIR%%/docs/release-notes/version-2.5.md
-%%DATADIR%%/docs/release-notes/version-2.6.md
-%%DATADIR%%/docs/release-notes/version-2.7.md
-%%DATADIR%%/docs/release-notes/version-2.8.md
-%%DATADIR%%/docs/release-notes/version-2.9.md
 %%DATADIR%%/docs/release-notes/version-3.0.md
 %%DATADIR%%/docs/release-notes/version-3.1.md
 %%DATADIR%%/docs/release-notes/version-3.2.md
@@ -717,6 +707,7 @@
 %%DATADIR%%/extras/management/__init__.py
 %%DATADIR%%/extras/management/commands/__init__.py
 %%DATADIR%%/extras/management/commands/housekeeping.py
+%%DATADIR%%/extras/management/commands/populate_image_sizes.py
 %%DATADIR%%/extras/management/commands/reindex.py
 %%DATADIR%%/extras/management/commands/renaturalize.py
 %%DATADIR%%/extras/management/commands/runscript.py
@@ -767,6 +758,7 @@
 %%DATADIR%%/extras/migrations/0137_default_ordering_indexes.py
 %%DATADIR%%/extras/migrations/0138_customfieldchoiceset_choice_colors.py
 %%DATADIR%%/extras/migrations/0139_alter_customfieldchoiceset_extra_choices.py
+%%DATADIR%%/extras/migrations/0140_imageattachment_image_size.py
 %%DATADIR%%/extras/migrations/__init__.py
 %%DATADIR%%/extras/models/__init__.py
 %%DATADIR%%/extras/models/configs.py
@@ -810,6 +802,7 @@
 %%DATADIR%%/extras/tests/test_signals.py
 %%DATADIR%%/extras/tests/test_tables.py
 %%DATADIR%%/extras/tests/test_tags.py
+%%DATADIR%%/extras/tests/test_templatetags.py
 %%DATADIR%%/extras/tests/test_utils.py
 %%DATADIR%%/extras/tests/test_views.py
 %%DATADIR%%/extras/ui/panels.py
@@ -1033,6 +1026,8 @@
 %%DATADIR%%/netbox/tests/dummy_plugin/search.py
 %%DATADIR%%/netbox/tests/dummy_plugin/tables.py
 %%DATADIR%%/netbox/tests/dummy_plugin/template_content.py
+%%DATADIR%%/netbox/tests/dummy_plugin/tests/__init__.py
+%%DATADIR%%/netbox/tests/dummy_plugin/tests/test_graphql.py
 %%DATADIR%%/netbox/tests/dummy_plugin/urls.py
 %%DATADIR%%/netbox/tests/dummy_plugin/views.py
 %%DATADIR%%/netbox/tests/dummy_plugin/webhook_callbacks.py
@@ -1045,6 +1040,7 @@
 %%DATADIR%%/netbox/tests/test_graphql.py
 %%DATADIR%%/netbox/tests/test_import.py
 %%DATADIR%%/netbox/tests/test_jobs.py
+%%DATADIR%%/netbox/tests/test_middleware.py
 %%DATADIR%%/netbox/tests/test_migrations.py
 %%DATADIR%%/netbox/tests/test_model_features.py
 %%DATADIR%%/netbox/tests/test_model_test_coverage.py
@@ -1949,6 +1945,7 @@
 %%DATADIR%%/utilities/tests/test_filter_modifiers.py
 %%DATADIR%%/utilities/tests/test_filters.py
 %%DATADIR%%/utilities/tests/test_forms.py
+%%DATADIR%%/utilities/tests/test_jsonschema.py
 %%DATADIR%%/utilities/tests/test_management_commands.py
 %%DATADIR%%/utilities/tests/test_managers.py
 %%DATADIR%%/utilities/tests/test_ordering.py