+#
+# Conditional build:
+%bcond_without ipv6 # IPv4-only version (doesn't require IPv6 in kernel)
+#
Summary: Boa high speed HTTP server
Summary(pl): Boa - szybki serwer HTTP
Name: boa
-Version: 0.93.16.1
-Release: 1
-Copyright: GPL
+Version: 0.94.14
+%define _rc rc20
+Release: 0.%{_rc}.3
+Epoch: 1
+License: GPL v2
Group: Networking/Daemons
-Source0: http://www.cz.boa.org/updates/%{name}-%{version}.tar.gz
-Source1: boa.init
-Patch0: boa-PLD.patch
-Patch1: boa-0.93.16.1-ipv6-fix.patch
-Provides: httpd
-Provides: webserver
-Prereq: sh-utils
-Prereq: %{_sbindir}/groupadd
-Prereq: %{_sbindir}/groupdel
-Prereq: %{_sbindir}/useradd
-Prereq: %{_sbindir}/userdel
-BuildRoot: /tmp/%{name}-%{version}-root
-
-%define _sysconfdir /etc/httpd
+Source0: http://www.boa.org/%{name}-%{version}%{_rc}.tar.gz
+# Source0-md5: 046d1764cd8f325109da9c80c993b2ef
+Source1: %{name}.init
+Patch0: %{name}-PLD.patch
+URL: http://www.boa.org/
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: flex
+BuildRequires: rpmbuild(macros) >= 1.159
+BuildRequires: texinfo
+PreReq: rc-scripts
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(post,preun): /sbin/chkconfig
+Provides: group(http)
+Provides: user(http)
+Provides: webserver
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+# FIXME: Other location? Should belong to httpd-common (or alike) package?
+# NOTE: Not needed, as we shouldn't put anything there.
+#%define _cgi_bin /usr/lib/cgi-bin
%description
-A high speed, lightweight web server (HTTP protocol).
-Based on direct use of the select(2) system call, it internally multiplexes
-all connections without forking, for maximum speed and minimum system
+A high speed, lightweight web server (HTTP protocol). Based on direct
+use of the select(2) system call, it internally multiplexes all
+connections without forking, for maximum speed and minimum system
resource use.
%description -l pl
-Niezwykle szybki i wysoko wydajny serwer WWW (protokó³ HTTP).
-Bazuje na bezpo¶rednim u¿yciu funkcji systemowej select(2)
-dziêki czemu mo¿e obs³ugiwaæ wiele po³±czeñ równocze¶nie bez
-fork()owania co w efekcje daje znacznie zwiêkszon± szybko¶æ
-dzia³ania oraz mniejsze zu¿ycie zasobów systemowych.
+Niezwykle szybki i wysoko wydajny serwer WWW (protokó³ HTTP). Bazuje
+na bezpo¶rednim u¿yciu funkcji systemowej select(2) dziêki czemu mo¿e
+obs³ugiwaæ wiele po³±czeñ równocze¶nie bez fork()owania co w efekcie
+znacznie zwiêksza szybko¶æ dzia³ania oraz zmniejsza zu¿ycie zasobów
+systemowych.
%prep
-%setup -q
-%patch0 -p1
-%patch1 -p1
+%setup -q -n %{name}-%{version}%{_rc}
+cp examples/boa.conf .
+%patch0 -p0
%build
-cd src
+cp -f /usr/share/automake/config.sub .
+CFLAGS="%{rpmcflags} %{?with_ipv6:-DINET6} -DSERVER_ROOT='\"%{_sysconfdir}\"'"
+%{__autoconf}
%configure
-make
-(cd ../util; make )
-(cd ../docs; make boa.html )
+%{__make}
+%{__make} -C docs boa.html
%install
-install -d $RPM_BUILD_ROOT/etc/rc.d/init.d/
-install -d $RPM_BUILD_ROOT/var/log/httpd
-install -d $RPM_BUILD_ROOT/home/httpd/{cgi-bin,html}
-install -d $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}/conf,%{_mandir}/man1}
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/etc/rc.d/init.d/ \
+ $RPM_BUILD_ROOT/var/log/{,archiv/}boa \
+ $RPM_BUILD_ROOT%{_sbindir} \
+ $RPM_BUILD_ROOT%{_mandir}/man8 \
+ $RPM_BUILD_ROOT/etc/logrotate.d \
+ $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+# $RPM_BUILD_ROOT%{_cgi_bin}
+
+install src/{boa,boa_indexer} $RPM_BUILD_ROOT%{_sbindir}/
-install -s src/boa $RPM_BUILD_ROOT%{_sbindir}
-install -s util/boa_indexer $RPM_BUILD_ROOT%{_sbindir}
+install src/*.pl examples/*.pl examples/*.cgi \
+ $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
-install -s util/cpsel $RPM_BUILD_ROOT/home/httpd/cgi-bin
-install util/*.pl $RPM_BUILD_ROOT/home/httpd/cgi-bin
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install boa.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf
+install contrib/rpm/boa.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
-install examples/*.conf $RPM_BUILD_ROOT/etc/httpd/%{name}.conf
-install docs/boa.1 $RPM_BUILD_ROOT%{_mandir}/man1/
+install docs/boa.8 $RPM_BUILD_ROOT%{_mandir}/man8/
-touch $RPM_BUILD_ROOT/var/log/httpd/{access_log,agent_log,error_log,referer_log}
-gzip -9nf README $RPM_BUILD_ROOT%{_mandir}/man*/* || :
+touch $RPM_BUILD_ROOT/var/log/boa/{access_log,agent_log,error_log,referer_log}
%clean
rm -rf $RPM_BUILD_ROOT
%pre
-%{_sbindir}/groupadd -g 51 -f http > /dev/null 2>&1
-%{_sbindir}/useradd -u 51 -f http -g http > /dev/null 2>&1
+if [ -n "`getgid http`" ]; then
+ if [ "`getgid http`" != "51" ]; then
+ echo "Error: group http doesn't have gid=51. Correct this before installing boa." 1>&2
+ exit 1
+ fi
+else
+ echo "Creating group http GID=51"
+ /usr/sbin/groupadd -g 51 -r -f http
+fi
+if [ -n "`id -u http 2>/dev/null`" ]; then
+ if [ "`id -u http`" != "51" ]; then
+ echo "Error: user http doesn't have uid=51. Correct this before installing boa." 1>&2
+ exit 1
+ fi
+else
+ echo "Creating user http UID=51"
+ /usr/sbin/useradd -u 51 -r -d /usr/share/empty -s /bin/false -c "HTTP User" -g http http 1>&2
+fi
%postun
if [ "$1" = "0" ]; then
- %{_sbindir}/groupdel http > /dev/null 2>&1
- %{_sbindir}/userdel http > /dev/null 2>&1
+ %userremove http
+ %groupremove http
fi
%post
-/sbin/chkconfig -add %{name}
+/sbin/chkconfig --add boa
+if [ -f /var/lock/subsys/boa ]; then
+ /etc/rc.d/init.d/boa restart 1>&2
+else
+ echo "Run \"/etc/rc.d/init.d/boa start\" to start boa http daemon."
+fi
%preun
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/boa ]; then
- /etc/rc.d/init.d/boa stop 1>&2
- fi
- /sbin/chkconfig --del boa
+ if [ -f /var/lock/subsys/boa ]; then
+ /etc/rc.d/init.d/boa stop 1>&2
+ fi
+ /sbin/chkconfig --del boa
+fi
+
+%triggerpostun -- boa < 0.94.14-0.rc20.0
+if [ -f /etc/httpd/boa.conf.rpmsave ]; then
+ echo "warning: moving /etc/httpd/boa.conf.rpmsave to /etc/boa.conf"
+ mv /etc/boa.conf /etc/boa.conf.rpmnew
+ mv /etc/httpd/boa.conf.rpmsave /etc/boa.conf
fi
%files
%defattr(644,root,root,755)
-%doc README.gz docs/*.html docs/*.gif
-%attr(750, root,http) %dir /etc/httpd
-%attr(640, root,http) %config /etc/httpd/*
-%attr(755, root,http) /home/httpd/html
-%attr(755, root,http) /home/httpd/cgi-bin
-%attr(750, root,http) %dir /var/log/httpd/
-%attr(640, root,http) %ghost /var/log/httpd/*
-%attr(755, root,root) %{_sbindir}/*
-%attr(754, root,root) /etc/rc.d/init.d/%{name}
-%{_mandir}/man1/*
+%doc README CHANGES docs/*.html docs/*.png
+%attr(640,root,root) %config(noreplace) %{_sysconfdir}/boa.conf
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/logrotate.d/%{name}
+#%attr(755,root,root) %{_cgi_bin}
+%attr(750,root,root) %dir /var/log/%{name}/
+%attr(750,root,root) %dir /var/log/archiv/%{name}/
+%attr(640,root,root) %ghost /var/log/%{name}/*
+%attr(755,root,root) %{_sbindir}/*
+%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%{_mandir}/man8/*
+%{_examplesdir}/%{name}-%{version}