Репозиторий ALT Linux backports/2.4
Последнее обновление: 9 июля 2008 | Пакетов: 497 | Посещений: 1574873
 поиск   регистрация   авторизация 
 
Группа :: Система/Серверы
Пакет: apache

 Главная   Изменения   Спек   Патчи   Загрузить   Bugs and FR 

# hey Emacs, its -*- rpm-spec -*-
# you can build --with/--without:
# - M22 or Sisyphus [auto]
# - mod_deflate [with]
%define russian_patchlevel PL30.23
%define apache_vanilla_version 1.3.41
%define apache_version %{apache_vanilla_version}rus%russian_patchlevel
%define apache_release alt1.M24.1
%define mod_realip_version 2.0
%define mod_perl_version 1.29
%define mod_perl_version_pad %{mod_perl_version}00
%define mod_deflate_version 1.0.21
%define mod_accel_version 1.0.34
%define EAPI_version 2.8.30a
%define mm_version 1.1.3
# EAPI tarball is subset of mod_ssl tarball

# default is 256

%define apache_hard_server_limit 1024

%define apache_root %_sysconfdir/httpd
%define apache_home %_var/www
%define old_apache_home /home/httpd
%define apache_user apache
%define apache_group apache
%define apache_webmaster webmaster
#define suexec_docroot /home
%define suexec_docroot %apache_home

# handle initscript style change

%define feature_initscripts %nil

%if_with M22
%define feature_initscripts 2_2
%endif

%if_with Sisyphus
%define feature_initscripts 2_3
%endif

%if "%feature_initscripts" == ""
%define feature_initscripts %([ -e /etc/init.d/functions-compat ] && echo "2_3" || echo "2_2")
%endif

# we don't want to add a feature to legacy package by default

%if "%feature_initscripts" == "2_2"
%define release_tag .M22
%def_without mod_deflate
%else
%define release_tag %nil
%def_with mod_deflate
%endif

Name: apache
Version: %apache_version
Release: %apache_release%release_tag

Summary: The most widely used Web server on the Internet
License: Apache
Group: System/Servers

Url: http://httpd.apache.org
Packager: Michael Shigorin <mike at altlinux.org>

Provides: russian-apache = %russian_patchlevel webserver
PreReq: apache-common = %version-%release
Requires: mm >= %mm_version

Source0: http://httpd.apache.org/dist/httpd/apache_%apache_vanilla_version.tar.gz
Source1: ftp://apache.lexa.ru/pub/apache-rus/patches_%apache_version.tar.gz
Source4: apache.logrotate
Source5: httpd.conf
# update EAPI by hand from mod_ssl source tarball
Source9: EAPI-%EAPI_version.tar.bz2
Source12: http://sysoev.ru/mod_deflate/mod_deflate-%mod_deflate_version.tar.gz
Source13: mod_perl-%mod_perl_version.tar.bz2
Source14: mod_realip-%mod_realip_version.tar.gz
Source15: httpd-perl.conf
Source16: proxied_handlers.pl
Source17: http://sysoev.ru/mod_accel/mod_accel-%mod_accel_version.tar.gz
Source23: apache-mime.types
#Source24: logo.gif
Source26: Vhosts.conf
Source27: Vhosts-perl.conf
Source28: sgi_performance.gif
Source29: ra-powered.gif

Source30: altlinux.html
Source31: altlinux.png

# initscripts for ALM2.2 and friends and current Sisyphus

Source33: httpd.init.2_2
Source34: httpd-perl.init.2_2
Source35: httpd.init.2_3
Source36: httpd-perl.init.2_3

Source50: DynamicVhosts.conf
Source51: VirtualHomePages.conf
Source52: README.apache
Source53: apache-mod_charset.conf
Source54: apache-mod_realip.conf

# rpm macro definitions

Source60: apache.rpm-macros
Source61: apache-README.ALT
Source62: 00-example.conf
Source63: TUNING.ALT

Patch1: apache-1.3.31-apxs.patch
Patch2: apache_1.3.27-srvroot.patch
Patch3: apache_1.3.23-nondbm.patch.bz2
Patch4: Configuration.diff.bz2

Patch8: apache-1.3.23-alt-db4.patch
Patch9: apache-1.3.33-alt-hardlimit.patch
Patch10: apache-1.3.31-acl-support.patch

Patch75: apache-1.3.27-openbsd-tmp.patch
Patch76: apache-1.3.34-alt-linkage.patch

Patch77: apache-1.3.41-unloop-rewrite.patch

Patch80: uneapi.patch
# Expat patch
Patch90: http_main.patch

