diff options
author | William Hubbs <william.hubbs@sony.com> | 2019-04-11 16:01:16 -0500 |
---|---|---|
committer | William Hubbs <williamh@gentoo.org> | 2019-04-11 16:01:44 -0500 |
commit | 70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596 (patch) | |
tree | 50ad8b0de93bb577f51cd7070f363991689e0433 /www-apps | |
parent | www-client/firefox: arm64 keyworded (diff) | |
download | gentoo-70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596.tar.gz gentoo-70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596.tar.bz2 gentoo-70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596.zip |
www-apps/netbox: IP address and data center infra management tool
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: William Hubbs <williamh@gentoo.org>
Diffstat (limited to 'www-apps')
-rw-r--r-- | www-apps/netbox/Manifest | 1 | ||||
-rw-r--r-- | www-apps/netbox/files/gunicorn_config.py | 5 | ||||
-rw-r--r-- | www-apps/netbox/files/netbox-2.5.10-no-pip.patch | 27 | ||||
-rw-r--r-- | www-apps/netbox/files/netbox-rqworker.initd | 11 | ||||
-rw-r--r-- | www-apps/netbox/files/netbox.initd | 10 | ||||
-rw-r--r-- | www-apps/netbox/metadata.xml | 11 | ||||
-rw-r--r-- | www-apps/netbox/netbox-2.5.10.ebuild | 100 |
7 files changed, 165 insertions, 0 deletions
diff --git a/www-apps/netbox/Manifest b/www-apps/netbox/Manifest new file mode 100644 index 000000000000..1b395a702951 --- /dev/null +++ b/www-apps/netbox/Manifest @@ -0,0 +1 @@ +DIST netbox-2.5.10.tar.gz 2363340 BLAKE2B 9bc946398ac75b585f2bc6fdb01bfb7545c92ccbb239e9ac0309b66be435134a87cde5fcf876cec4c3354e7aedf5af1d9e1976574689dfb0af34404e9c9f907f SHA512 ed71b0efaffd8bad6e53f7b281d1933234161f031110fa901e1b789a964f000f2ff13897685e79193cbee9294c1f50b8c6edef7d0ef6f829a7357640c8034525 diff --git a/www-apps/netbox/files/gunicorn_config.py b/www-apps/netbox/files/gunicorn_config.py new file mode 100644 index 000000000000..4cb7111fac44 --- /dev/null +++ b/www-apps/netbox/files/gunicorn_config.py @@ -0,0 +1,5 @@ +command = '/usr/bin/gunicorn' +pythonpath = '/opt/netbox/netbox' +bind = '127.0.0.1:8001' +workers = 3 +user = 'netbox' diff --git a/www-apps/netbox/files/netbox-2.5.10-no-pip.patch b/www-apps/netbox/files/netbox-2.5.10-no-pip.patch new file mode 100644 index 000000000000..5d1fa595f4e6 --- /dev/null +++ b/www-apps/netbox/files/netbox-2.5.10-no-pip.patch @@ -0,0 +1,27 @@ +diff --git a/upgrade.sh b/upgrade.sh +index 24e79f5b..248e1cb5 100755 +--- a/upgrade.sh ++++ b/upgrade.sh +@@ -8,22 +8,6 @@ + PYTHON="python3" + PIP="pip3" + +-# TODO: Remove this in v2.6 as it is no longer needed under Python 3 +-# Delete stale bytecode +-COMMAND="find . -name \"*.pyc\" -delete" +-echo "Cleaning up stale Python bytecode ($COMMAND)..." +-eval $COMMAND +- +-# Uninstall any Python packages which are no longer needed +-COMMAND="${PIP} uninstall -r old_requirements.txt -y" +-echo "Removing old Python packages ($COMMAND)..." +-eval $COMMAND +- +-# Install any new Python packages +-COMMAND="${PIP} install -r requirements.txt --upgrade" +-echo "Updating required Python packages ($COMMAND)..." +-eval $COMMAND +- + # Apply any database migrations + COMMAND="${PYTHON} netbox/manage.py migrate" + echo "Applying database migrations ($COMMAND)..." diff --git a/www-apps/netbox/files/netbox-rqworker.initd b/www-apps/netbox/files/netbox-rqworker.initd new file mode 100644 index 000000000000..2973e471e038 --- /dev/null +++ b/www-apps/netbox/files/netbox-rqworker.initd @@ -0,0 +1,11 @@ +#!/sbin/openrc-run +# Copyright 2019 Sony Interactive Entertainment Inc. +# Distributed under the terms of the GNU General Public License v2 + +name="netbox-rqworker daemon" +description="nnetbox-rqworker daemon" +command=/usr/bin/python3 +command_args="/opt/netbox/netbox/manage.py rqworker" +command_user=netbox:netbox +directory=/opt/netbox/netbox +supervisor=supervise-daemon diff --git a/www-apps/netbox/files/netbox.initd b/www-apps/netbox/files/netbox.initd new file mode 100644 index 000000000000..d0457a8372f2 --- /dev/null +++ b/www-apps/netbox/files/netbox.initd @@ -0,0 +1,10 @@ +#!/sbin/openrc-run +# Copyright 2019 Sony Interactive Entertainment Inc. +# Distributed under the terms of the GNU General Public License v2 + +description="netbox daemon" +command=/usr/bin/gunicorn +command_args="-c /etc/netbox/gunicorn_config.py netbox.wsgi" +command_user=netbox:netbox +directory=/opt/netbox/netbox +supervisor=supervise-daemon diff --git a/www-apps/netbox/metadata.xml b/www-apps/netbox/metadata.xml new file mode 100644 index 000000000000..f53806a22836 --- /dev/null +++ b/www-apps/netbox/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>williamh@gentoo.org</email> + <name>William Hubbs</name> + </maintainer> + <use> + <flag name="webhooks">Enable webhooks via django-rq</flag> + </use> +</pkgmetadata> diff --git a/www-apps/netbox/netbox-2.5.10.ebuild b/www-apps/netbox/netbox-2.5.10.ebuild new file mode 100644 index 000000000000..efa1ca65e925 --- /dev/null +++ b/www-apps/netbox/netbox-2.5.10.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python3_6 ) +inherit python-single-r1 user readme.gentoo-r1 + +DESCRIPTION="IP address and data center infrastructure management tool" +HOMEPAGE="https://github.com/digitalocean/netbox" +SRC_URI="https://github.com/digitalocean/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" +IUSE="ldap webhooks" + +RDEPEND=">=dev-python/django-2.1.5[${PYTHON_USEDEP}] + >=dev-python/django-cors-headers-2.4.0[${PYTHON_USEDEP}] + >=dev-python/django-debug-toolbar-1.11[${PYTHON_USEDEP}] + >=dev-python/django-filter-2.0.0[${PYTHON_USEDEP}] + >=dev-python/django-mptt-0.9.1[${PYTHON_USEDEP}] + >=dev-python/django-tables2-2.0.3[${PYTHON_USEDEP}] + >=dev-python/django-taggit-0.23.0[${PYTHON_USEDEP}] + >=dev-python/django-taggit-serializer-0.1.7[${PYTHON_USEDEP}] + >=dev-python/django-timezone-field-3.0[${PYTHON_USEDEP}] + >=dev-python/djangorestframework-3.9.0[${PYTHON_USEDEP}] + >=dev-python/drf-yasg-1.14.0[${PYTHON_USEDEP},validation] + >=dev-python/graphviz-0.10.1[${PYTHON_USEDEP}] + >=dev-python/jinja-2.10[${PYTHON_USEDEP}] + >=dev-python/markdown-2.6.11[${PYTHON_USEDEP}] + >=dev-python/netaddr-0.7.19[${PYTHON_USEDEP}] + >=dev-python/pillow-5.3.0[${PYTHON_USEDEP}] + >=dev-python/psycopg-2.7.6.1[${PYTHON_USEDEP}] + >=dev-python/py-gfm-0.1.4[${PYTHON_USEDEP}] + >=dev-python/pycryptodome-3.7.2[${PYTHON_USEDEP}] + www-servers/gunicorn[${PYTHON_USEDEP}] + ldap? ( >=dev-python/django-auth-ldap-1.7[${PYTHON_USEDEP}] ) + webhooks? ( dev-python/django-rq )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-no-pip.patch + ) + +DISABLE_AUTOFORMATTING=YES +DOC_CONTENTS=" +netbox is installed on your system. However, there are some manual steps +you need to complete. + +If this is a new installation, please follow these instructions: + +From the installation instructions [1], you need to configure postgres +ldap and webhooks if you want to use them. Then, you need to +configure and install a web server. Gunicorn is already installed, so +skip that step. + +Once that is done, you should be able to add the netbox service to the +default runlevel and start it. + +If you have webhooks turned on, you should also add the netbox-rqworker + to the default runlevel and start it. + +The files you need to edit are located in /etc/netbox, not /opt/netbox, +as shown in the installation instructions. + +If this is an upgrade, you just need to stop the netbox service, + run the /opt/netbox/upgrade.sh script, check for new configuration + options in the installation documentation [1] then restart the + service. + +[1] https://netbox.readthedocs.io/en/stable/installation/ +" + +pkg_setup() { + enewgroup ${PN} + enewuser ${PN} -1 -1 /opt/${PN} ${PN} +} + +src_install() { + dodir /opt + cp -a ../${P} "${ED}"/opt + dosym ${P} /opt/netbox +dosym ../../etc/netbox/gunicorn_config.py /opt/netbox/gunicorn_config.py + dosym ../../../../etc/netbox/configuration.py \ + /opt/netbox/netbox/netbox/configuration.py + dodir /etc/netbox + insinto /etc/netbox + newins netbox/netbox/configuration.example.py configuration.py + doins "${FILESDIR}"/gunicorn_config.py + fowners -R netbox:netbox /etc/netbox + fperms o= /etc/netbox/configuration.py /etc/netbox/gunicorn_config.py + newinitd "${FILESDIR}"/${PN}.initd ${PN} + use webhooks && + newinitd "${FILESDIR}"/${PN}-rqworker.initd ${PN}-rqworker + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog +} |