# 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