Patch91: apache-1.3.28-no_zombies.patch
Patch92: apache-1.3.28-CAN-2003-0020.patch
Patch93: apache-1.3.32-mod_include.patch
Patch94: apache-1.3.33-fix-htpasswd-buffer.patch
Patch95: apache-1.3.33-CAN-2005-2088.patch
Patch96: 907_mod_imap_CVE-2005-3352.patch
Patch97: mod_perl-1.29-CVE-2007-1349.patch
Patch98: apache-1.3.27-CVE-2006-5752.patch
Patch99: apache-1.3.27-CVE-2007-3304.patch

# Automatically added by buildreq on Wed May 12 2004 (-bi)

BuildRequires: libdb4-devel libgdbm-devel libmm-devel perl-BSD-Resource perl-CGI perl-Devel-Symdump perl-HTML-Parser perl-URI perl-devel perl-libwww-perl

# have to rip libdb4*-devel manually from buildreq'ed line

%if_with M22
BuildRequires: libdb4-devel
%endif

%if_with Sisyphus
BuildRequires: libdb4-devel perl-DBM
Requires: service >= 0.5-alt1
%endif

%if_with mod_deflate
BuildRequires: zlib-devel
%endif

BuildConflicts: bind-devel

Summary(ru_RU.KOI8-R): Самый популярный веб-сервер Internet
Summary(uk_UA.KOI8-U): Найб╕льш популярний веб-сервер Internet

%description
Apache is a powerful, full-featured, efficient and freely-available
Web server. Russian Apache is an extended version that supports various
character sets, which are necessary for Russian, Ukrainian, Czech
and other websites.

This special version also includes some optimizations, Extended Application
Programming Interface (EAPI) with the shared memory support,
hooks for SSL module and several cosmetic improvements.
%if_with mod_deflate
It also includes mod_deflate to spare the traffic (needs activation).
%endif

%description -l ru_RU.KOI8-R
Apache - мощный, функциональный, высокопроизводительный и
свободно распространяемый веб-сервер.

Russian Apache - специально доработанная версия сервера с поддержкой различных
кодировок, предназначенная для использования на сайтах с контентом на
русском, украинском, чешском и других языках.

Данная версия также включает некоторые оптимизации,
Extended Application Programming Interface (EAPI) с поддержкой разделяемой
памяти, поддержку модуля SSL и несколько косметических улучшений.
%if_with mod_deflate
Для сохранения трафика включите модуль mod_deflate.
%endif

%description -l uk_UA.KOI8-U
Apache - потужний, функц╕ональний, високопродуктивний та
в╕льно розповсюджуваний веб-сервер.

Russian Apache - спец╕ально дороблена верс╕я серверу ╕з п╕дтримкою р╕зних
кодувань, що застосову╓ться на сайтах ╕з контентом рос╕йською, укра╖нською,
чеською та ╕ншими мовами.

Ця верс╕я також включа╓ деяк╕ оптим╕зац╕╖,
Extended Application Programming Interface (EAPI) ╕з п╕дтримкою розд╕лювано╖
пам'ят╕, п╕дтримку модуля SSL та дек╕лька косметичних покращень.
%if_with mod_deflate
Для збереження траф╕ку ув╕мкн╕ть модуль mod_deflate.
%endif

%package mod_perl
Summary: Russian Apache Web server with a built-in Perl interpreter
Summary(ru_RU.KOI8-R): Веб-сервер Russian Apache со встроенным интерпретатором Perl
Summary(uk_UA.KOI8-U): Веб-сервер Russian Apache з╕ вбудованим ╕нтерпретатором Perl
Group: System/Servers
Icon: mod_perl.gif
Requires: mm >= %mm_version, perl >= 1:5.6.0
PreReq: apache-common = %version-%release
Provides: russian-apache = %russian_patchlevel webserver
Provides: mod_perl = %mod_perl_version
Obsoletes: mod_perl
AutoProv: yes, perl

# ugly hack ][

Provides: perl(mod_perl.pm) = %mod_perl_version_pad

%description mod_perl
Apache is a powerful, full-featured, efficient and freely-available
Web server. Russian Apache is an extended version that supports various
character sets, which are necessary for Russian, Ukrainian, Czech
and other websites.

mod_perl incorporates a Perl interpreter into the Apache web
server, so that the Apache web server can directly execute Perl
code.  Mod_perl links the Perl runtime library into the Apache
web server and provides an object-oriented Perl interface for
Apache's C language API.  The end result is a quicker CGI script
turnaround process, since no external Perl interpreter has to
be started.

This package contains Apache with mod_perl linked statically. You may want to
prefer this configuration rather than use mod_perl as a DSO, because it is more
stable and less prone to memory leaks.

This special version also includes Extended Application Programming Interface
(EAPI) with the shared memory support, hooks for SSL module and several
cosmetic improvements.

%description -l ru_RU.KOI8-R mod_perl
Apache - мощный, функциональный, высокопроизводительный и
свободно распространяемый веб-сервер.

Russian Apache - специально доработанная версия сервера с поддержкой различных
кодировок, предназначенная для использования на сайтах с контентом на
русском, украинском, чешском и других языках.

