File hiawatha.spec of Package hiawatha
%define realname hiawatha
%define realver 10.1
%define srcext tar.gz
%define webroot %{?suse_version:/srv/www/htdocs}%{!?suse_version:/var/www/html}
%define webuser %{?suse_version:wwwrun}%{!?suse_version:apache}
%define webgroup %{?suse_version:www}%{!?suse_version:apache}
# Common info
Name: %{realname}
Version: %{realver}
Release: wiz%{?extraver:0.}1
License: GPL-2.0
Group: Productivity/Networking/Web/Servers
URL: http://hiawatha-webserver.org/
Summary: A secure and advanced webserver
# Install-time parameters
%if 0%{?suse_version}
PreReq: permissions
%endif
Requires: logrotate
Provides: httpd webserver %{?suse_version:suse_help_viewer http_daemon}
# Build-time parameters
BuildRequires: cmake
BuildRequires: libxml2-devel libxslt-devel zlib-devel mbedtls-devel
BuildRoot: %{_tmppath}/%{name}-root
Source: http://www.hiawatha-webserver.org/files/%{realname}-%{realver}%{?extraver}.%{srcext}
%description
Hiawatha is a webserver for Unix and has been build with security in mind.
This resulted in a highly secure webserver, in both code and features.
This webserver runs on Linux, BSD, MacOS X and Windows. Although it can run any
kind of CGI / FastCGI application, it has been optimized for usage with PHP.
Most well known PHP frameworks and CMS applications have been tested with
Hiawatha and ran without a problem. Hiawatha supports many web and HTTP features
such as CGI/FastCGI, HTTP authentication, virtual host support, request
pipelining, keep alive connections, URL rewriting and many more.
# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n %{realname}-%{realver}%{?extraver}
%build
cmake \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
\
-DENABLE_MONITOR=ON \
-DUSE_SYSTEM_MBEDTLS=ON \
\
-DCONFIG_DIR=%{_sysconfdir}/hiawatha \
-DLOG_DIR=%{_localstatedir}/log/hiawatha \
-DPID_DIR=%{_localstatedir}/run \
-DWEBROOT_DIR=%{webroot} \
-DWORK_DIR=%{_localstatedir}/lib/hiawatha \
\
-DCMAKE_C_FLAGS="%{optflags} -fPIE" \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--strip-all -pie" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--strip-all -pie"
%{__make} %{?_smp_mflags}
%install
%{__make} install DESTDIR=%{buildroot}
sed -ri 's/www-data www-data/%{webuser} %{webgroup}/' logrotate.d/hiawatha
%{__install} -D -m644 logrotate.d/hiawatha %{buildroot}%{_sysconfdir}/logrotate.d/hiawatha
%{__install} -d -m755 %{buildroot}/var/log/hiawatha
%{__install} -d -m755 %{buildroot}%{_initrddir}
%{__install} -m755 extra/debian/init.d/hiawatha %{buildroot}%{_initrddir}/hiawatha
%if 0%{?suse_version}
%{__ln_s} %{_initrddir}/hiawatha %{buildroot}%{_sbindir}/rchiawatha
%endif
%if 0%{?suse_version} >= 1130
%{__install} -d -m 755 %{buildroot}%{_sysconfdir}/permissions.d
echo "/usr/sbin/cgi-wrapper root:root 4755" > %{buildroot}%{_sysconfdir}/permissions.d/hiawatha
%endif
%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
%files
%defattr(-,root,root)
%doc ChangeLog LICENSE README.md
%dir %{_sysconfdir}/hiawatha
%dir %attr(0755,%{webuser},%{webgroup}) %{_localstatedir}/lib/hiawatha
%dir %attr(0755,%{webuser},%{webgroup}) %{_localstatedir}/log/hiawatha
%config(noreplace) %{_sysconfdir}/hiawatha/*
%config %{_sysconfdir}/logrotate.d/hiawatha
%{_initrddir}/hiawatha
%if 0%{?suse_version}
%{_sbindir}/rchiawatha
%endif
%{_bindir}/ssi-cgi
%{_sbindir}/hiawatha
%{_sbindir}/wigwam
%verify(not mode) %attr(4755, root, root) %{_sbindir}/cgi-wrapper
%if 0%{?suse_version} >= 1130
%config %{_sysconfdir}/permissions.d/hiawatha
%endif
%exclude %{?suse_version:/srv/www/htdocs}%{!?suse_version:/var/www/html}/index.html
%doc %{_mandir}/man1/*
%if 0%{?suse_version}
%post
%{fillup_and_insserv %{name}}
%if 0%{?suse_version} >= 1140
%set_permissions /usr/sbin/cgi-wrapper
%else
%run_permissions
%endif
%preun
%{stop_on_removal %{name}}
%postun
%{restart_on_update %{name}}
%{insserv_cleanup}
%verifyscript
%verify_permissions -e /usr/sbin/cgi-wrapper
%endif
%changelog