forked from pool/apache2
- mod_ssl: improve ephemeral key handling in particular, support DH params with more than 1024 bits, and allow custom configuration. This patch adjust DH parameters according to the relevant RFC recommendations and permanently disables the usage of "export" and "NULL" ciphers no matter what the user configuration is (mod_ssl-2.4.x-ekh.diff, to be in 2.4.7) OBS-URL: https://build.opensuse.org/request/show/204244 OBS-URL: https://build.opensuse.org/package/show/Apache/apache2?expand=0&rev=394
1159 lines
35 KiB
RPMSpec
1159 lines
35 KiB
RPMSpec
#
|
|
# spec file for package apache2
|
|
#
|
|
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
Name: apache2
|
|
BuildRequires: automake
|
|
BuildRequires: db-devel
|
|
BuildRequires: ed
|
|
BuildRequires: libapr-util1-devel
|
|
BuildRequires: libapr1-devel >= 1.4.2
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: pcre-devel
|
|
BuildRequires: xz
|
|
BuildRequires: zlib-devel
|
|
BuildRequires: lua-devel
|
|
#for mod_proxy_html and mod_xml2enc
|
|
BuildRequires: libxml2-devel
|
|
%if %{?suse_version:1}0 && 0%{?sles_version} == 9
|
|
BuildRequires: libcap
|
|
%else
|
|
BuildRequires: libcap-devel
|
|
%endif
|
|
%if 0%{?suse_version} >= 1210
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(libsystemd-daemon)
|
|
%endif
|
|
|
|
%if %{?suse_version:1}0
|
|
%define httpduser wwwrun
|
|
%define httpdgroup www
|
|
%else
|
|
%define httpduser apache
|
|
%define httpdgroup apache
|
|
BuildRequires: expat-devel
|
|
%endif
|
|
#
|
|
%define pname apache2
|
|
%define vers 2
|
|
%define httpd httpd2
|
|
%define apache_mmn %(test -s %{S:0} && { echo -n apache_mmn_; bzcat %{S:0} | awk '/^#define MODULE_MAGIC_NUMBER_MAJOR/ {printf "%d", $3}'; })
|
|
%define default_mpm prefork
|
|
%{!?prefork:%define prefork 1}
|
|
%{!?worker:%define worker 1}
|
|
%{!?event:%define event 1}
|
|
%{!?itk:%define itk 0}
|
|
%define mpms_to_build %(test %prefork = 1 && printf prefork) %(test %worker = 1 && printf worker) %(test %event = 1 && printf event) %(test %itk = 1 && printf itk)
|
|
# dir names
|
|
%define datadir /srv/www
|
|
%define htdocsdir %{datadir}/htdocs
|
|
%define manualdir %{_prefix}/share/%{pname}/manual
|
|
%define errordir %{_prefix}/share/%{pname}/error
|
|
%define iconsdir %{_prefix}/share/%{pname}/icons
|
|
%define cgidir %{datadir}/cgi-bin
|
|
%define localstatedir /var/lib/%{pname}
|
|
%define proxycachedir /var/cache/%{pname}
|
|
%define logfiledir /var/log/%{pname}
|
|
%if %suse_version > 1220
|
|
%define runtimedir /run
|
|
%else
|
|
%define runtimedir /var/run
|
|
%endif
|
|
%define sysconfdir /etc/%{pname}
|
|
%define includedir %{_includedir}/%{pname}
|
|
%define libexecdir %_libdir/%{pname}
|
|
%define installbuilddir %{_prefix}/share/%{pname}/build
|
|
%define userdir public_html
|
|
%define suexec_safepath /usr/local/bin:/usr/bin:/bin
|
|
%if %suse_version > 1220
|
|
%define _unitdir /usr/lib/systemd
|
|
%else
|
|
%define _unitdir /lib/systemd
|
|
%endif
|
|
# "Server:" header
|
|
%define VENDOR SUSE
|
|
%define platform_string Linux/%VENDOR
|
|
%define realver 2.4.6
|
|
Version: 2.4.6
|
|
Release: 0
|
|
#Source0: http://www.apache.org/dist/httpd-%{version}.tar.bz2
|
|
Source0: httpd-%{realver}.tar.bz2
|
|
# Add file to take mtime from it in prep section
|
|
Source1: apache2.changes
|
|
Source6: 60C5442D.key
|
|
Source10: SUSE-NOTICE
|
|
Source11: rc.%{pname}
|
|
Source13: sysconfig.%{pname}
|
|
Source18: robots.txt
|
|
Source20: favicon.ico
|
|
Source22: apache2-README
|
|
Source23: apache2-README.QUICKSTART
|
|
Source24: apache2-README.default-vhost
|
|
Source25: gensslcert
|
|
Source27: %{pname}.logrotate
|
|
Source28: permissions.%{pname}
|
|
Source29: apache-ssl-stuff.tar.bz2
|
|
Source40: load_configuration
|
|
Source41: find_mpm
|
|
Source42: get_module_list
|
|
Source43: get_includes
|
|
Source44: find_httpd2_includes
|
|
# sysconf_addword is part of aaa_base.rpm starting with openSUSE 11.0
|
|
# we bring our own copy for the cases where it is not available
|
|
Source45: sysconf_addword
|
|
Source46: a2enflag
|
|
Source47: a2enmod
|
|
Source48: apache2.xml
|
|
Source49: apache2.firewall
|
|
Source50: apache2.ssl-firewall
|
|
Source100: apache2-httpd.conf
|
|
Source101: apache2-errors.conf
|
|
Source102: apache2-default-server.conf
|
|
Source103: apache2-listen.conf
|
|
Source104: apache2-manual.conf
|
|
Source105: apache2-mod_autoindex-defaults.conf
|
|
Source106: apache2-mod_info.conf
|
|
Source107: apache2-mod_log_config.conf
|
|
Source108: apache2-mod_mime-defaults.conf
|
|
Source109: apache2-mod_status.conf
|
|
Source110: apache2-mod_userdir.conf
|
|
Source111: apache2-server-tuning.conf
|
|
Source113: apache2-ssl-global.conf
|
|
Source114: apache2-mod_usertrack.conf
|
|
Source115: apache2-mod_reqtimeout.conf
|
|
Source130: apache2-vhost.template
|
|
Source131: apache2-vhost-ssl.template
|
|
Source132: apache2-default-vhost.conf
|
|
Source133: apache2-default-vhost-ssl.conf
|
|
Source140: apache2-check_forensic
|
|
Source141: apache-20-22-upgrade
|
|
Source142: start_apache2
|
|
Source143: apache2-systemd-ask-pass
|
|
Source144: apache2.service
|
|
Patch2: httpd-2.1.3alpha-layout.dif
|
|
Patch23: httpd-2.1.9-apachectl.dif
|
|
#Patch65: httpd-2.0.49-log_server_status.dif
|
|
Patch66: httpd-2.0.54-envvars.dif
|
|
Patch67: httpd-2.2.0-apxs-a2enmod.dif
|
|
Patch68: httpd-2.x.x-logresolve.patch
|
|
Patch69: httpd-2.2.x-bnc690734.patch
|
|
Patch70: apache2-implicit-pointer-decl.patch
|
|
# PATCH-FEATURE-UPSTREAM apache2-mod_ssl_npn.patch dimstar@opensuse.org -- Add npn support to mod_ssl (needed for spdy)
|
|
#Patch108: apache2-mod_ssl_npn.patch
|
|
#Provides: apache2(mod_ssl+npn)
|
|
# PATCH-FEATURE-UPSTREAM httpd-2.4.3-mod_systemd.patch crrodriguez@opensuse.org simple module provides systemd integration.
|
|
Patch109: httpd-2.4.3-mod_systemd.patch
|
|
Patch110: http://people.apache.org/~minfrin/httpd-event-ssl.patch
|
|
Patch111: httpd-visibility.patch
|
|
Patch112: mod_ssl-2.4.x-ekh.diff
|
|
Url: http://httpd.apache.org/
|
|
Icon: Apache.xpm
|
|
Summary: The Apache Web Server Version 2.2
|
|
License: Apache-2.0
|
|
Group: Productivity/Networking/Web/Servers
|
|
Provides: %{apache_mmn}
|
|
Provides: http_daemon
|
|
Provides: httpd
|
|
Provides: suse_help_viewer
|
|
Provides: %{name}-mod_macro = %{version}
|
|
Obsoletes: %{name}-mod_macro <= 1.2.1
|
|
Requires: %{pname}-MPM
|
|
Requires: /etc/mime.types
|
|
PreReq: %{name}-utils
|
|
Requires: logrotate
|
|
#for some reason the parser barfs if not conditional
|
|
%{?requires_ge:%requires_ge libapr1}
|
|
%{?requires_ge:%requires_ge libapr-util1}
|
|
%{?systemd_requires}
|
|
PreReq: fileutils textutils grep sed
|
|
%if %{?suse_version:1}0
|
|
PreReq: %insserv_prereq %fillup_prereq permissions pwdutils
|
|
%endif
|
|
%if 0%{?suse_version} >= 901 && 0%{?sles_version} != 9
|
|
Provides: apache
|
|
Obsoletes: apache < 1.3.29
|
|
Obsoletes: mod_ssl < 2.8.16
|
|
%endif
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if 0%{?suse_version} >= 1110
|
|
Recommends: apache2-%default_mpm
|
|
%endif
|
|
|
|
%description
|
|
Apache 2, the successor to Apache 1.
|
|
|
|
Apache is the most used Web server software worldwide.
|
|
|
|
Some new features in Apache 2: - hybrid multiprocess, multithreaded
|
|
mode for improved scalability
|
|
|
|
- multiprotocol support
|
|
|
|
- stream filtering
|
|
|
|
- IPv6 support
|
|
|
|
- new module API
|
|
|
|
New modules include: - mod_auth_db
|
|
|
|
- mod_auth_digest
|
|
|
|
- mod_charset_lite
|
|
|
|
- mod_dav
|
|
|
|
- mod_file_cache
|
|
|
|
Mod_ssl is no longer a separate package, but is now included in the
|
|
Apache distribution.
|
|
|
|
See /usr/share/doc/packages/apache2/, http://httpd.apache.org/, and
|
|
http://httpd.apache.org/docs-2.2/upgrading.html.
|
|
|
|
%if %worker
|
|
|
|
%package worker
|
|
Summary: Apache 2 worker MPM (Multi-Processing Module)
|
|
Group: Productivity/Networking/Web/Servers
|
|
Provides: %{pname}-MPM
|
|
Requires: %{name} = %{version}
|
|
%endif
|
|
%if %prefork
|
|
|
|
%package prefork
|
|
Summary: Apache 2 "prefork" MPM (Multi-Processing Module)
|
|
Group: Productivity/Networking/Web/Servers
|
|
Provides: %{pname}-MPM
|
|
%if 0%{?suse_version} >= 901 && 0%{?sles_version} != 9
|
|
Provides: apache:/usr/sbin/httpd
|
|
%endif
|
|
Requires: %{name} = %{version}
|
|
%endif
|
|
%if %event
|
|
|
|
%package event
|
|
Summary: Apache 2 event MPM (Multi-Processing Module)
|
|
Group: Productivity/Networking/Web/Servers
|
|
Provides: %{pname}-MPM
|
|
Requires: %{name} = %{version}
|
|
%endif
|
|
%if %itk
|
|
|
|
%package itk
|
|
Summary: Apache 2 "ITK" MPM (Multi-Processing Module)
|
|
Group: Productivity/Networking/Web/Servers
|
|
Provides: %{pname}-MPM
|
|
Requires: %{name} = %{version}
|
|
%endif
|
|
%if %worker
|
|
|
|
%description worker
|
|
The worker MPM (multi-Processing Module) implementing a hybrid
|
|
multi-threaded multi-process web server.
|
|
|
|
This combination offers a performance boost and retains some of the
|
|
stability of the multi-process model.
|
|
|
|
%endif
|
|
%if %prefork
|
|
|
|
%description prefork
|
|
"prefork" MPM (Multi-Processing Module)
|
|
|
|
This MPM is basically the one that Apache 1.3.x used. It warrants the
|
|
maximum stability because each server runs in its own process. If a
|
|
process dies it will not affect other servers.
|
|
|
|
%endif
|
|
%if %event
|
|
|
|
%description event
|
|
The event MPM (multi-Processing Module) is experimental, so it may or
|
|
may not work as expected.
|
|
|
|
It uses a separate thread to handle Keep Alive requests and accepting
|
|
connections. Keep Alive requests have traditionally required httpd to
|
|
dedicate a worker to handle it. This dedicated worker could not be used
|
|
again until the Keep Alive timeout was reached.
|
|
|
|
This MPM depends on APR's atomic compare-and-swap operations for thread
|
|
synchronization.
|
|
|
|
%endif
|
|
%if %itk
|
|
|
|
%description itk
|
|
The "ITK" MPM (Multi-Processing Module) is experimental and NOT officially
|
|
endorsed by the Apache Software Foundation, so it may or may not work as
|
|
expected.
|
|
|
|
Apache2-mpm-itk (just mpm-itk for short) is a MPM for the Apache 2 web server.
|
|
mpm-itk allows you to run each of your vhosts under a separate uid and gid --
|
|
in short, the scripts and configuration files for one vhost no longer have to
|
|
be readable for all the other vhosts.
|
|
|
|
See http://mpm-itk.sesse.net/
|
|
|
|
%endif
|
|
|
|
%package devel
|
|
Summary: Apache 2.2 Header and Include Files
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Requires: %{pname}-MPM
|
|
Requires: apache2-prefork
|
|
Requires: gcc
|
|
Requires: libapr-util1-devel
|
|
Requires: libapr1-devel
|
|
|
|
%description devel
|
|
This package contains header files and include files that are needed
|
|
for development using the Apache API.
|
|
|
|
|
|
|
|
%package doc
|
|
Summary: Additional Package Documentation.
|
|
Group: Documentation/Other
|
|
%if 0%{?suse_version} >= 901 && 0%{?sles_version} != 9
|
|
Provides: apache-doc
|
|
Obsoletes: apache-doc
|
|
%endif
|
|
%if 0%{?suse_version} >= 1120
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description doc
|
|
This package contains optional documentation provided in addition to
|
|
this package's base documentation.
|
|
|
|
|
|
|
|
%package example-pages
|
|
Summary: Example Pages for the Apache 2 Web Server
|
|
Group: Productivity/Networking/Web/Servers
|
|
%if 0%{?suse_version} >= 901 && 0%{?sles_version} != 9
|
|
Provides: apache-example-pages
|
|
Obsoletes: apache-example-pages
|
|
%endif
|
|
|
|
%description example-pages
|
|
Some Example pages for Apache that show information about the installed
|
|
server.
|
|
|
|
%package utils
|
|
Summary: Apache 2 utilities
|
|
Group: Productivity/Networking/Web/Servers
|
|
|
|
%description utils
|
|
Utilities provided by the Apache 2 Web Server project which are useful
|
|
to administrators of web servers in general.
|
|
|
|
%prep
|
|
#
|
|
# O/ ._ .__ ._
|
|
# /O |_)|(/_|_)
|
|
# | |
|
|
#
|
|
%setup -q -n httpd-%{realver}
|
|
%patch2 -p1
|
|
%patch23 -p1
|
|
#%patch65 -p1
|
|
%patch66 -p1
|
|
%patch67 -p1
|
|
%patch68 -p1
|
|
#%patch69
|
|
%patch70 -p1
|
|
#%patch108 -p1
|
|
%patch109 -p1
|
|
%patch110
|
|
%patch111 -p1
|
|
%patch112
|
|
cat $RPM_SOURCE_DIR/SUSE-NOTICE >> NOTICE
|
|
# install READMEs
|
|
a=$(basename %{S:22})
|
|
cp %{S:22} ./${a##%{name}-}
|
|
b=$(basename %{S:23})
|
|
cp %{S:23} ./${b##%{name}-}
|
|
c=$(basename %{S:24})
|
|
cp %{S:24} ./${c##%{name}-}
|
|
|
|
#
|
|
# replace PLATFORM string that's seen in the "Server:" header
|
|
#
|
|
sed 's,(" PLATFORM "),(%platform_string),' server/core.c > tmp_file && mv tmp_file server/core.c
|
|
sed 's/public_html/%{userdir}/g' docs/conf/extra/httpd-userdir.conf.in > tmp_file && mv tmp_file docs/conf/extra/httpd-userdir.conf.in
|
|
# Use mtime of .changes for build time
|
|
CHANGES=`stat --format="%y" %SOURCE1`
|
|
sed -i -e "s/__DATE__ \" \" __TIME__;/\"$CHANGES\";/" server/buildmark.c
|
|
#
|
|
# now configure Apache
|
|
#
|
|
%if 0%{?suse_version} > 910
|
|
autoreconf -fiv
|
|
%else
|
|
rm -rf aclocal.m4 autom4te*.cache
|
|
autoheader
|
|
autoconf
|
|
%endif
|
|
|
|
%build
|
|
#
|
|
# O/ |_ o| _|
|
|
# /O |_)|_|||(_|
|
|
#
|
|
function configure {
|
|
CFLAGS="$RPM_OPT_FLAGS -fPIC -Wall -DLDAP_DEPRECATED" \
|
|
CPPFLAGS="-DSSL_EXPERIMENTAL_ENGINE -DMAX_SERVER_LIMIT=200000 -DLDAP_DEPRECATED -DMAXLINE=4096" \
|
|
./configure \
|
|
--enable-layout=SuSE81%(test "%_lib" = lib64 && echo -n _64) \
|
|
--with-program-name=httpd%{vers}$mpm_suffix \
|
|
--with-apr=%{_bindir}/apr-1-config \
|
|
--with-apr-util=%{_bindir}/apu-1-config \
|
|
--with-mpm=$mpm \
|
|
%if "$mpm" == "worker" || "$mpm" == "event"
|
|
%ifarch %ix86
|
|
%ifnarch i386
|
|
--enable-nonportable-atomics=yes \
|
|
%endif
|
|
%endif
|
|
%endif
|
|
\
|
|
--enable-exception-hook \
|
|
\
|
|
%if %{?suse_version:%suse_version}%{?!suse_version:9999} > 930
|
|
--with-pcre \
|
|
--enable-pie \
|
|
%endif
|
|
--enable-mods-shared=all \
|
|
--enable-mods-static="access_compat unixd" \
|
|
--enable-ssl=shared \
|
|
\
|
|
--disable-isapi \
|
|
--enable-deflate \
|
|
--enable-echo \
|
|
--enable-filter \
|
|
--enable-ext-filter \
|
|
--enable-charset-lite \
|
|
--enable-file-cache \
|
|
--enable-logio \
|
|
--enable-dumpio \
|
|
--enable-bucketeer \
|
|
--enable-case_filter \
|
|
--enable-case_filter_in \
|
|
\
|
|
--with-ldap \
|
|
--enable-ldap \
|
|
--enable-authnz_ldap \
|
|
\
|
|
--enable-proxy \
|
|
--enable-proxy-connect \
|
|
--enable-proxy-ftp \
|
|
--enable-proxy-http \
|
|
--enable-cache \
|
|
--enable-disk-cache \
|
|
--enable-mem-cache \
|
|
--enable-version \
|
|
\
|
|
--enable-dav-lock \
|
|
--enable-authn-alias \
|
|
--enable-optional-hook-export \
|
|
--enable-optional-hook-import \
|
|
--enable-optional-fn-import \
|
|
--enable-optional-fn-export \
|
|
\
|
|
--enable-suexec \
|
|
--with-suexec-bin=%{_sbindir}/suexec%{vers} \
|
|
--with-suexec-caller=%httpduser \
|
|
--with-suexec-docroot=%{datadir} \
|
|
--with-suexec-logfile=%{logfiledir}/suexec.log \
|
|
--with-suexec-userdir=%{userdir} \
|
|
--with-suexec-uidmin=96 \
|
|
--with-suexec-gidmin=96 \
|
|
--with-suexec-safepath=%{suexec_safepath} \
|
|
--disable-heartbeat
|
|
}
|
|
|
|
#
|
|
# |_ o| _| | _ _ ._
|
|
# |_)|_|||(_| |(_)(_)|_)
|
|
# |
|
|
#
|
|
# build the 3 multi-processing modules (MPM) in a loop
|
|
#
|
|
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
|
|
for mpm in %{mpms_to_build}; do
|
|
echo $mpm >> .status
|
|
test -s Makefile && make clean >/dev/null
|
|
echo -e "\n\n\n \e[01m***** Building $mpm MPM *****\e[00m\n\n\n"
|
|
export mpm_suffix=-$mpm
|
|
configure
|
|
sed "s/%{vers}-$mpm//" include/ap_config_auto.h > include/ap_config_auto.h.new
|
|
mv include/ap_config_auto.h.new include/ap_config_auto.h
|
|
sed -i -e "s@/var/run@%{runtimedir}@g" include/ap_config_layout.h
|
|
|
|
make CFLAGS="$RPM_OPT_FLAGS -fvisibility=hidden -fPIC \
|
|
-Wall \
|
|
-DDEFAULT_ERRORLOG='\"%{logfiledir}/error_log\"' " \
|
|
%{?jobs:-j%jobs}
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
#rm -rf $RPM_BUILD_ROOT.$mpm.pre
|
|
#cp -a $RPM_BUILD_ROOT/ $RPM_BUILD_ROOT.$mpm.pre
|
|
# show pathnames in config files
|
|
echo;echo;echo; diff -U1 docs/conf/httpd-std.conf.in docs/conf/httpd-std.conf ||:
|
|
echo;echo;echo; diff -U1 docs/conf/ssl-std.conf.in docs/conf/ssl-std.conf ||:
|
|
# show compile settings
|
|
pwd
|
|
printf "\n\n\n"; ./%{httpd}$mpm_suffix -V
|
|
printf "\n\n\n"; ./%{httpd}$mpm_suffix -l
|
|
#mv $RPM_BUILD_ROOT/%{sysconfdir}/httpd-std.conf $RPM_BUILD_ROOT/%{sysconfdir}/httpd-std.conf$mpm_suffix
|
|
#mv $RPM_BUILD_ROOT/%{sysconfdir}/httpd2-prefork.conf $RPM_BUILD_ROOT/%{sysconfdir}/httpd-std.conf$mpm_suffix
|
|
# fix up and rename config_vars file: remove references to the RPM build dir;
|
|
# remove references to RPM build root; fix apr/apu includedir
|
|
sed -e "/^EXTRA_INCLUDES/s|-I$RPM_BUILD_DIR[^ ]* ||g" \
|
|
-e "/^AP._INCLUDEDIR/s|$RPM_BUILD_DIR.*$|%{includedir}$mpm_suffix|" \
|
|
-e "/abs_srcdir/d" \
|
|
-e "/AP_LIBS/d" \
|
|
< $RPM_BUILD_ROOT/%{installbuilddir}/config_vars.mk \
|
|
> $RPM_BUILD_ROOT/%{installbuilddir}/config_vars.mk$mpm_suffix
|
|
rm $RPM_BUILD_ROOT/%{installbuilddir}/config_vars.mk
|
|
#rm -rf $RPM_BUILD_ROOT.$mpm.post
|
|
#cp -a $RPM_BUILD_ROOT/ $RPM_BUILD_ROOT.$mpm.post
|
|
done
|
|
mkdir -p $RPM_BUILD_ROOT/%{libexecdir}
|
|
|
|
# remove references to mpm type in config_vars
|
|
sed -e "s^/usr/%_lib/%{pname}-%{default_mpm}^/usr/%_lib/%{pname}^" \
|
|
-e "s/httpd$/%{httpd}-%{default_mpm}/" \
|
|
-e "s/%{pname}-%{default_mpm}/%{pname}/" \
|
|
< $RPM_BUILD_ROOT/%{installbuilddir}/config_vars.mk-%{default_mpm} \
|
|
> $RPM_BUILD_ROOT/%{installbuilddir}/config_vars.mk
|
|
|
|
# get rid of modules that do not differ between the MPMs (since most of them are the same)
|
|
# by putting them in /usr/lib/apache%{vers}
|
|
ldir=$RPM_BUILD_ROOT/%{libexecdir}
|
|
for i in $(cd $ldir-%{default_mpm}; ls -1 *.so); do
|
|
identical=true
|
|
for mpm in %{mpms_to_build}; do
|
|
if test -f $ldir-$mpm/$i -a -f $ldir-%{default_mpm}/$i; then
|
|
objcopy --strip-debug $ldir-$mpm/$i $ldir-$mpm/$i.tst
|
|
objcopy --strip-debug $ldir-%{default_mpm}/$i $ldir-%{default_mpm}/$i.tst
|
|
ls -l $ldir-{%{default_mpm},$mpm}/$i*
|
|
cmp -s $ldir-{%{default_mpm},$mpm}/$i.tst || identical=false
|
|
rm -f $ldir-{%{default_mpm},$mpm}/$i.tst
|
|
else
|
|
identical=false
|
|
fi
|
|
done
|
|
if $identical; then
|
|
cp -dp $ldir-%{default_mpm}/$i $ldir
|
|
for mpm in %{mpms_to_build}; do
|
|
rm $ldir-$mpm/$i
|
|
ln -s ../%{pname}/$i $ldir-$mpm/$i
|
|
done
|
|
fi
|
|
done
|
|
|
|
# merge the three /usr/include/apache2-* directories
|
|
# by putting them in /usr/lib/apache%{vers}
|
|
idir=$RPM_BUILD_ROOT/%{includedir}
|
|
mkdir -p $idir
|
|
for i in $(cd $idir-%{default_mpm}; ls -1); do
|
|
identical=true
|
|
for mpm in %{mpms_to_build}; do
|
|
cmp -s $idir-{%{default_mpm},$mpm}/$i || identical=false
|
|
done
|
|
if $identical; then
|
|
cp -dp $idir-%{default_mpm}/$i $idir
|
|
for mpm in %{mpms_to_build}; do
|
|
rm $idir-$mpm/$i
|
|
ln -s ../%{pname}/$i $idir-$mpm/$i
|
|
done
|
|
fi
|
|
done
|
|
for i in ap_config_auto.h ap_config_layout.h; do
|
|
if [ ! -f $idir/$i ]; then
|
|
sed 's/-%{default_mpm}//' $idir-%{default_mpm}/$i > $idir/$i
|
|
fi
|
|
done
|
|
|
|
%install
|
|
#
|
|
# O/ o._ __|_ _.||
|
|
# /O || |_> |_(_|||
|
|
#
|
|
#
|
|
# (most installation (to build root) has already been done in %%build)
|
|
#
|
|
# save MODULE_MAGIC_NUMBER
|
|
cat > $RPM_BUILD_ROOT/%{_libdir}/%{pname}_MMN <<-EOF
|
|
#!/bin/sh
|
|
echo %{apache_mmn}
|
|
EOF
|
|
|
|
cp -p $RPM_BUILD_ROOT/%{sysconfdir}/%{httpd}-%{default_mpm}.conf $RPM_BUILD_ROOT/%{sysconfdir}/httpd.conf
|
|
cp -p $RPM_BUILD_ROOT/%{sysconfdir}/httpd.conf ./httpd.conf.default
|
|
rm $RPM_BUILD_ROOT/%{sysconfdir}/%{httpd}-*.conf
|
|
#
|
|
# create directories
|
|
mkdir -p $RPM_BUILD_ROOT/%{_var}/adm/fillup-templates \
|
|
$RPM_BUILD_ROOT/%{proxycachedir} \
|
|
$RPM_BUILD_ROOT/%{localstatedir}
|
|
#
|
|
# support files
|
|
install -m 755 support/log_server_status $RPM_BUILD_ROOT/%{_bindir}/log_server_status%{vers}
|
|
install -m 755 support/split-logfile $RPM_BUILD_ROOT/%{_bindir}/split-logfile%{vers}
|
|
install -m 755 support/logresolve.pl $RPM_BUILD_ROOT/%{_sbindir}/logresolve.pl%{vers}
|
|
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
|
|
install -m 644 $RPM_SOURCE_DIR/%{pname}.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/%{pname}
|
|
# since 10.0, the permission files are maintained centrally
|
|
%if %{?suse_version:%suse_version}%{?!suse_version:9999} < 1000
|
|
mkdir -p $RPM_BUILD_ROOT/etc/permissions.d
|
|
install -m 644 $RPM_SOURCE_DIR/permissions.%{pname} $RPM_BUILD_ROOT/etc/permissions.d/%{pname}
|
|
%endif
|
|
install -m 755 $RPM_SOURCE_DIR/apache2-check_forensic $RPM_BUILD_ROOT/%{_bindir}/check_forensic%{vers}
|
|
#
|
|
# xml stuff
|
|
install -d $RPM_BUILD_ROOT%{_datadir}/omc/svcinfo.d/
|
|
install -m 644 %{S:48} $RPM_BUILD_ROOT%{_datadir}/omc/svcinfo.d/
|
|
#
|
|
# ssl stuff
|
|
install -m 755 %{S:25} $RPM_BUILD_ROOT/%{_bindir}/
|
|
tar xjf %{SOURCE29} -C $RPM_BUILD_ROOT/%{sysconfdir}
|
|
#
|
|
# init script and friends
|
|
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
|
install -m 744 $RPM_SOURCE_DIR/rc.%{pname} $RPM_BUILD_ROOT/etc/init.d/%{pname}
|
|
install -m 744 $RPM_SOURCE_DIR/start_apache2 $RPM_BUILD_ROOT/usr/sbin/start_apache2
|
|
%if 0%{?suse_version} >= 1210
|
|
mkdir -p $RPM_BUILD_ROOT%{_unitdir}/system/
|
|
install -m 744 $RPM_SOURCE_DIR/apache2-systemd-ask-pass $RPM_BUILD_ROOT/usr/sbin/apache2-systemd-ask-pass
|
|
install -m 644 $RPM_SOURCE_DIR/apache2.service $RPM_BUILD_ROOT%{_unitdir}/system/apache2.service
|
|
%endif
|
|
ln -sf ../../etc/init.d/%{pname} $RPM_BUILD_ROOT/%{_sbindir}/rc%{pname}
|
|
install -m 755 $RPM_SOURCE_DIR/load_configuration $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/
|
|
install -m 755 $RPM_SOURCE_DIR/find_mpm $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/
|
|
install -m 755 $RPM_SOURCE_DIR/get_includes $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/
|
|
install -m 755 $RPM_SOURCE_DIR/find_httpd2_includes $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/
|
|
install -m 755 $RPM_SOURCE_DIR/apache-20-22-upgrade $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/
|
|
sed 's+/usr/lib+/usr/%_lib+' $RPM_SOURCE_DIR/get_module_list \
|
|
> $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/get_module_list
|
|
chmod 755 $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/get_module_list
|
|
install -m 755 $RPM_SOURCE_DIR/sysconf_addword $RPM_BUILD_ROOT/%{_prefix}/share/%{pname}/
|
|
install -m 755 $RPM_SOURCE_DIR/a2enflag $RPM_BUILD_ROOT/%{_sbindir}
|
|
ln -s a2enflag $RPM_BUILD_ROOT/%{_sbindir}/a2disflag
|
|
install -m 755 $RPM_SOURCE_DIR/a2enmod $RPM_BUILD_ROOT/%{_sbindir}
|
|
ln -s a2enmod $RPM_BUILD_ROOT/%{_sbindir}/a2dismod
|
|
#
|
|
# directories for files from other packages and other configuration
|
|
for i in vhosts.d sysconfig.d; do
|
|
mkdir -p $RPM_BUILD_ROOT/%{sysconfdir}/$i
|
|
done
|
|
#
|
|
# make list of all modules, and install sysconfig template
|
|
for i in $(find $RPM_BUILD_ROOT/%{libexecdir}-%{default_mpm} -name "*.so" | sort); do
|
|
modname=${i#*mod_}; modname=${modname%.so}
|
|
modname=${modname##*lib}
|
|
all_modules="$all_modules $modname"
|
|
done
|
|
all_modules=$(echo $all_modules | fmt | sed 's/\(.*\)/# \1\\/')
|
|
sed "s+@@all_modules@@+$all_modules +" $RPM_SOURCE_DIR/sysconfig.%{pname} \
|
|
> $RPM_BUILD_ROOT/%{_var}/adm/fillup-templates/sysconfig.%{pname}
|
|
#
|
|
# install configuration files:
|
|
mkdir -p $RPM_BUILD_ROOT/%{runtimedir}
|
|
touch $RPM_BUILD_ROOT/%{sysconfdir}/sysconfig.d/include.conf
|
|
mkdir -p $RPM_BUILD_ROOT/%{sysconfdir}/conf.d
|
|
for i in default-server.conf \
|
|
errors.conf \
|
|
httpd.conf \
|
|
listen.conf \
|
|
mod_autoindex-defaults.conf \
|
|
mod_info.conf \
|
|
mod_log_config.conf \
|
|
mod_mime-defaults.conf \
|
|
mod_status.conf \
|
|
mod_userdir.conf \
|
|
mod_usertrack.conf \
|
|
server-tuning.conf \
|
|
ssl-global.conf
|
|
do
|
|
install -m 644 $RPM_SOURCE_DIR/apache2-$i $RPM_BUILD_ROOT/%{sysconfdir}/$i
|
|
done
|
|
cat > $RPM_BUILD_ROOT/%{sysconfdir}/uid.conf <<-EOF
|
|
User %httpduser
|
|
Group %httpdgroup
|
|
EOF
|
|
|
|
# remove configuration for mpms which have not been built
|
|
mpm_confs="$(awk '/IfModule .*\.c/ {print $2}' $RPM_BUILD_ROOT/%{sysconfdir}/server-tuning.conf | cut -d. -f1 | tr '\n' ' ')"
|
|
for mpm_conf in $mpm_confs; do
|
|
case "%{mpms_to_build}" in
|
|
*$mpm_conf*) ;;
|
|
*) sed "/^# $mpm_conf/, /^$/ d" $RPM_BUILD_ROOT/%{sysconfdir}/server-tuning.conf > t
|
|
#diff -u $RPM_BUILD_ROOT/%{sysconfdir}/server-tuning.conf t ||:
|
|
mv t $RPM_BUILD_ROOT/%{sysconfdir}/server-tuning.conf
|
|
;;
|
|
esac
|
|
done
|
|
install -m 644 %{S:130} $RPM_BUILD_ROOT/%{sysconfdir}/vhosts.d/vhost.template
|
|
install -m 644 %{S:131} $RPM_BUILD_ROOT/%{sysconfdir}/vhosts.d/vhost-ssl.template
|
|
install -m 644 %{S:104} $RPM_BUILD_ROOT/%{sysconfdir}/conf.d/manual.conf
|
|
# install default vhost
|
|
dvh=$(basename %{S:132})
|
|
install -m 644 %{S:132} $RPM_BUILD_ROOT/%{sysconfdir}/${dvh##%{name}-}
|
|
dvhs=$(basename %{S:133})
|
|
install -m 644 %{S:133} $RPM_BUILD_ROOT/%{sysconfdir}/${dvhs##%{name}-}
|
|
# for mod_auth_ldap
|
|
install -m 644 docs/conf/charset.conv $RPM_BUILD_ROOT/%{sysconfdir}/
|
|
|
|
cp -p $RPM_SOURCE_DIR/robots.txt .
|
|
cp -p $RPM_SOURCE_DIR/favicon.ico $RPM_BUILD_ROOT/%{htdocsdir}/
|
|
cat > $RPM_BUILD_ROOT/%{htdocsdir}/robots.txt <<-EOF
|
|
User-Agent: *
|
|
Disallow: /
|
|
EOF
|
|
|
|
#
|
|
# use official mime.types (more complete)
|
|
#
|
|
ln -sf ../mime.types $RPM_BUILD_ROOT/%{sysconfdir}/mime.types
|
|
|
|
mv $RPM_BUILD_ROOT/%{cgidir}/printenv* .
|
|
mv $RPM_BUILD_ROOT/%{cgidir}/test-cgi .
|
|
pushd $RPM_BUILD_ROOT/%{_mandir}
|
|
for i in $(find . -type f); do
|
|
mv $i ${i%.*}%{vers}.${i#*.*.} || true
|
|
done
|
|
popd
|
|
|
|
pushd $RPM_BUILD_ROOT/%{_bindir}
|
|
for i in ab dbmmanage htdbm htdigest htpasswd logresolve;do
|
|
mv $i ${i}%{vers} || true
|
|
done
|
|
popd
|
|
|
|
pushd $RPM_BUILD_ROOT/%{_sbindir}
|
|
for i in rotatelogs suexec; do
|
|
mv $i ${i}%{vers} || true
|
|
done
|
|
mv apachectl apachectl.tmp; mv apachectl.tmp apache%{vers}ctl
|
|
popd
|
|
# fix up apxs
|
|
pushd $RPM_BUILD_ROOT/%{_bindir}
|
|
for mpm in %{mpms_to_build}; do
|
|
cat <<-EOT_ED | ed -s apxs
|
|
H
|
|
,s/^\(.*\)config_vars.mk\(.*\)$/\1config_vars.mk\$mpm_suffix\2/
|
|
/config_vars.mk
|
|
-
|
|
i
|
|
my \$mpm_suffix = "-$mpm";
|
|
.
|
|
wq apxs%{vers}-$mpm
|
|
EOT_ED
|
|
chmod 755 apxs%{vers}-$mpm
|
|
done
|
|
cat <<-EOT_ED | ed -s apxs
|
|
H
|
|
/config_vars
|
|
a
|
|
my \$mpm_suffix = "";
|
|
.
|
|
wq
|
|
EOT_ED
|
|
mv apxs apxs%{vers}
|
|
popd
|
|
|
|
# install firewall information file
|
|
install -d $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/
|
|
install -m 644 %{S:49} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}
|
|
install -m 644 %{S:50} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}-ssl
|
|
ln -sf %{_bindir}/apxs%{vers} %{buildroot}%{_sbindir}
|
|
#
|
|
# filelists
|
|
#
|
|
>filelist; >filelist-devel
|
|
for mpm in %{mpms_to_build}; do
|
|
echo %dir %{_libdir}/%{pname}-$mpm >> filelist
|
|
(
|
|
echo %dir %{includedir}-$mpm
|
|
echo %{_bindir}/apxs%{vers}-$mpm
|
|
) >> filelist-devel
|
|
done
|
|
find $RPM_BUILD_ROOT/%{includedir}/.. -type f -o -type l \
|
|
| sed "s#$RPM_BUILD_ROOT##" \
|
|
>> filelist-devel
|
|
find $RPM_BUILD_ROOT/%{installbuilddir} -type f \
|
|
| sed "s#$RPM_BUILD_ROOT##" \
|
|
>> filelist-devel
|
|
|
|
# remove files from the build root that we won't package
|
|
rm -f $RPM_BUILD_ROOT/%{_libdir}/%{pname}-*/*.exp # needed only on AIX
|
|
rm -f $RPM_BUILD_ROOT/%{_libdir}/%{pname}/*.exp # needed only on AIX
|
|
rm -f $RPM_BUILD_ROOT/%{_sbindir}/checkgid # needed only for user installations from tarball
|
|
rm -r $RPM_BUILD_ROOT/%{sysconfdir}/extra # it is already in the documentation directory
|
|
|
|
#
|
|
# O/ _|_ _ __|_
|
|
# /O |_(/__> |_
|
|
#
|
|
#
|
|
# now check wether httpd binary runs properly
|
|
# and validate httpd.conf file
|
|
#
|
|
pushd $RPM_BUILD_ROOT/%{sysconfdir}
|
|
for i in *.conf; do cp $i $i.test; done
|
|
%if %{?suse_version:%suse_version}%{?!suse_version:9999} < 810
|
|
echo -e "User %httpduser \nGroup nogroup" > uid.conf.test
|
|
sed 's+/srv/www+/usr/local/httpd+' default-server.conf > t
|
|
mv t default-server.conf
|
|
mkdir -p /usr/local/httpd/htdocs
|
|
%endif
|
|
# for Fedora
|
|
%if %{?suse_version:0}%{!?suse_version:1}
|
|
echo -e "User nobody \nGroup nobody" > uid.conf.test
|
|
mkdir -p $RPM_BUILD_ROOT/%{htdocsdir}
|
|
%endif
|
|
sed -e 's+/usr/%_lib+'$RPM_BUILD_ROOT'/usr/%_lib+' \
|
|
-e 's+/var/run+'$RPM_BUILD_ROOT'/var/run+' \
|
|
-e 's+%{sysconfdir}+'$RPM_BUILD_ROOT'%{sysconfdir}+' \
|
|
-e 's+%{datadir}+'$RPM_BUILD_ROOT'%{datadir}+' \
|
|
-e 's+\.conf$+&.test+' \
|
|
-e 's+/var/log+'$RPM_BUILD_ROOT'/var/log+' \
|
|
httpd.conf > httpd.conf.test
|
|
sed -e 's+%{sysconfdir}+'$RPM_BUILD_ROOT'%{sysconfdir}+' \
|
|
default-server.conf > default-server.conf.test
|
|
touch sysconfig.d/global.conf.test
|
|
touch sysconfig.d/include.conf.test
|
|
popd
|
|
pushd $RPM_BUILD_ROOT
|
|
for i in $(export LC_ALL=C; find .%{libexecdir}-%{default_mpm} -name "*.so" | sort); do
|
|
mod_id=${i#*mod_}; mod_id=${mod_id%.so}_module
|
|
mod_path=
|
|
echo LoadModule $mod_id $RPM_BUILD_ROOT/${i#.} >> .%{sysconfdir}/sysconfig.d/loadmodule.conf.test
|
|
done
|
|
# auth_ldap_module needs to be loaded after ldap_module
|
|
echo -e "/authnz_ldap\n+\n-m/ldap\nwq" | ed -s ./%{sysconfdir}/sysconfig.d/loadmodule.conf.test
|
|
popd
|
|
|
|
%if %{?suse_version:1}%{!?suse_version:0}
|
|
LD_LIBRARY_PATH=${RPM_BUILD_ROOT}%{_libdir} \
|
|
$RPM_BUILD_ROOT/%{_sbindir}/httpd%{vers}-%{default_mpm} \
|
|
-e debug -t -f $RPM_BUILD_ROOT/%{sysconfdir}/httpd.conf.test || exit 1
|
|
%else
|
|
LD_LIBRARY_PATH=${RPM_BUILD_ROOT}%{_libdir} \
|
|
$RPM_BUILD_ROOT/%{_sbindir}/httpd%{vers}-%{default_mpm} \
|
|
-e debug -t -f $RPM_BUILD_ROOT/%{sysconfdir}/httpd.conf.test || :
|
|
%endif
|
|
rm $RPM_BUILD_ROOT/%{sysconfdir}/*.test
|
|
rm $RPM_BUILD_ROOT/%{sysconfdir}/sysconfig.d/*
|
|
mv $RPM_BUILD_ROOT/%{sysconfdir}/original .
|
|
|
|
%files -f filelist
|
|
# _
|
|
# O/ _|_o| _ _
|
|
# /O | ||(/__>
|
|
#
|
|
%defattr(-,root,root)
|
|
%doc INSTALL READM* LICENSE ABOUT_APACHE CHANGES
|
|
%doc support/SHA1
|
|
%doc %{_mandir}/man?/apachectl%{vers}.?.*
|
|
%doc %{_mandir}/man?/htcacheclean%{vers}.?.*
|
|
%doc %{_mandir}/man?/%{httpd}.?.*
|
|
%doc %{_mandir}/man?/apxs%{vers}.?.*
|
|
%doc robots.txt
|
|
%doc printenv
|
|
%doc test-cgi
|
|
#%doc httpd-std.conf-*
|
|
#%doc ssl-std.conf
|
|
%doc httpd.conf.default
|
|
%doc original
|
|
%attr(750,root,root) %dir %{logfiledir}
|
|
%attr(750,%httpduser,root) %dir %{proxycachedir}
|
|
%attr(750,%httpduser,root) %dir %{localstatedir}
|
|
%dir %{sysconfdir}
|
|
%config %{sysconfdir}/magic
|
|
%config %{sysconfdir}/mime.types
|
|
%config (noreplace) %{sysconfdir}/*.conf
|
|
%config (noreplace) %{sysconfdir}/charset.conv
|
|
%{sysconfdir}/vhosts.d/*.template
|
|
%dir %{sysconfdir}/ssl.crl
|
|
%dir %{sysconfdir}/ssl.crt
|
|
%dir %{sysconfdir}/ssl.csr
|
|
%dir %attr(700,root,root) %{sysconfdir}/ssl.key
|
|
%dir %{sysconfdir}/ssl.prm
|
|
%{sysconfdir}/ssl.*/README*
|
|
%dir %{sysconfdir}/conf.d
|
|
%dir %{sysconfdir}/vhosts.d
|
|
%dir %{sysconfdir}/sysconfig.d
|
|
%config(noreplace) /etc/logrotate.d/%{pname}
|
|
%{_datadir}/omc/svcinfo.d/apache2.xml
|
|
%if %{?suse_version:%suse_version}%{?!suse_version:9999} < 1000
|
|
%config(noreplace) /etc/permissions.d/%{pname}
|
|
%endif
|
|
%config /etc/init.d/%{pname}
|
|
%if 0%{?suse_version} >= 1210
|
|
%{_unitdir}/system/%{pname}.service
|
|
%endif
|
|
#
|
|
%{_sbindir}/rc%{pname}
|
|
%{_sbindir}/apache%{vers}ctl
|
|
%{_sbindir}/envvars
|
|
%{_sbindir}/envvars-std
|
|
%{_sbindir}/htcacheclean
|
|
%{_sbindir}/a2enflag
|
|
%{_sbindir}/a2enmod
|
|
%{_sbindir}/a2disflag
|
|
%{_sbindir}/a2dismod
|
|
%{_sbindir}/start_apache2
|
|
%if 0%{?suse_version} >= 1210
|
|
%{_sbindir}/apache2-systemd-ask-pass
|
|
%endif
|
|
%{_bindir}/log_server_status%{vers}
|
|
%{iconsdir}
|
|
%{errordir}
|
|
%{_var}/adm/fillup-templates/sysconfig.%{pname}
|
|
%attr(755,root,root) %{_libdir}/%{pname}_MMN
|
|
%dir %{_libdir}/%{pname}
|
|
%{_libdir}/%{pname}/mod_*.so
|
|
%dir %{installbuilddir}
|
|
%dir %{_prefix}/share/%{pname}
|
|
%{_prefix}/share/%{pname}/apache-20-22-upgrade
|
|
%{_prefix}/share/%{pname}/get_module_list
|
|
%{_prefix}/share/%{pname}/get_includes
|
|
%{_prefix}/share/%{pname}/find_httpd2_includes
|
|
%{_prefix}/share/%{pname}/find_mpm
|
|
%{_prefix}/share/%{pname}/load_configuration
|
|
%{_prefix}/share/%{pname}/sysconf_addword
|
|
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}
|
|
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name}-ssl
|
|
|
|
%if %prefork
|
|
|
|
%files prefork
|
|
%defattr(-,root,root)
|
|
%{_sbindir}/%{httpd}-prefork
|
|
%dir %{_libdir}/%{pname}-prefork
|
|
%{_libdir}/%{pname}-prefork/mod_*.so
|
|
%endif
|
|
%if %worker
|
|
|
|
%files worker
|
|
%defattr(-,root,root)
|
|
%{_sbindir}/%{httpd}-worker
|
|
%dir %{_libdir}/%{pname}-worker
|
|
%{_libdir}/%{pname}-worker/mod_*.so
|
|
%endif
|
|
%if %event
|
|
|
|
%files event
|
|
%defattr(-,root,root)
|
|
%{_sbindir}/%{httpd}-event
|
|
%dir %{_libdir}/%{pname}-event
|
|
%{_libdir}/%{pname}-event/mod_*.so
|
|
%endif
|
|
%if %itk
|
|
|
|
%files itk
|
|
%defattr(-,root,root)
|
|
%{_sbindir}/%{httpd}-itk
|
|
%dir %{_libdir}/%{pname}-itk
|
|
%{_libdir}/%{pname}-itk/mod_*.so
|
|
%endif
|
|
|
|
%files devel -f filelist-devel
|
|
%defattr(-,root,root)
|
|
%dir %{_prefix}/share/%{pname}
|
|
%dir %{installbuilddir}
|
|
%dir %{includedir}
|
|
%{_bindir}/apxs%{vers}
|
|
%{_sbindir}/apxs%{vers}
|
|
|
|
%files doc
|
|
%defattr(-,root,root)
|
|
%doc %{manualdir}
|
|
%dir %{sysconfdir}
|
|
%dir %{sysconfdir}/conf.d
|
|
%config %{sysconfdir}/conf.d/manual.conf
|
|
|
|
%files example-pages
|
|
%defattr(-,root,root)
|
|
%config(noreplace) %{htdocsdir}/index.htm*
|
|
%config(noreplace) %{htdocsdir}/favicon.ico
|
|
%config(noreplace) %{htdocsdir}/robots.txt
|
|
|
|
%files utils
|
|
%defattr(-,root,root)
|
|
%doc %{_mandir}/man?/ab%{vers}.?.*
|
|
%doc %{_mandir}/man?/dbmmanage%{vers}.?.*
|
|
%doc %{_mandir}/man?/htdbm%{vers}.?.*
|
|
%doc %{_mandir}/man?/htdigest%{vers}.?.*
|
|
%doc %{_mandir}/man?/htpasswd%{vers}.?.*
|
|
%doc %{_mandir}/man?/httxt2dbm%{vers}.?.*
|
|
%doc %{_mandir}/man?/logresolve%{vers}.?.*
|
|
%doc %{_mandir}/man?/rotatelogs%{vers}.?.*
|
|
%doc %{_mandir}/man?/suexec%{vers}.?.*
|
|
%{_sbindir}/fcgistarter
|
|
%{_mandir}/man8/fcgistarter2.8.*
|
|
%{_bindir}/check_forensic%{vers}
|
|
%{_bindir}/dbmmanage%{vers}
|
|
%{_bindir}/gensslcert
|
|
%{_bindir}/htdbm%{vers}
|
|
%{_bindir}/htdigest%{vers}
|
|
%{_bindir}/htpasswd%{vers}
|
|
%{_bindir}/split-logfile%{vers}
|
|
%{_bindir}/ab%{vers}
|
|
%{_bindir}/httxt2dbm
|
|
%{_sbindir}/logresolve.pl%{vers}
|
|
%{_bindir}/logresolve%{vers}
|
|
%{_sbindir}/rotatelogs%{vers}
|
|
%verify(not mode) %attr(0755,root,root) %_sbindir/suexec2
|
|
%if %prefork
|
|
|
|
%post prefork
|
|
/usr/share/%{pname}/get_module_list &>/dev/null
|
|
exit 0
|
|
%endif
|
|
%if %worker
|
|
|
|
%post worker
|
|
/usr/share/%{pname}/get_module_list &>/dev/null
|
|
exit 0
|
|
%endif
|
|
%if %event
|
|
|
|
%post event
|
|
/usr/share/%{pname}/get_module_list &>/dev/null
|
|
exit 0
|
|
%endif
|
|
%if %itk
|
|
|
|
%post itk
|
|
/usr/share/%{pname}/get_module_list &>/dev/null
|
|
exit 0
|
|
%endif
|
|
|
|
#
|
|
# O/ ._ .__ / ._ _ __|_
|
|
# /O |_)|(/_ / |_)(_)_> |_
|
|
# | |
|
|
#
|
|
|
|
%pre
|
|
%if %{?suse_version:0}%{!?suse_version:1}
|
|
# on Fedora, add the "apache" user
|
|
if ! /usr/bin/getent passwd %httpduser &>/dev/null; then
|
|
echo "Creating %httpduser user"
|
|
/usr/sbin/useradd -c "Apache" -u 48 \
|
|
-s /sbin/nologin -r -d %{localstatedir} %httpduser 2> /dev/null || :
|
|
fi
|
|
%endif
|
|
%if 0%{?suse_version} >= 1210
|
|
%service_add_pre apache2.service
|
|
%endif
|
|
|
|
%preun
|
|
%if 0%{?suse_version} >= 1210
|
|
%service_del_preun apache2.service
|
|
%endif
|
|
for i in %{_sbindir}/%{httpd} \
|
|
%{installbuilddir}/config_vars.mk
|
|
do
|
|
test -L $i && rm $i
|
|
done
|
|
exit 0
|
|
|
|
%postun
|
|
%if 0%{?suse_version} >= 1210
|
|
%service_del_postun apache2.service
|
|
%endif
|
|
#if %suse_version > 810
|
|
#restart_on_update %{pname}
|
|
#endif
|
|
%insserv_cleanup
|
|
|
|
%post
|
|
%if 0%{?suse_version} <= 1130
|
|
%run_permissions
|
|
%else
|
|
%set_permissions /usr/sbin/suexec2
|
|
%endif
|
|
%if 0%{?suse_version}
|
|
# a group wwwadmin has existed in the distant past, and it was renamed to www
|
|
if grep -q "^wwwadmin:" /etc/group; then
|
|
groupmod -n www wwwadmin 2>/dev/null ||:
|
|
usermod -g %httpdgroup %httpduser 2>/dev/null ||:
|
|
usermod -s /bin/false %httpduser 2>/dev/null ||:
|
|
fi
|
|
%endif
|
|
tmpdir=$(mktemp -d etc/%{pname}/%{pname}-post.XXXXXX); test $? = 0 || { echo >&2 Could not create tmpdir. Exiting; exit 1; }
|
|
tmpfile=$tmpdir/tmpfile
|
|
if test -s etc/sysconfig/%{pname} && grep -q "^LOADMODULES" etc/sysconfig/%{pname}; then
|
|
sed "s/LOADMODULES/APACHE_MODULES/" etc/sysconfig/%{pname} >| $tmpfile \
|
|
&& cp $tmpfile etc/sysconfig/%{pname}
|
|
fi
|
|
%{fillup_and_insserv apache2}
|
|
# Update ?
|
|
if [ ${FIRST_ARG:-0} -gt 1 ]; then
|
|
# update from package with the old near-monolithic conf file?
|
|
if [ -s ./%{sysconfdir}/httpd.conf.default -a -s ./%{sysconfdir}/httpd.conf.rpmnew ]; then
|
|
diff -u .%{sysconfdir}/httpd.conf.default .%{sysconfdir}/httpd.conf \
|
|
> $tmpdir/httpd.conf.dif ||:
|
|
cp -p $tmpdir/httpd.conf.dif ./%{sysconfdir}/httpd.conf var/adm/backup/
|
|
archive_conf=$(old var/adm/backup/httpd.conf 2>/dev/null); archive_conf=${archive_conf##*/}
|
|
archive_dif=$(old var/adm/backup/httpd.conf.dif 2>/dev/null); archive_dif=${archive_dif##*/}
|
|
fi
|
|
#
|
|
sed "
|
|
# generated files were renamed from suse_* to sysconfig.d/*
|
|
s|\(^Include /etc/apache2\)/suse_\(\(include\|loadmodule\|global\).conf\)|\1/sysconfig.d/\2|
|
|
|
|
# the access_log configuration is now configurable
|
|
s|^CustomLog /var/log/apache2/access_log.*|# &|
|
|
|
|
# group of wwwrun has changed
|
|
s|^Group nogroup|Group www|
|
|
|
|
" < ./%{sysconfdir}/httpd.conf > $tmpfile
|
|
chmod --reference=./%{sysconfdir}/httpd.conf $tmpfile
|
|
chown --reference=./%{sysconfdir}/httpd.conf $tmpfile
|
|
cmp -s $tmpfile ./%{sysconfdir}/httpd.conf || cp -p $tmpfile ./%{sysconfdir}/httpd.conf
|
|
fi
|
|
|
|
rm -rf $tmpdir
|
|
/usr/share/%{pname}/apache-20-22-upgrade
|
|
/usr/share/%{pname}/get_module_list &>/dev/null
|
|
%if 0%{?suse_version} >= 1210
|
|
%service_add_post apache2.service
|
|
%endif
|
|
exit 0
|
|
|
|
%verifyscript
|
|
%verify_permissions -e %{_sbindir}/suexec2
|
|
|
|
%clean
|
|
if ! test -f /.buildenv; then
|
|
rm -rf $RPM_BUILD_ROOT
|
|
fi
|
|
|
|
%changelog
|