mod_perl интегрирует в Apache интерпретатор языка Perl и предоставляет
объектно-ориентированный интерфейс из Perl к функциям Apache API. Одно из
преимуществ - ускорение обработки CGI-запросов, поскольку нет нужды
запускать внешний интерпретатор для исполнения Perl-кода.

Пакет содержит Apache со статически скомпонованным mod_perl. Вы можете
предпочесть эту конфигурацию динамически загружаемому mod_perl, так как она
более стабильна и менее подвержена утечкам памяти.

Данная версия также включает Extended Application Programming Interface (EAPI)
с поддержкой разделяемой памяти, поддержку модуля SSL и несколько косметических
улучшений.

%description -l uk_UA.KOI8-U
Apache - потужний, функц╕ональний, високопродуктивний та
в╕льно розповсюджуваний веб-сервер.

Russian Apache - спец╕ально дороблена верс╕я серверу ╕з п╕дтримкою р╕зних
кодувань, що застосову╓ться на сайтах ╕з контентом рос╕йською, укра╖нською,
чеською та ╕ншими мовами.

Пакет м╕стить Apache ╕з статично компонованим mod_perl. Ви можете
надати перевагу ц╕й конфигурац╕╖, ан╕ж динам╕чному завантаженню mod_perl,
тому що вона б╕льш стаб╕льна та ма╓ менш проблем з керуванням пам'яттю.

Ця верс╕я також включа╓ Extended Application Programming Interface (EAPI) ╕з
п╕дтримкою розд╕лювано╖ пам'ят╕, п╕дтримку модуля SSL та дек╕лька косметичних
покращень.

%package common
Summary: Files common for apache and apache-mod_perl installations
Summary(ru_RU.KOI8-R): Общие файлы для инсталляции apache и apache-mod_perl
Summary(uk_UA.KOI8-U): Сп╕льн╕ файли для ╕нсталяц╕╖ apache та apache-mod_perl
Group: System/Servers
PreReq: shadow-utils

%description common
This package contains files required for both apache and apache-mod_perl
package installations. Install this if you want to install Apache or/and
Apache with mod_perl.

%description -l ru_RU.KOI8-R common
В этом пакете находятся файлы, необходимые для apache и apache-mod_perl.
Установите, если собираетесь устанавливать Russian Apache
и/или Russian Apache с mod_perl.

%description -l uk_UA.KOI8-U common
Цей пакунок м╕стить файли, як╕ необх╕дн╕ для apache та apache-mod_perl.
Встанов╕ть його, якщо збира╓тесь використовувати Russian Apache.

%package devel
Summary: Module development tools for the Apache web server
Summary(ru_RU.KOI8-R): Средства разработки модулей для веб-сервера Apache
Summary(uk_UA.KOI8-U): Засоби розробки модул╕в для веб-серверу Apache
Group: Development/C
PreReq: apache = %version-%release

%description devel
The apache-devel package contains the source code for the Apache
Web server you'll need to build Dynamic
Shared Objects (DSOs) for Apache.

If you are installing the Apache Web server and
you want to be able to compile or develop additional modules
for Apache, you'll need to install this package.

%description -l ru_RU.KOI8-R devel
Пакет содержит заголовочные файлы из исходных текстов веб-сервера Apache,
необходимые для сборки динамически подключаемых модулей (DSO).

Если вы устанавливаете веб-сервер Apache и собираетесь компилировать или
разрабатывать для него дополнительные модули, следует установить этот пакет.

%description -l uk_UA.KOI8-U devel
Пакунок м╕стить заголовков╕ файли з вих╕дних текст╕в веб-серверу Apache,
що необх╕дн╕ для комп╕ляц╕╖ динам╕чно завантажуваних модул╕в (DSO).

Якщо ви встановлю╓те веб-сервер Apache та збира╓теся комп╕лювати чи
розробляти для нього додатков╕ модул╕, треба встановити цей пакунок.

%package suexec
Summary: Suexec binary for Apache
Summary(ru_RU.KOI8-R): Программа suexec для Apache
Summary(uk_UA.KOI8-U): Програма suexec для Apache
Group: System/Servers
PreReq: apache-common = %version-%release

%description suexec
This package adds suexec to Apache. Suexec provides Apache users the ability
to run CGI and SSI programs under user IDs different from the user ID of the
calling web-server. Normally, when a CGI or SSI program executes, it runs as
the same user who is running the web server.

%description -l ru_RU.KOI8-R suexec
Этот пакет добавляет к Apache suexec. Эта программа позволяет запускать CGI-
и SSI-программы под идентификаторами пользователя, отличными от UID
веб-сервера.

%description -l uk_UA.KOI8-U suexec
Цей пакунок дода╓ до Apache suexec. Ця програма дозволя╓ запускати CGI-
та SSI-програми п╕д ╕дентиф╕каторами користувача, що в╕др╕зняються в╕д
UID веб-серверу.

