# TODO
# - add -D_FILE_OFFSET_BITS=64 somewhere to get >2GB logfiles support
+# - 1.3.42 is last formal release, patches _may_ be available in the fugture in
+# http://www.apache.org/dist/httpd/patches/
#
# Conditional build:
%bcond_with rewrite_ldap # enable ldap map support for mod_rewrite (alpha)
%bcond_without ipv6 # disable IPv6 support
%bcond_without lingerd # don't build lingerd support
-#
+
%include /usr/lib/rpm/macros.perl
Summary: The most widely used Web server on the Internet
Summary(cs.UTF-8): Nejrozšířenější WWW server v Internetu
Summary(uk.UTF-8): Найпопулярніший Web-Server
Summary(zh_CN.UTF-8): Internet 上应用最广泛的 Web 服务程序。
Name: apache1
-Version: 1.3.41
-Release: 8
+Version: 1.3.42
+Release: 10
License: Apache v2.0
-Group: Networking/Daemons
-Source0: http://www.apache.org/dist/httpd/apache_%{version}.tar.gz
-# Source0-md5: f7f00b635243f03a787ca9f4d4c85651
+Group: Networking/Daemons/HTTP
+Source0: http://archive.apache.org/dist/httpd/apache_%{version}.tar.gz
+# Source0-md5: b76695ec68f9f8b512c9415fc69c1019
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: %{name}.sysconfig
Source23: %{name}-mod_vhost_alias.conf
Source24: %{name}-errordocs.conf
Source25: %{name}-manual.conf
+Source26: %{name}.tmpfiles
Patch0: %{name}-PLD.patch
Patch1: %{name}-suexec.patch
Patch2: %{name}-errordocs.patch
Patch40: %{name}-security_htpasswd_user_buffer_overflow.patch
Patch41: %{name}-security_check_forensic_tempfiles.patch
Patch42: %{name}-lingerd.patch
+Patch43: %{name}-getline.patch
+Patch44: %{name}-format-security.patch
URL: http://httpd.apache.org/
BuildRequires: bash
BuildRequires: db-devel >= 4.1
BuildRequires: perl-base
BuildRequires: rpm-build >= 4.4.0
BuildRequires: rpm-perlprov
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpmbuild(macros) >= 1.647
Requires: %{name}-mod_access = %{version}-%{release}
Requires: %{name}-mod_alias = %{version}-%{release}
Requires: %{name}-mod_dir = %{version}-%{release}
%package base
Summary: The most widely used Web server on the Internet
Summary(pl.UTF-8): Serwer WWW (World Wide Web)
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires(postun): /usr/sbin/userdel
Requires: mailcap
Requires: psmisc >= 20.1
Requires: rc-scripts
-Requires: webapps
Provides: %{name}(EAPI) = %{version}-%{release}
%{?with_ipv6:Provides: apache1(ipv6)}
%{?with_lingerd:Provides: apache1(lingerd)}
Summary(pl.UTF-8): Suexec wrapper do serwera WWW Apache
Summary(ru.UTF-8): Apache suEXEC CGI wrapper
Summary(uk.UTF-8): Apache suEXEC CGI wrapper
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Obsoletes: apache-suexec < 2.0.0
%package mod_access
Summary: Access control based on client hostname or IP address
Summary(pl.UTF-8): Kontrola dostępu w oparciu o nazwę hosta lub adres IP klienta
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_access) = %{version}-%{release}
Provides: webserver(access)
%package mod_actions
Summary: Apache module for run CGI whenever a file of a certain type is requested
Summary(pl.UTF-8): Moduł dla Apache'a do uruchamiania skryptów cgi
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_actions) = %{version}-%{release}
Obsoletes: apache-mod_actions < 2.0.0
%package mod_alias
Summary: Mapping different parts of the host filesystem in the document tree, and URL redirection
Summary(pl.UTF-8): Odwzorowywanie części systemu plików w drzewie dokumentów oraz przekierowywanie URL-i
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_alias) = %{version}-%{release}
Provides: webserver(alias)
%package mod_asis
Summary: Sending files which contain their own HTTP headers
Summary(pl.UTF-8): Wysyłanie plików zawierających własne nagłówki HTTP
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_asis) = %{version}-%{release}
%package mod_auth
Summary: Apache module with user authentication using textual files
Summary(pl.UTF-8): Moduł uwierzytelniania użytkownika przy użyciu plików tekstowych dla Apache
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_auth) = %{version}-%{release}
Provides: webserver(auth)
%package mod_auth_anon
Summary: Apache module with "anonymous" user access authentication
Summary(pl.UTF-8): Moduł apache oferujący anonimową autoryzację użytkownia
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_auth_anon) = %{version}-%{release}
Obsoletes: apache-mod_auth_anon < 2.0.0
%package mod_auth_db
Summary: Apache module with user authentication which uses Berkeley DB files
Summary(pl.UTF-8): Moduł Apache'a z mechanizmem uwierzytelniania używającym plików Berkeley DB
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires(triggerpostun): sed >= 4.0
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_auth_db) = %{version}-%{release}
%package mod_auth_digest
Summary: Apache user authentication module using MD5 Digest Authentication
Summary(pl.UTF-8): Moduł Apache'a do uwierzytelniania metodą MD5 Digest Authentication
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_auth_digest) = %{version}-%{release}
Obsoletes: apache-mod_auth_digest < 2.0.0
%package mod_autoindex
Summary: Apache module - display index of files
Summary(pl.UTF-8): Moduł apache do wyświetlania indeksu plików
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires(triggerpostun): sed >= 4.0
Requires: %{name}(EAPI) = %{version}-%{release}
Requires: %{name}-mod_alias = %{version}-%{release}
%package mod_cern_meta
Summary: Support for HTTP header metafiles
Summary(pl.UTF-8): Obsługa metaplików nagłówków HTTP
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_cern_meta) = %{version}-%{release}
%package mod_cgi
Summary: Invoking CGI scripts
Summary(pl.UTF-8): Wywoływanie skryptów CGI
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_cgi) = %{version}-%{release}
Provides: webserver(cgi)
%package mod_define
Summary: Apache module - definition variables for arbitrary directives
Summary(pl.UTF-8): Moduł Apache'a do definiowania zmiennych
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_define) = %{version}-%{release}
Obsoletes: apache-mod_define < 2.0.0
%package mod_digest
Summary: Older version of apache user authentication module using MD5 Digest Authentication
Summary(pl.UTF-8): Starsza wersja modułu apache do autoryzacji MD5
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_digest) = %{version}-%{release}
Obsoletes: apache-mod_digest < 2.0.0
%package mod_dir
Summary: Apache module for "trailing slash" redirects and serving directory index files
Summary(pl.UTF-8): Moduł oferujący przekierowania i serwowanie indeksu katalogu
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_dir) = %{version}-%{release}
Provides: webserver(indexfile)
%package mod_env
Summary: Passing of environments to CGI scripts
Summary(pl.UTF-8): Przekazywanie środowiska do skryptów CGI
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_env) = %{version}-%{release}
+Provides: webserver(setenv)
%description mod_env
This module allows for control of the environment that will be
%package mod_expires
Summary: Apache module which generates Expires HTTP headers
Summary(pl.UTF-8): Moduł generujący nagłówki HTTP Expires
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_expires) = %{version}-%{release}
+Provides: webserver(expires)
Obsoletes: apache-mod_expires < 2.0.0
%description mod_expires
%package mod_headers
Summary: Apache module allows for the customization of HTTP response headers
Summary(pl.UTF-8): Moduł pozwalający na modyfikację nagłówków HTTP
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_headers) = %{version}-%{release}
Obsoletes: apache-mod_headers < 2.0.0
%package mod_imap
Summary: Apache module with imap-file handler
Summary(pl.UTF-8): Moduł Apache'a z obsługą imap-file
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_imap) = %{version}-%{release}
Obsoletes: apache-mod_imap < 2.0.0
%package mod_include
Summary: Server-parsed documents
Summary(pl.UTF-8): Dokumenty przetwarzane po stronie serwera
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_include) = %{version}-%{release}
%package mod_info
Summary: Apache module with comprehensive overview of the server configuration
Summary(pl.UTF-8): Moduł dostarczający informacji na temat serwera
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_info) = %{version}-%{release}
Obsoletes: apache-mod_info < 2.0.0
%package mod_log_agent
Summary: Logging of User Agents
Summary(pl.UTF-8): Logowanie nazw klientów (User Agent)
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_log_agent) = %{version}-%{release}
%package mod_log_config
Summary: User-configurable logging replacement for mod_log_common
Summary(pl.UTF-8): Konfigurowalny logujący zamiennik dla mod_log_common
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_log_config) = %{version}-%{release}
%package mod_log_forensic
Summary: Apache module for forensic logging of the requests
Summary(pl.UTF-8): Moduł Apache'a do logowania żądań w celu późniejszej analizy
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_log_forensic) = %{version}-%{release}
Obsoletes: apache-mod_log_forensic < 2.0.0
%package mod_log_referer
Summary: User-configurable logging replacement for mod_log_common
Summary(pl.UTF-8): Konfigurowalny logujący zamiennik dla mod_log_common
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_log_referer) = %{version}-%{release}
%package mod_mime
Summary: Determining document types using file extensions
Summary(pl.UTF-8): Określanie typów dokumentów przy użyciu rozszerzeń plików
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_mime) = %{version}-%{release}
+Provides: webserver(mime)
%description mod_mime
This module is used to determine various bits of "meta information"
%package mod_mime_magic
Summary: Determining document types using "magic numbers"
Summary(pl.UTF-8): Określanie typów dokumentów przy użyciu "liczb magicznych"
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_mime_magic) = %{version}-%{release}
%package mod_mmap_static
Summary: Apache module for mmap()ing statically configured list files
Summary(pl.UTF-8): Moduł służący do mmap()owania plików
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_mmap_static) = %{version}-%{release}
Obsoletes: apache-mod_mmap_static < 2.0.0
%package mod_negotiation
Summary: Content negotiation
Summary(pl.UTF-8): Negocjacja treści
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_negotiation) = %{version}-%{release}
%package mod_proxy
Summary: Apache module with Web proxy
Summary(pl.UTF-8): Moduł dodający obsługę serwera proxy
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires(triggerpostun): sed >= 4.0
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_proxy) = %{version}-%{release}
%package mod_rewrite
Summary: Apache module with rule-based engine for rewrite requested URLs on the fly
Summary(pl.UTF-8): Moduł do ,,przepisywania'' adresów URL w locie
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_rewrite) = %{version}-%{release}
+Provides: webserver(rewrite)
Obsoletes: apache-mod_rewrite < 2.0.0
%description mod_rewrite
%package mod_setenvif
Summary: Set environment variables based on client information
Summary(pl.UTF-8): Ustawianie zmiennych środowiskowych w oparciu o informacje o kliencie
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_setenvif) = %{version}-%{release}
%package mod_speling
Summary: Automatically correct minor typos in URLs
Summary(pl.UTF-8): Automatyczne poprawianie pomniejszych literówek w URL-ach
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_speling) = %{version}-%{release}
%package mod_status
Summary: Server status report module for apache
Summary(pl.UTF-8): Moduł dostarczający informacje statystyczne o serwerze
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires(triggerpostun): sed >= 4.0
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_status) = %{version}-%{release}
%package mod_unique_id
Summary: Apache module which provides a magic token for each request
Summary(pl.UTF-8): Moduł nadający każdemu żądaniu unikalny token
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_unique_id) = %{version}-%{release}
Obsoletes: apache-mod_unique_id < 2.0.0
%package mod_userdir
Summary: User home directories
Summary(pl.UTF-8): Katalogi domowe użytkowników
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_userdir) = %{version}-%{release}
%package mod_usertrack
Summary: Apache module for user tracking using cookies
Summary(pl.UTF-8): Moduł służący do śledzenia użytkowników przy użyciu ciasteczek
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_usertrack) = %{version}-%{release}
Obsoletes: apache-mod_usertrack < 2.0.0
%package mod_vhost_alias
Summary: Apache module for dynamically configured mass virtual hosting
Summary(pl.UTF-8): Moduł dodający obsługę hostów wirtualnych
-Group: Networking/Daemons
+Group: Networking/Daemons/HTTP
Requires(triggerpostun): sed >= 4.0
Requires: %{name}(EAPI) = %{version}-%{release}
Provides: apache(mod_vhost_alias) = %{version}-%{release}
%patch39 -p2
%patch40 -p2
%patch41 -p2
-
%if %{with lingerd}
mkdir -p lingerd
cp -a lingerd-*/{README,TUNING,LICENSE,TODO,ChangeLog} lingerd
cp -a lingerd-*/{apache-1.3/ap_lingerd.c,li_config.h} src/main
%patch42 -p1
%endif
+%patch43 -p1
+%patch44 -p1
# make manual link with full path
%{__sed} -i -e 's,href="manual/,href="/manual/,i' htdocs/index.html.*
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig} \
- $RPM_BUILD_ROOT%{_sysconfdir}/{webapps.d,conf.d} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/{webapps.d,conf.d,vhosts.d} \
$RPM_BUILD_ROOT%{httpdir}/html \
$RPM_BUILD_ROOT%{_libexecdir} \
- $RPM_BUILD_ROOT/var/{log/{apache,archive/apache},run/apache}
+ $RPM_BUILD_ROOT/var/{log/{apache,archive/apache},run/apache} \
+ $RPM_BUILD_ROOT%{systemdtmpfilesdir}
%{__make} -j1 install-quiet \
root=$RPM_BUILD_ROOT
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/apache1
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/apache1
sed -e 's,/usr/lib,%{_libdir},g' %{SOURCE1} > $RPM_BUILD_ROOT/etc/rc.d/init.d/apache
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/apache
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/apache
bzip2 -dc %{SOURCE5} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
mv $RPM_BUILD_ROOT%{_mandir}/hu/man8/{httpd,apache}.8
mv $RPM_BUILD_ROOT%{_mandir}/pl/man8/{httpd,apache}.8
echo "LoadModule log_forensic_module modules/mod_log_forensic.so" > $CFG/75_mod_log_forensic.conf
echo "LoadModule mmap_static_module modules/mod_mmap_static.so" > $CFG/76_mod_mmap_static.conf
cp -a %{SOURCE13} $CFG/77_mod_info.conf
-cp -a %{SOURCE24} $CFG/80_errordocs.conf
-cp -a %{SOURCE17} $CFG/80_mod_alias.conf
+cp -a %{SOURCE24} $CFG/80_errordocs.conf
+cp -a %{SOURCE17} $CFG/80_mod_alias.conf
# cgi_test: create config file with ScriptAlias
cat << 'EOF' > $CFG/09_cgi_test.conf
ScriptAlias /cgi-bin/printenv %{cgibindir}/printenv
ln -sf %{_bindir}/htpasswd $RPM_BUILD_ROOT%{_sbindir}
+cp -p %{SOURCE26} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
+
# Not packaged.
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/*.default
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/{access,srm}.conf
%files base
%defattr(644,root,root,755)
-%doc ABOUT_APACHE src/CHANGES README
+%doc ABOUT_APACHE src/CHANGES README %{?with_ipv6:README.v6}
%doc conf/mime.types conf/apache.conf.dist
%{?with_lingerd:%doc lingerd}
%attr(754,root,root) /etc/rc.d/init.d/apache
-%attr(750,root,root) %dir %{_sysconfdir}
+%attr(751,root,root) %dir %{_sysconfdir}
%{_sysconfdir}/modules
%{_sysconfdir}/logs
%attr(750,root,root) %dir %{_sysconfdir}/conf.d
%attr(750,root,root) %dir %{_sysconfdir}/webapps.d
+%attr(750,root,root) %dir %{_sysconfdir}/vhosts.d
%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) /etc/sysconfig/apache
%endif
%attr(755,root,root) %{_bindir}/checkgid
%attr(755,root,root) %{_sbindir}/apache
+%{systemdtmpfilesdir}/%{name}.conf
%dir %attr(1773,root,http) /var/run/apache
%{_mandir}/man8/apache.8*
%lang(hu) %{_mandir}/hu/man8/apache.8*