www-apps/netbox: add 4.1.11
Signed-off-by: Alarig Le Lay <alarig@swordarmor.fr>
This commit is contained in:
parent
468b47506f
commit
a1a2a24dd2
3 changed files with 257 additions and 0 deletions
|
@ -1,2 +1,3 @@
|
|||
DIST netbox-3.6.8.tar.gz 7286549 BLAKE2B afd222cc79a665e5a3ab0d4d59c87b6a272b7e2109191105cb4816c9733b5f8222c9f130662d54e4466d05d1aa786890d420b552411808c9edb2b44b40be322d SHA512 1c33856231a85b866d3b7d8b2bb8e88e235210b251004fe7ce4d339f9c3c403f22f727e4bf61fb8a841a8809c97f20780982ac6120cf11704b908669e1d32852
|
||||
DIST netbox-4.0.11.tar.gz 19402442 BLAKE2B 404ac51c4758f5afa35296b5b41b3384768c9caf3b23023a9aa4f1aa5caf8d5224ac4909284fd9ea6db54d49c5a2fc571db791447349df526fed7ead6b835072 SHA512 172f8ad1785f28b7ebe5a5e84d06da6420b2ff0296eb0b5ad80c3a0bb263973e84174eaf8cd0b782413f806183915b6b0bb4ba217dbc042e5edc040689874470
|
||||
DIST netbox-4.1.11.tar.gz 18113538 BLAKE2B 9794c065d63b78ce4df415d69eb810fa0bf99ed6d5a3793934afd86bdb0d9bd2a6b5defa5d030f73775d7ca3ee3d70e48de32d39ab69b9f647ffd3e46621f141 SHA512 5a376ef05ac4721fd061f2658a3d192fe80e1cdbee363eb47f1f673f5cc6cb3d8302270bd86e994ad1dc46850572792251205255be44eba6facce4b768aaeeeb
|
||||
|
|
94
www-apps/netbox/files/netbox-4.1.11-no-pip.patch
Normal file
94
www-apps/netbox/files/netbox-4.1.11-no-pip.patch
Normal file
|
@ -0,0 +1,94 @@
|
|||
--- netbox-4.1.11/upgrade.sh 2025-01-07 22:30:02.258576535 +0100
|
||||
+++ netbox-4.1.11/upgrade.sh 2025-01-07 22:32:03.712890624 +0100
|
||||
@@ -6,82 +6,6 @@
|
||||
# variable (if set), or fall back to "python3". Note that NetBox v4.0+ requires
|
||||
# Python 3.10 or later.
|
||||
|
||||
-cd "$(dirname "$0")"
|
||||
-
|
||||
-NETBOX_VERSION="$(grep ^version netbox/release.yaml | cut -d \" -f2)"
|
||||
-echo "You are installing (or upgrading to) NetBox version ${NETBOX_VERSION}"
|
||||
-
|
||||
-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, 10) else 0)'"
|
||||
-PYTHON_VERSION=$(eval "${PYTHON} -V")
|
||||
-eval $COMMAND || {
|
||||
- echo "--------------------------------------------------------------------"
|
||||
- echo "ERROR: Unsupported Python version: ${PYTHON_VERSION}. NetBox requires"
|
||||
- echo "Python 3.10 or later. To specify an alternate Python executable, set"
|
||||
- echo "the PYTHON environment variable. For example:"
|
||||
- echo ""
|
||||
- echo " sudo PYTHON=/usr/bin/python3.10 ./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"
|
||||
echo "Applying database migrations ($COMMAND)..."
|
||||
@@ -95,7 +19,7 @@
|
||||
# Build the local documentation
|
||||
COMMAND="mkdocs build"
|
||||
echo "Building documentation ($COMMAND)..."
|
||||
-eval $COMMAND || exit 1
|
||||
+eval $COMMAND || echo "Making doc failed but who cares"
|
||||
|
||||
# Collect static files
|
||||
COMMAND="python3 netbox/manage.py collectstatic --no-input"
|
162
www-apps/netbox/netbox-4.1.11.ebuild
Normal file
162
www-apps/netbox/netbox-4.1.11.ebuild
Normal file
|
@ -0,0 +1,162 @@
|
|||
# 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-5.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-5.0.10[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-cors-headers-4.6.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-debug-toolbar-4.4.6[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-filter-24.3[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-htmx-1.21.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-graphiql-debug-toolbar-0.2.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-mptt-0.16.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-pglocks-1.0.4[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-prometheus-2.3.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-redis-5.4.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-rich-1.13.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-rq-3.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-taggit-6.1.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-tables2-2.7.5[${PYTHON_USEDEP}]
|
||||
>=dev-python/django-timezone-field-7.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/djangorestframework-3.15.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/drf-spectacular-0.28.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/drf-spectacular-sidecar-2024.12.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/feedparser-6.0.11[${PYTHON_USEDEP}]
|
||||
>=www-servers/gunicorn-23.0.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/jinja2-3.1.5[${PYTHON_USEDEP}]
|
||||
>=dev-python/markdown-3.7[${PYTHON_USEDEP}]
|
||||
>=dev-python/mkdocs-material-9.5.49[${PYTHON_USEDEP}]
|
||||
dev-python/mkdocstrings-python[${PYTHON_USEDEP}]
|
||||
>=dev-python/netaddr-1.3.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/nh3-0.2.20[${PYTHON_USEDEP}]
|
||||
>=dev-python/pillow-11.1.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/psycopg-3.2.3[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyyaml-6.0.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.32.3[${PYTHON_USEDEP}]
|
||||
>=dev-python/social-auth-app-django-5.4.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/social-auth-core-4.5.4[${PYTHON_USEDEP}]
|
||||
>=dev-python/strawberry-graphql-0.256.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/strawberry-graphql-django-0.53.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/svgwrite-1.4.3[${PYTHON_USEDEP}]
|
||||
>=dev-python/tablib-3.7.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/tzdata-2024.2[${PYTHON_USEDEP}]
|
||||
ldap? ( dev-python/django-auth-ldap[${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_prepare() {
|
||||
default
|
||||
python_fix_shebang netbox/manage.py
|
||||
}
|
||||
|
||||
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}"
|
||||
}
|
Loading…
Reference in a new issue