%{?scl:%global python3_pkgversion %{nil}} %{?scl:%global scl_prefix %{scl_prefix_netbox25}} %{?scl:%{?!%_root_sysconfdir:%global _root_sysconfdir %{_sysconfdir}}} # Force Python 3. %{!?scl:%global __python %{__python3}} %{?scl:%scl_package_override} %global netbox_user netbox %global netbox_group netbox Name: netbox Version: 2.5.9 Release: 1%{?dist} Summary: IPAM and DCIM tool Group: Applications/System License: ASL 2.0 URL: https://github.com/digitalocean/%{name} Source0: https://github.com/digitalocean/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: netbox-systemd.service Source2: netbox-systemd.socket Source3: netbox-tmpfiles.d.conf Source4: netbox-ldap.conf Patch0: netbox-shebang.patch BuildArch: noarch BuildRequires: systemd %{?systemd_requires} Requires: %{?scl_prefix}python%{python3_pkgversion}-gunicorn Requires: %{?scl_prefix}python%{python3_pkgversion}-django = 2.1.4 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-cors-headers = 2.4.0 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-debug-toolbar = 1.11 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-filter = 2.0.0 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-mptt = 0.9.1 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-tables2 = 2.0.3 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-taggit = 0.23.0 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-taggit-serializer = 0.1.7 Requires: %{?scl_prefix}python%{python3_pkgversion}-django-timezone-field = 3.0 Requires: %{?scl_prefix}python%{python3_pkgversion}-djangorestframework = 3.9.0 Requires: %{?scl_prefix}python%{python3_pkgversion}-drf-yasg = 1.11.1 Requires: %{?scl_prefix}python%{python3_pkgversion}-graphviz = 0.10.1 Requires: %{?scl_prefix}python%{python3_pkgversion}-markdown = 2.6.11 Requires: %{?scl_prefix}python%{python3_pkgversion}-netaddr = 0.7.19 Requires: %{?scl_prefix}python%{python3_pkgversion}-pillow = 5.3.0 Requires: %{?scl_prefix}python%{python3_pkgversion}-psycopg2-binary = 2.7.6.1 Requires: %{?scl_prefix}python%{python3_pkgversion}-py-gfm = 0.1.4 Requires: %{?scl_prefix}python%{python3_pkgversion}-pycryptodome = 3.7.2 Requires(pre): shadow-utils %description NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. %package ldap Summary: IPAM and DCIM tool - LDAP integration Requires: %{name} = %{version} Requires: %{?scl_prefix}python%{python3_pkgversion}-django-auth-ldap %description ldap LDAP integration for Netbox. %package httpd Summary: IPAM and DCIM tool - Apache HTTPd integration BuildRequires: httpd Requires: %{name} = %{version} Requires: httpd %description httpd Apache HTTPd integration for Netbox. %prep %setup -q %patch0 -p1 %build %install install -d -m 0755 %{buildroot}%{_datadir}/%{name} install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} install -d -m 0755 %{buildroot}%{_tmpfilesdir} install -d -m 0700 %{buildroot}%{_sharedstatedir}/%{name} # Move the configuration files in place. mv -v \ %{name}/%{name}/configuration.example.py \ %{buildroot}%{_sysconfdir}/%{name}/configuration ln -s \ %{_sysconfdir}/%{name}/configuration \ %{name}/%{name}/configuration.py install -m 0640 %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}/ldap ln -s \ %{_sysconfdir}/%{name}/ldap \ %{name}/%{name}/ldap_config.py rm -v %{name}/media/image-attachments/.gitignore mv -v %{name}/media %{buildroot}%{_sharedstatedir}/%{name} ln -s %{_sharedstatedir}/%{name}/media %{name}/media mv -v %{name}/* %{buildroot}%{_datadir}/%{name} install -d -m 0755 %{buildroot}%{_sbindir} install -d -m 0755 %{buildroot}%{_unitdir} install -d -m 0755 %{buildroot}%{_rundir}/%{name} install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}d.service install -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}d.socket install -m 0644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf cat > %{buildroot}%{_sbindir}/%{name}d < %{buildroot}%{_sbindir}/%{name}-manage < %{buildroot}%{_sbindir}/%{name}-generate-secret-key < %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf < Options FollowSymLinks AllowOverride all Require all granted Alias /static /usr/share/netbox/static ProxyPassMatch ^/static ! ProxyPass / unix:%{_rundir}/%{name}/%{name}.sock|http://localhost/ EOF # Patch shebangs. for FILE in \ %{buildroot}%{_datadir}/%{name}/manage.py \ %{buildroot}%{_datadir}/%{name}/generate_secret_key.py do sed -i -e '1 s"^#!/usr/bin/python3"#!%{__python3}"' $FILE done %pre getent group %{netbox_group} >/dev/null || groupadd -r %{netbox_group} getent passwd %{netbox_user} >/dev/null || \ useradd -r -g %{netbox_group} -d %{_datadir}/%{name} -s /sbin/nologin \ -c "Netbox service account" %{netbox_user} %post %tmpfiles_create %{_tmpfilesdir}/%{name}.conf %systemd_post %{name}d.service %{name}d.socket if [ $1 -eq 2 ] ; then # Upgrade. %{_sbindir}/%{name}-manage migrate --no-input --no-color --verbosity 0 %{_sbindir}/%{name}-manage collectstatic --no-input --no-color --verbosity 0 fi %preun %systemd_preun %{name}d.service %{name}d.socket %postun %systemd_postun_with_restart %{name}d.service %{name}d.socket %files %license LICENSE.txt %doc docs %config(noreplace) %attr(0640, root, %{netbox_group}) %{_sysconfdir}/%{name}/configuration %attr(0755, root, root) %{_sbindir}/%{name}d %attr(0755, root, root) %{_sbindir}/%{name}-manage %attr(0755, root, root) %{_sbindir}/%{name}-generate-secret-key %attr(0750, %{netbox_user}, %{netbox_group}) %{_sharedstatedir}/%{name} %{_datadir}/%{name} %{_unitdir}/%{name}d.service %{_unitdir}/%{name}d.socket %{_tmpfilesdir}/%{name}.conf %ghost %attr(0755, %{netbox_user}, %{netbox_group}) %{_rundir}/%{name} %files ldap %config(noreplace) %attr(0640, root, %{netbox_group}) %{_sysconfdir}/%{name}/ldap %files httpd %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf %changelog * Thu Apr 04 2019 Daniel Uvehag - 2.5.9-1 - Update to 2.5.9 * Wed Mar 20 2019 Daniel Uvehag - 2.5.8-1 - Update to 2.5.8 * Thu Feb 28 2019 Daniel Uvehag - 2.5.7-1 - Update to 2.5.7 * Sat Jan 12 2019 Daniel Uvehag - 2.5.3-1 - Update to 2.5.3 * Thu Dec 27 2018 Daniel Uvehag - 2.5.2-1 - Update to 2.5.2 * Thu Dec 20 2018 Daniel Uvehag - 2.5.1-1 - Update to 2.5.1 * Mon Dec 17 2018 Daniel Uvehag - 2.5.0-1 - Initial package.