www-apps/netbox: New package

Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Alarig Le Lay <alarig@swordarmor.fr
This commit is contained in:
Alarig Le Lay 2021-03-02 11:41:54 +01:00
parent f25876d619
commit e8ec33fa66
Signed by: alarig
GPG key ID: 7AFE62C6DF8BCDEC
7 changed files with 191 additions and 0 deletions

1
www-apps/netbox/Manifest Normal file
View file

@ -0,0 +1 @@
DIST netbox-2.10.5.tar.gz 7063897 BLAKE2B 87a0b3a8f7251d770752c4e4d4bd45f379aa473ef5de754b9e8319791b81f45f9887710746b0070d2d4797b0abcc0ac7728578d72d8b92a5de626732d232a4ab SHA512 db93fa4d4bd64fea95558f64b8149aeac81c47472b8fbd7836e8a70ceacf24a4abba9c93e4795400fc8627f4e19426441fc7a66d63452ec93b6f9c07030c9fac

View file

@ -0,0 +1,5 @@
command = '/usr/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '127.0.0.1:8001'
workers = 3
user = 'netbox'

View file

@ -0,0 +1,32 @@
diff --git a/upgrade.sh b/upgrade.sh
index d17dec06..6972ed2f 100755
--- a/upgrade.sh
+++ b/upgrade.sh
@@ -10,27 +10,6 @@ cd "$(dirname "$0")"
PYTHON="python3"
PIP="pip3"
-# 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
-
-# Validate Python dependencies
-COMMAND="${PIP} check"
-echo "Validating Python dependencies ($COMMAND)..."
-eval $COMMAND || (
- echo "******** PLEASE FIX THE DEPENDENCIES BEFORE CONTINUING ********"
- echo "* Manually install newer version(s) of the highlighted packages"
- echo "* so that 'pip3 check' passes. For more information see:"
- echo "* https://github.com/pypa/pip/issues/988"
- exit 1
-)
-
# Apply any database migrations
COMMAND="${PYTHON} netbox/manage.py migrate"
echo "Applying database migrations ($COMMAND)..."

View file

@ -0,0 +1,13 @@
#!/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
error_log=/var/log/netbox/netbox-rcworker.log
output_log=/var/log/netbox/"${RC_SVCNAME}".log
supervisor=supervise-daemon

View file

@ -0,0 +1,12 @@
#!/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
error_log=/var/log/netbox/"${RC_SVCNAME}".log
output_log=/var/log/netbox/"${RC_SVCNAME}".log
supervisor=supervise-daemon

View file

@ -0,0 +1,8 @@
<?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>
</pkgmetadata>

View file

@ -0,0 +1,120 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..9} )
inherit python-single-r1 readme.gentoo-r1
DESCRIPTION="IP address and data center infrastructure management tool"
HOMEPAGE="https://github.com/netbox-community/netbox"
SRC_URI="https://github.com/netbox-community/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
IUSE="ldap"
REQUIRED_USE=${PYTHON_REQUIRED_USE}
RDEPEND="
acct-group/netbox
acct-user/netbox
${PYTHON_DEPS}
$(python_gen_cond_dep '
>=dev-python/django-3.1.3[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-cacheops-5.1[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-cors-headers-3.5.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-debug-toolbar-3.1.1[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-filter-2.4.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-mptt-0.11.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-pglocks-1.0.4[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-prometheus-2.1.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/djangorestframework-3.12.2[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-rq-2.4.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-tables2-2.3.3[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-taggit-1.3.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/django-timezone-field-4.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/drf-yasg-1.20.0[${PYTHON_MULTI_USEDEP},validation]
>=dev-python/jinja-2.11.2[${PYTHON_MULTI_USEDEP}]
>=dev-python/markdown-3.3.3[${PYTHON_MULTI_USEDEP}]
>=dev-python/netaddr-0.8.0[${PYTHON_MULTI_USEDEP}]
>=dev-python/pillow-8.0.1[${PYTHON_MULTI_USEDEP}]
>=dev-python/psycopg-2.8.6[${PYTHON_MULTI_USEDEP}]
>=dev-python/pycryptodome-3.9.9[${PYTHON_MULTI_USEDEP}]
>=dev-python/pyyaml-5.3.1[${PYTHON_MULTI_USEDEP}]
>=dev-python/svgwrite-1.4[${PYTHON_MULTI_USEDEP}]
www-servers/gunicorn[${PYTHON_MULTI_USEDEP}]
ldap? ( >=dev-python/django-auth-ldap-1.7[${PYTHON_MULTI_USEDEP}] )
')"
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/${PN}-2.6.7-no-pip.patch
)
DISABLE_AUTOFORMATTING=YES
DOC_CONTENTS="
netbox is installed on your system. However, there are some manual steps
you need to complete from the installation guide [1].
On Gentoo, the configuration files you need to edit are located in
/etc/netbox, not /opt/netbox as shown in the installation guide.
If this is a new installation, please follow the installation guide
other than this difference. Also, if you need ldap, set the appropriate
use flag when emerging netbox to install the dependency for it.
Once that is done, you should be able to add the netbox service to the
default runlevel and start it.
If you want to use webhooks, you should also add the netbox-rqworker
service to the default runlevel and start it.
If this is an upgrade, follow these instructions:
Stop the netbox service. If the netbox-rqworker service is running,
stop it as well.
Next, run the upgrade script as described in the upgrading guide[2].
Next, check for new configuration options and set them as appropriate
for your system.
Next, start the netbox service.
Finally, if you are using webhooks, start the netbox-rqworker service.
[1] https://netbox.readthedocs.io/en/stable/installation/
[2] https://netbox.readthedocs.io/en/stable/installation/upgrading/
"
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 /opt/${P}
fowners -h netbox:netbox /opt/netbox
fperms o= /etc/netbox/configuration.py /etc/netbox/gunicorn_config.py
newinitd "${FILESDIR}"/${PN}.initd ${PN}
newinitd "${FILESDIR}"/${PN}-rqworker.initd ${PN}-rqworker
keepdir /var/log/netbox
fowners -R netbox:netbox /var/log/netbox
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
local r
for r in $REPLACING_VERSIONS; do
if [[ $r = "2.5.10" ]]; then
ewarn "The home directory of the netbox user is now /var/lib/netbox"
ewarn "Please adjust your system."
fi
done
}