summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoshless2021-04-18 01:43:20 +0200
committerRoshless2021-04-18 01:43:20 +0200
commitd3951056071ab26de44bfa62b7f08964daf3b47d (patch)
tree6ce1ae97cc17cf6a64ae7030a4c4642eda86cc91
parente0ee3c3ac9c565c949af37704fbac2a635eb4f45 (diff)
downloadaur-d3951056071ab26de44bfa62b7f08964daf3b47d.tar.gz
upgpkg: netbox 2.11.0-1
revamp and do upstream release
-rw-r--r--.SRCINFO57
-rw-r--r--PKGBUILD119
-rw-r--r--gunicorn_config.py5
-rw-r--r--netbox-rq.service14
-rw-r--r--netbox-system.service12
-rw-r--r--netbox.install40
-rw-r--r--netbox.service12
-rw-r--r--netbox.sysusers1
-rw-r--r--netbox.tmpfile3
-rwxr-xr-xupgrade.sh8
10 files changed, 128 insertions, 143 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 07366ee060cc..76a787130c52 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,53 +1,50 @@
pkgbase = netbox
pkgdesc = IP address management (IPAM) and data center infrastructure management (DCIM) tool.
- pkgver = 2.3.1
- pkgrel = 2
+ pkgver = 2.11.0
+ pkgrel = 1
url = https://github.com/digitalocean/netbox
- install = netbox.install
arch = any
license = Apache-2.0
depends = python
depends = gunicorn
- depends = libffi
- depends = libpgf
- depends = openssl
- depends = python-coreapi
- depends = python-pycryptodomex
depends = python-django
+ depends = python-django-cacheops
depends = python-django-cors-headers
depends = python-django-debug-toolbar
depends = python-django-filter
depends = python-django-mptt
- depends = python-django-rest-framework
- depends = python-django-rest-swagger
+ depends = python-django-pglocks
+ depends = python-django-prometheus
+ depends = python-django-rq
depends = python-django-tables2
- depends = python-graphviz
- depends = python-lxml
+ depends = python-django-taggit
+ depends = python-django-timezone-field
+ depends = python-django-rest-framework
+ depends = python-drf-yasg
+ depends = python-jinja
depends = python-markdown
- depends = python-natsort
- depends = python-ncclient
depends = python-netaddr
- depends = python-openapi-codec
- depends = python-paramiko
depends = python-pillow
- depends = python-py-gfm
- depends = python-pytz
- depends = python-psycopg2
- depends = python-simplejson
- depends = python-xmltodict
- depends = python-yaml
+ depends = python-psycopg2-binary
+ depends = python-pycryptodome
+ depends = python-pyaml
+ depends = python-redis
+ depends = python-svgwrite
conflicts = netbox-git
replaces = netbox-git
- backup = etc/netbox/gunicorn_config.py
backup = etc/netbox/configuration.py
- source = https://github.com/digitalocean/netbox/archive/v2.3.1.tar.gz
- source = netbox-system.service
+ source = https://github.com/digitalocean/netbox/archive/v2.11.0.tar.gz
+ source = netbox.service
+ source = netbox-rq.service
+ source = netbox.sysusers
source = netbox.tmpfile
- source = gunicorn_config.py
- sha256sums = 284c830fcacf99febd1f650fb323cc9ce1c4c31044e4ee70eb791c53f3f10ddb
- sha256sums = dc83de37ff9151de3d309fd43c6eff3b30886882012b81fd3ff2f3a5a706bea6
- sha256sums = 1028bac96ddcd18c10646dff26027b4891fcab4381436e2b6ea3302887a5586f
- sha256sums = 7a5ae05cad7ec14193a43ef080776b5525c80b6258762a6cb6a108db83861ff9
+ source = upgrade.sh
+ md5sums = ef794d344ab5a3b2d9c854867580d0cf
+ md5sums = 55dcba60ed4cb66b350d3d8f2946aef9
+ md5sums = ad07c0c741a231b8d8012221bee2c167
+ md5sums = b653f7da646e78ad5c69d3960bbafd9c
+ md5sums = 17532f81746d5378abbf9721c526247b
+ md5sums = 97c618de19719135aa84458789b025b1
pkgname = netbox
diff --git a/PKGBUILD b/PKGBUILD
index 5786e25b0f76..be08f443ee2d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,70 +1,69 @@
-# Maintainer: Anthony Ruhier <anthony.ruhier@gmail.com>
+# Maintainer: Roshless <pkgs@roshless.com>
-_name=netbox
-pkgname=${_name}
-pkgver=2.3.1
-_realver="${pkgver}"
-pkgrel=2
-pkgdesc="IP address management (IPAM) and data center infrastructure management (DCIM) tool."
+pkgname='netbox'
+pkgver=2.11.0
+pkgrel=1
+pkgdesc='IP address management (IPAM) and data center infrastructure management (DCIM) tool.'
arch=('any')
-url="https://github.com/digitalocean/${_name}"
+url='https://github.com/digitalocean/netbox'
license=('Apache-2.0')
-depends=('python'
- 'gunicorn'
- 'libffi'
- 'libpgf'
- 'openssl'
- 'python-coreapi'
- 'python-pycryptodomex'
- 'python-django'
- 'python-django-cors-headers'
- 'python-django-debug-toolbar'
- 'python-django-filter'
- 'python-django-mptt'
- 'python-django-rest-framework'
- 'python-django-rest-swagger'
- 'python-django-tables2'
- 'python-graphviz'
- 'python-lxml'
- 'python-markdown'
- 'python-natsort'
- 'python-ncclient'
- 'python-netaddr'
- 'python-openapi-codec'
- 'python-paramiko'
- 'python-pillow'
- 'python-py-gfm'
- 'python-pytz'
- 'python-psycopg2'
- 'python-simplejson'
- 'python-xmltodict'
- 'python-yaml')
+depends=(
+ 'python'
+ 'gunicorn'
+ 'python-django'
+ 'python-django-cacheops'
+ 'python-django-cors-headers'
+ 'python-django-debug-toolbar'
+ 'python-django-filter'
+ 'python-django-mptt'
+ 'python-django-pglocks'
+ 'python-django-prometheus'
+ 'python-django-rq'
+ 'python-django-tables2'
+ 'python-django-taggit'
+ 'python-django-timezone-field'
+ 'python-django-rest-framework'
+ 'python-drf-yasg'
+ 'python-jinja'
+ 'python-markdown'
+ 'python-netaddr'
+ 'python-pillow'
+ 'python-psycopg2-binary'
+ 'python-pycryptodome'
+ 'python-pyaml'
+ 'python-redis'
+ 'python-svgwrite'
+)
-conflicts=("${_name}-git")
-replaces=("${_name}-git")
-install="${_name}.install"
-source=("${url}/archive/v${_realver}.tar.gz"
- "${_name}-system.service"
- "${_name}.tmpfile"
- "gunicorn_config.py")
-sha256sums=('284c830fcacf99febd1f650fb323cc9ce1c4c31044e4ee70eb791c53f3f10ddb'
- 'dc83de37ff9151de3d309fd43c6eff3b30886882012b81fd3ff2f3a5a706bea6'
- '1028bac96ddcd18c10646dff26027b4891fcab4381436e2b6ea3302887a5586f'
- '7a5ae05cad7ec14193a43ef080776b5525c80b6258762a6cb6a108db83861ff9')
-backup=('etc/netbox/gunicorn_config.py' 'etc/netbox/configuration.py')
+conflicts=("$pkgname-git")
+replaces=("$pkgname-git")
+source=("https://github.com/digitalocean/netbox/archive/v$pkgver.tar.gz"
+ "$pkgname.service"
+ "$pkgname-rq.service"
+ "$pkgname.sysusers"
+ "$pkgname.tmpfile"
+ "upgrade.sh")
+backup=('etc/netbox/configuration.py')
package() {
- install -d -m775 "$pkgdir/etc/${_name}"
- install -d "$pkgdir/opt/"${_name}
- cp -r ${_name}-${_realver}/${_name}/. "$pkgdir/opt/${_name}"
+ #install -dm775 "$pkgdir/etc/$pkgname"
+ install -d "$pkgdir/var/lib/"$pkgname
+ cp -r $pkgname-$pkgver/$pkgname/. "$pkgdir/var/lib/$pkgname"
- install -D -m644 ${_name}-system.service "$pkgdir/usr/lib/systemd/system/${_name}.service"
- install -D -m644 ${_name}.tmpfile "$pkgdir/usr/lib/tmpfiles.d/${_name}.conf"
+ install -Dm644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ install -Dm644 $pkgname-rq.service "$pkgdir/usr/lib/systemd/system/$pkgname-rq.service"
+ install -Dm644 $pkgname.tmpfile "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
+ install -Dm644 $pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
- install -d "$pkgdir/etc/${_name}"
- install -D -m644 gunicorn_config.py "$pkgdir/etc/netbox/gunicorn_config.py"
- install -D -m644 ${_name}-${_realver}/${_name}/${_name}/configuration.example.py "$pkgdir/etc/netbox/configuration.py"
- ln -s /etc/netbox/configuration.py "$pkgdir/opt/netbox/netbox/configuration.py"
+ install -d "$pkgdir/etc/$pkgname"
+ install -D -m644 $pkgname-$pkgver/$pkgname/$pkgname/configuration.example.py "$pkgdir/etc/netbox/configuration.py"
+ install -D -m755 upgrade.sh "$pkgdir/etc/netbox/upgrade.sh"
+ ln -s "/etc/netbox/configuration.py" "$pkgdir/var/lib/netbox/netbox/configuration.py"
}
-# vim: set ts=2 sw=2 ft=sh noet:
+md5sums=('ef794d344ab5a3b2d9c854867580d0cf'
+ '55dcba60ed4cb66b350d3d8f2946aef9'
+ 'ad07c0c741a231b8d8012221bee2c167'
+ 'b653f7da646e78ad5c69d3960bbafd9c'
+ '17532f81746d5378abbf9721c526247b'
+ '97c618de19719135aa84458789b025b1')
diff --git a/gunicorn_config.py b/gunicorn_config.py
deleted file mode 100644
index 4cb7111fac44..000000000000
--- a/gunicorn_config.py
+++ /dev/null
@@ -1,5 +0,0 @@
-command = '/usr/bin/gunicorn'
-pythonpath = '/opt/netbox/netbox'
-bind = '127.0.0.1:8001'
-workers = 3
-user = 'netbox'
diff --git a/netbox-rq.service b/netbox-rq.service
new file mode 100644
index 000000000000..ed4e27836de9
--- /dev/null
+++ b/netbox-rq.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=netbox request queue worker
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=simple
+User=netbox
+WorkingDirectory=/var/lib/netbox
+ExecStart=/usr/bin/python /var/lib/netbox/manage.py rqworker
+#PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/netbox-system.service b/netbox-system.service
deleted file mode 100644
index 9f395fc0cef9..000000000000
--- a/netbox-system.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Netbox Daemon
-After=network.target
-
-[Service]
-User=netbox
-Type=simple
-PIDFile=/run/netbox/netbox.pid
-ExecStart=/usr/bin/gunicorn -c /etc/netbox/gunicorn_config.py --pythonpath /opt/netbox -p /run/netbox/netbox.pid netbox.wsgi
-
-[Install]
-WantedBy=multi-user.target
diff --git a/netbox.install b/netbox.install
index 9745fd71152c..eb165b769da8 100644
--- a/netbox.install
+++ b/netbox.install
@@ -1,40 +1,10 @@
-_NAME=netbox
-
-_create_user() {
- getent passwd ${_NAME} > /dev/null || useradd -d /opt/${_NAME} -s /bin/false -r ${_NAME} > /dev/null
-}
-
post_install() {
- _create_user
-
- # Create a directory in /run if it does not exist
- if [ ! -d /run/${_NAME} ]; then
- mkdir /run/${_NAME}
- chown ${_NAME}. /run/${_NAME}
- chmod 775 /run/${_NAME}
- fi
-
- echo ""
- echo -e "Follow the instructions on http://netbox.readthedocs.io/en/latest/installation/netbox/"
- echo -e "to finish the configuration, and enable and start the systemd "
- echo -e "service: "
- echo " systemctl enable --now netbox.service"
- echo ""
- echo -e "Tweak the netbox and gunicorn configuration in "
- echo "/etc/netbox/configuration.py and /etc/netbox/gunicorn_config.py"
- echo ""
+ chown -R netbox:netbox /var/lib/netbox
+ echo "Configure netbox in /etc/netbox/configuration.py"
+ echo "After configuring run /etc/netbox/upgrade.sh as root"
}
post_upgrade() {
- _create_user
-
- echo ""
- echo "To end the migration, use the following commands:"
- echo " /opt/netbox/manage.py migrate"
- echo " /opt/netbox/manage.py collectstatic --noinput"
- echo ""
-}
-
-post_remove() {
- userdel -f ${_NAME}
+ chown -R netbox:netbox /var/lib/netbox
+ sh /etc/netbox/upgrade.sh
}
diff --git a/netbox.service b/netbox.service
new file mode 100644
index 000000000000..c040ac973563
--- /dev/null
+++ b/netbox.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Netbox Daemon
+After=network.target
+
+[Service]
+User=netbox
+Type=simple
+WorkingDirectory=/var/lib/netbox
+ExecStart=/usr/bin/gunicorn -w 2 -b unix:/run/netbox/netbox.sock --pythonpath /var/lib/netbox netbox.wsgi
+
+[Install]
+WantedBy=multi-user.target
diff --git a/netbox.sysusers b/netbox.sysusers
new file mode 100644
index 000000000000..3ea8a91a21d7
--- /dev/null
+++ b/netbox.sysusers
@@ -0,0 +1 @@
+u netbox - "netbox service user" /var/lib/netbox
diff --git a/netbox.tmpfile b/netbox.tmpfile
index f1ac6975f79f..9491bec24c57 100644
--- a/netbox.tmpfile
+++ b/netbox.tmpfile
@@ -1 +1,2 @@
-d /run/netbox 0775 netbox netbox
+d /var/lib/netbox 0700 netbox netbox -
+d /run/netbox 0775 netbox netbox -
diff --git a/upgrade.sh b/upgrade.sh
new file mode 100755
index 000000000000..613ada89683d
--- /dev/null
+++ b/upgrade.sh
@@ -0,0 +1,8 @@
+#/bin/sh
+
+python /var/lib/netbox/manage.py migrate
+python /var/lib/netbox/manage.py trace_paths --no-input
+python /var/lib/netbox/manage.py collectstatic --noinput
+python /var/lib/netbox/manage.py remove_stale_contenttypes --no-input
+python /var/lib/netbox/manage.py clearsessions
+python /var/lib/netbox/manage.py invalidate all