X-Git-Url: http://git.pld-linux.org/?p=packages%2Fapache.git;a=blobdiff_plain;f=apache.spec;h=3cf4d76da88084471e18ecf70b65f71d6dd7d33f;hp=30b2cf494e71ec1be4e18409519a30d26508a426;hb=74665295d6f94e6fd3f44e79c77ce59ccd573fe5;hpb=f949158b2c667b6c300d30e8a059c2995e3be187 diff --git a/apache.spec b/apache.spec index 30b2cf4..3cf4d76 100644 --- a/apache.spec +++ b/apache.spec @@ -1,14 +1,39 @@ +# # TODO: +# - config examples for mod_* +# - --with-suexec-uidmin=500 or =1000 ? +# - subpackages for MPMs +# - !!!check if all modules (*.so) are exactly the same for different MPMs +# - check those autn modules inner deps +# - for external packages: don't use any apache module name in dep as they +# differ for apache 1.3/2.0/2.2!? any better ideas? rpm Suggests: tags? +# - for mod_auth_* modules require each auth module to require virtual authn so at least *_default +# is chosen? +# - same for mod_authz +# - mod_auth_digest and mod_auth_basic R: apache(authn) ? +# - drop mod_case_filter* or find summary and description for them +# - build modules only once (not with each mpm) +# - FYI: http://wiki.apache.org/httpd/InternalDummyConnection + # Conditional build: %bcond_without ssl # build without SSL support %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.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 @@ -18,12 +43,12 @@ Summary(pt_BR.UTF-8): Servidor HTTPD para prover serviços WWW Summary(ru.UTF-8): Самый популярный веб-сервер Summary(tr.UTF-8): Lider WWW tarayıcı Name: apache -Version: 2.2.13 -Release: 2 +Version: 2.2.21 +Release: 5 License: Apache v2.0 Group: Networking/Daemons/HTTP Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz -# Source0-md5: 2803e35be6650f5b739e6e91faa824dd +# Source0-md5: b24ca6db942a4f8e57c357e5e3058d31 Source1: %{name}.init Source2: %{name}.logrotate Source3: %{name}.sysconfig @@ -52,6 +77,8 @@ Source25: %{name}-mod_cgid.conf Source26: %{name}-mod_log_config.conf Source27: %{name}-mod_mime_magic.conf Source28: %{name}-mod_cache.conf +Source29: %{name}-example.net.conf +Source30: %{name}.tmpfiles Patch0: %{name}-configdir_skip_backups.patch Patch1: %{name}-layout.patch Patch2: %{name}-suexec.patch @@ -63,7 +90,6 @@ Patch7: %{name}-syslibs.patch 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 @@ -71,20 +97,26 @@ Patch18: %{name}-v6only-ENOPROTOOPT.patch Patch19: %{name}-conffile-path.patch Patch20: %{name}-apxs.patch Patch23: %{name}-suexec_fcgi.patch +Patch24: %{name}-bug-48094.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 >= 0.9.7d} -%{?with_ssl:BuildRequires: openssl-tools >= 0.9.7d} +%{?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 BuildRequires: rpmbuild(macros) >= 1.268 @@ -93,9 +125,7 @@ BuildRequires: zlib-devel Requires: %{name}-errordocs = %{version}-%{release} Requires: %{name}-mod_alias = %{version}-%{release} Requires: %{name}-mod_auth = %{version}-%{release} -Requires: %{name}-mod_cgi = %{version}-%{release} Requires: %{name}-mod_env = %{version}-%{release} -Requires: %{name}-mod_include = %{version}-%{release} Requires: %{name}-mod_log_config = %{version}-%{release} Requires: %{name}-mod_mime = %{version}-%{release} Requires: %{name}-mod_mime_magic = %{version}-%{release} @@ -167,7 +197,7 @@ Requires(pre): /usr/bin/getgid 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} @@ -792,20 +822,33 @@ proxy. Dołączono dwa moduły pozwalające magazynować dane w pamięci 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 @@ -928,6 +971,7 @@ URL: http://httpd.apache.org/docs/2.2/en/mod/mod_dav.html 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 @@ -1358,6 +1402,7 @@ URL: http://httpd.apache.org/docs/2.2/mod/mod_mime.html Requires: %{name}-base = %{version}-%{release} Requires: mailcap Provides: apache(mod_mime) = %{version}-%{release} +Provides: webserver(mime) %description mod_mime This module is used to associate various bits of "meta information" @@ -1437,6 +1482,23 @@ Moduł zawiera implementację serwera proxy/cache dla Apache. 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 @@ -1511,6 +1573,10 @@ Epoch: 1 Group: Networking/Daemons/HTTP URL: http://httpd.apache.org/docs/2.2/mod/mod_ssl.html Requires: %{name}-base = %{version}-%{release} +Requires: openssl >= %{openssl_ver} +%if "%{pld_release}" != "ac" +Requires: apr-util-dbm-db +%endif Provides: apache(mod_ssl) = 1:%{version}-%{release} %description mod_ssl @@ -1714,7 +1780,6 @@ Dwa programy testowe/przykładowe cgi: test-cgi and print-env. %patch8 -p1 %patch9 -p1 %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch14 -p1 %patch15 -p1 @@ -1722,9 +1787,14 @@ Dwa programy testowe/przykładowe cgi: test-cgi and print-env. %patch19 -p1 %patch20 -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` @@ -1755,12 +1825,12 @@ touch ssl_expr_scan.c 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 \ @@ -1839,7 +1909,7 @@ cd .. 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." @@ -1851,15 +1921,16 @@ done rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig} \ $RPM_BUILD_ROOT%{_var}/{log/{httpd,archive/httpd},{run,cache}/httpd,lock/mod_dav} \ - $RPM_BUILD_ROOT%{_sysconfdir}/{webapps.d,conf.d} \ - $RPM_BUILD_ROOT%{_datadir}/cgi-bin + $RPM_BUILD_ROOT%{_sysconfdir}/{webapps.d,conf.d,vhosts.d} \ + $RPM_BUILD_ROOT%{_datadir}/{cgi-bin,vhosts} \ + $RPM_BUILD_ROOT/usr/lib/tmpfiles.d # prefork is default one %{__make} -C buildmpm-prefork install \ 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 @@ -1869,45 +1940,47 @@ ln -s %{_localstatedir}/run/httpd $RPM_BUILD_ROOT%{_sysconfdir}/run ln -s %{_var}/log/httpd $RPM_BUILD_ROOT%{_sysconfdir}/logs ln -s conf.d $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf -install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/httpd -install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/httpd -install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/httpd +install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/httpd +cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/httpd +cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/httpd touch $RPM_BUILD_ROOT/var/log/httpd/{access,error,agent,referer,suexec}_log %if %{with ssl} install -d $RPM_BUILD_ROOT%{_sysconfdir}/ssl -install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ssl/server.crt -install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ssl/server.key +cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/ssl/server.crt +cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/ssl/server.key %endif -install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf - -CFG="$RPM_BUILD_ROOT%{_sysconfdir}/conf.d/" - -install %{SOURCE7} $CFG/10_common.conf - -install %{SOURCE23} $CFG/01_mod_mime.conf -install %{SOURCE24} $CFG/01_mod_authz_host.conf -install %{SOURCE25} $CFG/01_mod_cgid.conf -install %{SOURCE26} $CFG/01_mod_log_config.conf -install %{SOURCE27} $CFG/01_mod_mime_magic.conf -install %{SOURCE28} $CFG/01_mod_cache.conf -install %{SOURCE8} $CFG/20_mod_vhost_alias.conf -install %{SOURCE9} $CFG/25_mod_status.conf -install %{SOURCE10} $CFG/30_mod_proxy.conf -install %{SOURCE11} $CFG/35_mod_info.conf -install %{SOURCE12} $CFG/40_mod_ssl.conf -install %{SOURCE13} $CFG/45_mod_dav.conf -install %{SOURCE14} $CFG/59_mod_dir.conf -install %{SOURCE15} $CFG/13_mod_suexec.conf -install %{SOURCE16} $CFG/58_mod_deflate.conf -install %{SOURCE17} $CFG/57_mod_autoindex.conf -install %{SOURCE18} $CFG/30_errordocs.conf -install %{SOURCE19} $CFG/30_manual.conf -install %{SOURCE20} $CFG/16_mod_userdir.conf -install %{SOURCE21} $CFG/10_mpm.conf -install %{SOURCE22} $CFG/20_languages.conf +cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf + +CFG="$RPM_BUILD_ROOT%{_sysconfdir}/conf.d" + +cp -a %{SOURCE7} $CFG/10_common.conf +cp -a %{SOURCE23} $CFG/01_mod_mime.conf +cp -a %{SOURCE24} $CFG/01_mod_authz_host.conf +cp -a %{SOURCE25} $CFG/01_mod_cgid.conf +cp -a %{SOURCE26} $CFG/01_mod_log_config.conf +cp -a %{SOURCE27} $CFG/01_mod_mime_magic.conf +cp -a %{SOURCE28} $CFG/01_mod_cache.conf +cp -a %{SOURCE8} $CFG/20_mod_vhost_alias.conf +cp -a %{SOURCE9} $CFG/25_mod_status.conf +cp -a %{SOURCE10} $CFG/30_mod_proxy.conf +cp -a %{SOURCE11} $CFG/35_mod_info.conf +cp -a %{SOURCE12} $CFG/40_mod_ssl.conf +cp -a %{SOURCE13} $CFG/45_mod_dav.conf +cp -a %{SOURCE14} $CFG/59_mod_dir.conf +cp -a %{SOURCE15} $CFG/13_mod_suexec.conf +cp -a %{SOURCE16} $CFG/58_mod_deflate.conf +cp -a %{SOURCE17} $CFG/57_mod_autoindex.conf +cp -a %{SOURCE18} $CFG/30_errordocs.conf +cp -a %{SOURCE19} $CFG/30_manual.conf +cp -a %{SOURCE20} $CFG/16_mod_userdir.conf +cp -a %{SOURCE21} $CFG/10_mpm.conf +cp -a %{SOURCE22} $CFG/20_languages.conf +cp -a %{SOURCE29} $RPM_BUILD_ROOT%{_sysconfdir}/vhosts.d/example.net.conf + +install %{SOURCE30} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf echo "LoadModule alias_module modules/mod_alias.so" > $CFG/00_mod_alias.conf echo "LoadModule authn_file_module modules/mod_authn_file.so" > $CFG/00_mod_authn_file.conf @@ -1957,9 +2030,10 @@ echo "LoadModule rewrite_module modules/mod_rewrite.so" > $CFG/00_mod_rewrite.co 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 @@ -1988,11 +2062,11 @@ EOF 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 @@ -2220,6 +2294,7 @@ fi %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 @@ -2267,10 +2342,12 @@ fi %{_sysconfdir}/logs %ghost %{_sysconfdir}/httpd.conf %attr(750,root,root) %dir %{_sysconfdir}/conf.d +%attr(750,root,root) %dir %{_sysconfdir}/vhosts.d %attr(750,root,root) %dir %{_sysconfdir}/webapps.d %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,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/* @@ -2284,6 +2361,8 @@ fi %dir %attr(770,root,http) /var/run/httpd %dir %attr(770,root,http) /var/cache/httpd +/usr/lib/tmpfiles.d/%{name}.conf + %{_mandir}/man8/httpd.8* %attr(2751,root,logs) %dir /var/log/httpd @@ -2294,6 +2373,8 @@ fi %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 @@ -2615,6 +2696,11 @@ fi %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