# Icingaweb2 | GPLv2+
%define revision 1
Name: icingaweb2
Version: 2.11.5
Release: %{revision}%{?dist}
Summary: Icinga Web
Group: Applications/System
License: GPLv2+
URL: https://github.com/Icinga/icingaweb2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
Source0: https://github.com/Icinga/icingaweb2/archive/v%{version}.tar.gz
BuildArch: noarch
Requires: httpd
Requires: php(httpd)
Requires: icingaweb2-common = %{version}-%{release}
Requires: php-icinga = %{version}-%{release}
Requires: icingacli = %{version}-%{release}
Requires: icinga-l10n >= 1.1.0
%description
Lightweight and extensible web interface to tackle your monitoring challenge.
%prep
%setup -q
install -d sources
# Create icingaweb2.conf
cat > sources/icingaweb2.conf << 'EOF'
Alias /icingaweb2 "/usr/share/icingaweb2/public"
Options SymLinksIfOwnerMatch
AllowOverride None
Require all granted
SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"
RewriteEngine on
RewriteBase /icingaweb2/
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
DirectoryIndex error_norewrite.html
ErrorDocument 404 /icingaweb2/error_norewrite.html
DirectoryIndex index.php
EOF
# Create icingacli
cat > sources/icingacli << 'EOF'
#!/bin/sh
/usr/bin/env php -d date.timezone=UTC /usr/share/icingaweb2/bin/icingacli "$@"
EOF
%build
%install
rm -rf %{buildroot}
install -d %{buildroot}/usr/share/icingaweb2
cp -pr application doc library modules public schema %{buildroot}/usr/share/icingaweb2
install -dm 2770 %{buildroot}/etc/icingaweb2 %{buildroot}/etc/icingaweb2/{enabledModules,modules}
install -Dpm 0644 etc/bash_completion.d/icingacli %{buildroot}/usr/share/bash-completion/completions/icingacli
install -d %{buildroot}/usr/share/php
mv %{buildroot}/usr/share/icingaweb2/library/Icinga %{buildroot}/usr/share/php
install -dm 2770 %{buildroot}/var/cache/icingaweb2 %{buildroot}/var/lib/icingaweb2
install -dm 2775 %{buildroot}/var/log/icingaweb2
install -Dpm 0644 sources/icingaweb2.conf %{buildroot}/etc/httpd/conf.d/icingaweb2.conf
install -Dpm 0755 sources/icingacli %{buildroot}/usr/bin/icingacli
%pre
getent group icingacmd >/dev/null || groupadd -r icingacmd
usermod -a -G icingacmd,icingaweb2 apache
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc CHANGELOG.md
%doc README.md
%docdir /usr/share/icingaweb2/doc
%license LICENSE
/usr/share/icingaweb2/application/controllers
/usr/share/icingaweb2/application/fonts
/usr/share/icingaweb2/application/forms
/usr/share/icingaweb2/application/layouts
/usr/share/icingaweb2/application/views
/usr/share/icingaweb2/application/VERSION
/usr/share/icingaweb2/doc
/usr/share/icingaweb2/modules
/usr/share/icingaweb2/public
/usr/share/icingaweb2/schema
%config(noreplace) /etc/httpd/conf.d/icingaweb2.conf
%package common
Summary: Common files for Icinga Web and the Icinga CLI
Requires(pre): shadow-utils
%description common
Manages common files for Icinga Web and the Icinga CLI.
%files common
%defattr(-,root,root,-)
%attr(-, -, icingaweb2) %dir /var/cache/icingaweb2
%attr(-, -, icingaweb2) %dir /var/log/icingaweb2
%attr(-, -, icingaweb2) %dir /var/lib/icingaweb2
%attr(-, -, icingaweb2) %config(noreplace) %dir /etc/icingaweb2
%attr(-, -, icingaweb2) %config(noreplace) %dir /etc/icingaweb2/modules
%attr(-, -, icingaweb2) %dir /etc/icingaweb2/enabledModules
%pre common
getent group icingaweb2 >/dev/null || groupadd -r icingaweb2
%package -n icingacli
Summary: Icinga CLI
Requires: php-cli
Requires: bash-completion
Requires: icingaweb2-common = %{version}-%{release}
Requires: php-icinga = %{version}-%{release}
Requires: icinga-l10n >= 1.1.0
%description -n icingacli
Icinga command line interface.
%files -n icingacli
%defattr(-,root,root,-)
%license LICENSE
/usr/share/icingaweb2/application/clicommands
/usr/share/bash-completion/completions/icingacli
/usr/bin/icingacli
%package -n php-icinga
Summary: Icinga Web PHP library
Group: Development/Libraries
Obsoletes: php-Icinga <= %{version}
Requires: icingaweb2-vendor-dompdf = %{version}-%{release}
Requires: icingaweb2-vendor-HTMLPurifier = %{version}-%{release}
Requires: icingaweb2-vendor-JShrink = %{version}-%{release}
Requires: icingaweb2-vendor-lessphp = %{version}-%{release}
Requires: icingaweb2-vendor-Parsedown = %{version}-%{release}
Requires: icingaweb2-vendor-zf1 = %{version}-%{release}
Requires: php-curl
Requires: php-dom
Requires: php-fileinfo
Requires: php-gd
Requires: php-gettext
Requires: php-intl
Requires: php-json
Requires: php-ldap
Requires: php-mbstring
Requires: php-openssl
Requires: php-pdo
Requires: php-pdo_mysql
Requires: php-pdo_pgsql
Requires: php-process
Requires: php-xml
Requires: icinga-php-library >= 0.9.0
Requires: icinga-php-thirdparty >= 0.11.0
%description -n php-icinga
Icinga Web PHP and vendor libraries.
%files -n php-icinga
%defattr(-,root,root,-)
%license LICENSE
/usr/share/php/Icinga
%package vendor-dompdf
Summary: Icinga Web vendor library dompdf
Group: Development/Libraries
License: LGPLv2.1
Requires: icingaweb2-common = %{version}-%{release}
%description vendor-dompdf
Icinga Web vendor library dompdf.
%files vendor-dompdf
%defattr(-,root,root,-)
/usr/share/icingaweb2/library/vendor/dompdf
%package vendor-HTMLPurifier
Epoch: 1
Summary: Icinga Web vendor library HTMLPurifier
Group: Development/Libraries
License: LGPLv2.1
Requires: icingaweb2-common = %{version}-%{release}
%description vendor-HTMLPurifier
Icinga Web vendor library HTMLPurifier.
%files vendor-HTMLPurifier
%defattr(-,root,root,-)
/usr/share/icingaweb2/library/vendor/HTMLPurifier
/usr/share/icingaweb2/library/vendor/HTMLPurifier.autoload.php
/usr/share/icingaweb2/library/vendor/HTMLPurifier.php
%package vendor-JShrink
Summary: Icinga Web vendor library JShrink
Group: Development/Libraries
License: BSD
Requires: icingaweb2-common = %{version}-%{release}
%description vendor-JShrink
Icinga Web vendor library JShrink.
%files vendor-JShrink
%defattr(-,root,root,-)
/usr/share/icingaweb2/library/vendor/JShrink
%package vendor-lessphp
Summary: Icinga Web vendor library lessphp
Group: Development/Libraries
License: MIT
Requires: icingaweb2-common = %{version}-%{release}
%description vendor-lessphp
Icinga Web vendor library lessphp.
%files vendor-lessphp
%defattr(-,root,root,-)
/usr/share/icingaweb2/library/vendor/lessphp
%package vendor-Parsedown
Summary: Icinga Web vendor library Parsedown
Group: Development/Libraries
License: MIT
Requires: icingaweb2-common = %{version}-%{release}
%description vendor-Parsedown
Icinga Web vendor library Parsedown.
%files vendor-Parsedown
%defattr(-,root,root,-)
/usr/share/icingaweb2/library/vendor/Parsedown
%package vendor-zf1
Summary: Icinga's fork of Zend Framework 1
Group: Development/Libraries
License: BSD
Requires: icingaweb2-common = %{version}-%{release}
%description vendor-zf1
Icinga's fork of Zend Framework 1.
%files vendor-zf1
%defattr(-,root,root,-)
/usr/share/icingaweb2/library/vendor/Zend
%changelog
* Thu May 08 2025 Giannoulis Michail - 2.11.5
- Version 2.11.5