# 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 1.0.1e
+%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(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
-Version: 2.2.19
-Release: 3
+Version: 2.2.34
+Release: 1
License: Apache v2.0
Group: Networking/Daemons/HTTP
-Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
-# Source0-md5: e9f5453e1e4d7aeb0e7ec7184c6784b5
+Source0: https://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
+# Source0-md5: fc33e64a9d4bca2f7ef7023189cb5ee6
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
Patch3: %{name}-branding.patch
Patch4: %{name}-apr.patch
+Patch5: %{name}-bug-49058.patch
# what about this? it isn't applied...
Patch6: httpd-2.0.40-xfsz.patch
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-39311-preforkonly.patch
Patch12: httpd-2.0.46-sslmutex.patch
+Patch13: %{name}-bug-50002.patch
Patch14: httpd-2.0.48-corelimit.patch
Patch15: httpd-2.0.48-debuglog.patch
Patch18: %{name}-v6only-ENOPROTOOPT.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
+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: %{name}-bug-39653.patch
+Patch31: httpd-dummy-connection-result.patch
URL: http://httpd.apache.org/
-BuildRequires: apr-devel >= 1:1.4.5
+BuildRequires: apr-devel >= %{apr_ver}
BuildRequires: apr-util-devel >= 1:1.3.10-2
-BuildRequires: autoconf
+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_ver}}
BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpm-build >= 4.4.0
BuildRequires: rpm-perlprov >= 4.1-13
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpmbuild(macros) >= 1.647
BuildRequires: sed >= 4.0
BuildRequires: zlib-devel
Requires: %{name}-errordocs = %{version}-%{release}
Requires: %{name}-mod_alias = %{version}-%{release}
Requires: %{name}-mod_auth = %{version}-%{release}
+Requires: %{name}-mod_authz_default = %{version}-%{release}
Requires: %{name}-mod_env = %{version}-%{release}
Requires: %{name}-mod_log_config = %{version}-%{release}
Requires: %{name}-mod_mime = %{version}-%{release}
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 >= 1:1.4.5
+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)
URL: http://httpd.apache.org/docs/2.2/mod/mod_headers.html
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_headers) = %{version}-%{release}
+Provides: webserver(headers)
%description mod_headers
This package contains mod_headers module. The module allows for the
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
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}
+%requires_ge_to openssl openssl-devel
%if "%{pld_release}" != "ac"
Requires: apr-util-dbm-db
%endif
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch12 -p1
+%patch11 -p1
+%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch18 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
-%patch28 -p1
+%{?with_itk:%patch28 -p1}
%patch29 -p1
+%patch30 -p1
+%patch31 -p1
# using system apr, apr-util and pcre
%{__rm} -r srclib/{apr,apr-util,pcre}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig} \
+install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,systemd/system} \
$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%{_datadir}/{cgi-bin,vhosts} \
+ $RPM_BUILD_ROOT%{systemdtmpfilesdir} \
+ $RPM_BUILD_ROOT%{systemdunitdir}
# prefork is default one
%{__make} -C buildmpm-prefork install \
DESTDIR=$RPM_BUILD_ROOT
+mpm=prefork
+sed -e "s|@EXEC@|%{_sbindir}/httpd.${mpm}|g;s|@NAME@|${mpm}|g" < %{SOURCE31} \
+ > $RPM_BUILD_ROOT%{systemdunitdir}/httpd-${mpm}.service
# install other mpm-s
for mpm in worker %{?with_event:event} %{?with_itk:itk}; do
install buildmpm-${mpm}/httpd.${mpm} $RPM_BUILD_ROOT%{_sbindir}/httpd.${mpm}
+ sed -e "s|@EXEC@|%{_sbindir}/httpd.${mpm}|g;s|@NAME@|${mpm}|g" < %{SOURCE31} \
+ > $RPM_BUILD_ROOT%{systemdunitdir}/httpd-${mpm}.service
done
ln -s httpd.prefork $RPM_BUILD_ROOT%{_sbindir}/httpd
+ln -s %{systemdunitdir}/httpd-prefork.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
+cp -p %{SOURCE30} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{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
echo "LoadModule authn_dbm_module modules/mod_authn_dbm.so" > $CFG/00_mod_authn_dbm.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
EOF
+%triggerpostun base -- %{name} < 2.2.22-2
+. /etc/sysconfig/httpd
+if [ -z "$HTTPD_CONF" ]; then
+ echo 'HTTPD_CONF="/etc/httpd/apache.conf"' >> /etc/sysconfig/httpd
+fi
+%systemd_trigger httpd.service
+
%triggerpostun mod_ssl -- %{name}-mod_ssl < 1:2.2.0-3.1
cp -f /etc/httpd/conf.d/40_mod_ssl.conf{,.rpmsave}
sed -i -e '
# 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
%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
%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/*
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/httpd
%dir %{_libexecdir}
%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}/httxt2dbm
%attr(755,root,root) %{_libexecdir}/mod_rewrite.so
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_rewrite.conf
+%{_mandir}/man1/httxt2dbm.1*
%files mod_setenvif
%defattr(644,root,root,755)