%package -n mod_perl-doc
Summary: mod_perl documentation
Summary(ru_RU.KOI8-R): Документация по mod_perl
Summary(uk_UA.KOI8-U): Документац╕я по mod_perl
Group: System/Servers
Version: %{mod_perl_version}_%apache_version
PreReq: apache-common = %apache_version-%release

%description -n mod_perl-doc
This package contains assorted documentation on the mod_perl Apache module.

%description -l ru_RU.KOI8-R -n mod_perl-doc
Этот пакет содержит документацию к модулю Apache mod_perl.

%description -l uk_UA.KOI8-U -n mod_perl-doc
Цей пакунок м╕стить документац╕ю до модуля Apache mod_perl.

%package manual
Summary: Apache Manual
Summary(ru_RU.KOI8-R): Документация по Apache
Summary(uk_UA.KOI8-U): Документац╕я по Apache
Group: System/Servers
Version: %apache_version
PreReq: apache-common = %version-%release
AutoReq: no

%description manual
This package contains the Apache server documentation in HTML format.

%description -l ru_RU.KOI8-R manual
Этот пакет содержит документацию к веб-серверу Apache в формате HTML.

%description -l uk_UA.KOI8-U manual
Цей пакунок м╕стить документац╕ю до веб-серверу Apache у формат╕ HTML.

%add_findprov_lib_path %_libdir/%name

%prep
%if "%feature_initscripts" == ""
echo "*** Unable to determine target distribution"
echo "*** use --with M22 or --with Sisyphus"
exit 1
%endif

%{expand:%%global _builddir %_builddir/apache-%apache_version-%apache_release}
rm -rf %_builddir
mkdir -p %_builddir

%setup -q -n mod_deflate-%mod_deflate_version -T -b 12
%setup -q -n mod_accel-%mod_accel_version -T -b 17
%setup -q -n mod_perl-%mod_perl_version -T -b 13
%setup -q -n apache_%apache_vanilla_version
%setup -q -n mod_realip-%mod_realip_version -T -b 14
%setup -q -D -n apache_%apache_vanilla_version -T -a 1

# Install mod_realip

