# - 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) ?
# this is internal macro, don't change to %%apache_modules_api
%define _apache_modules_api 20120211
-%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
+%define apr_ver 1:1.4.6
+
%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(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
-Version: 2.4.1
-Release: 0.1
+Version: 2.4.3
+Release: 1
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
Patch23: %{name}-suexec_fcgi.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
+Patch26: %{name}-mod_vhost_alias_docroot.patch
# http://mpm-itk.sesse.net/
-Patch28: apache-mpm-itk.patch
+Patch28: %{name}-mpm-itk.patch
Patch29: libtool-tag.patch
+Patch30: lua-lib.patch
URL: http://httpd.apache.org/
BuildRequires: apr-devel >= %{apr_ver}
BuildRequires: apr-util-devel >= 1:1.3.10-2
BuildRequires: automake
%{?with_distcache:BuildRequires: distcache-devel}
BuildRequires: libtool >= 2:1.5
+BuildRequires: lua51-devel
%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
%{?with_ssl:BuildRequires: openssl-devel >= %{openssl_ver}}
%{?with_ssl:BuildRequires: openssl-tools >= %{openssl_ver}}
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
+Requires(post,preun,postun): systemd-units >= 38
Requires: /sbin/chkconfig
Requires: apr >= %{apr_ver}
Requires: psmisc >= 20.1
Requires: rc-scripts >= 0.4.1.23
Requires: sed >= 4.0
-Requires: systemd-units
+Requires: systemd-units >= 38
Provides: apache(modules-api) = %{_apache_modules_api}
Provides: group(http)
Provides: user(http)
Provides: apache(mod_access_compat) = %{version}-%{release}
%description mod_access_compat
-The directives provided by mod_access_compat are used in <Directory>,
+The directives provided by mod_access_compat are used in <Directory>,
<Files>, and <Location> sections as well as .htaccess files to control
-access to particular parts of the server. Access can be controlled
-based on the client hostname, IP address, or other characteristics of
-the client request, as captured in environment variables. The Allow
-and Deny directives are used to specify which clients are or are not
-allowed access to the server, while the Order directive sets the
+access to particular parts of the server. Access can be controlled
+based on the client hostname, IP address, or other characteristics of
+the client request, as captured in environment variables. The Allow
+and Deny directives are used to specify which clients are or are not
+allowed access to the server, while the Order directive sets the
default access state, and configures how the Allow and Deny directives
interact with each other.
%description mod_auth_form
This module allows the use of an HTML login form to restrict access by
looking up users in the given providers. HTML forms require
-significantly more configuration than the alternatives,
-however an HTML login form can provide a much friendlier experience
-for end users.
+significantly more configuration than the alternatives, however an
+HTML login form can provide a much friendlier experience for end
+users.
%package mod_authn_anon
Summary: Apache module that allows "anonymous" user access to authenticated areas
%description mod_data
This module provides the ability to convert a response into an RFC2397
-data URL.
+data URL.
Data URLs can be embedded inline within web pages using something like
the mod_include module, to remove the need for clients to make
mod_heartmonitor listens for server status messages generated by
mod_heartbeat enabled origin servers and makes their status available
to mod_lbmethod_heartbeat. This allows ProxyPass to use the
-"heartbeat" lbmethod inside of ProxyPass.
+"heartbeat" lbmethod inside of ProxyPass.
This module uses the services of mod_slotmem_shm when available
instead of flat-file storage. No configuration is required to use
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_bybusyness.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_proxy = %{version}-%{release}
Provides: apache(mod_lbmethod_bybusyness) = %{version}-%{release}
%description mod_lbmethod_bybusyness
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_byrequests.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_proxy = %{version}-%{release}
Provides: apache(mod_lbmethod_byrequests) = %{version}-%{release}
%description mod_lbmethod_byrequests
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_bytraffic.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_proxy = %{version}-%{release}
Provides: apache(mod_lbmethod_bytraffic) = %{version}-%{release}
%description mod_lbmethod_bytraffic
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_lbmethod_heartbeat.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_proxy = %{version}-%{release}
Provides: apache(mod_lbmethod_heartbeat) = %{version}-%{release}
%description mod_lbmethod_heartbeat
wejściu i po SSL/TLS na wyjściu, więc liczby będą właściwie
odzwierciedlały wszystkie zmiany dokonywane przez szyfrowanie.
+%package mod_lua
+Summary: Provides Lua hooks into various portions of the httpd request processing
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_lua.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_lua) = %{version}-%{release}
+
+%description mod_lua
+This module allows the server to be extended with scripts written in
+the Lua programming language. The extension points (hooks) available
+with mod_lua include many of the hooks available to natively compiled
+Apache HTTP Server modules, such as mapping requests to files,
+generating dynamic responses, access control, authentication,
+and authorization
+
%package mod_mime
Summary: Associates the requested filename's extensions with the file's behavior and content
Summary(pl.UTF-8): Wiązanie określonych rozszerzeń plików z zachowaniem i zawartością
URL: http://httpd.apache.org/docs/2.4/mod/mod_proxy.html
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-mod_authz_host = %{version}-%{release}
+Requires: %{name}-mod_xml2enc = %{version}-%{release}
Provides: apache(mod_proxy) = %{version}-%{release}
%description mod_proxy
environment variable rate-limit.
%package mod_reflector
-Summary: Reflect a request body as a response via the output filter stack.
+Summary: Reflect a request body as a response via the output filter stack
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_reflector.html
Requires: %{name}-base = %{version}-%{release}
filter into an HTTP service.
%package mod_remoteip
-Summary: Replaces the original client IP address for the connectionwith the useragent IP address list presented by a proxies or a load balancervia the request headers.
+Summary: Replaces the original client IP address for the connectionwith the useragent IP address list presented by a proxies or a load balancervia the request headers
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_remoteip.html
Requires: %{name}-base = %{version}-%{release}
take data from standard input. Instead, the filter acts on the entity
data sent between client and server. mod_sed can be used as an input
or output filter. mod_sed is a content filter, which means that it
-cannot be used to modify client or server http headers.
+cannot be used to modify client or server http headers.
The mod_sed output filter accepts a chunk of data, executes the sed
scripts on the data, and generates the output which is passed to the
-next filter in the chain.
+next filter in the chain.
The mod_sed input filter reads the data from the next filter in the
chain, executes the sed scripts, and returns the generated data to the
-caller filter in the filter chain.
+caller filter in the filter chain.
Both the input and output filters only process the data if newline
characters are seen in the content. At the end of the data, the rest
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_session_cookie.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_session = %{version}-%{release}
Provides: apache(mod_session_cookie) = %{version}-%{release}
%description mod_session_cookie
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_session_crypto.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_session = %{version}-%{release}
Provides: apache(mod_session_crypto) = %{version}-%{release}
%description mod_session_crypto
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_session_dbd.html
Requires: %{name}-base = %{version}-%{release}
+Requires: %{name}-mod_dbd = %{version}-%{release}
+Requires: %{name}-mod_session = %{version}-%{release}
Provides: apache(mod_session_dbd) = %{version}-%{release}
%description mod_session_dbd
części serwera do podejmowania decyzji o podejmowanych akcjach.
%package mod_slotmem_plain
-Summary: Slot-based shared memory provider.
+Summary: Slot-based shared memory provider
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_plain.html
Requires: %{name}-base = %{version}-%{release}
%description mod_slotmem_plain
mod_slotmem_plain is a memory provider which provides for creation and
access to a plain memory segment in which the datasets are organized
-in "slots."
+in "slots."
If the memory needs to be shared between threads and processes, a
better provider would be mod_slotmem_shm.
%package mod_slotmem_shm
-Summary: Slot-based shared memory provider.
+Summary: Slot-based shared memory provider
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_shm.html
Requires: %{name}-base = %{version}-%{release}
%description mod_slotmem_shm
mod_slotmem_shm is a memory provider which provides for creation and
access to a shared memory segment in which the datasets are organized
-in "slots."
+in "slots."
All shared memory is cleared and cleaned with each restart, whether
graceful or not. The data itself is stored and restored within a file
noted by the name parameter in the create and attach calls.
%package mod_socache_dbm
-Summary: DBM based shared object cache provider.
+Summary: DBM based shared object cache provider
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_dbm.html
Requires: %{name}-base = %{version}-%{release}
creation and access to a cache backed by a DBM database.
%package mod_socache_memcache
-Summary: Memcache based shared object cache provider.
+Summary: Memcache based shared object cache provider
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html
Requires: %{name}-base = %{version}-%{release}
high-performance, distributed memory object caching system.
%package mod_socache_shmcb
-Summary: shmcb based shared object cache provider.
+Summary: shmcb based shared object cache provider
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_shmcb.html
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-mod_socache_shmcb = %{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
# probably drop
#%patch28 -p1
%patch29 -p1
+%patch30 -p1
# sanity check
MODULES_API=`awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' include/ap_mmn.h`
--enable-case-filter-in \
--enable-log-forensic \
--enable-logio \
+ --enable-lua \
--with-z=%{_prefix} \
--enable-mime-magic \
--enable-cern-meta \
$RPM_BUILD_ROOT%{_var}/{log/{httpd,archive/httpd},{run,cache}/httpd,lock/mod_dav} \
$RPM_BUILD_ROOT%{_sysconfdir}/{webapps.d,conf.d,vhosts.d} \
$RPM_BUILD_ROOT%{_datadir}/{cgi-bin,vhosts} \
- $RPM_BUILD_ROOT/usr/lib/tmpfiles.d \
+ $RPM_BUILD_ROOT%{systemdtmpfilesdir} \
$RPM_BUILD_ROOT%{systemdunitdir}
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
+# clean "ccache" prefix. confuses other build systems (like php)
+%{__sed} -i -re '/^(CC|CPP|CXX)/ s/ccache //' $RPM_BUILD_ROOT%{_libdir}/%{name}/build/config_vars.mk
+
install %{SOURCE31} $RPM_BUILD_ROOT%{systemdunitdir}/httpd.service
ln -s %{systemdunitdir}/httpd.service $RPM_BUILD_ROOT/etc/systemd/system/httpd.service
ln -s %{_libexecdir} $RPM_BUILD_ROOT%{_sysconfdir}/modules
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
+install %{SOURCE30} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
echo "LoadModule access_compat_module modules/mod_access_compat.so" > $CFG/00_mod_access_compat.conf
echo "LoadModule actions_module modules/mod_actions.so" > $CFG/00_mod_actions.conf
echo "LoadModule file_cache_module modules/mod_file_cache.so" > $CFG/00_mod_file_cache.conf
echo "LoadModule filter_module modules/mod_filter.so" > $CFG/00_mod_filter.conf
echo "LoadModule headers_module modules/mod_headers.so" > $CFG/00_mod_headers.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 ident_module modules/mod_ident.so" > $CFG/00_mod_ident.conf
echo "LoadModule imagemap_module modules/mod_imagemap.so" > $CFG/00_mod_imagemap.conf
echo "LoadModule include_module modules/mod_include.so" > $CFG/00_mod_include.conf
echo "LoadModule log_debug_module modules/mod_log_debug.so" > $CFG/00_mod_log_debug.conf
echo "LoadModule log_forensic_module modules/mod_log_forensic.so" > $CFG/00_mod_log_forensic.conf
echo "LoadModule logio_module modules/mod_logio.so" > $CFG/00_mod_logio.conf
+echo "LoadModule lua_module modules/mod_lua.so" > $CFG/00_mod_lua.conf
echo "LoadModule negotiation_module modules/mod_negotiation.so" > $CFG/00_mod_negotiation.conf
echo "LoadModule ratelimit_module modules/mod_ratelimit.so" > $CFG/00_mod_ratelimit.conf
echo "LoadModule reflector_module modules/mod_reflector.so" > $CFG/00_mod_reflector.conf
# htpasswd goes to %{_bindir}
ln -sf %{_bindir}/htpasswd $RPM_BUILD_ROOT%{_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
fi
+%triggerpostun base -- %{name} < 2.4.0
+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 base -- %{name} < 2.2.0
# change HTTPD_CONF to point to new location. *only* if it's the
# default config setting
%triggerpostun base -- %{name} < 2.4.0
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,
+ /^DefaultType/d
+ /^Include / s,^Include ,IncludeOptional ,
+ /^NameVirtualHost/d
+ /^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
%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,.*,,
+ /^SSLMutex/ s,^,#,
+ /^NameVirtualHost/d
' /etc/httpd/conf.d/40_mod_ssl.conf
%posttrans base
%module_scripts mod_log_debug
%module_scripts mod_log_forensic
%module_scripts mod_logio
+%module_scripts mod_lua
%module_scripts mod_mime
%module_scripts mod_mime_magic
%module_scripts mod_negotiation
%dir %attr(770,root,http) /var/run/httpd
%dir %attr(770,root,http) /var/cache/httpd
-/usr/lib/tmpfiles.d/%{name}.conf
+%{systemdtmpfilesdir}/%{name}.conf
%{systemdunitdir}/httpd.service
%config(noreplace) %verify(not md5 mtime size) /etc/systemd/system/httpd.service
%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(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_logio.conf
%attr(755,root,root) %{_libexecdir}/mod_logio.so
+%files mod_lua
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_lua.conf
+%attr(755,root,root) %{_libexecdir}/mod_lua.so
+
%files mod_mime
%defattr(644,root,root,755)
%attr(755,root,root) %{_libexecdir}/mod_mime.so
%files mod_proxy
%defattr(644,root,root,755)
+%attr(755,root,root) %{_sbindir}/fcgistarter
%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
+%attr(755,root,root) %{_libexecdir}/mod_proxy_ajp.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_balancer.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_connect.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_express.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_fcgi.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_fdpass.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_ftp.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_html.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_http.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_scgi.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy.so
+%{_mandir}/man8/fcgistarter.8*
%files mod_ratelimit
%defattr(644,root,root,755)