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
openSUSE Build Service is sponsored by