public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "William Hubbs" <williamh@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: www-apps/netbox/, www-apps/netbox/files/
Date: Thu, 11 Apr 2019 21:03:30 +0000 (UTC)	[thread overview]
Message-ID: <1555016504.70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596.williamh@gentoo> (raw)

commit:     70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596
Author:     William Hubbs <william.hubbs <AT> sony <DOT> com>
AuthorDate: Thu Apr 11 21:01:16 2019 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Thu Apr 11 21:01:44 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70e9b5c3

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 <AT> gentoo.org>

 www-apps/netbox/Manifest                         |   1 +
 www-apps/netbox/files/gunicorn_config.py         |   5 ++
 www-apps/netbox/files/netbox-2.5.10-no-pip.patch |  27 ++++++
 www-apps/netbox/files/netbox-rqworker.initd      |  11 +++
 www-apps/netbox/files/netbox.initd               |  10 +++
 www-apps/netbox/metadata.xml                     |  11 +++
 www-apps/netbox/netbox-2.5.10.ebuild             | 100 +++++++++++++++++++++++
 7 files changed, 165 insertions(+)

diff --git a/www-apps/netbox/Manifest b/www-apps/netbox/Manifest
new file mode 100644
index 00000000000..1b395a70295
--- /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 00000000000..4cb7111fac4
--- /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 00000000000..5d1fa595f4e
--- /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 00000000000..2973e471e03
--- /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 00000000000..d0457a8372f
--- /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 00000000000..f53806a2283
--- /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 00000000000..efa1ca65e92
--- /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
+}


             reply	other threads:[~2019-04-11 21:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-11 21:03 William Hubbs [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-04-30 21:19 [gentoo-commits] repo/gentoo:master commit in: www-apps/netbox/, www-apps/netbox/files/ William Hubbs
2019-07-16  0:03 William Hubbs
2019-09-25 17:38 William Hubbs
2020-08-01 20:40 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1555016504.70e9b5c3ac83e8d6a0c61c6415c4a20358f9d596.williamh@gentoo \
    --to=williamh@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox