Packaging Webserver Applications¶
In principle, Kolab Groupware applications depend on httpd from the Apache foundation.
To re-use Requires:
, commands to install initial application configuration for
the webserver, %post
and %pre
commands, we seek to use the following
snippets of macro definitions:
Define the httpd package name
%if 0%{?suse_version} %global httpd_name apache2 %else %global httpd_name httpd %endif
Define the dependency
Requires: %{httpd_name}
Define the configuration directory
Defining the httpd configuration directory for individual web applications helps address differences between distributions just once, to further avoid making
%install
and%files
conditionals unnecessary.%global _ap_sysconfdir %{_sysconfdir}/%{httpd_name}
Define your %{php_inidir}
Define the PHP .ini configuration dir for additional extensions such as APC, for applications that are being updated should reload the webserver, but only if APC is enabled.
%{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d}
The combination of the aforementioned can now be used to:
%post if [ -f "%{php_inidir}/apc.ini" ]; then if [ ! -z "`grep ^apc.enabled=1 %{php_inidir}/apc.ini`" ]; then %if 0%{?with_systemd} /sbin/systemctl condrestart httpd.service %else /sbin/service httpd condrestart %endif fi fi
Possible Future Enhancements¶
Package to depend on a capability provided by httpd / apache2, nginx, lighttpd and other alternatives, which may be webserver.
Consider providing the default configuration to install along with the packages, and where to put them on various platforms.
In Fedora, this may not be done in
%post
.