Group :: System/Servers
RPM: apache2-mod_perl
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
# Spec file for mod_perl2 module for Apache 2.0 server
%define real_name mod_perl
%define module_name perl
%define version 2.0.3
%define release alt5
%define public_release YES
%define inside_bte %defined __BTE
Name: apache2-mod_perl
Version: %version
Release: %release
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 at altlinux.ru>
Source: http://perl.apache.org/dist/%real_name-%version.tar.bz2
Source1: perl.load
Source2: perl.conf
Source3: perl.start
Patch0: mod_perl-2.0.2-multilib.patch
Patch1: %name-2.0.3-alt-perl_5.8.8_alt7.patch
Patch2: %name-2.0.3-alt-tests-both_str_req_proxy.patch
Patch3: %name-2.0.3-alt-tests-ipsubnet.patch
Patch4: %name-2.0.3-alt-tests-sockaddr.patch
Patch5: %name-2.0.3-alt-tests-request_body.patch
Patch6: %name-2.0.3-alt-tests-out_bbs_filebucket.patch
Patch7: %name-2.0.3-alt-tests-note.patch
Patch8: %name-2.0.3-alt-tests-setupenv.patch
Patch9: %name-2.0.3-alt-tests-server_const.patch
Patch10: %name-2.0.3-alt-apache_test_config.patch
Patch11: %name-2.0.3-alt-tests-uploads.patch
Patch12: %name-2.0.3-alt-CVE-207-1349.patch
BuildRequires(pre): perl-base >= 5.6.1, perl-devel, perl-threads
BuildRequires(pre): apache2-devel >= 2.2.4-alt14
BuildRequires: %apache_apr_buildreq
BuildRequires: libgdbm-devel
BuildRequires: perl-Math-BigInt, perl-HTML-Parser, perl-BSD-Resource
BuildRequires: perl-Compress-Zlib, perl-CGI, perl-Encode
PreReq: apache2 >= %apache_version-%apache_release
%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
%patch0 -p1
# Fix for perl 5.8.8-alt8
%patch1
# Remove tests
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9
%patch10
[[ "%inside_bte" == "1" ]] && patch -p0 < %PATCH11
# Bug fixes
%patch12
mv -f -- LICENSE LICENSE.orig
ln -s -- $(relative %_licensedir/Apache-2.0 %_docdir/%name/LICENSE) LICENSE
# Full path to Apache2 modules
%__subst 's! at apache_moduledir at !%apache_moduledir!g' t/conf/extra.conf.in \
ModPerl-Registry/t/conf/extra.conf.in \
Apache-Test/t/conf/extra.conf.in
%build
%perl_vendor_build MP_APXS=%a_apxs MP_APR_CONFIG=%apache_apr_config
%install
%perl_vendor_install UNINST=0
# Install the config file
install -d -m 755 -- $RPM_BUILD_ROOT%a_mods_available
install -d -m 755 -- $RPM_BUILD_ROOT%a_mods_start
install -p -m 644 -- %SOURCE1 $RPM_BUILD_ROOT%a_mods_available/%module_name.load
install -p -m 644 -- %SOURCE2 $RPM_BUILD_ROOT%a_mods_available/%module_name.conf
subst 's, at a_libexecdir at ,%a_libexecdir,g' $RPM_BUILD_ROOT%a_mods_available/%module_name.load
install -p -m 644 -- %SOURCE3 $RPM_BUILD_ROOT%a_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:
%a_sbindir/a2chkconfig ||:
if [ -e %a_mods_enabled/%module_name.load ]; then
CONF_OK=0
%a_sbindir/apachectl2 configtest && CONF_OK=1 ||:
if [ "$CONF_OK" = "1" ]; then
service %a_dname condrestart ||:
else
echo "Some errors detected in Apache2 configuration!"
echo "To use %real_name check configuration and start %a_dname service."
echo
fi
else
echo "Apache2 %real_name module had been installed, but does't enabled."
echo "Check %a_mods_start directory for files with '%module_name=no' lines."
echo
fi
%preun
if [ "$1" = "0" ] ; then # last uninstall
[ -e %a_mods_enabled/%module_name.load ] && %a_sbindir/a2dismod %module_name 2>&1 >/dev/null ||:
fi
%postun
# Reconfigure Apache2:
%a_sbindir/a2chkconfig ||:
if [ "$1" = "0" ] ; then # last uninstall
CONF_OK=0
%a_sbindir/apachectl2 configtest && CONF_OK=1 ||:
if [ "$CONF_OK" = "1" ]; then
service %a_dname condrestart ||:
else
echo "Some errors detected in Apache2 configuration!"
echo "To complete %real_name uninstalling check configuration and restart %a_dname service."
echo
fi
fi
%files
%doc Changes README
%doc --no-dereference LICENSE
%config(noreplace) %a_mods_available/%module_name.conf
%config %a_mods_available/%module_name.load
%config %a_mods_start/100-%module_name.conf
%_bindir/mp2bug
%a_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*
%exclude %_man3dir/*
%files devel
%doc SVN-MOVE BRANCHING README-SVN RELEASE STATUS
%a_includedir/mod_perl.h
%a_includedir/modperl_*.h
%files doc
%doc docs/*
%changelog
…
Full changelog you can see here
%define real_name mod_perl
%define module_name perl
%define version 2.0.3
%define release alt5
%define public_release YES
%define inside_bte %defined __BTE
Name: apache2-mod_perl
Version: %version
Release: %release
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 at altlinux.ru>
Source: http://perl.apache.org/dist/%real_name-%version.tar.bz2
Source1: perl.load
Source2: perl.conf
Source3: perl.start
Patch0: mod_perl-2.0.2-multilib.patch
Patch1: %name-2.0.3-alt-perl_5.8.8_alt7.patch
Patch2: %name-2.0.3-alt-tests-both_str_req_proxy.patch
Patch3: %name-2.0.3-alt-tests-ipsubnet.patch
Patch4: %name-2.0.3-alt-tests-sockaddr.patch
Patch5: %name-2.0.3-alt-tests-request_body.patch
Patch6: %name-2.0.3-alt-tests-out_bbs_filebucket.patch
Patch7: %name-2.0.3-alt-tests-note.patch
Patch8: %name-2.0.3-alt-tests-setupenv.patch
Patch9: %name-2.0.3-alt-tests-server_const.patch
Patch10: %name-2.0.3-alt-apache_test_config.patch
Patch11: %name-2.0.3-alt-tests-uploads.patch
Patch12: %name-2.0.3-alt-CVE-207-1349.patch
BuildRequires(pre): perl-base >= 5.6.1, perl-devel, perl-threads
BuildRequires(pre): apache2-devel >= 2.2.4-alt14
BuildRequires: %apache_apr_buildreq
BuildRequires: libgdbm-devel
BuildRequires: perl-Math-BigInt, perl-HTML-Parser, perl-BSD-Resource
BuildRequires: perl-Compress-Zlib, perl-CGI, perl-Encode
PreReq: apache2 >= %apache_version-%apache_release
%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
%patch0 -p1
# Fix for perl 5.8.8-alt8
%patch1
# Remove tests
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9
%patch10
[[ "%inside_bte" == "1" ]] && patch -p0 < %PATCH11
# Bug fixes
%patch12
mv -f -- LICENSE LICENSE.orig
ln -s -- $(relative %_licensedir/Apache-2.0 %_docdir/%name/LICENSE) LICENSE
# Full path to Apache2 modules
%__subst 's! at apache_moduledir at !%apache_moduledir!g' t/conf/extra.conf.in \
ModPerl-Registry/t/conf/extra.conf.in \
Apache-Test/t/conf/extra.conf.in
%build
%perl_vendor_build MP_APXS=%a_apxs MP_APR_CONFIG=%apache_apr_config
%install
%perl_vendor_install UNINST=0
# Install the config file
install -d -m 755 -- $RPM_BUILD_ROOT%a_mods_available
install -d -m 755 -- $RPM_BUILD_ROOT%a_mods_start
install -p -m 644 -- %SOURCE1 $RPM_BUILD_ROOT%a_mods_available/%module_name.load
install -p -m 644 -- %SOURCE2 $RPM_BUILD_ROOT%a_mods_available/%module_name.conf
subst 's, at a_libexecdir at ,%a_libexecdir,g' $RPM_BUILD_ROOT%a_mods_available/%module_name.load
install -p -m 644 -- %SOURCE3 $RPM_BUILD_ROOT%a_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:
%a_sbindir/a2chkconfig ||:
if [ -e %a_mods_enabled/%module_name.load ]; then
CONF_OK=0
%a_sbindir/apachectl2 configtest && CONF_OK=1 ||:
if [ "$CONF_OK" = "1" ]; then
service %a_dname condrestart ||:
else
echo "Some errors detected in Apache2 configuration!"
echo "To use %real_name check configuration and start %a_dname service."
echo
fi
else
echo "Apache2 %real_name module had been installed, but does't enabled."
echo "Check %a_mods_start directory for files with '%module_name=no' lines."
echo
fi
%preun
if [ "$1" = "0" ] ; then # last uninstall
[ -e %a_mods_enabled/%module_name.load ] && %a_sbindir/a2dismod %module_name 2>&1 >/dev/null ||:
fi
%postun
# Reconfigure Apache2:
%a_sbindir/a2chkconfig ||:
if [ "$1" = "0" ] ; then # last uninstall
CONF_OK=0
%a_sbindir/apachectl2 configtest && CONF_OK=1 ||:
if [ "$CONF_OK" = "1" ]; then
service %a_dname condrestart ||:
else
echo "Some errors detected in Apache2 configuration!"
echo "To complete %real_name uninstalling check configuration and restart %a_dname service."
echo
fi
fi
%files
%doc Changes README
%doc --no-dereference LICENSE
%config(noreplace) %a_mods_available/%module_name.conf
%config %a_mods_available/%module_name.load
%config %a_mods_start/100-%module_name.conf
%_bindir/mp2bug
%a_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*
%exclude %_man3dir/*
%files devel
%doc SVN-MOVE BRANCHING README-SVN RELEASE STATUS
%a_includedir/mod_perl.h
%a_includedir/modperl_*.h
%files doc
%doc docs/*
%changelog
…
Full changelog you can see here