%bcond_without ldap # build without LDAP support
%bcond_without peruser # peruser MPM
%bcond_without event # event MPM
+%bcond_with itk # ITK MPM
%bcond_with distcache # distcache support
%bcond_with bucketeer # debug one
-#
-%include /usr/lib/rpm/macros.perl
+
# this is internal macro, don't change to %%apache_modules_api
%define _apache_modules_api 20051115
-%if "%{pld_release}" != "ac"
-%define openssl_ver 0.9.8i
-%else
+%if "%{pld_release}" == "ac"
%define openssl_ver 0.9.7d
+%define apr_ver 1:1.2
+%else
+%define openssl_ver 0.9.8i
+%define apr_ver 1:1.4.5
%endif
+%include /usr/lib/rpm/macros.perl
Summary: The most widely used Web server on the Internet
Summary(de.UTF-8): Leading World Wide Web-Server
Summary(es.UTF-8): Servidor HTTPD para proveer servicios WWW
Summary(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
-Version: 2.2.14
-Release: 12
+Version: 2.2.21
+Release: 3
License: Apache v2.0
Group: Networking/Daemons/HTTP
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
-# Source0-md5: 2c1e3c7ba00bcaa0163da7b3e66aaa1e
+# Source0-md5: b24ca6db942a4f8e57c357e5e3058d31
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: %{name}.sysconfig
Patch8: httpd-2.0.45-encode.patch
Patch9: %{name}-paths.patch
Patch10: httpd-2.0.46-dav401dest.patch
-Patch11: %{name}-bug-40970.patch
Patch12: httpd-2.0.46-sslmutex.patch
Patch14: httpd-2.0.48-corelimit.patch
Patch15: httpd-2.0.48-debuglog.patch
Patch20: %{name}-apxs.patch
Patch23: %{name}-suexec_fcgi.patch
Patch24: %{name}-bug-48094.patch
-# http://marc.info/?l=apache-httpd-dev&m=125712658610440&w=2
-Patch25: %{name}-shutdown-sockets.patch
+# http://scripts.mit.edu/trac/browser/trunk/server/common/patches/httpd-2.2.x-mod_ssl-sessioncaching.patch?rev=1348
+Patch25: httpd-2.2.x-mod_ssl-sessioncaching.patch
+Patch26: apache-mod_vhost_alias_docroot.patch
+# http://mpm-itk.sesse.net/
+Patch28: apache-mpm-itk.patch
+Patch29: libtool-tag.patch
URL: http://httpd.apache.org/
-BuildRequires: apr-devel >= 1:1.2
-BuildRequires: apr-util-devel >= 1:1.3
-BuildRequires: autoconf
+BuildRequires: apr-devel >= %{apr_ver}
+BuildRequires: apr-util-devel >= 1:1.3.10-2
+BuildRequires: autoconf >= 2.13
BuildRequires: automake
-BuildRequires: db-devel
%{?with_distcache:BuildRequires: distcache-devel}
-BuildRequires: expat-devel
-BuildRequires: gdbm-devel >= 1.8.3
BuildRequires: libtool >= 2:1.5
%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
-%{?with_ssl:BuildRequires: openssl-devel >= %{openssl_version}}
-%{?with_ssl:BuildRequires: openssl-tools >= %{openssl_version}}
+%{?with_ssl:BuildRequires: openssl-devel >= %{openssl_ver}}
+%{?with_ssl:BuildRequires: openssl-tools >= %{openssl_ver}}
BuildRequires: pcre-devel
+BuildRequires: pkgconfig
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpm-build >= 4.4.0
BuildRequires: rpm-perlprov >= 4.1-13
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
Requires: /sbin/chkconfig
-Requires: apr >= 1:1.2
+Requires: apr >= %{apr_ver}
Requires: psmisc >= 20.1
Requires: rc-scripts >= 0.4.1.23
Provides: apache(modules-api) = %{_apache_modules_api}
dysku (używane do cache'owania proxy).
%package mod_case_filter
-Summary: TODO
+Summary: Apache output filter that converts all output to upper case
+Summary(pl.UTF-8): Filtr wyjściowy Apache'a zamieniający wszystkie litery na wielkie
Group: Networking/Daemons/HTTP
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_case_filter) = %{version}-%{release}
%description mod_case_filter
+Apache output filter that converts all output to upper case.
+
+%description mod_case_filter -l pl.UTF-8
+Filtr wyjściowy Apache'a zamieniający wszystkie litery w wyjściu na
+wielkie.
%package mod_case_filter_in
-Summary: TODO
+Summary: Apache input filter that converts all request body to upper case
+Summary(pl.UTF-8): Filtr wejściowy Apache'a zamieniający wszystkie litery w żądaniu na wielkie
Group: Networking/Daemons/HTTP
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_case_filter_in) = %{version}-%{release}
%description mod_case_filter_in
+Apache input filter that converts all request body (not headers) to
+upper case.
+
+%description mod_case_filter_in -l pl.UTF-8
+Filtr wejściowy Apache'a zamieniający wszystkie litery w ciele żądania
+(ale nie nagłówkach) na wielkie.
%package mod_cern_meta
Summary: CERN httpd metafile semantics
Requires: %{name}-base = %{version}-%{release}
Requires: apache-mod_authn_file
Requires: apache-mod_setenvif
+Requires: apr-util-dbm-db
Provides: apache(mod_dav) = %{version}-%{release}
%description mod_dav
Implementacja zawiera obsługę FTP, CONNECT (dla SSL), HTTP/0.9,
HTTP/1.0 i HTTP/1.1.
+%package mod_reqtimeout
+Summary: Apache module to set timeout and minimum data rate for receiving requests
+Summary(pl.UTF-8): Moduł Apache'a pozwalający na ustawianie limitu czasu oraz minimalnego transferu danych
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_reqtimeout) = %{version}-%{release}
+Provides: webserver(reqtimeout)
+
+%description mod_reqtimeout
+Apache module to set timeout and minimum data rate for receiving
+requests.
+
+%description mod_reqtimeout -l pl.UTF-8
+Moduł Apache'a pozwalający na ustawianie limitu czasu oraz minimalnego
+transferu danych.
+
%package mod_rewrite
Summary: Apache module with rule-based engine for rewrite requested URLs on the fly
Summary(pl.UTF-8): Moduł Apache'a do "przepisywania" adresów URL w locie
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.2/mod/mod_ssl.html
Requires: %{name}-base = %{version}-%{release}
-Requires: openssl >= %{openssl_version}
+Requires: openssl >= %{openssl_ver}
%if "%{pld_release}" != "ac"
Requires: apr-util-dbm-db
%endif
%patch8 -p1
%patch9 -p1
%patch10 -p1
-%patch11 -p1
%patch12 -p1
%patch14 -p1
%patch15 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
+%patch26 -p1
+%patch28 -p1
+%patch29 -p1
# using system apr, apr-util and pcre
-rm -rf srclib/{apr,apr-util,pcre}
+%{__rm} -r srclib/{apr,apr-util,pcre}
# sanity check
MODULES_API=`awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' include/ap_mmn.h`
cd ../..
CPPFLAGS="-DMAX_SERVER_LIMIT=200000 -DBIG_SECURITY_HOLE=1"
-for mpm in prefork worker %{?with_event:event}; do
+for mpm in prefork worker %{?with_event:event} %{?with_itk:itk}; do
install -d "buildmpm-${mpm}"; cd "buildmpm-${mpm}"
../%configure \
--enable-layout=PLD \
--disable-v4-mapped \
- $( [ "${mpm}" = "prefork" -o "${mpm}" = "worker" -o "${mpm}" = "event" ] && echo "--enable-exception-hook" ) \
+ $( [ "${mpm}" = "prefork" -o "${mpm}" = "worker" -o "${mpm}" = "event" -o "${mpm}" = "itk" ] && echo "--enable-exception-hook" ) \
--enable-modules=all \
--enable-mods-shared=all \
--enable-auth-anon \
done
-for mpm in worker %{?with_event:event}; do
+for mpm in worker %{?with_event:event} %{?with_itk:itk}; do
if ! cmp -s buildmpm-prefork/modules-inside buildmpm-${mpm}/modules-inside; then
echo "List of compiled modules is different between prefork-MPM and ${mpm}-MPM!"
echo "Build failed."
DESTDIR=$RPM_BUILD_ROOT
# install other mpm-s
-for mpm in worker %{?with_event:event}; do
+for mpm in worker %{?with_event:event} %{?with_itk:itk}; do
install buildmpm-${mpm}/httpd.${mpm} $RPM_BUILD_ROOT%{_sbindir}/httpd.${mpm}
done
echo "LoadModule usertrack_module modules/mod_usertrack.so" > $CFG/00_mod_usertrack.conf
echo "LoadModule unique_id_module modules/mod_unique_id.so" > $CFG/00_mod_unique_id.conf
echo "LoadModule substitute_module modules/mod_substitute.so" > $CFG/00_mod_substitute.conf
+echo "LoadModule reqtimeout_module modules/mod_reqtimeout.so" >> $CFG/00_mod_reqtimeout.conf
# anything in style dir not ending with .css is trash
-rm -rf $RPM_BUILD_ROOT%{_datadir}/manual/style/{lang,latex,xsl}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/manual/style/{lang,latex,xsl}
find $RPM_BUILD_ROOT%{_datadir}/manual/style -type f ! -name '*.css' -print0 | xargs -0r rm -f
# find manual files
ln -sf suexec $RPM_BUILD_ROOT%{_sbindir}/suexec.fcgi
# no value
-rm $RPM_BUILD_ROOT%{_libexecdir}/build/config.nice
-rm $RPM_BUILD_ROOT%{_libexecdir}/*.exp
-rm $RPM_BUILD_ROOT%{_sysconfdir}/mime.types
-rm $RPM_BUILD_ROOT%{_sysconfdir}/httpd.prefork.conf
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/{extra,original}
+%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/build/config.nice
+%{__rm} $RPM_BUILD_ROOT%{_libexecdir}/*.exp
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/mime.types
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.prefork.conf
+%{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/{extra,original}
%clean
rm -rf $RPM_BUILD_ROOT
%module_scripts mod_mime_magic
%module_scripts mod_negotiation
%module_scripts mod_proxy
+%module_scripts mod_reqtimeout
%module_scripts mod_rewrite
%module_scripts mod_setenvif
%module_scripts mod_speling
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apache.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_common.conf
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mpm.conf
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vhosts.d/example.net.conf
+%attr(640,root,root) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/vhosts.d/example.net.conf
%attr(640,root,root) %{_sysconfdir}/magic
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/httpd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/*
%dir %{_datadir}/cgi-bin
%dir %{_datadir}/html
%dir %{_datadir}/vhosts
+# do not adapter here, %{_datadir} != /usr/share here
%{_datadir}/icons
%files doc -f manual.files
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_proxy.conf
%attr(755,root,root) %{_libexecdir}/mod_proxy*.so
+%files mod_reqtimeout
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libexecdir}/mod_reqtimeout.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_reqtimeout.conf
+
%files mod_rewrite
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/httxt2dbm