cp $RPM_BUILD_DIR/mod_realip-%mod_realip_version/*.c $RPM_BUILD_DIR/apache_%apache_vanilla_version/src/modules/extra/

# Fix RA patch first

patch -p1 -s <RA-1.3rus%russian_patchlevel.patch

# fix problem with mod_long_names (by pilot at );

# get apxs to understand Includes (updated patch1)
%patch1 -p1

%patch2 -p1
%patch3 -p1
%patch4 -p1

%patch8 -p1
#patch9 -p1

%if_with acl_support
%patch10 -p1
%endif

%patch75 -p1
%patch76 -p1
%patch77 -p1

#patch90 -p0


# Patch91 obsolete with 1.3.29

#patch91 -p0

%patch92 -p1
#patch93 -p1 -- went upstream
%patch94 -p1
#patch95 -p4
#patch96 -p2

# should be obsolete with mod_perl-1.30

pwd
pushd ../mod_perl-%mod_perl_version
%patch97 -p1
popd

# should be obsolete with 1.3.38

#patch98 -p1
#patch99 -p1

chmod -x $(find htdocs -type f)
subst 's|" PLATFORM "|%distribution/%apache_release|;' \
$RPM_BUILD_DIR/apache_%apache_vanilla_version/src/main/http_main.c

#####

cd ..
rm -rf apache-mod_perl_%apache_vanilla_version

#### EAPI

pushd apache_%apache_vanilla_version
%setup -q -n apache_%apache_vanilla_version -T -D -b 9
mv ../EAPI-%EAPI_version/pkg.eapi/*.c src/ap/
mv ../EAPI-%EAPI_version/pkg.eapi/*.h src/include/
mv ../EAPI-%EAPI_version/pkg.addon/*.c src/modules/extra
cp src/modules/extra/mod_define.c src/modules/standard
popd

pushd apache_%apache_vanilla_version
patch -p0 -s < ../EAPI-%EAPI_version/pkg.addon/addon.patch
patch -p0 -s < ../EAPI-%EAPI_version/pkg.eapi/eapi.patch
popd

cp -pr apache_%apache_vanilla_version apache-mod_perl_%apache_vanilla_version

%build
echo "### define configure flags"
APFLAGS="--serverroot=%apache_root \
--prefix=%prefix \
--bindir=%_bindir \
--sbindir=%_sbindir \
--mandir=%_mandir \
--sysconfdir=%_sysconfdir/httpd/conf \
--datadir=%apache_home \
--htdocsdir=%apache_home/html \
--includedir=%_includedir/apache \
--localstatedir=%_var \
--runtimedir=%_var/run \
--logfiledir=%_logdir/httpd \
--proxycachedir=%_cachedir/httpd \
--disable-rule=WANTHSREGEX \
--disable-rule=EXPAT \
       --with-perl=%__perl \
--without-confadjust \
--enable-module=all \
--enable-module=auth_digest \
--disable-module=auth_dbm \
--enable-shared=max \
--enable-suexec \
--suexec-caller=%apache_user \
--suexec-docroot=%suexec_docroot \
--suexec-userdir=public_html \
--activate-module=src/modules/extra/mod_realip.o \
%if_with mod_accel
--activate-module=src/modules/accel/libaccel.a \
%endif
%if_with mod_deflate
--activate-module=src/modules/extra/mod_deflate.o \
%endif
"

%if_with mod_deflate
echo "### Patching source of apache to enable mod_deflate"
pushd ../mod_deflate-%mod_deflate_version
./configure --with-apache=../apache_%apache_vanilla_version
# SMP build incompatible
%make
./configure --with-apache=../apache-mod_perl_%apache_vanilla_version
%make
mv CHANGES CHANGES.mod_deflate
mv CHANGES.rus CHANGES.mod_deflate.rus
mv LICENSE LICENSE.mod_deflate
mv readme.html readme.mod_deflate.ru.html
popd
%endif

%if_with mod_accel
echo "### Patching source of apache to enable mod_accel"
pushd ../mod_accel-%mod_accel_version
./configure --with-apache=../apache_%apache_vanilla_version
%make
./configure --with-apache=../apache-mod_perl_%apache_vanilla_version
%make
mv CHANGES CHANGES.mod_accel
mv CHANGES.rus CHANGES.mod_accel.rus
mv LICENSE LICENSE.mod_accel
mv readme.html readme.mod_accel.ru.html
popd
%endif

LIMITS="-DHARD_SERVER_LIMIT=%apache_hard_server_limit"

%if_with acl_support
ACL_SUPPORT="-DACL_SUPPORT"
%endif

echo "### Build the *normal* Apache"

OPTIM="%optflags $LIMITS $ACL_SUPPORT" \
EAPI_MM=SYSTEM \
CFLAGS='-DEAPI_MM_CORE_PATH=\\\"%_var/run/mm\\\" -I%_includedir/db4 -I%_includedir/gdbm -DDBM_SUFFIX=\\\".db\\\"' \
LIBS="-ldb -lgdbm -lgdbm_compat -lpthread" \
found_dbm="1" \
./configure \
--enable-rule=EAPI \
--libexecdir=%_libdir/apache \
--enable-rule=SHARED_CORE \
$APFLAGS

%make

echo "### configure mod_perl"
cd $RPM_BUILD_DIR/mod_perl-%mod_perl_version
perl -pi -e "s|PRODUCT|BASEPRODUCT|;" Makefile.PL
PERL_CC="gcc" \
PERL_CCFLAGS=`perl -V:ccflags|cut -f 2 -d\'` \
perl -I$RPM_BUILD_DIR/mod_perl-%mod_perl_version/lib  Makefile.PL \
   PREFIX=%prefix INSTALLDIRS=vendor \
   USE_APACI=1 \
   APACHE_SRC=../apache-mod_perl_%apache_vanilla_version/src \
   APACHE_HEADER_INSTALL=1 \
   DO_HTTPD=1 \
   PREP_HTTPD=1 \
   EVERYTHING=1

echo "### build Perl-side "
%make
chmod -R o-w t/docs/
cd faq
%make
echo "### build Apache with mod_perl"
cd $RPM_BUILD_DIR/apache-mod_perl_%apache_vanilla_version

OPTIM="%optflags $LIMITS $ACL_SUPPORT" \
PERL_CC="gcc" \
PERL_CCFLAGS=`perl -V:ccflags|cut -f 2 -d\'` \
PERL5LIB=$RPM_BUILD_DIR/mod_perl-%mod_perl_version/lib \
CFLAGS='-I%_includedir/db4 -I%_includedir/gdbm -DDBM_SUFFIX=\\\".db\\\"' \
LIBS="-ldb -lgdbm -lgdbm_compat -lpthread" \
found_dbm="1" \
./configure \
--enable-rule=EAPI \
--libexecdir=%_libdir/apache-perl \
$APFLAGS \
--activate-module=src/modules/perl/libperl.a \
--activate-module=src/modules/extra/mod_realip.o \
--disable-shared=include \
--disable-shared=perl

%make build-std
%make -C src/support apxs

%install
# install the normal Apache
cd $RPM_BUILD_DIR/apache_%apache_vanilla_version
%make install-quiet root=%buildroot
install -d %buildroot%_spooldir/apache/{,tmp,sessions,uploads}

# install apache-mod_perl

cd $RPM_BUILD_DIR/apache-mod_perl_%apache_vanilla_version
install -m755 src/httpd %buildroot%_sbindir/httpd-perl
install -d -m755 %buildroot%_libdir/apache-perl/
install -m755 src/modules/*/*.so %buildroot%_libdir/apache-perl/
sed  -e 's;^#!/.*;#!/usr/bin/perl;' \
-e 's;\ at prefix\ at ;%prefix;' \
-e 's;\ at sbindir\ at ;%_sbindir;' \
-e 's;\ at libexecdir\ at ;%_libdir/apache-perl;' \
-e 's;\ at includedir\ at ;%_includedir/%name;' \
-e 's;\ at sysconfdir\ at ;%_sysconfdir/httpd/conf;' \
< src/support/apxs > %buildroot%_sbindir/apxs-perl
chmod 755 %buildroot%_sbindir/apxs-perl

