Package apache2-mod_perl: Specfile

# Spec file for mod_perl2 module for Apache 2.0 server

%define	real_name    mod_perl
%define module_name  perl
%define version      2.0.4
%define release      alt1

%define public_release NO
%define        inside_bte      %defined __BTE

Name:    apache2-mod_perl
Version: %version
Release: alt1.1

Summary: an embedded Perl interpreter for the Apache2 Web server
Summary(ru_RU.UTF-8): встроенный интерпретатор Perl для веб-сервера Apache2

License: Apache License v. 2.0
Group:   System/Servers
URL:     http://perl.apache.org/

Packager: Nikolay A. Fetisov <naf@altlinux.ru>

Source:  http://perl.apache.org/dist/%real_name-%version.tar.bz2
Source1: perl.load
Source2: perl.conf
Source3: perl.start
Source4: Apache-Test.tar
Source5: docs.tar

Patch0:  mod_perl-2.0.2-multilib.patch
Patch1:  %name-2.0.3-alt-perl_5.8.8_alt7.patch

Patch2:  %name-2.0.4-tests-apache_util.patch
Patch3:  %name-2.0.4-tests-hooks_authz.patch

Patch11: %name-2.0.3-alt-tests-uploads.patch

BuildRequires(pre): perl-base >= 5.6.1, perl-devel
BuildRequires(pre): apache2-devel >= 2.2.5

# Automatically added by buildreq on Thu Dec 11 2008
BuildRequires: apache-mod_perl-base perl-DBI perl-libwww perl-threads

BuildRequires: %(eval echo %apache2_apr_buildreq)
BuildRequires: libgdbm-devel libexpat-devel
BuildRequires: perl-Math-BigInt, perl-HTML-Parser, perl-BSD-Resource
BuildRequires: perl-Compress-Zlib, perl-CGI, perl-Encode

Requires(pre): apache2 >= %apache2_version-%apache2_release

Provides: mod_perl = %version

%description
Mod_perl  incorporates a  Perl  interpreter into the  Apache web
server, so that the  Apache web server can directly execute Perl
code.

Mod_perl provides an object-oriented Perl interface for Apache's
C language API and allows to manage Apache,  respond to requests
for web pages  and much more.  The end result  is a quicker  CGI 
script  turnaround process,  since no external  Perl interpreter 
has to be started.

Install  mod_perl if you're installing the Apache web server and
you'd like for it to directly incorporate a Perl interpreter.

%description -l ru_RU.UTF-8
Mod_perl  встраивает интерпретатор Perl в веб-сервер Apache,
позволяя веб серверу непосредственно исполнять код на Perl.

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

Mod_perl может быть полезен,  если Вы установили  веб-сервер
Apache и Вам нужна интегрированная поддержка Perl в нём.


%package devel
Summary: files needed for building XS modules that use mod_perl
Summary(ru_RU.UTF-8): файлы для сборки модулей Perl, использующих mod_perl
Group:   Development/C
Requires: %name = %{version}-%{release}, apache2-devel
Provides: %name-devel = %version-%release
Obsoletes: %name-devel

%description devel 
Mod_perl  incorporates a Perl interpreter into the Apache web
server,  so that the  Apache  web server can directly execute 
Perl code.

This package contains the files needed for building XS modules
that use mod_perl.

%description devel -l ru_RU.UTF-8
Mod_perl встраивает интерпретатор Perl в веб-сервер Apache,
позволяя веб серверу непосредственно исполнять код на Perl.

Данный пакет содержит файлы, необходимые для разработки 
XS-модулей на Perl, использующих mod_perl.


%package doc
Summary: mod_perl2 Apache module documentation
Summary(ru_RU.UTF-8): документация к модулю Apache mod_perl2
Group:   Documentation
Requires: %name = %{version}-%{release}
Provides: %name-doc = %version-%release
Obsoletes: %name-doc

