# 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
+# - for mod_auth_* modules require each auth module to require virtual authn so at least *_core
# 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
-
-# 2.4 TODO
-#
-# mod_authn/z_default changed into mod_authn/z_core - trigger existing configs?
-
-
# Conditional build:
%bcond_without ssl # build without SSL support
%bcond_without ldap # build without LDAP support
Summary(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
-Version: 2.4.1
-Release: 0.2
+Version: 2.4.3
+Release: 5
License: Apache v2.0
Group: Networking/Daemons/HTTP
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
-# Source0-md5: 4366afbea8149ca125af01fd59a2f8a2
+# Source0-md5: 538dccd22dd18466fff3ec7948495417
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: %{name}.sysconfig
Requires: apr >= %{apr_ver}
Requires: psmisc >= 20.1
Requires: rc-scripts >= 0.4.1.23
-Requires: %{name}-mod_unixd = %{version}-%{release}
Provides: apache(modules-api) = %{_apache_modules_api}
Provides: group(http)
Provides: user(http)
Obsoletes: apache-mod_optional_fn_import
Obsoletes: apache-mod_optional_fn_import
Obsoletes: apache-mod_optional_hook_import
+Obsoletes: apache(mod_unixd)
Conflicts: apache < 2.2.0
Conflicts: logrotate < 3.7-4
# for the posttrans scriptlet, conflicts because in vserver environment rpm package is not installed.
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_anon.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authn_core) = %{version}-%{release}
Provides: apache(mod_authn_anon) = %{version}-%{release}
# compat
Provides: apache(mod_auth_anon) = %{version}-%{release}
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_dbd.html
Requires: %{name}-base = %{version}-%{release}
-Requires: %{name}-mod_dbd = %{version}-%{release}
+Requires: apache(mod_dbd) = %{version}-%{release}
+Requires: apache(mod_authn_core) = %{version}-%{release}
Provides: apache(mod_authn_dbd) = %{version}-%{release}
%description mod_authn_dbd
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_dbm.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authn_core) = %{version}-%{release}
Provides: apache(mod_authn_dbm) = %{version}-%{release}
%description mod_authn_dbm
URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_core.html
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_authn_core) = %{version}-%{release}
-Provides: apache(mod_authn_default) = %{version}-%{release}
+Obsoletes: apache(mod_authn_alias)
Obsoletes: apache-mod_authn_default < 2.4
%description mod_authn_core
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_file.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authn_core) = %{version}-%{release}
Provides: apache(mod_authn_file) = %{version}-%{release}
%description mod_authn_file
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_dbm.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authz_core) = %{version}-%{release}
Provides: apache(mod_authz_dbm) = %{version}-%{release}
%description mod_authz_dbm
URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_authz_core) = %{version}-%{release}
-Provides: apache(mod_authz_default) = %{version}-%{release}
Obsoletes: apache-mod_authz_default < 2.4
%description mod_authz_core
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_groupfile.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authz_core) = %{version}-%{release}
Provides: apache(mod_authz_groupfile) = %{version}-%{release}
%description mod_authz_groupfile
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_host.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authz_core) = %{version}-%{release}
Provides: apache(mod_authz_host) = %{version}-%{release}
-# for upgrade from 2.2, maybe this should be a "Suggests", but it's safer to require it by force
-Requires: apache(mod_access_compat) = %{version}-%{release}
+# for upgrade from 2.2
+Suggests: apache(mod_access_compat) = %{version}-%{release}
# for apache < 2.2.0
Provides: apache(mod_access) = %{version}-%{release}
Provides: webserver(access)
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/en/mod/mod_authz_owner.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authz_core) = %{version}-%{release}
#Requires: any-auth-module
Provides: apache(mod_authz_owner) = %{version}-%{release}
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/en/mod/mod_authz_user.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authz_core) = %{version}-%{release}
Provides: apache(mod_authz_user) = %{version}-%{release}
%description mod_authz_user
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_ssl.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_socache_shmcb) = %{version}-%{release}
Requires: openssl >= %{openssl_ver}
%if "%{pld_release}" != "ac"
Requires: apr-util-dbm-db
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authn_socache.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authn_core) = %{version}-%{release}
Provides: apache(mod_authn_socache) = %{version}-%{release}
%description mod_authn_socache
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_dbd.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_authz_core) = %{version}-%{release}
+Requires: apache(mod_dbd) = %{version}-%{release}
Provides: apache(mod_authz_dbd) = %{version}-%{release}
%description mod_authz_dbd
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_heartbeat.html
Requires: %{name}-base = %{version}-%{release}
-Requires: %{name}-mod_status = %{version}-%{release}
-Requires: %{name}-mod_watchdog = %{version}-%{release}
+Requires: apache(mod_status) = %{version}-%{release}
+Requires: apache(mod_watchdog) = %{version}-%{release}
Provides: apache(mod_heartbeat) = %{version}-%{release}
%description mod_heartbeat
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_heartmonitor.html
Requires: %{name}-base = %{version}-%{release}
-Requires: %{name}-mod_status = %{version}-%{release}
-Requires: %{name}-mod_watchdog = %{version}-%{release}
+Requires: apache(mod_status) = %{version}-%{release}
+Requires: apache(mod_watchdog) = %{version}-%{release}
Provides: apache(mod_heartmonitor) = %{version}-%{release}
%description mod_heartmonitor
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_session.html
Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_dbd) = %{version}-%{release}
Provides: apache(mod_session) = %{version}-%{release}
Provides: apache(mod_session_cookie) = %{version}-%{release}
Provides: apache(mod_session_dbd) = %{version}-%{release}
%description mod_socache
Shared object cache provider.
-%package mod_unixd
-Summary: Basic (required) security for Unix-family platforms
-Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.4/mod/mod_unixd.html
-Requires: %{name}-base = %{version}-%{release}
-Provides: apache(mod_unixd) = %{version}-%{release}
-
-%description mod_unixd
-Basic (required) security for Unix-family platforms.
-
%package mod_watchdog
Summary: Provides infrastructure for other modules to periodically run tasks
Group: Networking/Daemons/HTTP
echo "LoadModule buffer_module modules/mod_buffer.so" > $CFG/00_mod_buffer.conf
echo "LoadModule data_module modules/mod_data.so" > $CFG/00_mod_data.conf
echo "LoadModule dialup_module modules/mod_dialup.so" > $CFG/00_mod_dialup.conf
-echo "LoadModule heartbeat_module modules/mod_heartbeat.so" > $CFG/00_mod_heartbeat.conf
-echo "LoadModule heartmonitor_module modules/mod_heartmonitor.so" > $CFG/00_mod_heartmonitor.conf
+echo "LoadModule heartbeat_module modules/mod_heartbeat.so" > $CFG/01_mod_heartbeat.conf
+echo "LoadModule heartmonitor_module modules/mod_heartmonitor.so" > $CFG/01_mod_heartmonitor.conf
echo "#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so" > $CFG/00_mod_lbmethod.conf
echo "#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so" >> $CFG/00_mod_lbmethod.conf
echo "#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so" >> $CFG/00_mod_lbmethod.conf
echo "LoadModule request_module modules/mod_request.so" > $CFG/00_mod_request.conf
echo "LoadModule sed_module modules/mod_sed.so" > $CFG/00_mod_sed.conf
echo "LoadModule session_module modules/mod_session.so" > $CFG/00_mod_session.conf
-echo "#LoadModule session_cookie_module modules/mod_sessioni_cookie.so" >> $CFG/00_mod_session.conf
+echo "#LoadModule session_cookie_module modules/mod_session_cookie.so" >> $CFG/00_mod_session.conf
echo "#LoadModule session_dbd_module modules/mod_session_dbd.so" >> $CFG/00_mod_session.conf
echo "LoadModule slotmem_plain_module modules/mod_slotmem_plain.so" > $CFG/00_mod_slotmem.conf
echo "#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so" >> $CFG/00_mod_slotmem.conf
echo "#LoadModule socache_dbm_module modules/mod_socache_dbm.so" > $CFG/00_mod_socache.conf
echo "#LoadModule socache_memcache_module modules/mod_socache_memcache.so" >> $CFG/00_mod_socache.conf
echo "#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so" >> $CFG/00_mod_socache.conf
-echo "LoadModule unixd_module modules/mod_unixd.so" > $CFG/00_mod_unixd.conf
echo "LoadModule watchdog_module modules/mod_watchdog.so" > $CFG/00_mod_watchdog.conf
echo "LoadModule xml2enc_module modules/mod_xml2enc.so" > $CFG/00_mod_xml2enc.conf
' >> "$cur/manual.files"
cd $cur
+# move apxs to _sbindir
+mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/apxs
+
# cgi_test: create config file with ScriptAlias
cat << 'EOF' > $CFG/09_cgi_test.conf
ScriptAlias /cgi-bin/printenv %{_cgibindir}/printenv
fi
if [ -f /etc/sysconfig/httpd ]; then
MPM=$(grep HTTPD_MPM /etc/sysconfig/httpd |sed 's,HTTPD_MPM=,,;s,",,g')
- if [ -n $MPM ]; then
+ if [ ! -z $MPM ]; then
echo "LoadModule mpm_${MPM}_module modules/mod_mpm_${MPM}.so" > /etc/httpd/conf.d/10_mpm.conf.rpmnew
cat /etc/httpd/conf.d/10_mpm.conf >> /etc/httpd/conf.d/10_mpm.conf.rpmnew
mv /etc/httpd/conf.d/10_mpm.conf.rpmnew /etc/httpd/conf.d/10_mpm.conf
+ sed -i -e 's,HTTPD_MPM.*,,g' /etc/sysconfig/httpd
fi
fi
EOF
%triggerpostun base -- %{name} < 2.4.0
-%banner %{name}-2.4.1 << EOF
-WARNING!!!
-Since apache-2.4 mod_authn_alias has been obsoleted.
-If you use access control (Deny,Allow) install mod_access_compat by doing:
-poldek -ivh %{name}-mod_access_compat
-
-In apache-2.4 mod_authn_default and mod_authz_default have been obsoleted by
-mod_authn_core and authz_core. If you used these modules install the new ones by invoking:
-poldek -ivh %{name}-mod_authn_core
-and/or
-poldek -ivh %{name}-mod_authz_core
-
-For more information on how to upgrade from Apache 2.2 visit:
-http://httpd.apache.org/docs/2.4/upgrading.html
-EOF
-
+cp -f /etc/httpd/apache.conf{,.rpmsave}
+sed -i -e '
+ /^DefaultType.*/s,.*,,
+ /^Include /s,^Include ,IncludeOptional ,
+ /^NameVirtualHost.*/s,.*,,
+ /^User/s,^,LoadModule unixd_module modules/mod_unixd.so\n,
+' /etc/httpd/apache.conf
+sed -i -e '
+ s,^LockFile /var/run/httpd/accept.lock,Mutex file:/var/run/httpd/,g
+' /etc/httpd/conf.d/10_mpm.conf
%triggerpostun mod_ssl -- %{name}-mod_ssl < 1:2.2.0-3.1
cp -f /etc/httpd/conf.d/40_mod_ssl.conf{,.rpmsave}
s,/var/cache/apache,/var/cache/httpd,g
' /etc/httpd/conf.d/40_mod_ssl.conf
+%triggerpostun mod_ssl -- %{name}-mod_ssl < 1:2.4.0
+cp -f /etc/httpd/conf.d/40_mod_ssl.conf{,.rpmsave}
+sed -i -e '
+ /^SSLMutex/s,^,#,
+ /^NameVirtualHost.*/s,.*,,
+' /etc/httpd/conf.d/40_mod_ssl.conf
+
%posttrans base
# restore lock which we disabled in pretrans
mv -f /var/lock/subsys/httpd{.disabled,} 2>/dev/null
%module_scripts mod_session
%module_scripts mod_slotmem
%module_scripts mod_socache
-%module_scripts mod_unixd
%module_scripts mod_watchdog
%module_scripts mod_xml2enc
%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/*
-# MPM modules
+# required modules
%attr(755,root,root) %{_libexecdir}/mod_mpm_event.so
%attr(755,root,root) %{_libexecdir}/mod_mpm_prefork.so
%attr(755,root,root) %{_libexecdir}/mod_mpm_worker.so
+%attr(755,root,root) %{_libexecdir}/mod_unixd.so
%dir %{_libexecdir}
%attr(755,root,root) %{_libexecdir}/mod_suexec.so
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_suexec.conf
%{_mandir}/man8/suexec.8*
+%{_mandir}/man8/fcgistarter.8*
%files index
%defattr(644,root,root,755)
%files devel
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/apxs
+%attr(755,root,root) %{_sbindir}/apxs
%attr(755,root,root) %{_sbindir}/envvars*
%dir %{_libexecdir}
%dir %{_libexecdir}/build
%attr(755,root,root) %{_libexecdir}/mod_socache_memcache.so
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache.conf
-%files mod_unixd
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libexecdir}/mod_unixd.so
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_unixd.conf
-
%files mod_watchdog
%defattr(644,root,root,755)
%attr(755,root,root) %{_libexecdir}/mod_watchdog.so