From 8f2e03df5e030620a42391200cc0253ac9a19180 Mon Sep 17 00:00:00 2001 From: Alarig Le Lay Date: Wed, 21 Aug 2024 12:22:36 +0200 Subject: [PATCH] www-apps/netbox: add 3.1.11 Signed-off-by: Alarig Le Lay --- www-apps/netbox/Manifest | 1 + .../netbox/files/netbox-3.1.11-no-pip.patch | 79 ++++++++++ www-apps/netbox/netbox-3.1.11.ebuild | 149 ++++++++++++++++++ 3 files changed, 229 insertions(+) create mode 100644 www-apps/netbox/files/netbox-3.1.11-no-pip.patch create mode 100644 www-apps/netbox/netbox-3.1.11.ebuild diff --git a/www-apps/netbox/Manifest b/www-apps/netbox/Manifest index 5a0300e..8f48452 100644 --- a/www-apps/netbox/Manifest +++ b/www-apps/netbox/Manifest @@ -1 +1,2 @@ DIST netbox-3.0.12.tar.gz 4498000 BLAKE2B 3ae2865417eac202fba2066ad28cacb000efc845df14e534e87841f398ca4a063c34cfb82eee383d56043576ba5a44e7e419c57d5407247f03ffe8a6eb41ea14 SHA512 92ffbae37f718ef5609954d551e3432a33f9a3712047666ae75ad6fd71eed2028de2c6a24bb94fdfbd233caa9f644f89e0e9b59ddd416798431454a4fe0db9e7 +DIST netbox-3.1.11.tar.gz 4408997 BLAKE2B 2cb3b13d1ba0345c90bd7657a6cd16ebae1386a5749e9b60e7f91604f992af6c53c6755f02c42079033312fea1a8d3b91eb023be05ec722bfb94408e59a60568 SHA512 c921fe373b4cf127cadab7b36d5cee1a0c78dd5d648dbb4c09e5de0351a560411abc57f7958eb9b3dec720b48022ecce1de9b0fa70174caaf442b02bda785ede diff --git a/www-apps/netbox/files/netbox-3.1.11-no-pip.patch b/www-apps/netbox/files/netbox-3.1.11-no-pip.patch new file mode 100644 index 0000000..952b9e0 --- /dev/null +++ b/www-apps/netbox/files/netbox-3.1.11-no-pip.patch @@ -0,0 +1,79 @@ +--- a/upgrade.sh 2024-08-21 11:23:13.710528380 +0200 ++++ b/upgrade.sh 2024-08-21 11:24:03.764192726 +0200 +@@ -7,76 +7,6 @@ + # Python 3.7 or later. + + cd "$(dirname "$0")" +-VIRTUALENV="$(pwd -P)/venv" +-PYTHON="${PYTHON:-python3}" +- +-# Validate the minimum required Python version +-COMMAND="${PYTHON} -c 'import sys; exit(1 if sys.version_info < (3, 7) else 0)'" +-PYTHON_VERSION=$(eval "${PYTHON} -V") +-eval $COMMAND || { +- echo "--------------------------------------------------------------------" +- echo "ERROR: Unsupported Python version: ${PYTHON_VERSION}. NetBox requires" +- echo "Python 3.7 or later. To specify an alternate Python executable, set" +- echo "the PYTHON environment variable. For example:" +- echo "" +- echo " sudo PYTHON=/usr/bin/python3.7 ./upgrade.sh" +- echo "" +- echo "To show your current Python version: ${PYTHON} -V" +- echo "--------------------------------------------------------------------" +- exit 1 +-} +-echo "Using ${PYTHON_VERSION}" +- +-# Remove the existing virtual environment (if any) +-if [ -d "$VIRTUALENV" ]; then +- COMMAND="rm -rf ${VIRTUALENV}" +- echo "Removing old virtual environment..." +- eval $COMMAND +-else +- WARN_MISSING_VENV=1 +-fi +- +-# Create a new virtual environment +-COMMAND="${PYTHON} -m venv ${VIRTUALENV}" +-echo "Creating a new virtual environment at ${VIRTUALENV}..." +-eval $COMMAND || { +- echo "--------------------------------------------------------------------" +- echo "ERROR: Failed to create the virtual environment. Check that you have" +- echo "the required system packages installed and the following path is" +- echo "writable: ${VIRTUALENV}" +- echo "--------------------------------------------------------------------" +- exit 1 +-} +- +-# Activate the virtual environment +-source "${VIRTUALENV}/bin/activate" +- +-# Upgrade pip +-COMMAND="pip install --upgrade pip" +-echo "Updating pip ($COMMAND)..." +-eval $COMMAND || exit 1 +-pip -V +- +-# Install necessary system packages +-COMMAND="pip install wheel" +-echo "Installing Python system packages ($COMMAND)..." +-eval $COMMAND || exit 1 +- +-# Install required Python packages +-COMMAND="pip install -r requirements.txt" +-echo "Installing core dependencies ($COMMAND)..." +-eval $COMMAND || exit 1 +- +-# Install optional packages (if any) +-if [ -s "local_requirements.txt" ]; then +- COMMAND="pip install -r local_requirements.txt" +- echo "Installing local dependencies ($COMMAND)..." +- eval $COMMAND || exit 1 +-elif [ -f "local_requirements.txt" ]; then +- echo "Skipping local dependencies (local_requirements.txt is empty)" +-else +- echo "Skipping local dependencies (local_requirements.txt not found)" +-fi + + # Apply any database migrations + COMMAND="python3 netbox/manage.py migrate" diff --git a/www-apps/netbox/netbox-3.1.11.ebuild b/www-apps/netbox/netbox-3.1.11.ebuild new file mode 100644 index 0000000..5d87f04 --- /dev/null +++ b/www-apps/netbox/netbox-3.1.11.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{11..12} ) +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.2.12[${PYTHON_USEDEP}] + =dev-python/django-cors-headers-3.11.0[${PYTHON_USEDEP}] + >=dev-python/django-debug-toolbar-3.2.4[${PYTHON_USEDEP}] + >=dev-python/django-filter-21.1[${PYTHON_USEDEP}] + >=dev-python/django-graphiql-debug-toolbar-0.2.0[${PYTHON_USEDEP}] + >=dev-python/django-mptt-0.13.4[${PYTHON_USEDEP}] + >=dev-python/django-pglocks-1.0.4[${PYTHON_USEDEP}] + >=dev-python/django-prometheus-2.2.0[${PYTHON_USEDEP}] + >=dev-python/django-redis-5.2.0[${PYTHON_USEDEP}] + >=dev-python/django-rq-2.5.1[${PYTHON_USEDEP}] + >=dev-python/django-tables2-2.4.1[${PYTHON_USEDEP}] + >=dev-python/django-taggit-2.1.0[${PYTHON_USEDEP}] + >=dev-python/django-timezone-field-5.0[${PYTHON_USEDEP}] + >=dev-python/djangorestframework-3.12.4[${PYTHON_USEDEP}] + >=dev-python/drf-yasg-1.20.0[${PYTHON_USEDEP},validation] + >=dev-python/graphene-django-2.15.0[${PYTHON_USEDEP}] + >=www-servers/gunicorn-20.1.0[${PYTHON_USEDEP}] + >=dev-python/jinja-3.0.3[${PYTHON_USEDEP}] + >=dev-python/markdown-3.3.6[${PYTHON_USEDEP}] + >=dev-python/markdown-include-0.6.0[${PYTHON_USEDEP}] + >=dev-python/mkdocs-material-8.2.8[${PYTHON_USEDEP}] + >=dev-python/netaddr-0.8.0[${PYTHON_USEDEP}] + >=dev-python/pillow-9.0.1[${PYTHON_USEDEP}] + dev-python/psycopg:2[${PYTHON_USEDEP}] + >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}] + >=dev-python/svgwrite-1.4.2[${PYTHON_USEDEP}] + >=dev-python/tablib-3.2.0[${PYTHON_USEDEP}] + >=dev-python/tzdata-2021.5[${PYTHON_USEDEP}] + >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}] + ldap? ( >=dev-python/django-auth-ldap-4.1.0[${PYTHON_USEDEP}] ) + ')" +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 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 + for LAST_PREVIOUS_VERSION in $REPLACING_VERSIONS; do + if [[ "$LAST_PREVIOUS_VERSION" = "2.5.10" ]]; then + ewarn "The home directory of the netbox user is now /var/lib/netbox" + ewarn "Please adjust your system." + fi + done + + if [ -z "${LAST_PREVIOUS_VERSION}" ]; then + exit + fi + + LAST_BASE_DIRECTORY="/opt/netbox-${LAST_PREVIOUS_VERSION}" + NBCP="su -l ${PN} -s /bin/sh -c cp" + if [ -f "${LAST_BASE_DIRECTORY}/local_requirements.txt}" ]; then + ${NBCP} "${LAST_BASE_DIRECTORY}/local_requirements.txt}" /opt/netbox + fi + if [ -f "${LAST_BASE_DIRECTORY}/netbox/netbox/ldap_config.py" ]; then + ${NBCP} "${LAST_BASE_DIRECTORY}/netbox/netbox/ldap_config.py" /opt/netbox/netbox/netbox/ + fi + if [ -d "${LAST_BASE_DIRECTORY}/netbox/media" ]; then + ${NBCP} -pr "${LAST_BASE_DIRECTORY}/netbox/media" /opt/netbox/netbox/ + fi + if [ -d "${LAST_BASE_DIRECTORY}/netbox/scripts" ]; then + ${NBCP} -pr "${LAST_BASE_DIRECTORY}/netbox/scripts" /opt/netbox/netbox/ + fi + if [ -d "${LAST_BASE_DIRECTORY}/netbox/reports" ]; then + ${NBCP} -pr "${LAST_BASE_DIRECTORY}/netbox/reports" /opt/netbox/netbox/ + fi + su -p -s /bin/sh -c "/opt/${P}/upgrade.sh" "${PN}" +}