-# # TODO:
+# TODO:
# - config examples for mod_*
# - --with-suexec-uidmin=500 or =1000 ?
# - check those autn modules inner deps
# Conditional build:
%bcond_without ssl # build without SSL support
%bcond_without ldap # build without LDAP support
-%bcond_with itk # ITK MPM
%bcond_with distcache # distcache support
%bcond_with bucketeer # debug one
+%bcond_without http2 # HTTP/2 support
# this is internal macro, don't change to %%apache_modules_api
%define _apache_modules_api 20120211
-%define openssl_ver 1.0.1f
-%define apr_ver 1:1.5.0
+%define openssl_ver 1.0.2
+%define apr_ver 1:1.6.0
+%define apr_util_ver 1:1.6.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.25
+Version: 2.4.28
Release: 1
License: Apache v2.0
Group: Networking/Daemons/HTTP
-Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.gz
-# Source0-md5: 24fb8b9e36cf131d78caae864fea0f6a
+Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
+# Source0-md5: 49007ffe8e37a0834255b279810edf24
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
+Source32: %{name}-mod_http2.conf
Patch0: %{name}-configdir_skip_backups.patch
Patch1: %{name}-layout.patch
Patch2: %{name}-suexec.patch
Patch3: %{name}-branding.patch
Patch4: %{name}-apr.patch
-Patch5: httpd-dummy-connection-result.patch
-
Patch7: %{name}-syslibs.patch
Patch10: httpd-2.0.46-dav401dest.patch
Patch18: %{name}-v6only-ENOPROTOOPT.patch
Patch19: %{name}-conffile-path.patch
Patch20: %{name}-apxs.patch
+# Relaxed version of suexec. If called as suexec.fcgi don't check uid/gid against file owner.
+# Required by our patched mod_fcgid to run php as fcgi via suexec.
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: %{name}-mod_vhost_alias_docroot.patch
-# http://mpm-itk.sesse.net/
-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: apr-util-devel >= %{apr_util_ver}
BuildRequires: autoconf >= 2.50
BuildRequires: automake
%{?with_distcache:BuildRequires: distcache-devel}
+BuildRequires: libbrotli-devel >= 0.6.0
BuildRequires: libtool >= 2:1.5
-BuildRequires: lua51-devel
+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}}
Requires: %{name}-errordocs = %{version}-%{release}
Requires: %{name}-mod_alias = %{version}-%{release}
Requires: %{name}-mod_auth = %{version}-%{release}
+Requires: %{name}-mod_autoindex = %{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: %{name}-mod_userdir = %{version}-%{release}
Requires: %{name}-mod_version = %{version}-%{release}
Requires: %{name}-tools = %{version}-%{release}
Requires(pre): /usr/sbin/useradd
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
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
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
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html
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: apache-mod_authn_file
-Requires: apache-mod_setenvif
-Requires: apr-util-dbm-db
+Requires: apr-util-dbm-db >= %{apr_util_ver}
Provides: apache(mod_dav) = %{version}-%{release}
%description mod_dav
Group: Networking/Daemons/HTTP
URL: http://httpd.apache.org/docs/2.4/mod/mod_deflate.html
Requires: %{name}-base = %{version}-%{release}
-Requires: %{name}-mod_headers = %{version}-%{release}
Requires: %{name}-mod_filter = %{version}-%{release}
+Requires: %{name}-mod_headers = %{version}-%{release}
Provides: apache(mod_deflate) = %{version}-%{release}
%description mod_deflate
URL: http://httpd.apache.org/docs/2.4/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
dostępny) zamiast przechowywania danych w płaskich plikach. Do
używania tego modułu nie jest wymagana żadna konfiguracja.
+%package mod_http2
+Summary: Provide HTTP/2 support for the Apache HTTP Server
+Summary(pl.UTF-8): Obsługa HTTP/2 dla serwera HTTP Apache
+Group: Networking/Daemons/HTTP
+URL: http://httpd.apache.org/docs/2.4/mod/mod_http2.html
+Requires: %{name}-base = %{version}-%{release}
+Requires: nghttp2 >= 1.15.0
+Provides: apache(mod_http2) = %{version}-%{release}
+
+%description mod_http2
+This module provides HTTP/2 (RFC 7540) support for the Apache HTTP
+Server.
+
+%description mod_http2 -l pl.UTF-8
+Ten moduł zapewnia obsługę HTTP/2 (RFC 7540) dla serwera HTTP Apache.
+
%package mod_ident
Summary: RFC 1413 ident lookups
Summary(pl.UTF-8): Sprawdzanie identyfikacji RFC 1413
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.
+generating dynamic responses, access control, authentication, and
+authorization.
%description mod_lua -l pl.UTF-8
Ten moduł pozwala na rozszerzanie serwera poprzez skrypty napisane w
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}
+Summary: Provides macros within Apache runtime configuration files
+Summary(pl.UTF-8): Makra wewnątrz klików konfiguracyjnych Apache'a
+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.
+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.
+Apache'a. Makra mogą mieć parametry. Makra są rozwijane w momencie
+użycia (argumenty makra są podstawiane za wartości parametrów), a
+wynik jest przetwarzany jak normalna konfiguracja.
%package mod_mime
Summary: Associates the requested filename's extensions with the file's behavior and content
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 >= %{apr_util_ver}
Provides: apache(mod_session_crypto) = %{version}-%{release}
%description mod_session_crypto
%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
Obsoletes: apache-mod_slotmem_shm
%description mod_slotmem
-Slot-based shared memory provider.
+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.
+
+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."
+
+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 -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.
+
+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
Summary: Shared object cache provider
+Summary(pl.UTF-8): Moduł zapewniający współdzieloną pamięć podręczną obiektów
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
+#URL: http://httpd.apache.org/docs/2.4/mod/mod_socache_shmcb.htm
Requires: %{name}-base = %{version}-%{release}
Provides: apache(mod_socache) = %{version}-%{release}
Provides: apache(mod_socache_dbm) = %{version}-%{release}
Obsoletes: apache-mod_socache_shmcb
%description mod_socache
-Shared object cache provider.
+mod_socache_dbm is a shared object cache provider which provides for
+creation and access to a cache backed by a DBM database.
+
+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.
+
+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 -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.
+
+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.
+
+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.
%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}
-Suggests: apache(mod_socache_shmcb) = %{version}-%{release}
-Suggests: apache(mod_socache_dbm) = %{version}-%{release}
+Requires: apr-util-dbm-db >= %{apr_util_ver}
Requires: openssl >= %{openssl_ver}
-Requires: apr-util-dbm-db
+Suggests: %{name}-mod_socache = %{version}-%{release}
Provides: apache(mod_ssl) = 1:%{version}-%{release}
%description mod_ssl
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.
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p1
%patch7 -p1
#%patch25 -p1
# ?
#%patch26 -p1
-# 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-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-dav \
+ --enable-dav-fs \
+ --enable-dav-lock \
+ --enable-echo \
+ --enable-ext-filter \
+ --enable-expires \
+ --enable-headers \
+ --enable-http \
+ %{__enable_disable http2} \
+ --enable-ident \
+ --enable-imagemap \
+ --enable-info \
+ %{?with_ldap:--enable-ldap} \
--enable-log-forensic \
--enable-logio \
--enable-lua \
- --with-z=%{_prefix} \
--enable-mime-magic \
- --enable-cern-meta \
- --enable-expires \
- --enable-headers \
- --enable-ident \
- --enable-usertrack \
- --enable-unique-id \
+ --enable-mpms-shared=all \
+%ifarch %{ix86}
+%ifnarch i386 i486
+ --enable-nonportable-atomics=yes \
+%endif
+%endif
--enable-proxy \
--enable-proxy-connect \
- --enable-proxy-fdpass \
--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-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}
ln -s %{_var}/log/httpd $RPM_BUILD_ROOT%{_sysconfdir}/logs
# we have own apache.conf
rm $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
-ln -s conf.d $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/httpd
cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/httpd
cp -a %{SOURCE26} $CFG/01_mod_log_config.conf
cp -a %{SOURCE27} $CFG/01_mod_mime_magic.conf
cp -a %{SOURCE28} $CFG/01_mod_cache.conf
+cp -a %{SOURCE32} $CFG/01_mod_http2.conf
cp -a %{SOURCE8} $CFG/20_mod_vhost_alias.conf
cp -a %{SOURCE9} $CFG/25_mod_status.conf
cp -a %{SOURCE10} $CFG/30_mod_proxy.conf
cp -a %{SOURCE22} $CFG/20_languages.conf
cp -a %{SOURCE29} $RPM_BUILD_ROOT%{_sysconfdir}/vhosts.d/example.net.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 allowmethods_module modules/mod_allowmethods.so" > $CFG/00_mod_allowmethods.conf
-echo "LoadModule asis_module modules/mod_asis.so" > $CFG/00_mod_asis.conf
-echo "LoadModule auth_basic_module modules/mod_auth_basic.so" > $CFG/00_mod_auth_basic.conf
-echo "LoadModule auth_digest_module modules/mod_auth_digest.so" > $CFG/00_mod_auth_digest.conf
-echo "LoadModule auth_form_module modules/mod_auth_form.so" > $CFG/00_mod_auth_form.conf
-echo "LoadModule authn_anon_module modules/mod_authn_anon.so" > $CFG/00_mod_authn_anon.conf
-echo "LoadModule authn_core_module modules/mod_authn_core.so" > $CFG/00_mod_authn_core.conf
-echo "LoadModule authn_dbd_module modules/mod_authn_dbd.so" > $CFG/00_mod_authn_dbd.conf
-echo "LoadModule authn_dbm_module modules/mod_authn_dbm.so" > $CFG/00_mod_authn_dbm.conf
-echo "LoadModule authn_file_module modules/mod_authn_file.so" > $CFG/00_mod_authn_file.conf
-echo "LoadModule authn_socache_module modules/mod_authn_socache.so" > $CFG/00_mod_authn_socache.conf
-echo "LoadModule authnz_ldap_module modules/mod_authnz_ldap.so" > $CFG/00_mod_authnz_ldap.conf
-echo "LoadModule authz_core_module modules/mod_authz_core.so" > $CFG/00_mod_authz_core.conf
-echo "LoadModule authz_dbd_module modules/mod_authz_dbd.so" > $CFG/00_mod_authz_dbd.conf
-echo "LoadModule authz_dbm_module modules/mod_authz_dbm.so" > $CFG/00_mod_authz_dbm.conf
-echo "LoadModule authz_groupfile_module modules/mod_authz_groupfile.so" > $CFG/00_mod_authz_groupfile.conf
-echo "LoadModule authz_owner_module modules/mod_authz_owner.so" > $CFG/00_mod_authz_owner.conf
-echo "LoadModule authz_user_module modules/mod_authz_user.so" > $CFG/00_mod_authz_user.conf
-echo "LoadModule buffer_module modules/mod_buffer.so" > $CFG/00_mod_buffer.conf
-%if %{with bucketeer}
-echo "LoadModule bucketeer_module modules/mod_bucketeer.so" > $CFG/00_mod_bucketeer.conf
-%endif
-echo "LoadModule case_filter_in_module modules/mod_case_filter_in.so" > $CFG/00_mod_case_filter_in.conf
-echo "LoadModule case_filter_module modules/mod_case_filter.so" > $CFG/00_mod_case_filter.conf
-echo "LoadModule cern_meta_module modules/mod_cern_meta.so" > $CFG/00_mod_cern_meta.conf
-echo "LoadModule cgi_module modules/mod_cgi.so" > $CFG/00_mod_cgi.conf
-echo "LoadModule charset_lite_module modules/mod_charset_lite.so" > $CFG/00_mod_charset_lite.conf
-echo "LoadModule data_module modules/mod_data.so" > $CFG/00_mod_data.conf
-echo "LoadModule dbd_module modules/mod_dbd.so" > $CFG/00_mod_dbd.conf
-echo "LoadModule dialup_module modules/mod_dialup.so" > $CFG/00_mod_dialup.conf
-echo "LoadModule dumpio_module modules/mod_dumpio.so" > $CFG/00_mod_dumpio.conf
-echo "LoadModule echo_module modules/mod_echo.so" > $CFG/00_mod_echo.conf
-echo "LoadModule env_module modules/mod_env.so" > $CFG/00_mod_env.conf
-echo "LoadModule expires_module modules/mod_expires.so" > $CFG/00_mod_expires.conf
-echo "LoadModule ext_filter_module modules/mod_ext_filter.so" > $CFG/00_mod_ext_filter.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/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 lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so" > $CFG/00_mod_lbmethod_bybusyness.conf
-echo "LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so" > $CFG/00_mod_lbmethod_byrequests.conf
-echo "LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so" > $CFG/00_mod_lbmethod_bytraffic.conf
-echo "LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so" > $CFG/00_mod_lbmethod_heartbeat.conf
-echo "LoadModule ldap_module modules/mod_ldap.so" > $CFG/00_mod_ldap.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 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 remoteip_module modules/mod_remoteip.so" > $CFG/00_mod_remoteip.conf
-echo "LoadModule reqtimeout_module modules/mod_reqtimeout.so" >> $CFG/00_mod_reqtimeout.conf
-echo "LoadModule request_module modules/mod_request.so" > $CFG/00_mod_request.conf
-echo "LoadModule rewrite_module modules/mod_rewrite.so" > $CFG/00_mod_rewrite.conf
-echo "LoadModule sed_module modules/mod_sed.so" > $CFG/00_mod_sed.conf
-echo "LoadModule session_cookie_module modules/mod_session_cookie.so" > $CFG/00_mod_session_cookie.conf
-echo "LoadModule session_crypto_module modules/mod_session_crypto.so" > $CFG/00_mod_session_crypto.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.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
-echo "LoadModule usertrack_module modules/mod_usertrack.so" > $CFG/00_mod_usertrack.conf
-echo "LoadModule version_module modules/mod_version.so" > $CFG/00_mod_version.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
-
+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 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 \
+ %{?with_bucketeer:bucketeer} 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
+
+ LoadModule 00 $module
+done
# anything in style dir not ending with .css is trash
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/manual/style/{lang,latex,xsl}
%useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
%pretrans base
-# change httpd.conf from dir to symlink
-if [ ! -L /etc/httpd/httpd.conf ]; then
- if [ -d /etc/httpd/httpd.conf ]; then
- if [ -d /etc/httpd/conf.d ]; then
- mv /etc/httpd/httpd.conf/* /etc/httpd/conf.d
- rmdir /etc/httpd/httpd.conf 2>/dev/null || mv -v /etc/httpd/httpd.conf{,.rpmsave}
- else
- mv /etc/httpd/httpd.conf /etc/httpd/conf.d
- fi
-
- # new module packages issue error as first installed over 2.0 installation
- mv -f /var/lock/subsys/httpd{,.disabled} 2>/dev/null
- fi
-
- # always have httpd.conf symlink (until all packages from Ac use new dir)
- install -d /etc/httpd
- ln -s conf.d /etc/httpd/httpd.conf
-fi
+# 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
- 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
+ MPM=$(grep ^HTTPD_MPM /etc/sysconfig/httpd | sed 's,HTTPD_MPM=,,;s,",,g')
+ 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 -f /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
exit 0
%groupremove http
fi
-%triggerpostun base -- %{name} < 2.0.50-6.9
-%banner %{name}-2.0.50-6 << EOF
-WARNING!!!
-Since apache-2.0.50-6 autoindex module has been separated to package
-%{name}-mod_autoindex If you want to have the same functionality do:
-poldek -Uv %{name}-mod_autoindex
-EOF
-
-%triggerpostun base -- %{name} < 2.0.54-4
-%banner %{name}-2.0.54-2 << EOF
-WARNING!!!
-CGI demo/test programs - printenv and test-cgi, have been released
-from package apache into separate subpackage apache-cgi_test. If you
-need printenv and/or test-cgi, please install apache-cgi_test package,
-e.g. by running poldek -Uv apache-cgi_test
-EOF
-
-# update /etc/sysconfig/apache -> httpd rename
-if [ -f /etc/sysconfig/apache.rpmsave ]; then
- cp -f /etc/sysconfig/httpd{,.rpmnew}
- mv -f /etc/sysconfig/{apache.rpmsave,httpd}
-fi
-
-%triggerpostun base -- %{name} < 2.0.55-3.1
-# check for config first as in 2.2 it's .rpmsave
-if [ -f /etc/httpd/httpd.conf/10_httpd.conf ]; then
- if ! grep -q 'Include webapps.d/' /etc/httpd/httpd.conf/10_httpd.conf; then
- # make sure webapps.d is included
- cp -f /etc/httpd/httpd.conf/10_httpd.conf{,.rpmsave}
- # this file is ugly, so just append new lines
- cat <<-EOF >> /etc/httpd/httpd.conf/10_httpd.conf
- # Include webapps config
- Include webapps.d/*.conf
-EOF
- 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
-cp -f /etc/sysconfig/httpd{,.rpmorig}
-sed -i -e '/^HTTPD_CONF="\/etc\/httpd\/httpd.conf"/s,.*,HTTPD_CONF="/etc/httpd/apache.conf",' /etc/sysconfig/httpd
-
-if [ -f /etc/httpd/conf.d/10_httpd.conf.rpmsave ]; then
- sed -e '
- # as separate modules
- /^LoadModule access_module/s,^,#,
- /^LoadModule alias_module/s,^,#,
- /^LoadModule asis_module/s,^,#,
- /^LoadModule cern_meta_module/s,^,#,
- /^LoadModule cgi_module/s,^,#,
- /^LoadModule env_module/s,^,#,
- /^LoadModule include_module/s,^,#,
- /^LoadModule log_config_module/s,^,#,
- /^LoadModule mime_magic_module/s,^,#,
- /^LoadModule mime_module/s,^,#,
- /^LoadModule negotiation_module/s,^,#,
- /^LoadModule setenvif_module/s,^,#,
- /^LoadModule speling_module/s,^,#,
- /^LoadModule userdir_module/s,^,#,
-
- # in 30_errordocs.conf
- /<IfModule mod_include.c>/,/<\/IfModule>/s,^,#,
-
- # in 57_mod_autoindex.conf
- /^Alias \/icons\//s,^,#,
-
- # in apache.conf
- /^ScriptAlias \/cgi-bin\//s,^,#,
- /^Listen 80/s,^,#,
-
- # avoid loops
- /Include conf.d\/\*.conf/s,^,#,
- /Include webapps.d\/\*.conf/s,^,#,
-
- ' < /etc/httpd/conf.d/10_httpd.conf.rpmsave > /etc/httpd/conf.d/10_httpd.conf
-fi
-
-%banner -e %{name} <<'EOF'
-NB! Apache main config has been changed to /etc/httpd/apache.conf
-
-There has been changed a lot, so many things could be broken.
-Please report bugs to <http://bugs.pld-linux.org/>.
-
-EOF
-
-%triggerpostun base -- %{name} < 2.2.22-2
+%triggerpostun base -- %{name}-base < 2.2.22-2
. /etc/sysconfig/httpd
if [ -z "$HTTPD_CONF" ]; then
echo 'HTTPD_CONF="/etc/httpd/apache.conf"' >> /etc/sysconfig/httpd
fi
-%triggerpostun base -- %{name} < 2.4.0
+%triggerpostun base -- %{name}-base < 2.4.0
cp -f /etc/httpd/apache.conf{,.rpmsave}
sed -i -e '
/^DefaultType/d
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}
-sed -i -e '
- s,/var/run/apache,/var/run/httpd,g
- 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 '
%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_headers
%module_scripts mod_heartbeat
%module_scripts mod_heartmonitor
+%module_scripts mod_http2
%module_scripts mod_ident
%module_scripts mod_imagemap
%module_scripts mod_include
%{_sysconfdir}/modules
%{_sysconfdir}/run
%{_sysconfdir}/logs
-%ghost %{_sysconfdir}/httpd.conf
%attr(750,root,root) %dir %{_sysconfdir}/conf.d
%attr(750,root,root) %dir %{_sysconfdir}/vhosts.d
%attr(750,root,root) %dir %{_sysconfdir}/webapps.d
%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_heartmonitor.conf
%attr(755,root,root) %{_libexecdir}/mod_heartmonitor.so
+%if %{with http2}
+%files mod_http2
+%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_http2.conf
+%attr(755,root,root) %{_libexecdir}/mod_http2.so
+%endif
+
%files mod_ident
%defattr(644,root,root,755)
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_ident.conf
%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_wstunnel.so
%attr(755,root,root) %{_libexecdir}/mod_proxy.so
%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(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_slotmem_shm.conf
%attr(755,root,root) %{_libexecdir}/mod_slotmem_plain.so
%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
%defattr(644,root,root,755)
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache_dbm.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_socache_memcache.conf
+%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_dbm.so
-%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
+%attr(755,root,root) %{_libexecdir}/mod_socache_shmcb.so
%files mod_speling
%defattr(644,root,root,755)