summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/rpm/httpd.spec.in289
-rw-r--r--config.layout25
2 files changed, 224 insertions, 90 deletions
diff --git a/build/rpm/httpd.spec.in b/build/rpm/httpd.spec.in
index cfbc713892..73ba31688a 100644
--- a/build/rpm/httpd.spec.in
+++ b/build/rpm/httpd.spec.in
@@ -1,7 +1,6 @@
%define contentdir /var/www
%define suexec_caller apache
%define mmn APACHE_MMN
-%define mpms prefork event
Summary: Apache HTTP Server
Name: httpd
@@ -14,15 +13,16 @@ Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
License: Apache License, Version 2.0
Group: System Environment/Daemons
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-BuildRequires: apr-devel, apr-util-devel, openldap-devel, db4-devel, expat-devel, findutils, perl, pkgconfig, zlib-devel, pcre-devel >= 5.0, distcache-devel >= 1.4
-BuildRequires: /usr/bin/apr-1-config, /usr/bin/apu-1-config
-Requires: apr >= 1.4.2, apr-util >= 1.3.10, pcre-devel >= 5.0, gawk, /usr/bin/find, openldap
-Requires: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv
-Requires: sh-utils, textutils, /usr/sbin/useradd
+BuildRequires: autoconf, perl, pkgconfig, findutils
+BuildRequires: zlib-devel, libselinux-devel
+BuildRequires: apr-devel >= 1.4.0, apr-util-devel >= 1.3.0, pcre-devel >= 5.0, distcache-devel >= 1.4
+Requires: initscripts >= 8.36, /etc/mime.types
+Obsoletes: httpd-suexec
+Requires(pre): /usr/sbin/useradd
+Requires(post): chkconfig
Provides: webserver
+Provides: mod_dav = %{version}-%{release}, httpd-suexec = %{version}-%{release}
Provides: httpd-mmn = %{mmn}
-Conflicts: thttpd
-Obsoletes: apache, secureweb, mod_dav
%description
Apache is a powerful, full-featured, efficient, and freely-available
@@ -33,12 +33,13 @@ Internet.
Group: Development/Libraries
Summary: Development tools for the Apache HTTP server.
Obsoletes: secureweb-devel, apache-devel
-Requires: libtool, httpd = %{epoch}:%{version}-%{release}
-Requires: apr-devel >= 1.4.2, apr-util-devel >= 1.3.10
+Requires: apr-devel, apr-util-devel, pkgconfig, libtool
+Requires: httpd = %{epoch}:%{version}-%{release}
%description devel
The httpd-devel package contains the APXS binary and other files
-that you need to build Dynamic Shared Objects (DSOs) for Apache.
+that you need to build Dynamic Shared Objects (DSOs) for the
+Apache HTTP Server.
If you are installing the Apache HTTP server and you want to be
able to compile or develop additional modules for Apache, you need
@@ -47,19 +48,63 @@ to install this package.
%package manual
Group: Documentation
Summary: Documentation for the Apache HTTP server.
+Requires: httpd = %{epoch}:%{version}-%{release}
Obsoletes: secureweb-manual, apache-manual
+BuildArch: noarch
%description manual
The httpd-manual package contains the complete manual and
reference guide for the Apache HTTP server. The information can
also be found at http://httpd.apache.org/docs/.
+%package tools
+Group: System Environment/Daemons
+Summary: Tools for use with the Apache HTTP Server
+
+%description tools
+The httpd-tools package contains tools which can be used with
+the Apache HTTP Server.
+
+%package -n mod_authnz_ldap
+Group: System Environment/Daemons
+Summary: LDAP modules for the Apache HTTP server
+BuildRequires: openldap-devel
+Requires: httpd = %{epoch}:%{version}-%{release}, httpd-mmn = %{mmn}
+
+%description -n mod_authnz_ldap
+The mod_authnz_ldap module for the Apache HTTP server provides
+authentication and authorization against an LDAP server, while
+mod_ldap provides an LDAP cache.
+
+%package -n mod_lua
+Group: System Environment/Daemons
+Summary: Lua language module for the Apache HTTP server
+BuildRequires: lua-devel
+Requires: httpd = %{epoch}:%{version}-%{release}, httpd-mmn = %{mmn}
+
+%description -n mod_lua
+The mod_lua module for the Apache HTTP server allows the server to be
+extended with scripts written in the Lua programming language.
+
+%package -n mod_proxy_html
+Group: System Environment/Daemons
+Summary: Proxy HTML filter modules for the Apache HTTP server
+BuildRequires: libxml2-devel
+Requires: httpd = %{epoch}:%{version}-%{release}, httpd-mmn = %{mmn}
+
+%description -n mod_proxy_html
+The mod_proxy_html module for the Apache HTTP server provides
+a filter to rewrite HTML links within web content when used within
+a reverse proxy environment. The mod_xml2enc module provides
+enhanced charset/internationalisation support for mod_proxy_html.
+
%package -n mod_ssl
Group: System Environment/Daemons
Summary: SSL/TLS module for the Apache HTTP server
BuildRequires: openssl-devel
-Requires: openssl, dev, /bin/cat
-Requires: httpd, make, httpd-mmn = %{mmn}
+Requires(post): openssl, /bin/cat
+Requires(pre): httpd
+Requires: httpd = %{epoch}:%{version}-%{release}, httpd-mmn = %{mmn}
%description -n mod_ssl
The mod_ssl module provides strong cryptography for the Apache Web
@@ -86,69 +131,33 @@ rm -rf srclib/{apr,apr-util,pcre}
%{__perl} -pi -e "s:\@exp_installbuilddir\@:%{_libdir}/httpd/build:g" \
support/apxs.in
-function mpmbuild()
-{
-mpm=$1; shift
-mkdir $mpm; pushd $mpm
-../configure \
- --prefix=%{_sysconfdir}/httpd \
- --with-apr=/usr/bin/apr-1-config \
- --with-apr-util=/usr/bin/apu-1-config \
- --with-pcre=/usr/bin/pcre-config \
- --exec-prefix=%{_prefix} \
- --bindir=%{_bindir} \
- --sbindir=%{_sbindir} \
- --mandir=%{_mandir} \
+%configure \
+ --enable-layout=RPM \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
- --with-mpm=$mpm \
+ --enable-mpms-shared=all \
+ --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{contentdir} \
--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
- --with-suexec-uidmin=500 --with-suexec-gidmin=500 \
+ --with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
- $*
-
-make %{?_smp_mflags}
-popd
-}
-
-# Build everything and the kitchen sink with the worker build
-mpmbuild worker \
+ --with-pcre \
--enable-mods-shared=all \
--enable-ssl --with-ssl --enable-distcache \
- --enable-proxy \
- --enable-cache \
- --enable-disk-cache \
- --enable-ldap --enable-authnz-ldap \
- --enable-cgid \
- --enable-authn-anon --enable-authn-alias \
- --enable-session --enable-session-cookie \
- --enable-session-dbd \
--disable-imagemap
-# For the other MPMs, just build httpd and no optional modules
-for f in %{mpms}; do
- mpmbuild $f --enable-modules=none
-done
+make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
-
-pushd worker
make DESTDIR=$RPM_BUILD_ROOT install
-popd
-
-# install alternative MPMs
-for f in %{mpms}; do
- install -m 755 ${f}/httpd $RPM_BUILD_ROOT%{_sbindir}/httpd.${f}
-done
# for holding mod_dav lock database
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/dav
@@ -157,17 +166,10 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/dav
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl
touch $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl/scache.{dir,pag,sem}
-# move the build directory to within the library directory
-mv $RPM_BUILD_ROOT%{contentdir}/build $RPM_BUILD_ROOT%{_libdir}/httpd/build
-
# Make the MMN accessible to module packages
echo %{mmn} > $RPM_BUILD_ROOT%{_includedir}/httpd/.mmn
-# docroot
-mkdir $RPM_BUILD_ROOT%{contentdir}/html
-
# Set up /var directories
-rmdir $RPM_BUILD_ROOT%{_sysconfdir}/httpd/logs
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/httpd
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/httpd/cache-root
@@ -245,16 +247,6 @@ if readelf -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.so | grep TEXTREL; then
exit 1
fi
-# Verify that the same modules were built into the httpd binaries
-./worker/httpd -l | grep -v worker > worker.mods
-for mpm in %{mpms}; do
- ./${mpm}/httpd -l | grep -v ${mpm} > ${mpm}.mods
- if ! diff -u worker.mods ${mpm}.mods; then
- : Different modules built into httpd binaries, will not proceed
- exit 1
- fi
-done
-
%clean
rm -rf $RPM_BUILD_ROOT
@@ -282,6 +274,7 @@ rm -rf $RPM_BUILD_ROOT
%config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-multilang-errordoc.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-userdir.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/extra/httpd-vhosts.conf
+%config(noreplace) %{_sysconfdir}/httpd/conf/extra/proxy-html.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-autoindex.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-dav.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-default.conf
@@ -292,44 +285,130 @@ rm -rf $RPM_BUILD_ROOT
%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-multilang-errordoc.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-userdir.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/httpd-vhosts.conf
+%config(noreplace) %{_sysconfdir}/httpd/conf/original/extra/proxy-html.conf
%config(noreplace) %{_sysconfdir}/httpd/conf/original/httpd.conf
%config %{_sysconfdir}/logrotate.d/httpd
%config %{_sysconfdir}/rc.d/init.d/httpd
%config %{_sysconfdir}/rc.d/init.d/htcacheclean
-%{_sbindir}/ab
%{_sbindir}/fcgistarter
%{_sbindir}/htcacheclean
-%{_sbindir}/htdbm
-%{_sbindir}/htdigest
-%{_sbindir}/htpasswd
-%{_sbindir}/logresolve
%{_sbindir}/httpd
-%{_sbindir}/httpd.prefork
-%{_sbindir}/httpd.event
-%{_sbindir}/httxt2dbm
%{_sbindir}/apachectl
-%{_sbindir}/rotatelogs
%attr(4510,root,%{suexec_caller}) %{_sbindir}/suexec
%dir %{_libdir}/httpd
%dir %{_libdir}/httpd/modules
-# everything but mod_ssl.so:
-%{_libdir}/httpd/modules/mod_[a-r]*.so
-%{_libdir}/httpd/modules/mod_s[lopetu]*.so
-%{_libdir}/httpd/modules/mod_[t-z]*.so
+%{_libdir}/httpd/modules/mod_access_compat.so
+%{_libdir}/httpd/modules/mod_actions.so
+%{_libdir}/httpd/modules/mod_alias.so
+%{_libdir}/httpd/modules/mod_allowmethods.so
+%{_libdir}/httpd/modules/mod_asis.so
+%{_libdir}/httpd/modules/mod_auth_basic.so
+%{_libdir}/httpd/modules/mod_auth_digest.so
+%{_libdir}/httpd/modules/mod_auth_form.so
+%{_libdir}/httpd/modules/mod_authn_anon.so
+%{_libdir}/httpd/modules/mod_authn_core.so
+%{_libdir}/httpd/modules/mod_authn_dbd.so
+%{_libdir}/httpd/modules/mod_authn_dbm.so
+%{_libdir}/httpd/modules/mod_authn_file.so
+%{_libdir}/httpd/modules/mod_authn_socache.so
+%{_libdir}/httpd/modules/mod_authz_core.so
+%{_libdir}/httpd/modules/mod_authz_dbd.so
+%{_libdir}/httpd/modules/mod_authz_dbm.so
+%{_libdir}/httpd/modules/mod_authz_groupfile.so
+%{_libdir}/httpd/modules/mod_authz_host.so
+%{_libdir}/httpd/modules/mod_authz_owner.so
+%{_libdir}/httpd/modules/mod_authz_user.so
+%{_libdir}/httpd/modules/mod_autoindex.so
+%{_libdir}/httpd/modules/mod_buffer.so
+%{_libdir}/httpd/modules/mod_cache_disk.so
+%{_libdir}/httpd/modules/mod_cache.so
+%{_libdir}/httpd/modules/mod_cgid.so
+%{_libdir}/httpd/modules/mod_charset_lite.so
+%{_libdir}/httpd/modules/mod_data.so
+%{_libdir}/httpd/modules/mod_dav_fs.so
+%{_libdir}/httpd/modules/mod_dav_lock.so
+%{_libdir}/httpd/modules/mod_dav.so
+%{_libdir}/httpd/modules/mod_dbd.so
+%{_libdir}/httpd/modules/mod_deflate.so
+%{_libdir}/httpd/modules/mod_dialup.so
+%{_libdir}/httpd/modules/mod_dir.so
+%{_libdir}/httpd/modules/mod_dumpio.so
+%{_libdir}/httpd/modules/mod_echo.so
+%{_libdir}/httpd/modules/mod_env.so
+%{_libdir}/httpd/modules/mod_expires.so
+%{_libdir}/httpd/modules/mod_ext_filter.so
+%{_libdir}/httpd/modules/mod_file_cache.so
+%{_libdir}/httpd/modules/mod_filter.so
+%{_libdir}/httpd/modules/mod_headers.so
+%{_libdir}/httpd/modules/mod_heartbeat.so
+%{_libdir}/httpd/modules/mod_heartmonitor.so
+%{_libdir}/httpd/modules/mod_include.so
+%{_libdir}/httpd/modules/mod_info.so
+%{_libdir}/httpd/modules/mod_lbmethod_bybusyness.so
+%{_libdir}/httpd/modules/mod_lbmethod_byrequests.so
+%{_libdir}/httpd/modules/mod_lbmethod_bytraffic.so
+%{_libdir}/httpd/modules/mod_lbmethod_heartbeat.so
+%{_libdir}/httpd/modules/mod_log_config.so
+%{_libdir}/httpd/modules/mod_log_debug.so
+%{_libdir}/httpd/modules/mod_log_forensic.so
+%{_libdir}/httpd/modules/mod_logio.so
+%{_libdir}/httpd/modules/mod_mime_magic.so
+%{_libdir}/httpd/modules/mod_mime.so
+%{_libdir}/httpd/modules/mod_mpm_event.so
+%{_libdir}/httpd/modules/mod_mpm_prefork.so
+%{_libdir}/httpd/modules/mod_mpm_worker.so
+%{_libdir}/httpd/modules/mod_negotiation.so
+%{_libdir}/httpd/modules/mod_proxy_ajp.so
+%{_libdir}/httpd/modules/mod_proxy_balancer.so
+%{_libdir}/httpd/modules/mod_proxy_connect.so
+%{_libdir}/httpd/modules/mod_proxy_express.so
+%{_libdir}/httpd/modules/mod_proxy_fcgi.so
+%{_libdir}/httpd/modules/mod_proxy_fdpass.so
+%{_libdir}/httpd/modules/mod_proxy_ftp.so
+%{_libdir}/httpd/modules/mod_proxy_http.so
+%{_libdir}/httpd/modules/mod_proxy_scgi.so
+%{_libdir}/httpd/modules/mod_proxy.so
+%{_libdir}/httpd/modules/mod_ratelimit.so
+%{_libdir}/httpd/modules/mod_reflector.so
+%{_libdir}/httpd/modules/mod_remoteip.so
+%{_libdir}/httpd/modules/mod_reqtimeout.so
+%{_libdir}/httpd/modules/mod_request.so
+%{_libdir}/httpd/modules/mod_rewrite.so
+%{_libdir}/httpd/modules/mod_sed.so
+%{_libdir}/httpd/modules/mod_session_cookie.so
+%{_libdir}/httpd/modules/mod_session_crypto.so
+%{_libdir}/httpd/modules/mod_session_dbd.so
+%{_libdir}/httpd/modules/mod_session.so
+%{_libdir}/httpd/modules/mod_setenvif.so
+%{_libdir}/httpd/modules/mod_slotmem_plain.so
+%{_libdir}/httpd/modules/mod_slotmem_shm.so
+%{_libdir}/httpd/modules/mod_socache_dbm.so
+%{_libdir}/httpd/modules/mod_socache_memcache.so
+%{_libdir}/httpd/modules/mod_socache_shmcb.so
+%{_libdir}/httpd/modules/mod_speling.so
+%{_libdir}/httpd/modules/mod_status.so
+%{_libdir}/httpd/modules/mod_substitute.so
+%{_libdir}/httpd/modules/mod_suexec.so
+%{_libdir}/httpd/modules/mod_unique_id.so
+%{_libdir}/httpd/modules/mod_unixd.so
+%{_libdir}/httpd/modules/mod_userdir.so
+%{_libdir}/httpd/modules/mod_usertrack.so
+%{_libdir}/httpd/modules/mod_version.so
+%{_libdir}/httpd/modules/mod_vhost_alias.so
+%{_libdir}/httpd/modules/mod_watchdog.so
%dir %{contentdir}
%dir %{contentdir}/cgi-bin
-%dir %{contentdir}/htdocs
%dir %{contentdir}/html
%dir %{contentdir}/icons
%dir %{contentdir}/error
%dir %{contentdir}/error/include
%{contentdir}/icons/*
%{contentdir}/error/README
-%{contentdir}/htdocs/index.html
+%{contentdir}/html/index.html
%config(noreplace) %{contentdir}/error/*.var
%config(noreplace) %{contentdir}/error/include/*.html
@@ -340,8 +419,6 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/*
%{_mandir}/man8/ab*
-%{_mandir}/man8/rotatelogs*
-%{_mandir}/man8/logresolve*
%{_mandir}/man8/suexec*
%{_mandir}/man8/apachectl.8*
%{_mandir}/man8/httpd.8*
@@ -352,6 +429,38 @@ rm -rf $RPM_BUILD_ROOT
%{contentdir}/manual
%{contentdir}/error/README
+%files tools
+%defattr(-,root,root)
+%{_sbindir}/ab
+%{_sbindir}/htdbm
+%{_sbindir}/htdigest
+%{_sbindir}/htpasswd
+%{_sbindir}/logresolve
+%{_sbindir}/httxt2dbm
+%{_sbindir}/rotatelogs
+%{_mandir}/man1/dbmmanage.1*
+%{_mandir}/man1/htdbm.1*
+%{_mandir}/man1/htdigest.1*
+%{_mandir}/man1/htpasswd.1*
+%{_mandir}/man8/ab.8*
+%{_mandir}/man8/logresolve.8*
+%{_mandir}/man8/rotatelogs.8*
+%doc LICENSE NOTICE
+
+%files -n mod_authnz_ldap
+%defattr(-,root,root)
+%{_libdir}/httpd/modules/mod_ldap.so
+%{_libdir}/httpd/modules/mod_authnz_ldap.so
+
+%files -n mod_lua
+%defattr(-,root,root)
+%{_libdir}/httpd/modules/mod_lua.so
+
+%files -n mod_proxy_html
+%defattr(-,root,root)
+%{_libdir}/httpd/modules/mod_proxy_html.so
+%{_libdir}/httpd/modules/mod_xml2enc.so
+
%files -n mod_ssl
%defattr(-,root,root)
%{_libdir}/httpd/modules/mod_ssl.so
diff --git a/config.layout b/config.layout
index af28f9f08f..58ee54ca1d 100644
--- a/config.layout
+++ b/config.layout
@@ -298,3 +298,28 @@
installbuilddir: ${prefix}/usr/share/apache2/build
errordir: ${datadir}/error
</Layout>
+
+# Generic RPM layout
+<Layout RPM>
+ prefix: /usr
+ exec_prefix: ${prefix}
+ bindir: ${prefix}/bin
+ sbindir: ${prefix}/sbin
+ libdir: ${prefix}/lib
+ libexecdir: ${libdir}/httpd/modules
+ mandir: ${prefix}/share/man
+ sysconfdir: /etc/httpd/conf
+ installbuilddir: ${libdir}/httpd/build
+ includedir: ${prefix}/include/httpd
+ localstatedir: /var
+ datadir: ${localstatedir}/www
+ errordir: ${datadir}/error
+ iconsdir: ${datadir}/icons
+ htdocsdir: ${datadir}/html
+ manualdir: ${datadir}/manual
+ cgidir: ${datadir}/cgi-bin
+ runtimedir: ${localstatedir}/run
+ logfiledir: ${localstatedir}/log/httpd
+ proxycachedir: ${localstatedir}/cache/httpd/cache-root
+</Layout>
+