net-mgmt/netbox: Update to 2.9.8

* Limit the version ranges of the required Python packages and use very
  narrow ranges for those ones, which often cause regressions.

  That is because upstream already uses fixed Python package dependencies
  for a while and had relaxed them for a short period of time.

  However, because it led to regressions when some Python packages were
  updated during that time, upstream has been using fixed package
  dependencies again since then.

Changelog since 2.7.12:

It contains many bugfixes/enhancements and the following new features:

* Object-Based Permissions
* Background Execution of Scripts & Reports
* Named Virtual Chassis
* Changes to Tag Creation
* Dedicated Model for VM Interfaces
* REST API Endpoints for Users and Groups
* Remote Authentication Support
* Plugins

https://github.com/netbox-community/netbox/blob/v2.8.9/docs/release-notes/version-2.9.md
https://github.com/netbox-community/netbox/blob/v2.8.9/docs/release-notes/version-2.8.md
This commit is contained in:
Kai Knoblich 2020-11-10 09:11:35 +00:00
parent 07dd16f220
commit dbb65ebd01
5 changed files with 971 additions and 775 deletions

View file

@ -5,6 +5,29 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
20201110:
AFFECTS: users of net-mgmt/netbox
AUTHOR: kai@FreeBSD.org
Changes related to the NetBox configuration:
1. If in use, LDAP authentication must be enabled by setting
REMOTE_AUTH_BACKEND to 'netbox.authentication.LDAPBackend'. (The LDAP
configuration parameters in ldap_config.py remain unchanged.)
2. REMOTE_AUTH_DEFAULT_PERMISSIONS now takes a dictionary rather than a
list. This is a mapping of permission names to a dictionary of
constraining attributes, or None.
For example, ['dcim.add_site', 'dcim.change_site'] would become
{'dcim.add_site': None, 'dcim.change_site': None}.
3. Support for the DEFAULT_TIMEOUT parameter under REDIS database
configuration was removed. Set RQ_DEFAULT_TIMEOUT as a global
configuration parameter instead.
Please also check the pkg-message and the changelogs for further info.
20201106:
AFFECTS: users of www/samdruckerserver
AUTHOR: dvl@FreeBSD.org

View file