ln -snf `relative %_logdir/httpd %apache_root/` \
%buildroot%apache_root/logs
ln -snf `relative %_libdir/apache %apache_root/` \
%buildroot%apache_root/modules
ln -snf `relative %_libdir/apache-perl %apache_root/` \
%buildroot%apache_root/modules-perl

# install log rotation stuff

install -pD -m644 %SOURCE4 \
%buildroot%_sysconfdir/logrotate.d/apache

# install configuration files

pushd %buildroot%_sysconfdir/httpd/conf
install -m644 %SOURCE5 httpd.conf
install -m644 %SOURCE15 httpd-perl.conf
perl -pi -e 's/^\s*User nobody/User %apache_user/;' \
   -e 's/^\s*Group nobody/Group %apache_group/;' \
   httpd*.conf
install -m644 %SOURCE23 apache-mime.types
cp -a mime.types.default apache-mime.types.default
install -d -m755 vhosts
install -p -m644 %SOURCE26 %SOURCE27 %SOURCE50 %SOURCE51 vhosts/
install -pD -m644 %SOURCE16 addon-modules/proxied_handlers.pl

install -d -m755 addon-modules.d
install -pD -m644 %SOURCE53 addon-modules.d/mod_charset.conf
install -pD -m644 %SOURCE54 addon-modules.d/mod_realip.conf

install -d -m755 vhosts.d
install -p -m644 %SOURCE62 vhosts.d/00-example.conf

install -d -m755 vhosts-perl.d
popd

#install misc documentation and logos

install -pD -m644 %SOURCE52 %buildroot%apache_home/html/README.txt
install -pD -m644 %SOURCE61 %buildroot%apache_home/html/README.ALT
install -pD -m644 %SOURCE63 %buildroot%apache_home/html/TUNING.ALT
rm -f %buildroot%apache_home/html/index.html.ru{,.ucs*}
for f in %buildroot%apache_home/html/index.html*; do
perl -pi \
-e 's|apache_pb\.gif|ra-powered.gif|g;' \
-e 's|</BODY>|<!--#include file="altlinux.html" -->\n</BODY>|i;' \
< $f > ${f/.html/.shtml} \
       && rm -f $f
done
perl -pi -e 's|http://www\.apache\.org/httpd|http://apache.lexa.ru/|' \
%buildroot%apache_home/html/index.shtml.ru*
install -m644 %SOURCE29 %buildroot/%apache_home/html/
install -m644 %SOURCE30 %buildroot/%apache_home/html/
install -m644 %SOURCE31 %buildroot/%apache_home/icons/
install -d -m755 %buildroot/%apache_home/html/addon-modules/
install -m644 $RPM_BUILD_DIR/EAPI-%EAPI_version/pkg.addon/mod_define.html \
%buildroot/%apache_home/html/manual/mod/mod_define.html

perl -pi -e "s|/usr/local/bin/perl|%__perl|g;" \
%buildroot/%apache_home/html/manual/misc/howto.html
perl -pi -e "s|/path/to/bin/perl|%__perl|g;" \
%buildroot/%apache_home/html/manual/mod/mod_rewrite.html
perl -pi -e "s|/usr/local/bin/perl|%__perl|g;" \
%buildroot/%apache_home/html/manual/search/manual-index.cgi

#install cache_create for mod_accel

%if_with mod_accel
install -m755 $RPM_BUILD_DIR/mod_accel-%mod_accel_version/create_cache \
%buildroot%_bindir/create_cache
%endif

# install mod_perl files