%description doc
Mod_perl  incorporates a Perl interpreter into the Apache web
server,  so that the  Apache  web server can directly execute 
Perl code.

This package contains the documentation for mod_perl Apache2
module.

%description doc -l ru_RU.UTF-8
Mod_perl встраивает интерпретатор Perl в веб-сервер Apache,
позволяя веб серверу непосредственно исполнять код на Perl.

Данный пакет содержит документацию к модулю mod_perl.



###########################
# Building mod_perl in incoming's hasher environment
# causes an sporadic and eventual errors during 
# extensive test load. Disabling test for public releases.
%ifdef __BTE
    %ifdef public_release
        %def_without test
    %endif
%endif

# Skip dependence search for some modules
%add_findreq_skiplist */Test/Builder.pm */Apache/Test.pm 
%add_findreq_skiplist */Apache/TestConfig.pm */Apache/TestConfigC.pm
%add_findreq_skiplist */Apache/TestConfigParse.pm */Apache/TestConfigPerl.pm
%add_findreq_skiplist */Apache/TestHarness.pm */Apache/TestMM.pm
%add_findreq_skiplist */Apache/TestRequest.pm */Apache/TestRun.pm
%add_findreq_skiplist */Apache/TestClient.pm */Apache/TestMB.pm
%add_findreq_skiplist */Apache/TestServer.pm 
%add_findreq_skiplist */Apache2/SourceTables.pm */Apache2/compat.pm
%add_findreq_skiplist */Apache2/SizeLimit.pm */Apache2/Resource.pm
%add_findreq_skiplist */ModPerl/CScan.pm */ModPerl/Code.pm
%add_findreq_skiplist */ModPerl/RegistryLoader.pm

%prep
%setup -q -n %real_name-%version
/bin/tar xvf %SOURCE4
/bin/tar xvf %SOURCE5

%patch0 -p1

# Remove tests
%patch2
%patch3

[[ "%inside_bte" == "1" ]] && patch -p0 < %PATCH11

mv -f -- LICENSE LICENSE.orig
ln -s -- $(relative %_licensedir/Apache-2.0 %_docdir/%name/LICENSE) LICENSE

%build
%perl_vendor_build MP_APXS=%apache2_apxs MP_APR_CONFIG=%apache2_apr_config

%install
%perl_vendor_install UNINST=0 

# Install the config file
install -d -m 755 -- $RPM_BUILD_ROOT%apache2_mods_available
install -d -m 755 -- $RPM_BUILD_ROOT%apache2_mods_start

install -p -m 644 -- %SOURCE1 $RPM_BUILD_ROOT%apache2_mods_available/%module_name.load
install -p -m 644 -- %SOURCE2 $RPM_BUILD_ROOT%apache2_mods_available/%module_name.conf
subst 's,@a_libexecdir@,%apache2_libexecdir,g' $RPM_BUILD_ROOT%apache2_mods_available/%module_name.load
install -p -m 644 -- %SOURCE3 $RPM_BUILD_ROOT%apache2_mods_start/100-%module_name.conf


# Install missed modules from install script
install -p -m 644 -- xs/tables/current/APR/FunctionTable.pm      $RPM_BUILD_ROOT%perl_vendor_archlib/APR/FunctionTable.pm
install -p -m 644 -- xs/tables/current/Apache2/ConstantsTable.pm $RPM_BUILD_ROOT%perl_vendor_archlib/Apache2/ConstantsTable.pm
install -p -m 644 -- xs/tables/current/Apache2/FunctionTable.pm  $RPM_BUILD_ROOT%perl_vendor_archlib/Apache2/FunctionTable.pm
install -p -m 644 -- xs/tables/current/Apache2/StructureTable.pm $RPM_BUILD_ROOT%perl_vendor_archlib/Apache2/StructureTable.pm
install -p -m 644 -- xs/tables/current/ModPerl/FunctionTable.pm  $RPM_BUILD_ROOT%perl_vendor_archlib/ModPerl/FunctionTable.pm

