# Icingaweb2 | GPLv2+
%define revision 1
Name: icingaweb2
Version: 2.12.2
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}
Obsoletes: icingaweb2-vendor-dompdf <= 2.12.0
Obsoletes: icingaweb2-vendor-HTMLPurifier <= 2.12.0
Obsoletes: icingaweb2-vendor-JShrink <= 2.12.0
Obsoletes: icingaweb2-vendor-lessphp <= 2.12.0
Obsoletes: icingaweb2-vendor-Parsedown <= 2.12.0
Obsoletes: icingaweb2-vendor-zf1 <= 2.12.0
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.14.2
Requires: icinga-php-thirdparty >= 0.12.0
%description -n php-icinga
Icinga Web PHP and vendor libraries.
%files -n php-icinga
%defattr(-,root,root,-)
%license LICENSE
/usr/share/php/Icinga
%changelog
* Thu May 08 2025 Giannoulis Michail - 2.12.2
- Version 2.12.2