cd $RPM_BUILD_DIR/mod_perl-%mod_perl_version
%perl_vendor_install
rm -f %buildroot%perl_vendor_autolib/mod_perl/.packlist
install -d  -m755 %buildroot%apache_home/perl
install -pD -m644 eg/README \
%buildroot%apache_home/html/addon-modules/mod_perl/README.eg
install -m644 README SUPPORT Changes faq/*.{html,txt} \
apache-modlist.html htdocs/manual/mod/mod_perl.html \
%buildroot%apache_home/html/addon-modules/mod_perl/
perl -pi -e "s|../../../|/manual/images/|g;" \
%buildroot%apache_home/html/addon-modules/mod_perl/mod_perl.html
perl -pi -e 's,/usr/local/bin/perl,%_bindir/perl,' \
%buildroot%perl_vendor_archlib/Apache/Resource.pm

# install proper initscripts

mkdir -p %buildroot%_sysconfdir/rc.d/init.d

%if "%feature_initscripts" == "2_2"
install -m755 %SOURCE33 \
%buildroot%_sysconfdir/rc.d/init.d/httpd
install -m755 %SOURCE34 \
%buildroot%_sysconfdir/rc.d/init.d/httpd-perl
%else
install -m755 %SOURCE35 \
%buildroot%_sysconfdir/rc.d/init.d/httpd
install -m755 %SOURCE36 \
%buildroot%_sysconfdir/rc.d/init.d/httpd-perl
%endif

install -pD -m644 %SOURCE60 \
%buildroot%_sysconfdir/rpm/macros.d/%name

# replace the "official" apachectl by a symlink to the init script

rm -f %buildroot%_sbindir/apachectl*
ln -s `relative %_sysconfdir/rc.d/init.d/httpd %_sbindir/` \
%buildroot%_sbindir/apachectl
ln -s `relative %_sysconfdir/rc.d/init.d/httpd-perl %_sbindir/` \
%buildroot%_sbindir/apachectl-perl

# take away manuals to place them in docdir

mv %buildroot%apache_home/html/manual/ \
$RPM_BUILD_DIR/apache_%apache_vanilla_version/
mv %buildroot%apache_home/html/addon-modules/mod_perl/ \
$RPM_BUILD_DIR/apache_%apache_vanilla_version/perldocs

# fix manpages

subst 's,/usr/local/apache,%apache_root,g' \
%buildroot/%_mandir/man?/*.[0-9]
subst 's,/usr/local/etc/apache,%apache_root/conf,g' \
%buildroot/%_mandir/man?/*.[0-9]

# check modules for undefined symbols

pushd %buildroot%_libdir/apache
ldd -r libhttpd.so 2>%_builddir/check.log >/dev/null
for f in *.so; do
[ "$f" != libhttpd.so ] || continue
[ -f "$f" ] || continue
LD_PRELOAD=./libhttpd.so ldd -r "$f" 2>&1 >/dev/null ||:
done >>%_builddir/check.log
! [ -s %_builddir/check.log ] || exit 1
popd # %buildroot%_libdir/apache
pushd %buildroot%_libdir/apache-perl
for f in *.so; do
[ -f "$f" ] || continue
LD_PRELOAD=%buildroot%_libdir/apache/libhttpd.so ldd -r "$f" 2>&1 >/dev/null ||:
done >%_builddir/check.log
! [ -s %_builddir/check.log ] || exit 1
popd # %buildroot%_libdir/apache-perl

# SCRIPTS


%pre common
%_sbindir/groupadd -r -f %apache_group 2>/dev/null ||:
%_sbindir/groupadd -r -f %apache_webmaster 2>/dev/null ||:
%_sbindir/useradd -g %apache_group -c 'WWW server' -d %apache_home -s '' \
-r %apache_user 2>/dev/null || :
if [ -e %old_apache_home -a ! -e %apache_home ]; then
mkdir -p `dirname %apache_home`
ln -s %old_apache_home %apache_home
fi

# FIXME: see #2920

#post common
#find %_logdir/httpd -group %apache_webmaster -print0 \
#| xargs -0 chgrp %apache_group

%post manual
ln -snf %_docdir/apache-manual-%apache_version %apache_home/html/manual

%preun manual
if [ $1 = 0 ]; then
rm -f %apache_home/html/manual
fi

%post
%post_service httpd

%preun
%preun_service httpd
## XXX: is this correct with standalone httpd-perl??
## => commenting out as of 1.3.32
#if [ $1 = 0 ]; then
# rm -rf %_logdir/httpd/*
#fi

%post mod_perl
%post_service httpd-perl

%preun mod_perl
%preun_service httpd-perl
%postun mod_perl
if [ -e %_sbindir/apachectl ]; then
%_sbindir/apachectl update
fi

%post -n mod_perl-doc
ln -snf %_docdir/mod_perl-doc-%mod_perl_version \
%apache_home/html/addon-modules/mod_perl

%preun -n mod_perl-doc
if [ $1 = 0 ]; then
rm -f %apache_home/html/addon-modules/mod_perl
fi

%post suexec
if [ -e %_sbindir/apachectl ]; then
%_sbindir/apachectl update
fi

%postun suexec
if [ -e %_sbindir/apachectl ]; then
%_sbindir/apachectl update
fi

%files common
%dir %apache_root/
%_sbindir/ab
%_sbindir/logresolve
%_sbindir/rotatelogs
%_bindir/*

%attr(750,root,webmaster) %dir %_sysconfdir/httpd/conf/
%config(noreplace) %_sysconfdir/httpd/conf/magic
%config(noreplace) %_sysconfdir/httpd/conf/apache-mime.types
%dir %_sysconfdir/httpd/conf/vhosts/
%config(noreplace) %_sysconfdir/httpd/conf/vhosts/*.conf
%dir %_sysconfdir/httpd/conf/vhosts.d/
%config(noreplace) %_sysconfdir/httpd/conf/vhosts.d/*.conf
%dir %_sysconfdir/httpd/conf/addon-modules/
%dir %_sysconfdir/httpd/conf/addon-modules.d/
%config(noreplace) %_sysconfdir/httpd/conf/addon-modules.d/*.conf
%_sysconfdir/httpd/conf/httpd.conf.default
%_sysconfdir/httpd/conf/magic.default
%_sysconfdir/httpd/conf/apache-mime.types.default
%_sysconfdir/httpd/conf/tables

%apache_root/logs

%attr(-,root,%apache_webmaster) %dir %apache_home/
%attr(2775,root,%apache_webmaster) %dir %apache_home/html/
%attr(664,root,%apache_webmaster) %config(noreplace) %apache_home/html/*html*
%attr(664,root,%apache_webmaster) %config(noreplace) %apache_home/html/*.txt
%attr(664,root,%apache_webmaster) %config(noreplace) %apache_home/html/*.gif
%attr(604,root,%apache_group) %apache_home/html/README.ALT
%attr(604,root,%apache_group) %apache_home/html/TUNING.ALT
%attr(2771,root,%apache_webmaster) %dir %apache_home/html/addon-modules/
%attr(2771,root,%apache_webmaster) %dir %apache_home/cgi-bin/
%attr(664,root,%apache_webmaster) %config(noreplace) %apache_home/cgi-bin/*
%defattr(644,root,webmaster,2775)
%dir %apache_home/icons/
%dir %apache_home/icons/small/
%apache_home/icons/README*
%apache_home/icons/*.gif
%apache_home/icons/*.png
%apache_home/icons/small/*.gif
%apache_home/icons/small/*.png

%defattr(644,root,root,755)
%attr(750,root,%apache_group) %dir %_logdir/httpd/
%attr(2770,root,%apache_group) %dir %_cachedir/httpd/

%attr(750,root,%apache_group) %dir %_spooldir/apache/
%attr(2770,root,%apache_group) %dir %_spooldir/apache/tmp/
%attr(2770,root,%apache_group) %dir %_spooldir/apache/sessions/
%attr(2770,root,%apache_group) %dir %_spooldir/apache/uploads/

%_mandir/man?/*

%config(noreplace) %_sysconfdir/logrotate.d/apache

%doc README* LICENSE ABOUT_APACHE CHANGES.rus*
%doc ../EAPI-%EAPI_version/pkg.eapi/README.EAPI

%if_with mod_deflate
%doc ../mod_deflate-%mod_deflate_version/CHANGES.mod_deflate*
%doc ../mod_deflate-%mod_deflate_version/LICENSE.mod_deflate
%doc ../mod_deflate-%mod_deflate_version/readme.mod_deflate.ru.html
%endif

%files
%_initdir/httpd
%_sbindir/apachectl
%_sbindir/httpd
%_sbindir/apxs
%config(noreplace) %_sysconfdir/httpd/conf/httpd.conf
%_libdir/apache/
%apache_root/modules

%files mod_perl
%_initdir/httpd-perl
%_sbindir/apachectl-perl
%_sbindir/httpd-perl
%_libdir/apache-perl/
%apache_root/modules-perl
%_sbindir/apxs-perl
%config(noreplace) %_sysconfdir/httpd/conf/httpd-perl.conf
%dir %_sysconfdir/httpd/conf/addon-modules/
%config(noreplace) %_sysconfdir/httpd/conf/addon-modules/proxied_handlers.pl
%perl_vendor_archlib/Apache*
%perl_vendor_archlib/Bundle*
%perl_vendor_archlib/mod_perl*
%perl_vendor_autolib/Apache*
%attr(3771,root,%apache_group) %dir %apache_home/perl/

%files -n mod_perl-doc
%doc perldocs/*
%doc %perl_vendor_privlib/*/*.pod

%files manual
%doc manual/*

%files devel
%_includedir/*
%_sysconfdir/rpm/macros.d/*

%files suexec
%attr(4710,root,%apache_group) %_sbindir/suexec

# TODO

# - seperate apache-mod_perl-devel ?
# - buildreq plugs "apache-mod_perl" build dependency somehow :-/
# - update fuzzy patches?
# - seperate htpasswd
# - include /etc/monitrc.d/apache ?
# - control suexec?
# - drop M22 support, remove ancient spec cruft
# - fix all ugly hacks!
# - macro for %_cachedir/httpd/

%changelog

Полный changelog можно просмотреть здесь

 
design & coding: Vladimir Lettiev aka crux © 2004-2005