%post
# Reconfigure Apache2:
%apache2_sbindir/a2chkconfig ||:

if [ -e %apache2_mods_enabled/%module_name.load ]; then
    CONF_OK=0
    %apache2_sbindir/apachectl2 configtest && CONF_OK=1 ||:
    if [ "$CONF_OK" = "1" ]; then
	service %apache2_dname condrestart ||:
    else
        echo "Some errors detected in Apache2 configuration!"
	echo "To use %real_name check configuration and start %apache2_dname service."
    echo
    fi
else
    echo "Apache2 %real_name module had been installed, but does't enabled."
    echo "Check %apache2_mods_start directory for files with '%module_name=no' lines."
    echo
fi

%preun
if [ "$1" = "0" ] ; then # last uninstall
    [ -e %apache2_mods_enabled/%module_name.load ] && %apache2_sbindir/a2dismod %module_name 2>&1 >/dev/null ||:
fi


%postun
# Reconfigure Apache2:
%apache2_sbindir/a2chkconfig ||:
if [ "$1" = "0" ] ; then # last uninstall
    CONF_OK=0
    %apache2_sbindir/apachectl2 configtest && CONF_OK=1 ||:
    if [ "$CONF_OK" = "1" ]; then
	service %apache2_dname condrestart ||:
    else
        echo "Some errors detected in Apache2 configuration!"
	echo "To complete %real_name uninstalling check configuration and restart %apache2_dname service."
	echo
    fi
fi


%files
%doc Changes README
%doc --no-dereference LICENSE

%config(noreplace) %apache2_mods_available/%module_name.conf
%config            %apache2_mods_available/%module_name.load
%config            %apache2_mods_start/100-%module_name.conf

%_bindir/mp2bug
%apache2_libexecdir/%real_name.so

%perl_vendor_archlib/mod_perl2.pm
%perl_vendor_archlib/Apache/*
%perl_vendor_archlib/Apache2/*
%perl_vendor_archlib/Bundle/*
%perl_vendor_archlib/APR*
%perl_vendor_archlib/ModPerl*
%perl_vendor_autolib/mod_perl2*
%perl_vendor_autolib/Apache2*
%perl_vendor_autolib/ModPerl*
%perl_vendor_autolib/APR*

%files devel
%doc SVN-MOVE BRANCHING README-SVN RELEASE STATUS
%apache2_includedir/mod_perl.h
%apache2_includedir/modperl_*.h

%files doc
%doc docs/*

%changelog
* Mon Nov 08 2010 Vladimir Lettiev <crux@altlinux.ru> 2.0.4-alt1.1
- rebuilt with perl 5.12

* Thu Dec 11 2008 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.4-alt1
- New version 2.0.4

* Sun Nov 23 2007 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.3-alt5.9
- Adding Provides for mod_perl (#13307)
- Rebuild with perl-5.8.8-alt16

* Sat Apr 28 2007 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.3-alt5
- Disabling tests for release versions
- Fix Apache2 test configuration

* Fri Mar 30 2007 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.3-alt4
- Fix for CVE-2007-1349: mod_perl "path_info" DoS Vulnerability
- Switch to the new Apache2 configuration scheme
- Disabling tests required mod_dir
- Disabling tests while building on ALT Linux BTE
- Spec file cleanup

* Fri Mar 23 2007 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.3-alt3
- Adding patch to build with perl-5.8.8-alt7, thanks Alexey Tourbin (at@)
- Disable ulimit setting during tests to build in hasher

* Mon Mar 05 2007 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.3-alt2
- Build for Apache 2.2

* Mon Jan 08 2007 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.3-alt1
- Initial build for ALT Linux Sisyphus

* Tue Oct 17 2006 Nikolay A. Fetisov <naf@altlinux.ru> 2.0.2-alt0
- Initial build