@ -2,8 +2,7 @@
PORTNAME= netbox
DISTVERSIONPREFIX= v
DISTVERSION= 2.7.12
PORTREVISION= 1
DISTVERSION= 2.9.8
CATEGORIES= net-mgmt
MAINTAINER= kai@FreeBSD.org
@ -12,34 +11,45 @@ COMMENT= IP address management tool
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django22>=2.2<2.3:www/py-django22@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-cacheops>=4.2:www/py-django-cacheops@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-cors-headers>=3.2.1:www/py-django-cors-headers@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-debug-toolbar>=2.1:www/py-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-filter>=2.2.0:www/py-django-filter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-mptt>=0.9.1:www/py-django-mptt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-prometheus>=1.1.0:www/py-django-prometheus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-rq>=2.2.0:devel/py-django-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-tables2>=2.2.1:www/py-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-taggit>=1.2.0:www/py-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-taggit-serializer>=0.1.7:www/py-django-taggit-serializer@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-timezone-field>=4.0:www/py-django-timezone-field@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}djangorestframework>=3.10.3:www/py-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}drf-yasg>=1.17.0:www/py-drf-yasg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4:www/py-django-pglocks@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gfm>=0.1.4:textproc/py-gfm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10.1:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown>=2.6.11:textproc/py-markdown@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}netaddr>=0.7.19:net/py-netaddr@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pycryptodome>=3.8.2:security/py-pycryptodome@${PY_FLAVOR} \
# NetBox has fixed Python package dependencies listed in "requirements.txt"
# which are not checked during build/runtime because they're usually installed
# via devel/py-pip.
#
# As a rule, slight deviations are usally not a problem, but there are a few
# Django packages that are known for regressions in conjunction with NetBox and
# should therefore only be updated with caution.
#
# - devel/py-dj31-django-rq
# - www/py-dj31-django-filter
# - www/py-dj31-django-tables2
# - www/py-dj31-djangorestframework (in conjunction with www/py-dj31-drf-yasg)
#
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django31>=3.1<3.2:www/py-django31@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-cacheops>=5.1.0<5.2:www/py-dj31-django-cacheops@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-cors-headers>=3.4.0<3.5:www/py-dj31-django-cors-headers@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-debug-toolbar>=2.2<4:www/py-dj31-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-filter>=2.3.0<2.4:www/py-dj31-django-filter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-mptt>=0.11.0<0.12:www/py-dj31-django-mptt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-prometheus>=2.0.0<2.1:www/py-dj31-django-prometheus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-rq>=2.3.2<2.4:devel/py-dj31-django-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-tables2>=2.3.1<2.4:www/py-dj31-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-taggit>=1.3.0<2:www/py-dj31-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-django-timezone-field>=4.0<5:www/py-dj31-django-timezone-field@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-djangorestframework>=3.11.0<3.12.0,1:www/py-dj31-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj31-drf-yasg>=1.17.1<1.21:www/py-dj31-drf-yasg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gfm>=0.1.4<0.2:textproc/py-gfm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.11.2<3:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown>=2.6.11<3.5:textproc/py-markdown@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}netaddr>=0.7.19<1:net/py-netaddr@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pycryptodome>=3.9.8<4:security/py-pycryptodome@${PY_FLAVOR} \
${PY_PILLOW} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.4:databases/py-psycopg2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}redis>=3.3.11:databases/py-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}svgwrite>=1.3.1:graphics/py-svgwrite@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=5.2:devel/py-yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gunicorn>=19.9.0.:www/py-gunicorn@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.5<3:databases/py-psycopg2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}svgwrite>=1.3.1<2:graphics/py-svgwrite@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=5.3.1<6:devel/py-yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gunicorn>=19.9.0<21:www/py-gunicorn@${PY_FLAVOR}
USES= pgsql:9.4+ python:3.5+
USES= pgsql:9.6+ python:3.6+
USE_GITHUB= yes
GH_ACCOUNT= netbox-community

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1586940490
SHA256 (netbox-community-netbox-v2.7.12_GH0.tar.gz) = 4c5f6f5fae54dbd2e4463de1c290c196269fedd0958864ba4de7405d16e677ab
SIZE (netbox-community-netbox-v2.7.12_GH0.tar.gz) = 5599712
TIMESTAMP = 1604135336
SHA256 (netbox-community-netbox-v2.9.8_GH0.tar.gz) = 182a773b604ef0e6f01cc42752799356431debd9b852f5b86ef19b2bd928271e
SIZE (netbox-community-netbox-v2.9.8_GH0.tar.gz) = 5799405

View file

@ -193,4 +193,60 @@ the possibility to add extra arguments or to use a configuration file instead
of using rc variables.
EOD
}
{ type: upgrade
maximum_version: 2.9.8
message: <<EOD
Changes related to the NetBox configuration:
1. If in use, LDAP authentication must be enabled by setting
REMOTE_AUTH_BACKEND to 'netbox.authentication.LDAPBackend'. (The LDAP
configuration parameters in ldap_config.py remain unchanged.)
2. REMOTE_AUTH_DEFAULT_PERMISSIONS now takes a dictionary rather than a list.
This is a mapping of permission names to a dictionary of constraining
attributes, or None.
For example, ['dcim.add_site', 'dcim.change_site'] would become
{'dcim.add_site': None, 'dcim.change_site': None}.
3. Support for the DEFAULT_TIMEOUT parameter under REDIS database configuration
was removed. Set RQ_DEFAULT_TIMEOUT as a global configuration parameter
instead.
Changes related to permissions:
1. Any permissions referencing the legacy ReportResult model (e.g.
'extras.view_reportresult') should be updated to reference the Report model.
2. The 'secrets.activate_userkey' permission no longer exists. Instead,
'secrets.change_userkey' is checked to determine whether a user has the
ability to activate a UserKey.
3. The 'users.delete_token permission' is no longer enforced. All users are
permitted to delete their own API tokens.
Changes to the REST API:
Numerous changes have been made to the REST API. Please check the changelogs
for more details.
Workaround for issues with invalid nested data:
Users that are experiencing invalid nested data with regions, rack groups, or
tenant groups can perform a one-time operation using the NetBox shell to
rebuild the correct nested relationships after upgrading:
# cd %%DATADIR%%
# python%%PYTHON_VER%% manage.py nbshell
### NetBox interactive shell (localhost)
### Python 3.x.x | Django 3.1.x | NetBox 2.9.x
### lsmodels() will show available models. Use help(<model>) for more info.
>>> Region.objects.rebuild()
>>> RackGroup.objects.rebuild()
>>> TenantGroup.objects.rebuild()
EOD
}
]

File diff suppressed because it is too large Load diff