-# # TODO:
+# TODO:
# - config examples for mod_*
# - --with-suexec-uidmin=500 or =1000 ?
-# - check those autn modules inner deps
+# - check those authn 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 *_core
-# is chosen?
+# 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 *_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
# - FYI: http://wiki.apache.org/httpd/InternalDummyConnection
+# - consider modules: mod_authnz_fcgi, mod_socache_dc (distcache bcond)
# Conditional build:
%bcond_without ssl # build without SSL support
# this is internal macro, don't change to %%apache_modules_api
%define _apache_modules_api 20120211
-%define openssl_ver 1.0.2
-%define apr_ver 1:1.4.6
+%define openssl_ver 1.1.1
+%define apr_ver 1:1.7.0
+%define apr_util_ver 1:1.6.1
-%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
Summary(ru.UTF-8): Самый популярный веб-сервер
Summary(tr.UTF-8): Lider WWW tarayıcı
Name: apache
-Version: 2.4.18
-Release: 1
+Version: 2.4.55
+Release: 2
License: Apache v2.0
Group: Networking/Daemons/HTTP
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
-# Source0-md5: 3690b3cc991b7dfd22aea9e1264a11b9
+# Source0-md5: b6a8b9d8741db43cf5b4dd8e9bdb0ce7
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: %{name}.sysconfig
Source30: %{name}.tmpfiles
Source31: %{name}.service
Source32: %{name}-mod_http2.conf
+Source33: %{name}-mod_md.conf
Patch0: %{name}-configdir_skip_backups.patch
Patch1: %{name}-layout.patch
Patch2: %{name}-suexec.patch
Patch3: %{name}-branding.patch
Patch4: %{name}-apr.patch
-
Patch7: %{name}-syslibs.patch
+Patch8: http2-500.patch
Patch10: httpd-2.0.46-dav401dest.patch
Patch14: httpd-2.0.48-corelimit.patch
Patch25: httpd-2.2.x-mod_ssl-sessioncaching.patch
Patch26: %{name}-mod_vhost_alias_docroot.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: apr-util-devel >= %{apr_util_ver}
BuildRequires: autoconf >= 2.50
BuildRequires: automake
+BuildRequires: curl-devel
%{?with_distcache:BuildRequires: distcache-devel}
+BuildRequires: jansson-devel
+BuildRequires: libbrotli-devel >= 0.6.0
BuildRequires: libtool >= 2:1.5
-BuildRequires: lua51-devel
-%{?with_http2:BuildRequires: nghttp2-devel >= 1.2.1}
+BuildRequires: libxml2-devel >= 2
+BuildRequires: lua53-devel >= 5.3
+%{?with_http2:BuildRequires: nghttp2-devel >= 1.15.0}
%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
%{?with_ssl:BuildRequires: openssl-devel >= %{openssl_ver}}
%{?with_ssl:BuildRequires: openssl-tools >= %{openssl_ver}}
BuildRequires: rpm-perlprov >= 4.1-13
BuildRequires: rpmbuild(macros) >= 1.647
BuildRequires: sed >= 4.0
+BuildRequires: systemd-devel
BuildRequires: zlib-devel
Requires: %{name}-errordocs = %{version}-%{release}
Requires: %{name}-mod_alias = %{version}-%{release}
Requires: %{name}-mod_deflate = %{version}-%{release}
Requires: %{name}-mod_dir = %{version}-%{release}
Requires: %{name}-mod_env = %{version}-%{release}
+Requires: %{name}-mod_filter = %{version}-%{release}
+Requires: %{name}-mod_headers = %{version}-%{release}
Requires: %{name}-mod_log_config = %{version}-%{release}
Requires: %{name}-mod_logio = %{version}-%{release}
Requires: %{name}-mod_mime = %{version}-%{release}
Requires: %{name}-mod_mime_magic = %{version}-%{release}
Requires: %{name}-mod_negotiation = %{version}-%{release}
+Requires: %{name}-mod_reqtimeout = %{version}-%{release}
+Requires: %{name}-mod_rewrite = %{version}-%{release}
Requires: %{name}-mod_setenvif = %{version}-%{release}
Requires: %{name}-mod_speling = %{version}-%{release}
Requires: %{name}-mod_status = %{version}-%{release}
Requires(post,preun,postun): systemd-units >= 38
Requires: /sbin/chkconfig
Requires: apr >= %{apr_ver}
+Requires: apr-util >= %{apr_util_ver}
Requires: psmisc >= 20.1
Requires: rc-scripts >= 0.4.1.23
Requires: sed >= 4.0
Provides: group(http)
Provides: user(http)
Provides: webserver = apache
-Obsoletes: apache-extra
-Obsoletes: apache6
-# packaged by mistake. really sample code
-Obsoletes: apache-mod_optional_fn_export
-Obsoletes: apache-mod_optional_fn_import
-Obsoletes: apache-mod_optional_fn_import
-Obsoletes: apache-mod_optional_hook_import
+Obsoletes: apache-extra < 1.3.1
+Obsoletes: apache6 < 1.3.4
Conflicts: apache < 2.2.0
# mod_wsgi >= 3.4 is required for apache 2.4
Conflicts: apache-mod_wsgi < 3.4
Group: Documentation
Requires: %{name}-base = %{version}-%{release}
Obsoletes: indexhtml
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description index
Apache index.html* files.
Requires: %{name}-mod_dir = %{version}-%{release}
Requires: %{name}-mod_negotiation = %{version}-%{release}
Requires: %{name}-mod_setenvif = %{version}-%{release}
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description doc
Apache manual.
Requires: %{name}-mod_authz_host = %{version}-%{release}
Requires: %{name}-mod_include = %{version}-%{release}
Requires: %{name}-mod_negotiation = %{version}-%{release}
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description errordocs
Multi-language error messages.
Summary(pt_BR.UTF-8): Arquivos de inclusão do Apache para desenvolvimento de módulos
Summary(ru.UTF-8): Средства разработки модулей для веб-сервера Apache
Group: Networking/Utilities
-Requires: apr-util-devel >= 1:1.2
+Requires: apr-util-devel >= %{apr_util_ver}
Requires: libtool
-Obsoletes: apache-apxs
-Obsoletes: apache-static
+Obsoletes: apache-apxs < 2.2.6-3
+Obsoletes: apache-static < 2.0.47-1
%description devel
The apache-devel package contains header files for Apache.
Provides: apache(mod_auth_digest) = %{version}-%{release}
%description mod_auth_digest
-This module implements HTTP Digest Authentication. However, it has not
-been extensively tested and is therefore marked experimental.
+This module implements HTTP Digest Authentication.
%description mod_auth_digest -l pl.UTF-8
-Ten moduł implementuje uwierzytelnienie HTTP Digest. Nie został on
-jednak zbyt obszernie przetestowany, więc jest oznaczony jako
-eksperymentalny.
+Ten moduł implementuje uwierzytelnienie HTTP Digest.
%package mod_auth_form
Summary: Form authentication
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 < %{version}-%{release}
%description mod_authn_core
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-mod_authn_core = %{version}-%{release}
Requires: %{name}-mod_ldap = %{version}-%{release}
-Requires: apr-util-ldap
+Requires: apr-util-ldap >= %{apr_util_ver}
Provides: apache(mod_authnz_ldap) = %{version}-%{release}
# compat
Provides: apache(mod_auth_ldap) = %{version}-%{release}
%package mod_autoindex
Summary: Apache module - display index of files
-Summary(pl.UTF-8): Moduł apache do wyświetlania indeksu plików
+Summary(pl.UTF-8): Moduł Apache'a do wyświetlania indeksu plików
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/en/mod/mod_autoindex.html
Requires: %{name}-base = %{version}-%{release}
%description mod_autoindex -l pl.UTF-8
Ten pakiet dostarcza moduł autoindex, który generuje indeks plików.
+%package mod_brotli
+Summary: Apache module: compress content via Brotli before it is delivered to the client
+Summary(pl.UTF-8): Moduł Apache'a kompresujący treść przy użyciu formatu Brotli przed wysłaniem do klienta
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_brotli.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: libbrotli >= 0.6.0
+Provides: apache(mod_brotli) = %{version}-%{release}
+
+%description mod_brotli
+The mod_brotli module provides the BROTLI_COMPRESS output filter that
+allows output from your server to be compressed using the brotli
+compression format before being sent to the client over the network.
+
+%description mod_brotli -l pl.UTF-8
+Moduł mod_brotli udostępnia filtr wyjściowy BROTLI_COMPRESS,
+pozwalający na kompresowanie wyjścia z serwera przy użyciu formatu
+kompresji brotli przed wysłaniem przez sieć do klienta.
+
%package mod_bucketeer
-Summary: buckets manipulation filter
+Summary: Buckets manipulation filter
Summary(pl.UTF-8): Dzielenie kubełków po znalezieniu znaku sterującego
Group: Networking/Daemons/HTTP
Requires: %{name}-base = %{version}-%{release}
This module provides a small subset of configuration mechanisms
implemented by Russian Apache and its associated mod_charset.
-This is an experimental module and should be used with care.
-
%description mod_charset_lite -l pl.UTF-8
Translacja lub przekodowywanie znaków.
Ten moduł udostępnia niewielki podzbiór mechanizmów konfiguracyjnych
zaimplementowanych przez Russian Apache i powiązany z nim mod_charset.
-Jest to moduł eksperymentalny i należy używać go z uwagą.
-
%package mod_data
Summary: Convert response body into an RFC2397 data URL
Summary(pl.UTF-8): Konwersja ciała odpowiedzi do URL-a danych RFC2397
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/en/mod/mod_dav.html
Requires: %{name}-base = %{version}-%{release}
-Requires: apr-util-dbm-db
+Requires: apr-util-dbm-db >= %{apr_util_ver}
Provides: apache(mod_dav) = %{version}-%{release}
%description mod_dav
URL: http://httpd.apache.org/docs/2.4/mod/mod_file_cache.html
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_file_cache) = %{version}-%{release}
-Obsoletes: apache-mmap_static
+Obsoletes: apache-mod_mmap_static < 2
%description mod_file_cache
Caches a static list of files in memory.
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_http2.html
Requires: %{name}-base = %{version}-%{release}
+Requires: nghttp2-libs >= 1.15.0
Provides: apache(mod_http2) = %{version}-%{release}
%description mod_http2
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_imagemap) = %{version}-%{release}
Provides: apache-mod_imap
-Obsoletes: apache-mod_imap
+Obsoletes: apache-mod_imap < 2.2.0-1
%description mod_imagemap
This module processes .map files, thereby replacing the functionality
użycia (argumenty makra są podstawiane za wartości parametrów), a
wynik jest przetwarzany jak normalna konfiguracja.
+%package mod_md
+Summary: Managing certificate provisioning via the ACME protocol
+Summary(pl.UTF-8): Zarządzanie certyfikatami przez protokół ACME
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_macro.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: apache(mod_watchdog) = %{version}-%{release}
+Provides: apache(mod_md) = %{version}-%{release}
+
+%description mod_md
+This module manages common properties of domains for one or more
+virtual hosts. Specifically it can use the ACME protocol to automate
+certificate provisioning. These will be configured for managed domains
+and their virtual hosts automatically. This includes renewal of
+certificates before they expire.
+
+%description mod_md -l pl.UTF-8
+Moduł zarządzający właściwościami domen dla jednego lub więcej hostów
+wirtualnych. Konkretnie może używać protokołu ACME do automatyzacji
+instalacji certyfikatów. Certyfikaty będą automatycznie aktywowane dla
+zarządzanych domen i hostów wirtualnych w tych domenach. Instalacji
+oraz odnowień certyfikatów przed wygaśnięciem.
+
%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_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
URL: http://httpd.apache.org/docs/2.4/mod/mod_session_crypto.html
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-mod_session = %{version}-%{release}
-Requires: apr-util-crypto-openssl
+Requires: apr-util-crypto-openssl >= %{apr_util_ver}
Provides: apache(mod_session_crypto) = %{version}-%{release}
%description mod_session_crypto
systemie memcached - wysoko wydajnym, ozproszonym systemie pamięci
podręcznej obiektów.
+%package mod_socache_redis
+Summary: Redis based shared object cache provider
+Summary(pl.UTF-8): Moduł zapewniający współdzieloną pamięć podręczną obiektów w oparciu o Redis
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_redis.html
+Requires: %{name}-base = %{version}-%{release}
+Provides: apache(mod_socache_redis) = %{version}-%{release}
+
+%description mod_socache_redis
+mod_socache_redis is a shared object cache provider which provides
+for creation and access to a cache backed by the redis
+high-performance, distributed memory object caching system.
+
+%description mod_socache_redis -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 redis - wysoko wydajnym, rozproszonym 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
URL: http://httpd.apache.org/docs/2.4/mod/mod_ssl.html
Requires: %{name}-base = %{version}-%{release}
Requires: %{name}-mod_socache_shmcb = %{version}-%{release}
-Requires: apr-util-dbm-db
+Requires: apr-util-dbm-db >= %{apr_util_ver}
Requires: openssl >= %{openssl_ver}
Provides: apache(mod_ssl) = 1:%{version}-%{release}
Group: Networking/Utilities
Requires: %{name}-base = %{version}-%{release}
Requires: filesystem >= 2.0-1
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description cgi_test
Two cgi test/demo programs: test-cgi and print-env.
%patch4 -p1
%patch7 -p1
+%patch8 -p1
%patch10 -p1
# ?
#%patch26 -p1
%patch29 -p1
-%patch30 -p1
# sanity check
MODULES_API=`awk '/#define MODULE_MAGIC_NUMBER_MAJOR/ {print $3}' include/ap_mmn.h`
--enable-auth-dbm \
--enable-authn-dbd \
--enable-authn-alias \
+ %{?with_ldap:--enable-authnz-ldap} \
--enable-authz-dbm \
--enable-authz-owner \
- %{?with_ldap:--enable-authnz-ldap} \
--enable-auth-digest \
- --enable-file-cache \
+ %{?with_bucketeer:--enable-bucketeer} \
--enable-cache \
--enable-disk-cache \
+ --enable-file-cache \
--enable-mem-cache \
- --enable-dbd \
- %{?with_bucketeer:--enable-bucketeer} \
- --enable-dumpio \
- --enable-echo \
+ --enable-cern-meta \
+ --enable-cgi \
+ --enable-cgid \
--enable-charset-lite \
+ --enable-dbd \
--enable-deflate \
- %{?with_ldap:--enable-ldap} \
- --enable-ext-filter \
+ --enable-dumpio \
--enable-case-filter \
--enable-case-filter-in \
- --enable-log-forensic \
- --enable-logio \
- --enable-lua \
- --with-z=%{_prefix} \
- --enable-mime-magic \
- --enable-cern-meta \
+ --enable-dav \
+ --enable-dav-fs \
+ --enable-dav-lock \
+ --enable-echo \
+ --enable-ext-filter \
--enable-expires \
--enable-headers \
+ --enable-http \
%{__enable_disable http2} \
--enable-ident \
- --enable-usertrack \
- --enable-unique-id \
+ --enable-imagemap \
+ --enable-info \
+ %{?with_ldap:--enable-ldap} \
+ --enable-log-forensic \
+ --enable-logio \
+ --enable-lua \
+ --enable-mime-magic \
+ --enable-mpms-shared=all \
+%ifarch %{ix86}
+%ifnarch i386 i486
+ --enable-nonportable-atomics=yes \
+%endif
+%endif
--enable-proxy \
--enable-proxy-connect \
--enable-proxy-ftp \
--enable-proxy-http \
+ --enable-proxy-http2 \
--enable-proxy-ajp \
--enable-proxy-balancer \
+ --enable-proxy-fdpass \
+ --enable-rewrite \
+ --enable-so \
+ --enable-speling \
%{?with_ssl:--enable-ssl %{?with_distcache:--enable-distcache}} \
- --enable-http \
- --enable-dav \
- --enable-info \
--enable-suexec \
- --enable-cgi \
- --enable-cgid \
- --enable-dav-fs \
- --enable-dav-lock \
+ --enable-systemd \
+ --enable-unique-id \
+ --enable-usertrack \
--enable-vhost-alias \
- --enable-imagemap \
- --enable-speling \
- --enable-rewrite \
- --enable-so \
+ --with-apr=%{_bindir}/apr-1-config \
+ --with-apr-util=%{_bindir}/apu-1-config \
+ --with-lua=/usr \
+ --with-pcre \
--with-program-name=httpd \
- --enable-mpms-shared=all \
-%ifarch %{ix86}
-%ifnarch i386 i486
- --enable-nonportable-atomics=yes \
-%endif
-%endif
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-caller=http \
--with-suexec-docroot=%{_datadir} \
--with-suexec-uidmin=500 \
--with-suexec-gidmin=500 \
--with-suexec-umask=077 \
- --with-apr=%{_bindir}/apr-1-config \
- --with-apr-util=%{_bindir}/apu-1-config \
- --with-pcre
+ --with-z=%{_prefix}
%{__make}
rm -rf $RPM_BUILD_ROOT
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%{_var}/lib/httpd/md \
$RPM_BUILD_ROOT%{_sysconfdir}/{webapps.d,conf.d,vhosts.d} \
$RPM_BUILD_ROOT%{_datadir}/{cgi-bin,vhosts} \
$RPM_BUILD_ROOT%{systemdtmpfilesdir} \
%{__sed} -i -re '/^(CC|CPP|CXX)/ s/ccache //' $RPM_BUILD_ROOT%{_libdir}/%{name}/build/config_vars.mk
cp -p %{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
+ln -sr $RPM_BUILD_ROOT%{systemdunitdir}/httpd.service $RPM_BUILD_ROOT/etc/systemd/system/httpd.service
+ln -sr $RPM_BUILD_ROOT%{_libexecdir} $RPM_BUILD_ROOT%{_sysconfdir}/modules
+ln -sr $RPM_BUILD_ROOT%{_localstatedir}/run/httpd $RPM_BUILD_ROOT%{_sysconfdir}/run
+ln -sr $RPM_BUILD_ROOT%{_var}/log/httpd $RPM_BUILD_ROOT%{_sysconfdir}/logs
+ln -sr $RPM_BUILD_ROOT%{_var}/lib/httpd/md $RPM_BUILD_ROOT%{_sysconfdir}/md
+
# we have own apache.conf
rm $RPM_BUILD_ROOT%{_sysconfdir}/httpd.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 %{SOURCE33} $CFG/60_mod_md.conf
+
cp -a %{SOURCE29} $RPM_BUILD_ROOT%{_sysconfdir}/vhosts.d/example.net.conf
cp -p %{SOURCE30} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
-for module in access_compat actions alias allowmethods asis auth_basic \
- auth_digest auth_form authn_anon authn_core authn_dbd authn_dbm \
- authn_file authn_socache authnz_ldap authz_core authz_dbd \
- authz_dbm authz_groupfile authz_owner authz_user buffer \
- case_filter_in case_filter cern_meta cgi charset_lite \
- data dbd dialup dumpio \
- echo env expires ext_filter \
- file_cache filter \
- headers heartbeat heartmonitor \
- ident imagemap include \
- lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic \
- lbmethod_heartbeat ldap log_debug log_forensic logio lua \
- macro negotiation \
- ratelimit reflector remoteip reqtimeout request rewrite \
- sed session_cookie session_crypto session_dbd session setenvif \
- slotmem_plain slotmem_shm socache_dbm socache_memcache \
- socache_shmcb speling substitute \
- unique_id usertrack version watchdog xml2enc; do
-
-echo "LoadModule ${module}_module modules/mod_$module.so" > $CFG/00_mod_$module.conf
-
+modules="
+ %{?with_bucketeer:bucketeer}
+ access_compat
+ actions
+ alias
+ allowmethods
+ asis
+ auth_basic
+ auth_digest
+ auth_form
+ authn_anon
+ authn_core
+ authn_dbd
+ authn_dbm
+ authn_file
+ authn_socache
+ authnz_ldap
+ authz_core
+ authz_dbd
+ authz_dbm
+ authz_groupfile
+ authz_owner
+ authz_user
+ brotli
+ buffer
+ case_filter
+ case_filter_in
+ cern_meta
+ cgi
+ charset_lite
+ data
+ dbd
+ dialup
+ dumpio
+ echo
+ env
+ expires
+ ext_filter
+ file_cache
+ filter
+ headers
+ heartbeat
+ heartmonitor
+ ident
+ imagemap
+ include
+ lbmethod_bybusyness
+ lbmethod_byrequests
+ lbmethod_bytraffic
+ lbmethod_heartbeat
+ ldap
+ log_debug
+ log_forensic
+ logio
+ lua
+ macro
+ md
+ negotiation
+ ratelimit
+ reflector
+ remoteip
+ reqtimeout
+ request
+ rewrite
+ sed
+ session
+ session_cookie
+ session_crypto
+ session_dbd
+ setenvif
+ slotmem_plain
+ slotmem_shm
+ socache_dbm
+ socache_memcache
+ socache_redis
+ socache_shmcb
+ speling
+ substitute
+ systemd
+ unique_id
+ usertrack
+ version
+ watchdog
+ xml2enc
+"
+
+LoadModule() {
+ local index=$1 module=$2 conffile
+ conffile=${3:-$module}
+ echo "LoadModule ${module}_module modules/mod_$module.so" > $CFG/${index}_mod_${conffile}.conf
+}
+
+for module in $modules; do
+ LoadModule 00 $module
done
-%if %{with bucketeer}
-echo "LoadModule bucketeer_module modules/mod_bucketeer.so" > $CFG/00_mod_bucketeer.conf
-%endif
-
# anything in style dir not ending with .css is trash
%{__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
cd $cur
# htpasswd goes to %{_bindir}
-ln -sf %{_bindir}/htpasswd $RPM_BUILD_ROOT%{_sbindir}
+ln -sfr $RPM_BUILD_ROOT%{_bindir}/htpasswd $RPM_BUILD_ROOT%{_sbindir}
mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/apxs
%useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
%pretrans base
-# handle $HTTPD_MPM from sysconfig
+# upgrade to 2.4: handle $HTTPD_MPM from sysconfig
if [ -f /etc/sysconfig/httpd ]; then
MPM=$(grep ^HTTPD_MPM /etc/sysconfig/httpd | sed 's,HTTPD_MPM=,,;s,",,g')
if [ -n "$MPM" ]; then
fi
%systemd_reload
-%triggerpostun base -- %{name}-base < 2.2.22-2
+%triggerpostun base -- %{name}-base < 2.4.0
+# < 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 base -- %{name}-base < 2.4.0
+# < 2.4.0
cp -f /etc/httpd/apache.conf{,.rpmsave}
sed -i -e '
/^DefaultType/d
%module_scripts mod_authz_owner
%module_scripts mod_authz_user
%module_scripts mod_autoindex
+%module_scripts mod_brotli
%module_scripts mod_bucketeer
%module_scripts mod_buffer
%module_scripts mod_cache
%module_scripts mod_logio
%module_scripts mod_lua
%module_scripts mod_macro
+%module_scripts mod_md
%module_scripts mod_mime
%module_scripts mod_mime_magic
%module_scripts mod_negotiation
%module_scripts mod_slotmem_shm
%module_scripts mod_socache_dbm
%module_scripts mod_socache_memcache
+%module_scripts mod_socache_redis
%module_scripts mod_socache_shmcb
%module_scripts mod_speling
%module_scripts mod_ssl
%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) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_systemd.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(755,root,root) %{_sbindir}/checkgid
%attr(755,root,root) %{_sbindir}/httpd
+%dir %attr(710,root,http) /var/lib/httpd
%dir %attr(770,root,http) /var/run/httpd
%dir %attr(770,root,http) /var/cache/httpd
%dir %{_datadir}/cgi-bin
%dir %{_datadir}/html
%dir %{_datadir}/vhosts
-# do not adapter here, %{_datadir} != /usr/share here
+# do not adapter here, %%{_datadir} != /usr/share here
%{_datadir}/icons
%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_systemd.so
%attr(755,root,root) %{_libexecdir}/mod_unixd.so
%files doc -f manual.files
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_autoindex.conf
%attr(755,root,root) %{_libexecdir}/mod_autoindex.so
+%files mod_brotli
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_brotli.conf
+%attr(755,root,root) %{_libexecdir}/mod_brotli.so
+
%if %{with bucketeer}
%files mod_bucketeer
%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_md
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_md.conf
+%attr(755,root,root) %{_libexecdir}/mod_md.so
+%attr(710,root,http) %dir /var/lib/httpd/md
+%{_sysconfdir}/md
+
%files mod_mime
%defattr(644,root,root,755)
%attr(755,root,root) %{_libexecdir}/mod_mime.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_hcheck.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_http2.so
%attr(755,root,root) %{_libexecdir}/mod_proxy_scgi.so
+%attr(755,root,root) %{_libexecdir}/mod_proxy_uwsgi.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_socache_memcache.conf
%attr(755,root,root) %{_libexecdir}/mod_socache_memcache.so
+%files mod_socache_redis
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache_redis.conf
+%attr(755,root,root) %{_libexecdir}/mod_socache_redis.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