%define contentdir /var/asl/www
%define suexec_caller tortix
%define mmn 20051115
%define vstring Atomicorp
%define distro Atomicorp
# ASL - for fc10+
%define _default_patch_fuzz 2
Summary: Apache HTTP Server
Name: tortixd
# based on 2.2.23-53 originally
Version: 2.2.23
Release: 5.1
URL: http://www.atomicorp.com
Source0: http://www.apache.org/dist/httpd/httpd-%{version}.tar.bz2
#
#Source1: centos_index.html
#Source3: httpd.logrotate
Source4: tortixd.init
Source5: tortixd.sysconf
#Source8: centos_powered_by_rh.png
Source10: tortixd.conf
Source11: tortixd-ssl.conf
#
Source12: welcome.conf
Source13: manual.conf
#
#Source14: proxy_ajp.conf
#
# Documentation
Source30: migration.xml
Source31: migration.css
Source32: html.xsl
Source33: README.confd
# build/scripts patches
Patch1: httpd-2.1.10-apctl.patch
#
Patch2: httpd-2.1.10-apxs-asl.patch
#
Patch3: httpd-2.0.45-deplibs.patch
Patch4: httpd-2.1.10-disablemods.patch
Patch5: httpd-2.1.10-layout.patch
Patch6: httpd-2.2.2-ac260.patch
# Features/functional changes
Patch20: httpd-2.0.48-release.patch
Patch21: httpd-2.0.40-xfsz.patch
Patch22: httpd-2.1.10-pod.patch
Patch23: httpd-2.0.45-export.patch
Patch24: httpd-2.0.48-corelimit.patch
Patch25: httpd-2.0.54-selinux.patch
# Bug fixes
Patch54: httpd-2.2.0-authnoprov.patch
Patch55: httpd-2.2.3-proxyopt.patch
Patch56: httpd-2.2.3-proxyoride.patch
Patch57: httpd-2.0.52-logresline.patch
Patch64: httpd-2.2.3-proxysslhost.patch
Patch65: httpd-2.2.3-pr46428.patch
Patch66: httpd-2.2.3-cgierror.patch
Patch67: httpd-2.2.3-pr43562.patch
Patch68: httpd-2.2.3-logports.patch
Patch69: httpd-2.2.3-graceful-ebadf.patch
Patch70: httpd-2.2.3-sslrenegredir.patch
Patch71: httpd-2.2.3-rewritelll.patch
Patch72: httpd-2.2.3-extfiltereos.patch
Patch73: httpd-2.2.3-cgierror2.patch
Patch74: httpd-2.2.3-pngmagic.patch
Patch75: httpd-2.2.3-defpidlog.patch
Patch76: httpd-2.2.3-rewritedpi.patch
Patch77: httpd-2.2.3-ldapremuser.patch
Patch78: httpd-2.2.3-ldappassauth.patch
Patch79: httpd-2.2.3-noxpad.patch
Patch80: httpd-2.2.3-ajpbuffer.patch
Patch81: httpd-2.2.3-sslflush.patch
Patch82: httpd-2.2.3-expectnoka.patch
Patch83: httpd-2.2.3-ssloidval.patch
Patch84: httpd-2.2.3-sslreneg.patch
Patch85: httpd-2.2.3-pr49328.patch
Patch86: httpd-2.2.3-aboverflow.patch
Patch87: httpd-2.2.3-pr40232.patch
Patch88: httpd-2.2.3-davputfail.patch
Patch89: httpd-2.2.3-dbdcleanup.patch
Patch90: httpd-2.2.3-pr41743.patch
Patch91: httpd-2.2.3-bbflush.patch
Patch92: httpd-2.2.3-pr37770.patch
Patch93: httpd-2.2.3-pr45792.patch
Patch94: httpd-2.2.3-sslproxyio.patch
Patch95: httpd-2.2.3-pr45444.patch
Patch96: httpd-2.2.3-proxyconn.patch
Patch97: httpd-2.2.3-ssldupkeys.patch
Patch98: httpd-2.2.3-pr45434.patch
Patch99: httpd-2.2.3-filterhdr.patch
Patch300: httpd-2.2.3-ldapcache.patch
Patch301: httpd-2.2.3-pr45333.patch
Patch302: httpd-2.2.3-pr44447.patch
Patch303: httpd-2.2.3-cachehardmax.patch
# Security Fixes
Patch100: httpd-2.2.3-CVE-2006-5752.patch
Patch101: httpd-2.2.3-CVE-2007-1863.patch
Patch102: httpd-2.2.3-CVE-2007-3304.patch
Patch103: httpd-2.2.3-CVE-2007-3847.patch
Patch104: httpd-2.2.3-CVE-2007-5000.patch
Patch105: httpd-2.2.3-CVE-2007-4465.patch
Patch106: httpd-2.2.3-CVE-2007-6421.patch
Patch107: httpd-2.2.3-CVE-2007-6422.patch
Patch108: httpd-2.2.3-CVE-2007-6388.patch
Patch109: httpd-2.2.3-prftpcset.patch
Patch110: httpd-2.2.3-CVE-2007-3304-update.patch
Patch111: httpd-2.2.3-CVE-2008-2939.patch
Patch112: httpd-2.2.3-CVE-2008-1678.patch
Patch113: httpd-2.2.3-CVE-2009-1195.patch
Patch114: httpd-2.2.3-ssicompat.patch
Patch115: httpd-2.2.10-CVE-2009-1890.patch
Patch116: httpd-2.2.10-CVE-2009-1891.patch
Patch117: httpd-2.2.3-CVE-2009-3555.patch
Patch118: httpd-2.2.3-CVE-2009-3094.patch
Patch119: httpd-2.2.3-CVE-2009-3095.patch
Patch120: httpd-2.2.3-CVE-2009-3555-p2.patch
Patch121: httpd-2.2.3-CVE-2010-0434.patch
Patch122: httpd-2.2.3-CVE-2010-0408.patch
Patch123: httpd-2.2.3-CVE-2010-1452.patch
Patch124: httpd-2.2.3-CVE-2010-2791.patch
Patch125: httpd-2.2.3-CVE-2011-3192.patch
# Rebases
Patch200: httpd-2.2.3-proxy229.patch
Patch201: httpd-2.2.3-cache229.patch
Patch202: httpd-2.2.3-deflate2215.patch
# ASL
Patch10000: asl-apachectl.patch
Patch10001: httpd-2.2.3-libtool2.patch
Patch10002: openssl-1.0-mod_ssl.patch
License: Apache Software License
Group: System Environment/Daemons
BuildRoot: %{_tmppath}/%{name}-root
BuildRequires: autoconf, perl, pkgconfig, xmlto >= 0.0.11, findutils
BuildRequires: db4-devel, expat-devel, zlib-devel, libselinux-devel
# el5
#BuildRequires: apr-devel >= 1.2.0, apr-util-devel >= 1.2.0, pcre-devel >= 5.0,
#Requires: initscripts >= 8.36
BuildRequires: apr-devel apr-util-devel pcre-devel
# fc9
BuildRequires: ed
Requires: initscripts
# fc11
%if 0%{?el6}%{?fc11}%{?fc12}%{?fc13}%{?fc14}%{?fc15}
BuildRequires: libtool libtool-ltdl libtool-ltdl-devel
%endif
# el4
%if 0%{?el4}
BuildRequires: asl-apr asl-apr-devel asl-apr-util asl-apr-util-devel
Requires: asl-apr asl-apr-util
%endif
# FC10 does not use /usr/share/magic.mime
%if 0%{?el6}%{?fc10}%{?fc11}%{?fc12}%{?fc13}%{?fc14}%{?fc15}
Requires: /etc/mime.types, gawk, /usr/bin/find
%else
Requires: /etc/mime.types, gawk, /usr/share/magic.mime, /usr/bin/find
%endif
#Obsoletes: httpd-suexec
#
Requires(pre): /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv
Requires(pre): sh-utils, textutils, /usr/sbin/useradd
#Provides: webserver
Provides: tortixd-mmn = %{mmn}
Provides: asl-httpd
Obsoletes: asl-httpd
Conflicts: pcre < 4.0
%description
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
%package devel
Group: Development/Libraries
Summary: Development tools for the Apache HTTP server.
#Obsoletes: secureweb-devel, apache-devel, stronghold-apache-devel
Provides: asl-httpd-devel
%if 0%{?el4}
Requires: asl-apr-devel, asl-apr-util-devel, pkgconfig
%else
Requires: apr-devel, apr-util-devel, pkgconfig
%endif
Requires: tortixd = %{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 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
to install this package.
%package manual
Group: Documentation
Summary: Documentation for the Apache HTTP server.
%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/2.2/.
%package -n tortixd-mod_ssl
Group: System Environment/Daemons
Summary: SSL/TLS module for the Apache HTTP server
Epoch: 1
BuildRequires: openssl-devel
Provides: asl-mod_ssl
Obsoletes: asl-mod_ssl
#Requires(post): openssl >= 0.9.7f-4, /bin/cat
# el4
Requires(post): openssl , /bin/cat
#
Requires: tortixd = 0:%{version}-%{release}, tortixd-mmn = %{mmn}
%description -n tortixd-mod_ssl
The mod_ssl module provides strong cryptography for the Apache Web
server via the Secure Sockets Layer (SSL) and Transport Layer
Security (TLS) protocols.
%prep
%setup -q -n httpd-%{version}
%patch1 -p1 -b .apctl
%patch2 -p1 -b .apxs
#ART %patch3 -p1 -b .deplibs
%patch4 -p1 -b .disablemods
%patch5 -p1 -b .layout
#ART %patch6 -p1 -b .ac260
%patch21 -p0 -b .xfsz
%patch22 -p1 -b .pod
%patch23 -p1 -b .export
%patch24 -p1 -b .corelimit
%patch25 -p1 -b .selinux
%patch54 -p1 -b .authnoprov
# ART %patch55 -p1 -b .proxyopt
# ART %patch56 -p1 -b .proxyoride
%patch57 -p1 -b .logresline
%patch64 -p1 -b .proxysslhost
# ART %patch65 -p1 -b .pr46428
# ART %patch66 -p1 -b .cgierror
# ART %patch67 -p1 -b .pr43562
# ART %patch68 -p1 -b .logports
%patch69 -p1 -b .graceful-ebadf
# ART %patch70 -p1 -b .sslrenegredir
# ART %patch71 -p1 -b .rewritelll
%patch72 -p1 -b .extfiltereos
# ART %patch73 -p1 -b .cgierror2
%patch74 -p1 -b .pngmagic
# ART %patch75 -p1 -b .defpidlog
# ART %patch76 -p1 -b .rewritedpi
# ART %patch77 -p1 -b .ldapremuser
# ART %patch78 -p1 -b .ldappassauth
%patch79 -p1 -b .noxpad
#patch80 applied after proxy changes
# ART %patch81 -p1 -b .sslflush
#patch82 applied after proxy changes
# ART %patch83 -p1 -b .ssloidval
#patch84 applied after mod_ssl security fixes
# ART %patch85 -p1 -b .pr49328
%patch86 -p1 -b .aboverflow
# ART %patch87 -p1 -b .pr40232
%patch88 -p1 -b .davputfail
# ART %patch89 -p1 -b .dbdcleanup
# ART %patch90 -p1 -b .pr41743
# ART %patch91 -p1 -b .bbflush
#patch92 applied after proxy changes
#patch93 applied after proxy changes
#patch94 applied after proxy changes
# ART %patch95 -p1 -b .pr45444
#patch96 applied after proxy changes
%patch97 -p1 -b .ssldupkeys
#patch98 applied after proxy changes
# ART %patch99 -p1 -b .filterhdr
# ART %patch300 -p1 -b .ldapcache
# ART %patch301 -p1 -b .pr45333
# ART %patch302 -p1 -b .pr44447
# ART %patch100 -p1 -b .cve5752
# ART %patch101 -p1 -b .cve1853
# ART %patch102 -p1 -b .cve3304
# ART %patch103 -p1 -b .cve3847
# ART %patch104 -p1 -b .cve5000
# ART %patch105 -p1 -b .cve4465
# ART %patch106 -p1 -b .cve6421
# ART %patch107 -p1 -b .cve6422
# ART %patch108 -p1 -b .cve6388
# ART %patch109 -p1 -b .prftpcset
# ART %patch110 -p1 -b .cve3304-update
# ART %patch111 -p1 -b .cve2939
# ART %patch112 -p1 -b .cve1195
# ART %patch113 -p1 -b .cve1678
# Not a security fix, but a fix for the -1195 patch:
# ART %patch114 -p1 -b .ssicompat
#patch115 applied after proxy changes
# ART %patch116 -p1 -b .cve1891
# ART %patch117 -p1 -b .cve3555
# ART %patch118 -p1 -b .cve3094
# ART %patch119 -p1 -b .cve3095
# ART %patch120 -p1 -b .cve3555-p2
# ART %patch121 -p1 -b .cve0434
# ART %patch122 -p1 -b .cve0408
# ART %patch123 -p1 -b .cve1452
#patch124 applied after proxy changes
# ART %patch125 -p1 -b .cve3192
# Rebases -- any changes to proxy/cache modules must come later:
# ART %patch200 -p1 -b .proxy229
# ART %patch201 -p1 -b .cache229
# ART %patch202 -p1 -b .deflate2215
# ART %patch32 -p1 -b .proxybybusy
# ART %patch80 -p1 -b .ajpbuffer
# ART %patch82 -p1 -b .expectnoka
# ART %patch92 -p1 -b .pr37770
# ART %patch93 -p1 -b .pr45792
# ART %patch94 -p1 -b .sslproxyio
# ART %patch96 -p1 -b .proxyconn
# ART %patch98 -p1 -b .pr45434
# ART %patch115 -p1 -b .cve1890
# ART %patch124 -p1 -b .cve2791
# ART %patch84 -p1 -b .sslreneg
# ART %patch303 -p1 -b .cachehardmax
# ASL
%patch10000 -p0 -b .apctl
#%patch10001 -p4 -b .libtool2
#%if 0%{?el6}%{?fc12}%{?fc13}%{?fc14}%{?fc15}
#%patch10002 -p0 -b .openssl-1
#%endif
# Patch in vendor/release string
#sed "s/@VENDOR@/%{vstring}/;s/@RELEASE@/%{release}/" < %{PATCH20} | patch -p1 -b -z .release
# Safety check: prevent build if defined MMN does not equal upstream MMN.
vmmn=`echo MODULE_MAGIC_NUMBER_MAJOR | cpp -include include/ap_mmn.h | sed -n '/^2/p'`
if test "x${vmmn}" != "x%{mmn}"; then
: Error: Upstream MMN is now ${vmmn}, packaged MMN is %{mmn}.
: Update the mmn macro and rebuild.
exit 1
fi
: Building for '%{distro}' with MMN %{mmn} and vendor string '%{vstring}'
%build
%define _aslhome /var/asl
%define _sysconfdir /var/asl/etc/
%define _prefix /var/asl/usr/
%define _bindir /var/asl/usr/bin/
%define _sbindir /var/asl/usr/sbin/
%define _includedir /var/asl/usr/include/
%define _mandir /var/asl/usr/share/man/
%define _libdir /var/asl/usr/lib/
%ifarch x86_64
%define _libdir /var/asl/usr/lib64/
%endif
# forcibly prevent use of bundled apr, apr-util, pcre
rm -rf srclib/{apr,apr-util,pcre}
# regenerate configure scripts
autoheader && autoconf || exit 1
# Limit size of CHANGES to recent history
#echo '1,/Changes with Apache MPM/wq' | ed CHANGES
# Before configure; fix location of build dir in generated apxs
# This is interesting because the default apxs patch removes this, so it normally is irrelevant.
%{__perl} -pi -e "s:\@exp_installbuilddir\@:%{_libdir}/httpd/build:g" \
support/apxs.in
# update location of migration guide in apachectl
%{__perl} -pi -e "s:\@docdir\@:%{_docdir}/%{name}-%{version}:g" \
support/apachectl.in
# Build the migration guide
sed 's/@DISTRO@/%{distro}/' < $RPM_SOURCE_DIR/migration.xml > migration.xml
xmlto -x $RPM_SOURCE_DIR/html.xsl html-nochunks migration.xml
cp $RPM_SOURCE_DIR/migration.css . # make %%doc happy
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
SH_LDFLAGS="-Wl,-z,relro"
export CFLAGS SH_LDFLAGS
# Forcibly disable use of rsync to install (#557049)
export ac_cv_path_RSYNC=
# Hard-code path to links to avoid unnecessary builddep
export LYNX_PATH=/usr/bin/links
function mpmbuild()
{
mpm=$1; shift
mkdir $mpm; pushd $mpm
../configure \
--prefix=%{_sysconfdir}/httpd \
--with-program-name=tortixd \
--exec-prefix=%{_prefix} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
--with-mpm=$mpm \
--with-apr=/usr --with-apr-util=/usr \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{contentdir} \
--with-suexec-logfile=%{_localstatedir}/log/tortixd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
--with-pcre \
$*
make %{?_smp_mflags}
popd
}
# Build everything and the kitchen sink with the prefork build
mpmbuild prefork \
--enable-mods-shared=all \
--enable-ssl --with-ssl \
--enable-proxy \
--enable-cache --enable-mem-cache \
--enable-file-cache --enable-disk-cache \
--enable-ldap --enable-authnz-ldap \
--enable-cgid \
--enable-authn-anon --enable-authn-alias \
--disable-imagemap
# For the other MPMs, just build httpd and no optional modules
mpmbuild worker --enable-modules=none
mpmbuild event --enable-modules=none
%install
rm -rf $RPM_BUILD_ROOT
# Classify ab and logresolve as section 1 commands, as they are in /usr/bin
#mv docs/man/ab.8 docs/man/ab.1
#mv docs/man/logresolve.8 docs/man/logresolve.1
pushd prefork
make DESTDIR=$RPM_BUILD_ROOT install
popd
# install alternative MPMs
install -m 755 worker/tortixd $RPM_BUILD_ROOT%{_sbindir}/tortixd.worker
install -m 755 event/tortixd $RPM_BUILD_ROOT%{_sbindir}/tortixd.event
# install conf file/directory
mkdir $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d
install -m 644 $RPM_SOURCE_DIR/README.confd \
$RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/README
#for f in tortixd-ssl.conf welcome.conf manual.conf ; do
install -m 644 $RPM_SOURCE_DIR/tortixd-ssl.conf $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf.d/ssl.conf
#done
rm $RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf/*.conf
install -m 644 $RPM_SOURCE_DIR/tortixd.conf \
$RPM_BUILD_ROOT%{_sysconfdir}/httpd/conf/tortixd.conf
#
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
install -m 644 $RPM_SOURCE_DIR/tortixd.sysconf \
$RPM_BUILD_ROOT/etc/sysconfig/tortixd
#
# for holding mod_dav lock database
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/dav
# create a prototype session cache
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl
touch $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_ssl/scache.{dir,pag,sem}
# create cache root
mkdir $RPM_BUILD_ROOT%{_localstatedir}/cache/mod_proxy
# move utilities to /usr/bin
mv $RPM_BUILD_ROOT%{_sbindir}/{ab,htdbm,logresolve,htpasswd,htdigest} \
$RPM_BUILD_ROOT%{_bindir}
# Make the MMN accessible to module packages
echo %{mmn} > $RPM_BUILD_ROOT%{_includedir}/httpd/.mmn
#
# docroot
#mkdir $RPM_BUILD_ROOT%{contentdir}/html
#install -m 644 $RPM_SOURCE_DIR/centos_index.html \
# $RPM_BUILD_ROOT%{contentdir}/error/noindex.html
#
# remove manual sources
find $RPM_BUILD_ROOT%{contentdir}/manual \( \
-name \*.xml -o -name \*.xml.* -o -name \*.ent -o -name \*.xsl -o -name \*.dtd \
\) -print0 | xargs -0 rm -f
# added for branding
#
#install -m 644 %{SOURCE8} \
# $RPM_BUILD_ROOT%{contentdir}/icons/powered_by_rh.png
#
# Strip the manual down just to English and replace the typemaps with flat files:
set +x
for f in `find $RPM_BUILD_ROOT%{contentdir}/manual -name \*.html -type f`; do
if test -f ${f}.en; then
cp ${f}.en ${f}
rm ${f}.*
fi
done
set -x
# logs
rmdir $RPM_BUILD_ROOT%{_sysconfdir}/httpd/logs
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/httpd
#
# symlinks for /etc/httpd
ln -s ../../../../%{_localstatedir}/log/httpd $RPM_BUILD_ROOT/var/asl/etc/httpd/logs
ln -s ../../../../%{_localstatedir}/run $RPM_BUILD_ROOT/var/asl/etc/httpd/run
ln -s ../../../../%{_libdir}/httpd/modules $RPM_BUILD_ROOT/var/asl/etc/httpd/modules
#
# install SYSV init stuff
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
install -m755 $RPM_SOURCE_DIR/tortixd.init \
$RPM_BUILD_ROOT/etc/rc.d/init.d/tortixd
%{__perl} -pi -e "s:\@docdir\@:%{_docdir}/%{name}-%{version}:g" \
$RPM_BUILD_ROOT/etc/rc.d/init.d/tortixd
#
# install log rotation stuff
#mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
#install -m644 $RPM_SOURCE_DIR/httpd.logrotate \
# $RPM_BUILD_ROOT/etc/logrotate.d/tortixd
#
# fix man page paths
sed -e "s|/usr/local/apache2/conf/httpd.conf|/etc/httpd/conf/httpd.conf|" \
-e "s|/usr/local/apache2/conf/mime.types|/etc/mime.types|" \
-e "s|/usr/local/apache2/conf/magic|/etc/httpd/conf/magic|" \
-e "s|/usr/local/apache2/logs/error_log|/var/log/httpd/error_log|" \
-e "s|/usr/local/apache2/logs/access_log|/var/log/httpd/access_log|" \
-e "s|/usr/local/apache2/logs/httpd.pid|/var/run/httpd.pid|" \
-e "s|/usr/local/apache2|/etc/httpd|" < docs/man/httpd.8 \
> $RPM_BUILD_ROOT%{_mandir}/man8/httpd.8
# Make ap_config_layout.h libdir-agnostic
sed -i '/.*DEFAULT_..._LIBEXECDIR/d;/DEFAULT_..._INSTALLBUILDDIR/d' \
$RPM_BUILD_ROOT%{_includedir}/httpd/ap_config_layout.h
# Fix path to instdso in special.mk
sed -i '/instdso/s,top_srcdir,top_builddir,' \
$RPM_BUILD_ROOT%{_libdir}/httpd/build/special.mk
#
# Remove unpackaged files
rm -f $RPM_BUILD_ROOT%{_libdir}/*.exp \
$RPM_BUILD_ROOT%{_aslhome}/etc/httpd/conf/mime.types \
$RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.exp \
$RPM_BUILD_ROOT%{_libdir}/httpd/build/config.nice \
$RPM_BUILD_ROOT%{_bindir}/ap?-config \
$RPM_BUILD_ROOT%{_sbindir}/{checkgid,dbmmanage,envvars*} \
$RPM_BUILD_ROOT%{contentdir}/htdocs/* \
$RPM_BUILD_ROOT%{contentdir}/htdocs/* \
$RPM_BUILD_ROOT%{_mandir}/man1/dbmmanage.* \
$RPM_BUILD_ROOT%{contentdir}/cgi-bin/*
rm -rf $RPM_BUILD_ROOT%{contentdir}/cgi-bin \
$RPM_BUILD_ROOT%{contentdir}/icons \
$RPM_BUILD_ROOT%{contentdir}/error
rm -rf $RPM_BUILD_ROOT%{_aslhome}/etc/httpd/conf/{original,extra}
#
# Make suexec a+rw so it can be stripped. %%files lists real permissions
chmod 755 $RPM_BUILD_ROOT%{_sbindir}/suexec
%trigger -- asl-httpd
/sbin/service asl-httpd stop >/dev/null 2>&1 || :
/sbin/chkconfig --del asl-httpd
%pre
if ! grep -q asl-web /etc/passwd ; then
/usr/sbin/useradd -r -M -d /var/asl/www asl-web -s /sbin/nologin
fi
if ! grep -q tortix /etc/passwd ; then
/usr/sbin/useradd -r -M -d /var/asl tortix -s /sbin/nologin
fi
%post
# Register the httpd service
/sbin/chkconfig --add tortixd
/sbin/chkconfig tortixd on
/sbin/service tortixd restart >/dev/null 2>&1 || :
%preun
if [ $1 = 0 ]; then
/sbin/service tortixd stop > /dev/null 2>&1
/sbin/chkconfig --del tortixd
fi
%define sslcert /var/asl/etc/httpd/conf/tortixd.crt
%define sslkey /var/asl/etc/httpd/conf/tortixd.key
%post -n tortixd-mod_ssl
umask 077
if [ ! -f %{sslkey} ] ; then
/usr/bin/openssl genrsa -rand /proc/apm:/proc/cpuinfo:/proc/dma:/proc/filesystems:/proc/interrupts:/proc/ioports:/proc/pci:/proc/rtc:/proc/uptime 2048 > %{sslkey} 2> /dev/null
fi
FQDN=`hostname`
if [ "x${FQDN}" = "x" ]; then
FQDN=localhost.localdomain
fi
if [ ! -f %{sslcert} ] ; then
cat << EOF | /usr/bin/openssl req -new -key %{sslkey} \
-x509 -days 365 -set_serial $RANDOM \
-out %{sslcert} 2>/dev/null
--
AtomicState
AtomicCity
AtomicOrganization
AtomicOrganizationalUnit
${FQDN}
root@${FQDN}
EOF
fi
#
%check
# Check the built modules are all PIC
if readelf -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.so | grep TEXTREL; then
: modules contain non-relocatable code
exit 1
fi
# Verify that the same modules were built into the httpd binaries
./prefork/tortixd -l | grep -v prefork > prefork.mods
for mpm in worker; do
./${mpm}/tortixd -l | grep -v ${mpm} > ${mpm}.mods
if ! diff -u prefork.mods ${mpm}.mods; then
: Different modules built into httpd binaries, will not proceed
exit 1
fi
done
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc ABOUT_APACHE README CHANGES LICENSE VERSIONING NOTICE
%doc migration.html migration.css
%dir %{_sysconfdir}/httpd
#
%{_sysconfdir}/httpd/modules
%{_sysconfdir}/httpd/logs
%{_sysconfdir}/httpd/run
#
%dir %{_sysconfdir}/httpd/conf
%config(noreplace) %{_sysconfdir}/httpd/conf/tortixd.conf
#%config(noreplace) %{_sysconfdir}/httpd/conf.d/welcome.conf
#
#%config(noreplace) %{_sysconfdir}/httpd/conf.d/proxy_ajp.conf
#
%config(noreplace) %{_sysconfdir}/httpd/conf/magic
#
#%config(noreplace) /etc/logrotate.d/tortixd
%config /etc/rc.d/init.d/tortixd
#
%dir %{_sysconfdir}/httpd/conf.d
%{_sysconfdir}/httpd/conf.d/README
#
%config(noreplace) /etc/sysconfig/tortixd
#
%{_bindir}/*
%{_sbindir}/ht*
%{_sbindir}/tortixd*
%{_sbindir}/apachectl
%{_sbindir}/rotatelogs
%attr(4510,root,%{suexec_caller}) %{_sbindir}/suexec
%dir %{_libdir}/httpd
%dir %{_libdir}/httpd/modules
%{_libdir}/httpd/modules/mod*.so
%exclude %{_libdir}/httpd/modules/mod_ssl.so
%dir %{contentdir}
#
#%dir %{contentdir}/cgi-bin
#%dir %{contentdir}/html
#%dir %{contentdir}/icons
#%dir %{contentdir}/error
#%dir %{contentdir}/error/include
#%{contentdir}/icons/*
#%{contentdir}/error/README
#%{contentdir}/error/noindex.html
#%config %{contentdir}/error/*.var
#%config %{contentdir}/error/include/*.html
#
%attr(0700,root,root) %dir %{_localstatedir}/log/httpd
%attr(0700,tortix,tortix) %dir %{_localstatedir}/lib/dav
%attr(0700,tortix,tortix) %dir %{_localstatedir}/cache/mod_proxy
%{_mandir}/man?/*
#%exclude %{_mandir}/man8/apxs.8*
%files manual
%defattr(-,root,root)
%{contentdir}/manual
#%config %{_sysconfdir}/httpd/conf.d/manual.conf
%files -n tortixd-mod_ssl
%defattr(-,root,root)
%{_libdir}/httpd/modules/mod_ssl.so
%config(noreplace) %{_sysconfdir}/httpd/conf.d/ssl.conf
%attr(0700,tortix,root) %dir %{_localstatedir}/cache/mod_ssl
%attr(0600,tortix,root) %ghost %{_localstatedir}/cache/mod_ssl/scache.dir
%attr(0600,tortix,root) %ghost %{_localstatedir}/cache/mod_ssl/scache.pag
%attr(0600,tortix,root) %ghost %{_localstatedir}/cache/mod_ssl/scache.sem
%files devel
%defattr(-,root,root)
%{_includedir}/httpd
%{_sbindir}/apxs
#%{_mandir}/man8/apxs.8*
%dir %{_libdir}/httpd/build
%{_libdir}/httpd/build/*.mk
%{_libdir}/httpd/build/*.sh
%changelog
* Mon Sep 10 2012 Support - 2.2.22-4
- Create separate SSL certificate for tortixd, update to ssl path
* Tue Apr 24 2012 Support - 2.2.22-3
- Add wait into the reload case to handle reloads from ASL Web more gracefully
* Mon Mar 5 2012 Support - 2.2.22-1
- Update to 2.2.22
* Thu Sep 22 2011 Support - 2.2.3-53.1
- Resync with upstream -53 build
* Fri Sep 3 2010 Support - 2.2.3-43.1
- mod_ssl: improved fix for SSLRequire's OID() function (#625452)
- add security fixes for CVE-2010-1452, CVE-2010-2791 (#623210)
- mod_deflate: rebase to 2.2.15 (#625435)
- stop multiple invocations of filter init functions (#625451)
* Fri Jun 25 2010 Support - 2.2.3-43.0.3
- add security fixes for CVE-2010-0408, CVE-2010-0434 (#570441)
- require and BR a version of OpenSSL with the secure reneg API (#566659)
- mod_ssl: add SSLInsecureRenegotiation (#566659)
- mod_ssl: further fix for OID() handling (#552942)
- prevent use of rsync during "make install" (#557049)
- mod_ssl: fix additional case for OID() handling (#552942)
- mod_authnz_ldap: fix handling of empty filter in group defn (#252038)
- mod_ssl: use ASN1_STRING_print() in SSLRequire's OID() (#552942)
- mod_ssl: add further mitigation for CVE-2009-3555 (#534042)
- add mod_substitute (#539256)
- mod_authnz_ldap: dynamic group fixes (#252038)
- mod_authnz_ldap: add support for dynamic group lookup (#252038)
- add security fixes for CVE-2009-3555, CVE-2009-3094, CVE-2009-3095 (#534042)
* Sun Dec 31 2009 Scott R. Shinn - 2.2.3-32.5
- Added patch to support openssl 1.0 from Fedora 12
- Deprecated ldap modules for Fedora 11 and Fedora 12
* Sun Dec 6 2009 Scott R. Shinn - 2.2.3-32.1
- Removed mod_proxy_ajp
- Re-merge with centos, the following changes are inherited.
- add security fixes for CVE-2009-3094, CVE-2009-3095, CVE-2009-3555 (#534041)
- mod_rewrite: correct backport of URI escaping fix (#480604)
- add security fixes for CVE-2009-1890, CVE-2009-1891 (#509783)
- add image/png to conf/magic (#240844)
- fix backwards compat for CVE-2009-1195 fix (#502998)
- mod_cgi, mod_cgid: fix logging on input read error (#498170)
- mod_rewrite: don't serialize logfile access (#493023)
- mod_ext_filter: fix spurious error log output (#479463)
- add security fixes for CVE-2008-1678, CVE-2009-1195 (#499285)
- mod_rewrite: fix URI escaping with [P] in directory context (#480604)
- mod_cgi: fix headers/status in error responses (#480932)
- mod_speling: fix handling of directory names (#485524)
- init script: use ${pidfile} in more places (#491135)
- mod_log_config: support remote/local with 'p' format (#493070)
- remove Obsolete for mod_jk (#493592)
- mod_ssl: fix SSL per-dir-reneg buffering with internal redirects (#488886)
- fix spurious error messages on graceful restart (#233955)
- mod_ssl: add SSLRenegBufferSize directive (#479806)
- mod_proxy: set c->remote_host for backend SSL connection (#479410)
- add security fixes for CVE-2008-2939 (#468841)
- note that the mod_proxy 2.2.9 rebase fixed CVE-2008-2634
* Fri Oct 9 2009 Scott R. Shinn - 2.2.3-22.17.3
- Minor change to httpd.conf, disabled additional modules by default
* Mon Aug 31 2009 Scott R. Shinn - 2.2.3-22.17.2
- Bugid #223, logrotate has been disabled, this is currently covered by the httpd package
* Thu Aug 27 2009 Scott R. Shinn - 2.2.3-22.17
- Added patch for libtool 2.2 support (fedora 11)
- Dropped some prefork build flags, like mem-cache
- Bugfix #216, asl-httpd rotates the same files as /etc/logrotate.d/httpd.
* Wed Jun 17 2009 Scott R. Shinn 2.2.3-22.6
- Updated apachectl, ssl.conf, httpd.init
* Wed Jun 17 2009 Scott R. Shinn 2.2.3-22.0
- Re-spin for ASL management daemon
* Thu May 28 2009 Karanbir Singh 2.2.3-22.el5.centos.1
- Roll in CentOS Branding
* Thu May 7 2009 Joe Orton 2.2.3-22.el5_3.1
- add security fixes for CVE-2008-1678, CVE-2009-1195 (#499284)
* Wed Nov 12 2008 Joe Orton 2.2.3-22.el5
- add security fixes for CVE-2008-2939 (#468841)
- note that the mod_proxy 2.2.9 rebase fixed CVE-2008-2634
* Tue Oct 21 2008 Joe Orton 2.2.3-21.el5
- avoid strict-aliasing warnings (#462877)
* Tue Oct 21 2008 Joe Orton 2.2.3-20.el5
- mod_proxy: scoreboard access fix (#252024)
* Thu Sep 18 2008 Joe Orton 2.2.3-19.el5
- mod_proxy: various backport fixes (#252024)
* Thu Sep 18 2008 Joe Orton 2.2.3-17.el5
- fix mod_proxy symbol use
* Mon Sep 15 2008 Joe Orton 2.2.3-16.el5
- mod_proxy*, mod_cache*: rebase to 2.2.9 (#252024, #249534,
#439842)
- backport changes to make chunk filter non-blocking (#454098)
* Fri Sep 12 2008 Joe Orton 2.2.3-15.el5
- mod_ldap: fix memory lifetime issues (#440259)
- mod_ssl: configure OpenSSL dynamic lock callbacks (#462044)
- escape the Request-Method in canned error responses (#445888)
- build the event MPM and fix a deadlock therein (#444643)
- mod_headers: support "RequestHeader edit" (#428253)
- use "OPTIONS *" rather than "GET /" in dummy connection (#367981)
* Thu Aug 14 2008 Joe Orton 2.2.3-14.el5
- mod_proxy: add ProxyPassMatch support (#449159)
* Mon Jul 21 2008 Joe Orton 2.2.3-13.el5
- mod_proxy_balancer: allow alternative string to match for
stickysession parameter (#439218)
- fix dist tag in Release (#440615)
* Fri Jan 11 2008 Joe Orton 2.2.3-12.el5_1.3
- further update to backport for CVE-2007-6421 (#427240)
* Fri Jan 11 2008 Joe Orton 2.2.3-12.el5_1.2
- updated backport for CVE-2007-6421 (#427240)
* Mon Jan 7 2008 Joe Orton 2.2.3-11.el5_1.1
- add security fixes for CVE-2007-6388, CVE-2007-6421
and CVE-2007-6422 (#427240)
- add security fix for CVE-2007-4465, CVE-2007-5000 (#421631)
- add security fix for mod_proxy_ftp UTF-7 XSS (#427745)
* Mon Aug 6 2007 Joe Orton 2.2.3-11.el5
- mark httpd.conf config(noreplace) (#247881)
* Fri Aug 3 2007 Joe Orton 2.2.3-10.el5
- add security fix for CVE-2007-3847 (#250761)
* Wed Aug 1 2007 Joe Orton 2.2.3-9.el5
- load mod_version by default (#247881)
* Tue Jun 26 2007 Joe Orton 2.2.3-8.el5
- add 'ServerTokens Full-Release' config option (#240857)
- use init script in logrotate postrotate (#241680)
- fix mod_proxy option inheritance (#245719)
- fix ProxyErrorOverride to only affect 4xx, 5xx responses (#240024)
- bump logresolve line buffer length to 10K (#245763)
- add security fixes for CVE-2007-1863, CVE-2007-3304,
and CVE-2006-5752 (#244666)
* Wed Nov 29 2006 Joe Orton 2.2.3-6.el5
- fix path to instdso.sh in special.mk (#217677)
- fix detection of links in "apachectl fullstatus"
* Tue Sep 19 2006 Joe Orton 2.2.3-5.el5
- rebuild
* Fri Aug 11 2006 Joe Orton 2.2.3-3.el5
- use RHEL branding
* Thu Aug 3 2006 Joe Orton 2.2.3-3
- init: use killproc() delay to avoid race killing parent
* Fri Jul 28 2006 Joe Orton 2.2.3-2
- update to 2.2.3
- trim %%changelog to >=2.0.52
* Thu Jul 20 2006 Joe Orton 2.2.2-8
- fix segfault on dummy connection failure at graceful restart (#199429)
* Wed Jul 19 2006 Joe Orton 2.2.2-7
- fix "apxs -g"-generated Makefile
- fix buildconf with autoconf 2.60
* Wed Jul 12 2006 Jesse Keating - 2.2.2-5.1
- rebuild
* Wed Jun 7 2006 Joe Orton 2.2.2-5
- require pkgconfig for -devel (#194152)
- fixes for installed support makefiles (special.mk et al)
- BR autoconf
* Fri Jun 2 2006 Joe Orton 2.2.2-4
- make -devel package multilib-safe (#192686)
* Thu May 11 2006 Joe Orton 2.2.2-3
- build DSOs using -z relro linker flag
* Wed May 3 2006 Joe Orton 2.2.2-2
- update to 2.2.2
* Thu Apr 6 2006 Joe Orton 2.2.0-6
- rebuild to pick up apr-util LDAP interface fix (#188073)
* Fri Feb 10 2006 Jesse Keating - (none):2.2.0-5.1.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating - (none):2.2.0-5.1.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Mon Feb 6 2006 Joe Orton 2.2.0-5.1
- mod_auth_basic/mod_authn_file: if no provider is configured,
and AuthUserFile is not configured, decline to handle authn
silently rather than failing noisily.
* Fri Feb 3 2006 Joe Orton 2.2.0-5
- mod_ssl: add security fix for CVE-2005-3357 (#177914)
- mod_imagemap: add security fix for CVE-2005-3352 (#177913)
- add fix for AP_INIT_* designated initializers with C++ compilers
- httpd.conf: enable HTMLTable in default IndexOptions
- httpd.conf: add more "redirect-carefully" matches for DAV clients
* Thu Jan 5 2006 Joe Orton 2.2.0-4
- mod_proxy_ajp: fix Cookie handling (Mladen Turk, r358769)
* Fri Dec 09 2005 Jesse Keating
- rebuilt
* Wed Dec 7 2005 Joe Orton 2.2.0-3
- strip manual to just English content
* Mon Dec 5 2005 Joe Orton 2.2.0-2
- don't strip C-L from HEAD responses (Greg Ames, #110552)
- load mod_proxy_balancer by default
- add proxy_ajp.conf to load/configure mod_proxy_ajp
- Obsolete mod_jk
- update docs URLs in httpd.conf/ssl.conf
* Fri Dec 2 2005 Joe Orton 2.2.0-1
- update to 2.2.0
* Wed Nov 30 2005 Joe Orton 2.1.10-2
- enable mod_authn_alias, mod_authn_anon
- update default httpd.conf
* Fri Nov 25 2005 Joe Orton 2.1.10-1
- update to 2.1.10
- require apr >= 1.2.0, apr-util >= 1.2.0
* Wed Nov 9 2005 Tomas Mraz 2.0.54-16
- rebuilt against new openssl
* Thu Nov 3 2005 Joe Orton 2.0.54-15
- log notice giving SELinux context at startup if enabled
- drop SSLv2 and restrict default cipher suite in default
SSL configuration
* Thu Oct 20 2005 Joe Orton 2.0.54-14
- mod_ssl: add security fix for SSLVerifyClient (CVE-2005-2700)
- add security fix for byterange filter DoS (CVE-2005-2728)
- add security fix for C-L vs T-E handling (CVE-2005-2088)
- mod_ssl: add security fix for CRL overflow (CVE-2005-1268)
- mod_ldap/mod_auth_ldap: add fixes from 2.0.x branch (upstream #34209 etc)
- add fix for dummy connection handling (#167425)
- mod_auth_digest: fix hostinfo comparison in CONNECT requests
- mod_include: fix variable corruption in nested includes (upstream #12655)
- mod_ssl: add fix for handling non-blocking reads
- mod_ssl: fix to enable output buffering (upstream #35279)
- mod_ssl: buffer request bodies for per-location renegotiation (upstream #12355)
* Sat Aug 13 2005 Joe Orton 2.0.54-13
- don't load by default: mod_cern_meta, mod_asis
- do load by default: mod_ext_filter (#165893)
* Thu Jul 28 2005 Joe Orton 2.0.54-12
- drop broken epoch deps
* Thu Jun 30 2005 Joe Orton 2.0.54-11
- mod_dav_fs: fix uninitialized variable (#162144)
- add epoch to dependencies as appropriate
- mod_ssl: drop dependencies on dev, make
- mod_ssl: mark post script dependencies as such
* Mon May 23 2005 Joe Orton 2.0.54-10
- remove broken symlink (Robert Scheck, #158404)
* Wed May 18 2005 Joe Orton 2.0.54-9
- add piped logger fixes (w/Jeff Trawick)
* Mon May 9 2005 Joe Orton 2.0.54-8
- drop old "powered by Red Hat" logos
* Wed May 4 2005 Joe Orton 2.0.54-7
- mod_userdir: fix memory allocation issue (upstream #34588)
- mod_ldap: fix memory corruption issue (Brad Nicholes, upstream #34618)
* Tue Apr 26 2005 Joe Orton 2.0.54-6
- fix key/cert locations in post script
* Mon Apr 25 2005 Joe Orton 2.0.54-5
- create default dummy cert in /etc/pki/tls
- use a pseudo-random serial number on the dummy cert
- change default ssl.conf to point at /etc/pki/tls
- merge back -suexec subpackage; SELinux policy can now be
used to persistently disable suexec (#155716)
- drop /etc/httpd/conf/ssl.* directories and Makefiles
- unconditionally enable PIE support
- mod_ssl: fix for picking up -shutdown options (upstream #34452)
* Mon Apr 18 2005 Joe Orton 2.0.54-4
- replace PreReq with Requires(pre)
* Mon Apr 18 2005 Joe Orton 2.0.54-3
- update to 2.0.54
* Tue Mar 29 2005 Joe Orton 2.0.53-6
- update default httpd.conf:
* clarify the comments on AddDefaultCharset usage (#135821)
* remove all the AddCharset default extensions
* don't load mod_imap by default
* synch with upstream 2.0.53 httpd-std.conf
- mod_ssl: set user from SSLUserName in access hook (upstream #31418)
- htdigest: fix permissions of created files (upstream #33765)
- remove htsslpass
* Wed Mar 2 2005 Joe Orton 2.0.53-5
- apachectl: restore use of $OPTIONS again
* Wed Feb 9 2005 Joe Orton 2.0.53-4
- update to 2.0.53
- move prefork/worker modules comparison to %%check
* Mon Feb 7 2005 Joe Orton 2.0.52-7
- fix cosmetic issues in "service httpd reload"
- move User/Group higher in httpd.conf (#146793)
- load mod_logio by default in httpd.conf
- apachectl: update for correct libselinux tools locations
* Tue Nov 16 2004 Joe Orton 2.0.52-6
- add security fix for CVE CAN-2004-0942 (memory consumption DoS)
- SELinux: run httpd -t under runcon in configtest (Steven Smalley)
- fix SSLSessionCache comment for distcache in ssl.conf
- restart using SIGHUP not SIGUSR1 after logrotate
- add ap_save_brigade fix (upstream #31247)
- mod_ssl: fix possible segfault in auth hook (upstream #31848)
- add htsslpass(1) and configure as default SSLPassPhraseDialog (#128677)
- apachectl: restore use of $OPTIONS
- apachectl, httpd.init: refuse to restart if $HTTPD -t fails
- apachectl: run $HTTPD -t in user SELinux context for configtest
- update for pcre-5.0 header locations
* Sat Nov 13 2004 Jeff Johnson 2.0.52-5
- rebuild against db-4.3.21 aware apr-util.
* Thu Nov 11 2004 Jeff Johnson 2.0.52-4
- rebuild against db-4.3-21.
* Thu Sep 28 2004 Joe Orton 2.0.52-3
- add dummy connection address fixes from HEAD
- mod_ssl: add security fix for CAN-2004-0885
* Tue Sep 28 2004 Joe Orton 2.0.52-2
- update to 2.0.52