Created attachment 192380 [details] netbox.shar Hello, attached is the shar file of netbox, a IP address management (IPAM) and data center infrastructure management (DCIM) tool. Some of the features: - IP address management (IPAM) - IP networks and addresses, VRFs, and VLANs - Equipment racks - Organized by group and site - Devices - Types of devices and where they are installed - Connections - Network, console, and power connections among devices - Virtualization - Virtual machines and clusters - Data circuits - Long-haul communications circuits and providers - Secrets - Encrypted storage of sensitive credentials - Optional support for net-mgmt/py-napalm (Network automation) and LDAP QA (combined with attached patches): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - poudriere (11.1-RELEASE amd64 + i386) -> OK - portlint -> OK Dependencies, that needs to be resolved beforehand: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - add the Django REST Framework 3.8.x to the ports tree (see also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227319) - update py-django-tables2 (see also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227297) - update py-markdown (see also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227310) There are still a few ports that are bound to Django v1.8 at the moment and should use Django v1.11 instead (if applicable): - www/py-django-cors-headers - www/py-django-mptt - www/py-django-js-asset (see also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227032) From my point of view there are at the moment two options to make netbox for FreeBSD available: Option A: - Separate PRs will be created for the affected Django packages www/py-django-cors-headers and py-django-mptt to bring those ports to Django v1.11 (if applicable) - ETA: netbox could be available in the head ports tree to end of Q2 Option B: - The porting of netbox will rely completely on the implementation for a default version of Django in combination with a new macro, e.g. "django" for USE_PYTHON. See also PRs (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222724 and https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227149) - ETA: unknown I have not yet opened separate PRs for Option A as described above to reduce the noise in Bugzilla. I'll wait in that case for your feedback. To test netbox anyway, I added some patches for your convenience. I'll update/obsolete them when necessary in due course. At last but not least: Netbox runs as a service, therefore it might be necessary to reserve an UID and GID for it.
Created attachment 192381 [details] updates py-djangorestframework to 3.8.1
Created attachment 192382 [details] Adds www/py-drf-yasg to the ports tree
Created attachment 192383 [details] assigns www/py-django-cors-headers to Django 1.11
Created attachment 192384 [details] assigns www/py-mptt to Django 1.11
Created attachment 192385 [details] assigns www/py-django-js-asset to Django 1.11
Created attachment 192386 [details] assigns www/py-django-tables2 to Django 1.11
Comment on attachment 192386 [details] assigns www/py-django-tables2 to Django 1.11 >diff -ruN py-django-tables2.orig/Makefile py-django-tables2/Makefile >--- py-django-tables2.orig/Makefile 2017-11-30 16:50:30.000000000 +0100 >+++ py-django-tables2/Makefile 2018-04-10 13:39:27.020915000 +0200 >@@ -2,23 +2,23 @@ > # $FreeBSD: head/www/py-django-tables2/Makefile 455210 2017-11-30 15:50:30Z mat $ > > PORTNAME= django-tables2 >-PORTVERSION= 1.2.9 >+DISTVERSION= 1.21.2 > CATEGORIES= www python > MASTER_SITES= CHEESESHOP > PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} > >-MAINTAINER= kozlov.sergey.404@gmail.com >+MAINTAINER= freebsd_ports@k-worx.org > COMMENT= Table/data-grid framework for Django > > LICENSE= BSD2CLAUSE > LICENSE_FILE= ${WRKSRC}/LICENSE > >-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django18>=0:www/py-django18@${FLAVOR} \ >+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django111>=0:www/py-django111@${FLAVOR} \ > ${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${FLAVOR} > > NO_ARCH= yes > > USES= python >-USE_PYTHON= autoplist distutils >+USE_PYTHON= distutils autoplist > > .include <bsd.port.mk> >diff -ruN py-django-tables2.orig/distinfo py-django-tables2/distinfo >--- py-django-tables2.orig/distinfo 2017-01-16 20:20:12.000000000 +0100 >+++ py-django-tables2/distinfo 2018-04-08 18:08:37.520161000 +0200 >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1484091913 >-SHA256 (django-tables2-1.2.9.tar.gz) = bcc16718017a3b4eb2a2aec10f54695c1d0f41f4daf26f00659706759ec328ef >-SIZE (django-tables2-1.2.9.tar.gz) = 1929912 >+TIMESTAMP = 1523203717 >+SHA256 (django-tables2-1.21.2.tar.gz) = c5c979201b7a2f7e88f2784dcd478e0c809d3a2053dea576cb71ce51676bbf7a >+SIZE (django-tables2-1.21.2.tar.gz) = 2680587
(In reply to Kai from comment #7) Sorry for the full quote when I obsoleted the patch for www/py-django-tables2 . That patch has been added yesterday to the ports tree and is no longer needed in this PR (thanks to pi for committing it). The Python package textproc/py-markdown has been also updated meanwhile (thanks to koobs for committing it). I ran new builds and both were fine: poudriere (11.1-RELEASE amd64 + i386) -> OK
testbuilds@work
Comment on attachment 192381 [details] updates py-djangorestframework to 3.8.1 Django REST Framework v3.8.2 has been added to the ports tree so this patch is now obsolete.
Comment on attachment 192382 [details] Adds www/py-drf-yasg to the ports tree www/py-drf-yasg has been also added to the ports tree so this patch is now obsolete. (thanks to @pi)
Testbuilds of netbox with those reassignments to django 1.11 are fine. To be honest, I have no idea how those reassignments from django 1.8 to 1.11 relate to other ports. Can something break ? How would that be tested ? I'll be traveling until sunday, so it has to wait a bit.
(In reply to Kurt Jaeger from comment #12) Thank you very much for the testbuilds, I'm positively surprised because I have not expected that this PR would come so far in such a short time and there's no hurry. A bit work is still needed to do before netbox can be added to the ports tree. An possible approach follows (option A from my initial comment in this PR) for the ports - www/py-django-cors-headers - www/py-django-mptt - www/py-django-js-asset and their respective dependencies that needs to be adjusted/updated. At first here's an overview of the current situation (the dependendies that are not related/bound to Django were left out for the sake of brevity): Dependencies with www/py-django-cors-headers: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For port www/py-django-cors-headers: > www/py-django-annotations (TODO: assign to www/py-django111 and www/djangorestframework, upstream project seems stale...) > | > +--www/py-django-cors-headers (TODO: assign to www/py-django111) > | > +--www/py-djangorestframework36 > | > +--devel/py-django-rq (TODO: assign to www/py-django111) > | | > | `--www/py-django18 > | > `--devel/py-django-rq-dashboard (TODO: update to 0.3.3) > | > `--devel/py-django-rq Proposed plan for www/py-django-cors-headers (1 or 2 patches) would be roughly: 1. update devel/py-django-rq-dashboard to 0.3.3 (requires maintainer feedback -> swills) 2. - change RUN_DEPENDS of devel/py-django-rq and www/py-django-cors-headers -> www/py-django111 - change RUN_DEPENDS of www/py-django-annotations -> www/py-djangorestframework Dependencies with www/py-django-mptt and www/py-django-js-asset: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For port www/py-django-cms: > www/py-django-cms (TODO: update to 3.5.2 and assign to www/py-django111) > | > +--www/py-django18 > | > +--www/py-django-classy-tags (TODO: assign to/py-django18) > | | > | `--www/py-django18 > | > +--www/py-django-mptt (TODO: assign to www/py-django111 and www/py-django-js-asset) > | | > | +--www/py-django18 > | | > | `--www/py-django-js-asset (TODO: assign to www/py-django111) > | | > | `--www/py-django18 > | > | > `--www/py-django-sekizai (TODO: update to 0.10.0 and assign to www/py-django111) > | > +--devel/py-django18 > | > `--www/py-django-classy-tags (TODO: assign to www/py-django18) > | > `--www/py-django18 For port www/py-django-dpaste: > www/py-django-dpaste (TODO: update to 2.13a and assign to www/py-django111) > | > +--www/py-django18 > | > `--www/py-django-mptt (TODO: assign to www/py-django111 and www/py-django-js-asset) > | > +--www/py-django18 > | > `--www/py-django-js-asset (TODO: assign to www/py-django111) > | > `--www/py-django18 Proposed plan for www/py-django-cms and www/py-django-dpaste (one whole patch) would be roughly: 1. - update www/py-django-sekizai to 0.10.0 and change RUN_DEPENDS to www/py-django111 (requires maintainer feedback -> xenophon+fbsdports@irtnog.org) - change RUN_DEPENDS of www/py-django-classy-tags to www/py-django111 - change RUN_DEPENDS of www/py-django-mptt to www/py-django111 - change RUN_DEPENDS of www/py-django-js-asset to www/py-django111 and www/py-django-mptt - update www/py-django-cms to 3.5.2 and change RUN_DEPENDS to www/py-django111 (requires maintainer feedback -> cs) - update www/py-django-dpaste to 2.13a and change RUN_DEPENDS to www/py-django111 (requires maintainer feedback -> koobs) If the whole approach sounds reasonable for all parties I would create the appropriate patches (and PRs, if required) for it.
Hi Kurt, Any update from your side? I am looking forward to see this port landing. Thanks.
Taking that over with approval from Kurt via Private Mail.
Comment on attachment 192384 [details] assigns www/py-mptt to Django 1.11 www/py-django-mptt has been reassigned to Django 1.11 in r470555 so this patch is now obsolete. Thanks to miwi@ and yuri@ .
Comment on attachment 192385 [details] assigns www/py-django-js-asset to Django 1.11 www/py-django-js-asset has been reassigned to Django 1.11 in r470555 so this patch is now obsolete. Thanks again to miwi@ and yuri@.
Created attachment 193620 [details] netbox-v2.3.3.shar Meanwhile netbox has been updated to 2.3.3. Attached is the new shar file. Changes to the port: - improvements for the intructions given in the pkg-message file QA (still with the patch applied for www/py-django-cors-headers): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - poudriere (11.1-RELEASE amd64 + i386) -> OK - portlint -> OK
Comment on attachment 192383 [details] assigns www/py-django-cors-headers to Django 1.11 The remaining patch is no longer required since www/py-django-cors-headers has been switched to Django 1.11 in r470769 . Thanks to swills@ and rene@ ! QA (without any patches): ~~~~~~~~~~~~~~~~~~~~~~~~~ - poudriere (11.1-RELEASE amd64 + i386) -> OK - portlint -> OK
Thank you all for the amazing team work, Committed Thanks!
A commit references this bug: Author: miwi Date: Sat May 26 18:06:30 UTC 2018 New revision: 470937 URL: https://svnweb.freebsd.org/changeset/ports/470937 Log: NetBox is an open source web application designed to help manage and document computer networks. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It encompasses the following aspects of network management: - IP address management (IPAM) - IP networks and addresses, VRFs, and VLANs - Equipment racks - Organized by group and site - Devices - Types of devices and where they are installed - Connections - Network, console, and power connections among devices - Virtualization - Virtual machines and clusters - Data circuits - Long-haul communications circuits and providers - Secrets - Encrypted storage of sensitive credentials WWW: https://github.com/digitalocean/netbox PR: 227416 Submitted by: freebsd_ports@k-worx.org Sponsored by: iXsystems Inc. Changes: head/net-mgmt/Makefile head/net-mgmt/netbox/ head/net-mgmt/netbox/Makefile head/net-mgmt/netbox/distinfo head/net-mgmt/netbox/files/ head/net-mgmt/netbox/files/pkg-message.in head/net-mgmt/netbox/pkg-descr head/net-mgmt/netbox/pkg-plist