-# # TODO:
+# # TODO:
# - config examples for mod_*
# - --with-suexec-uidmin=500 or =1000 ?
# - check those autn modules inner deps
# this is internal macro, don't change to %%apache_modules_api
%define _apache_modules_api 20120211
-%define openssl_ver 0.9.8i
-%define apr_ver 1:1.4.6
+%define openssl_ver 1.0.1f
+%define apr_ver 1:1.5.0
%include /usr/lib/rpm/macros.perl
Summary: The most widely used Web server on the Internet
Summary(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
-Version: 2.4.4
-Release: 2
+Version: 2.4.17
+Release: 1
License: Apache v2.0
Group: Networking/Daemons/HTTP
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
-# Source0-md5: a2fed766e67c9681e0d9b86768f08286
+# Source0-md5: 5984049a2311de7173ba545643c450bb
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: %{name}.sysconfig
Source27: %{name}-mod_mime_magic.conf
Source28: %{name}-mod_cache.conf
Source29: %{name}-example.net.conf
-Source30: %{name}.tmpfiles
-Source31: %{name}.service
Patch0: %{name}-configdir_skip_backups.patch
Patch1: %{name}-layout.patch
Patch2: %{name}-suexec.patch
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 >= 38
Provides: apache(modules-api) = %{_apache_modules_api}
Provides: group(http)
Provides: user(http)
Obsoletes: apache-mod_optional_fn_import
Obsoletes: apache-mod_optional_hook_import
Conflicts: apache < 2.2.0
+# mod_wsgi >= 3.4 is required for apache 2.4
+Conflicts: apache-mod_wsgi < 3.4
Conflicts: logrotate < 3.7-4
# for the posttrans scriptlet, conflicts because in vserver environment rpm package is not installed.
Conflicts: rpm < 4.4.2-0.2
URL: http://httpd.apache.org/docs/2.4/mod/mod_authz_host.html
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-mod_authz_core = %{version}-%{release}
-# provides compatibility directives for 2.2-style access control
-Requires: apache(mod_access_compat) = %{version}-%{release}
Provides: apache(mod_authz_host) = %{version}-%{release}
# for apache < 2.2.0
Provides: apache(mod_access) = %{version}-%{release}
pliki, generowanie dynamicznych odpowiedzi, kontrola dostępu,
uwierzytelnianie i autoryzacja.
+%package mod_macro
+Summary: Provides macros within apache runtime configuration files
+Summary(pl.UTF-8): Makra wewnątrz plików konfiguracyjnych apache
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_macro.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_macro) = %{version}-%{release}
+
+%description mod_macro
+This module provides macros within apache runtime configuration files.
+These macros have parameters. They are expanded when used (parameters
+are substituted by their values given as an argument), and the result
+is processed normally.
+
+%description mod_macro -l pl.UTF-8
+Ten moduł umożliwia tworzenie makr wewnątrz plików konfiguracyjnych
+apache. Makra mogą mieć parametry. Makra są rozwijane w momencie
+użycia (argumenty makra są podstawiane za wartości parametrów) a wynik
+jest parsowany jak normalna konfiguracja.
+
%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ą
regularnych. Te zmienne środowiskowe mogą być używane przez inne
części serwera do podejmowania decyzji o podejmowanych akcjach.
-%package mod_slotmem_plain
+%package mod_slotmem
Summary: Slot-based shared memory provider
-Summary(pl.UTF-8): Moduł zapewniający pamięć dzieloną w oparciu o sloty
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_plain.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_shm.html
Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_slotmem) = %{version}-%{release}
Provides: apache(mod_slotmem_plain) = %{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."
-
-If the memory needs to be shared between threads and processes, a
-better provider would be mod_slotmem_shm.
-
-%description mod_slotmem_plain -l pl.UTF-8
-mod_slotmem_plain to moduł dostarczający pamięć, pozwalający na
-tworzenie i dostęp do segmentu zwykłej pamięci, w której zbiory danych
-są zorganizowane w "sloty".
-
-Jeśli pamięć musi być dzielona między wątki i procesy, lepszym
-rozwiązaniem będzie mod_slotmem_shm.
-
-%package mod_slotmem_shm
-Summary: Slot-based shared memory provider
-Summary(pl.UTF-8): Moduł zapewniający pamięć dzieloną w oparciu o sloty
-Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.4/mod/mod_slotmem_shm.html
-Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_slotmem_shm) = %{version}-%{release}
+Obsoletes: apache-mod_slotmem_plain
+Obsoletes: apache-mod_slotmem_shm
-%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."
+%description mod_slotmem
+Slot-based shared memory provider.
-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.
-
-%description mod_slotmem_shm -l pl.UTF-8
-mod_slotmem_plain to moduł dostarczający pamięć, pozwalający na
-tworzenie i dostęp do segmentu pamięci dzielonej, w której zbiory
-danych są zorganizowane w "sloty".
-
-Cała pamięć współdzielona jest czyszczona przy każdym restarcie. Same
-dane są zapisywane i odtwarzane z pliku o nazwie podawanej jako
-parametr przy wywołaniach tworzenia i podłączania.
-
-%package mod_socache_dbm
-Summary: DBM based shared object cache provider
-Summary(pl.UTF-8): Moduł zapewniający współdzieloną pamięć podręczną obiektów w oparciu o DBM
+%package mod_socache
+Summary: Shared object cache provider
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_dbm.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_shmcb.html
Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_socache) = %{version}-%{release}
Provides: apache(mod_socache_dbm) = %{version}-%{release}
-
-%description mod_socache_dbm
-mod_socache_dbm is a shared object cache provider which provides for
-creation and access to a cache backed by a DBM database.
-
-%description mod_socache_dbm -l pl.UTF-8
-mod_socache_dbm to moduł dostarczający współdzieloną pamięć podręczną
-obiektów, zapewniający tworzenie i dostęp do cache'a zapisywanego w
-bazie DBM.
-
-%package mod_socache_memcache
-Summary: Memcache based shared object cache provider
-Summary(pl.UTF-8): Moduł zapewniający współdzieloną pamięć podręczną obiektów w oparciu o memcache
-Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_memcache.html
-Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_socache_memcache) = %{version}-%{release}
-
-%description mod_socache_memcache
-mod_socache_memcache is a shared object cache provider which provides
-for creation and access to a cache backed by the memcached
-high-performance, distributed memory object caching system.
-
-%description mod_socache_memcache -l pl.UTF-8
-mod_socache_dbm to moduł dostarczający współdzieloną pamięć podręczną
-obiektów, zapewniający tworzenie i dostęp do cache'a zapisywanego w
-systemie memcached - wysoko wydajnym, ozproszonym systemie pamięci
-podręcznej obiektów.
-
-%package mod_socache_shmcb
-Summary: shmcb based shared object cache provider
-Summary(pl.UTF-8): Moduł zapewniający współdzieloną pamięć podręczną obiektów w oparciu o shmcb
-Group: Networking/Daemons/HTTP
-URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_shmcb.html
-Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_socache_shmcb) = %{version}-%{release}
+Obsoletes: apache-mod_socache_dbm
+Obsoletes: apache-mod_socache_memcache
+Obsoletes: apache-mod_socache_shmcb
-%description mod_socache_shmcb
-mod_socache_shmcb is a shared object cache provider which provides for
-creation and access to a cache backed by a high-performance cyclic
-buffer inside a shared memory segment.
-
-%description mod_socache_shmcb -l pl.UTF-8
-mod_socache_dbm to moduł dostarczający współdzieloną pamięć podręczną
-obiektów, zapewniający tworzenie i dostęp do cache'a zapisywanego w
-wysoko wydajnym buforze cyklicznym wewnątrz segmentu pamięci
-dzielonej.
+%description mod_socache
+Shared object cache provider.
%package mod_speling
Summary: Attempts to correct mistaken URLs by ignoring capitalization and by allowing up to one misspelling
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_ssl.html
Requires: %{name}-base = %{version}-%{release}
-Requires: %{name}-mod_socache_shmcb = %{version}-%{release}
+Suggests: apache(mod_socache_shmcb) = %{version}-%{release}
+Suggests: apache(mod_socache_dbm) = %{version}-%{release}
Requires: openssl >= %{openssl_ver}
Requires: apr-util-dbm-db
Provides: apache(mod_ssl) = 1:%{version}-%{release}
%patch18 -p1
%patch19 -p1
%patch20 -p1
-# ?
-#%patch23 -p1
+%patch23 -p1
# ?
#%patch25 -p1
exit 1
fi
-# fix libdir (at least in PLD layout; no need to care about other ones)
+# fix libdir (at least in TLD layout; no need to care about other ones)
sed -i -e 's,/lib$,/%{_lib},' config.layout
%build
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,systemd/system} \
+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,vhosts.d} \
- $RPM_BUILD_ROOT%{_datadir}/{cgi-bin,vhosts} \
- $RPM_BUILD_ROOT%{systemdtmpfilesdir} \
- $RPM_BUILD_ROOT%{systemdunitdir}
+ $RPM_BUILD_ROOT%{_datadir}/{cgi-bin,vhosts}
%{__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
ln -s %{_localstatedir}/run/httpd $RPM_BUILD_ROOT%{_sysconfdir}/run
ln -s %{_var}/log/httpd $RPM_BUILD_ROOT%{_sysconfdir}/logs
cp -a %{SOURCE22} $CFG/20_languages.conf
cp -a %{SOURCE29} $RPM_BUILD_ROOT%{_sysconfdir}/vhosts.d/example.net.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 alias_module modules/mod_alias.so" > $CFG/00_mod_alias.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 macro_module modules/mod_macro.so" > $CFG/00_mod_macro.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
echo "LoadModule session_dbd_module modules/mod_session_dbd.so" > $CFG/00_mod_session_dbd.conf
echo "LoadModule session_module modules/mod_session.so" > $CFG/00_mod_session.conf
echo "LoadModule setenvif_module modules/mod_setenvif.so" > $CFG/00_mod_setenvif.conf
-echo "LoadModule slotmem_plain_module modules/mod_slotmem_plain.so" > $CFG/00_mod_slotmem_plain.conf
-echo "LoadModule slotmem_shm_module modules/mod_slotmem_shm.so" > $CFG/00_mod_slotmem_shm.conf
-echo "LoadModule socache_dbm_module modules/mod_socache_dbm.so" > $CFG/00_mod_socache_dbm.conf
-echo "LoadModule socache_memcache_module modules/mod_socache_memcache.so" > $CFG/00_mod_socache_memcache.conf
-echo "LoadModule socache_shmcb_module modules/mod_socache_shmcb.so" > $CFG/00_mod_socache_shmcb.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 speling_module modules/mod_speling.so" > $CFG/00_mod_speling.conf
echo "LoadModule substitute_module modules/mod_substitute.so" > $CFG/00_mod_substitute.conf
echo "LoadModule unique_id_module modules/mod_unique_id.so" > $CFG/00_mod_unique_id.conf
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 [ -n "$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
/sbin/chkconfig --add httpd
umask 137
touch /var/log/httpd/{access,error,agent,referer}_log
-%systemd_post httpd.service
%preun base
if [ "$1" = "0" ]; then
%service httpd stop
/sbin/chkconfig --del httpd
fi
-%systemd_preun httpd.service
%postun base
if [ "$1" = "0" ]; then
%userremove http
%groupremove http
fi
-%systemd_reload
%triggerpostun base -- %{name} < 2.0.50-6.9
%banner %{name}-2.0.50-6 << EOF
if [ -z "$HTTPD_CONF" ]; then
echo 'HTTPD_CONF="/etc/httpd/apache.conf"' >> /etc/sysconfig/httpd
fi
-%systemd_trigger httpd.service
%triggerpostun base -- %{name} < 2.4.0
cp -f /etc/httpd/apache.conf{,.rpmsave}
# restart webserver at the end of transaction
%service httpd restart
-%systemd_service_restart httpd.service
# macro called at module post scriptlet
%define module_post \
if [ "$1" = "1" ]; then \
%service -q httpd restart \
- %systemd_service_restart httpd.service \
fi
# macro called at module postun scriptlet
%define module_postun \
if [ "$1" = "0" ]; then \
%service -q httpd restart \
- %systemd_service_restart httpd.service \
fi
# it's sooo annoying to write them
%module_scripts mod_log_forensic
%module_scripts mod_logio
%module_scripts mod_lua
+%module_scripts mod_macro
%module_scripts mod_mime
%module_scripts mod_mime_magic
%module_scripts mod_negotiation
%module_scripts mod_session_crypto
%module_scripts mod_session_dbd
%module_scripts mod_setenvif
-%module_scripts mod_slotmem_plain
-%module_scripts mod_slotmem_shm
-%module_scripts mod_socache_dbm
-%module_scripts mod_socache_memcache
-%module_scripts mod_socache_shmcb
+%module_scripts mod_slotmem
+%module_scripts mod_socache
%module_scripts mod_speling
%module_scripts mod_ssl
%module_scripts mod_status
%post cgi_test
if [ "$1" = "1" ]; then
%service -q httpd reload
- %systemd_service_reload httpd.service
fi
%postun cgi_test
if [ "$1" = "0" ]; then
%service -q httpd reload
- %systemd_service_reload httpd.service
fi
%post errordocs
if [ "$1" = "1" ]; then
%service -q httpd reload
- %systemd_service_reload httpd.service
fi
%postun errordocs
if [ "$1" = "0" ]; then
%service -q httpd reload
- %systemd_service_reload httpd.service
fi
%files
%dir %attr(770,root,http) /var/run/httpd
%dir %attr(770,root,http) /var/cache/httpd
-%{systemdtmpfilesdir}/%{name}.conf
-%{systemdunitdir}/httpd.service
-%config(noreplace) %verify(not md5 mtime size) /etc/systemd/system/httpd.service
-
%{_mandir}/man8/httpd.8*
%attr(2751,root,logs) %dir /var/log/httpd
%attr(755,root,root) %{_sbindir}/htcacheclean
%attr(755,root,root) %{_libexecdir}/mod_cache.so
%attr(755,root,root) %{_libexecdir}/mod_cache_disk.so
+%attr(755,root,root) %{_libexecdir}/mod_cache_socache.so
%{_mandir}/man8/htcacheclean.8*
%files mod_case_filter
%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_macro
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_macro.conf
+%attr(755,root,root) %{_libexecdir}/mod_macro.so
+
%files mod_mime
%defattr(644,root,root,755)
%attr(755,root,root) %{_libexecdir}/mod_mime.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_wstunnel.so
%attr(755,root,root) %{_libexecdir}/mod_proxy.so
%{_mandir}/man8/fcgistarter.8*
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_setenvif.conf
%attr(755,root,root) %{_libexecdir}/mod_setenvif.so
-%files mod_slotmem_plain
+%files mod_slotmem
%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_slotmem_plain.conf
%attr(755,root,root) %{_libexecdir}/mod_slotmem_plain.so
-
-%files mod_slotmem_shm
-%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_slotmem_shm.conf
%attr(755,root,root) %{_libexecdir}/mod_slotmem_shm.so
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_slotmem.conf
-%files mod_socache_dbm
+%files mod_socache
%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache_dbm.conf
%attr(755,root,root) %{_libexecdir}/mod_socache_dbm.so
-
-%files mod_socache_memcache
-%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache_memcache.conf
-%attr(755,root,root) %{_libexecdir}/mod_socache_memcache.so
-
-%files mod_socache_shmcb
-%defattr(644,root,root,755)
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache_shmcb.conf
%attr(755,root,root) %{_libexecdir}/mod_socache_shmcb.so
+%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_speling
%defattr(644,root,root,755)