forked from pool/apache2-mod_perl
This commit is contained in:
397
apache2-mod_perl.spec
Normal file
397
apache2-mod_perl.spec
Normal file
@@ -0,0 +1,397 @@
|
||||
#
|
||||
# spec file for package apache2-mod_perl (Version 2.0.2)
|
||||
#
|
||||
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself.
|
||||
#
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# norootforbuild
|
||||
|
||||
Name: apache2-mod_perl
|
||||
BuildRequires: apache2-devel db-devel ed pcre-devel perl-BSD-Resource perl-Compress-Zlib perl-Tie-IxHash perl-libwww-perl sudo
|
||||
%if 0%{sles_version} == 9
|
||||
BuildRequires: openldap2-devel
|
||||
%endif
|
||||
%define apxs /usr/sbin/apxs2
|
||||
%define apache apache2
|
||||
%define apache_libexecdir %(%{apxs} -q LIBEXECDIR)
|
||||
%define apache_sysconfdir %(%{apxs} -q SYSCONFDIR)
|
||||
%define apache_includedir %(%{apxs} -q INCLUDEDIR)
|
||||
%define apache_serverroot %(%{apxs} -q PREFIX)
|
||||
%define apache_mmn %(MMN=$(%{apxs} -q LIBEXECDIR)_MMN; test -x $MMN && $MMN)
|
||||
Summary: Embedded Perl for Apache
|
||||
Group: Productivity/Networking/Web/Servers
|
||||
Autoreqprov: on
|
||||
License: Other License(s), see package, Apache
|
||||
Requires: apache2 %{apache_mmn}
|
||||
Requires: perl = %{perl_version}
|
||||
Requires: perl-HTML-Parser perl-Tie-IxHash
|
||||
Requires: perl-URI perl-libwww-perl
|
||||
Obsoletes: mod_perl_2
|
||||
Conflicts: mod_perl
|
||||
Autoreqprov: on
|
||||
Version: 2.0.2
|
||||
Release: 16
|
||||
Source0: mod_perl-%{version}.tar.gz
|
||||
#%define apache_test_version 1_99_15
|
||||
# cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic up -r MODPERL_%{apache_test_version}
|
||||
#Source1: Apache-Test-%{apache_test_version}.tar.bz2
|
||||
# patches for tests to run with httpd trunk
|
||||
Patch1: mod_perl-r411028-t_api_status.patch
|
||||
Patch2: mod_perl-t_content_length-r412063.patch
|
||||
URL: http://perl.apache.org/
|
||||
Icon: mod_perl.xpm
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
The Apache/Perl integration project brings together the full power of
|
||||
the Perl programming language and the Apache HTTP server.
|
||||
|
||||
With mod_perl, it is possible to write Apache modules entirely in Perl.
|
||||
The persistent interpreter embedded in the server avoids the overhead
|
||||
of starting an external interpreter and the penalty of Perl start-up
|
||||
time.
|
||||
|
||||
Note that you do not need mod_perl to run perl scripts via the common
|
||||
gateway interface (CGI). mod_perl enables you to run Perl scripts in an
|
||||
embedded interpreter if the additional performance is needed, but may
|
||||
require modifications to the scripts.
|
||||
|
||||
Usage:
|
||||
|
||||
Add mod_perl to APACHE_MODULES in /etc/sysconfig/apache2 to load it
|
||||
into Apache. To learn about the configuration, the best reference
|
||||
unequivocally is http://perl.apache.org/docs/
|
||||
|
||||
For porting 1.0 applications to 2.0, the page
|
||||
http://perl.apache.org/docs/2.0/user/porting/compat.html should give
|
||||
the required information.
|
||||
|
||||
Most mod_perl handlers use the perl-script handler. Scripts can run in
|
||||
"mod_perl mode" (preconfigured for URLs starting with /perl/) or "perl
|
||||
cgi mode" (preconfigured for URLs starting /cgi-perl). Plain CGI
|
||||
scripts can be run via /cgi-bin/. In all these cases, the script would
|
||||
be placed inside the /srv/www/cgi-bin/ directory. Refer to
|
||||
/etc/apache2/conf.d/mod_perl.conf about this configuration.
|
||||
|
||||
|
||||
|
||||
%prep
|
||||
#%setup -q -n modperl-2.0 -a 1
|
||||
%setup -q -n mod_perl-%{version}
|
||||
%patch1 -p3
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
perl Makefile.PL MP_APXS=`which %{apxs}` MP_CCOPTS="$(%{apxs} -q CFLAGS)"
|
||||
ln -s Apache-mod_perl_guide-1.29/bin bin
|
||||
make
|
||||
# XXX mod_include/SSI does not include files when they are not named .shtml
|
||||
mv t/htdocs/includes-registry/test.pl t/htdocs/includes-registry/test.shtml
|
||||
mv t/htdocs/includes-registry/cgipm.pl t/htdocs/includes-registry/cgipm.shtml
|
||||
sed 's/\.pl/.shtml/' t/htdocs/includes/test.shtml > tmpfile && mv tmpfile t/htdocs/includes/test.shtml
|
||||
%ifnarch %arm
|
||||
#
|
||||
# Run tests
|
||||
#
|
||||
# Don't use sendfile because most systems on which this package will be built don't run a
|
||||
# kernel that has it implemented, actually
|
||||
# (Files smaller than 256 bytes will be delivered via conventional read/write, so most of the tests would pass nevertheless.)
|
||||
echo -e '\n\nEnableSendfile off' >> t/conf/extra.conf.in
|
||||
#
|
||||
# fix for bad_scripts.t in 1.99_12
|
||||
# [Tue Mar 02 17:28:26 2004] [error] file permissions deny server execution/usr/src/packages/BUILD/modperl-2.0/ModPerl-Registry/t/cgi-bin/r_inherited.pl
|
||||
if test -e ModPerl-Registry/t/cgi-bin/r_inherited.pl; then chmod +x ModPerl-Registry/t/cgi-bin/r_inherited.pl; fi
|
||||
#
|
||||
# 1.99_12_20040302 fix for t/hooks/cleanup.t and t/hooks/cleanup2.t
|
||||
# [Tue Mar 02 18:38:41 2004] [error] [client 127.0.0.1] can't open /usr/src/packages/BUILD/modperl-2.0/t/htdocs/hooks/cleanup2: Permission denied at /usr/src/packages/BUILD/modperl-2.0/Apache-Test/lib/Apache/TestUtil.pm line 82.
|
||||
#
|
||||
# enable more apache modules
|
||||
# we can't simply use a2enmod, since we are not root.
|
||||
cat >> t/conf/extra.conf.in <<-EOF
|
||||
LoadModule deflate_module /usr/%_lib/apache2-prefork/mod_deflate.so
|
||||
LoadModule proxy_module /usr/%_lib/apache2-prefork/mod_proxy.so
|
||||
LoadModule proxy_http_module /usr/%_lib/apache2-prefork/mod_proxy_http.so
|
||||
EOF
|
||||
mkdir -p t/htdocs/hooks
|
||||
chmod 2770 t/htdocs/hooks
|
||||
#
|
||||
# run test suite:
|
||||
#
|
||||
#make TEST_VERBOSE=1 APACHE_TEST_PORT=select APACHE_TEST_STARTUP_TIMEOUT=360 test || {
|
||||
# ps aufx | grep "/usr/sbin/httpd2-prefork -d /usr/src/packages/BUILD/modperl-2.0" \
|
||||
# | grep -v grep | awk '{print $2}' | xargs -r kill
|
||||
# exit 1
|
||||
#}
|
||||
t/TEST -start-httpd -port select -startup_timeout 720
|
||||
t/TEST -run-tests || {
|
||||
t/TEST -stop-httpd
|
||||
exit 1
|
||||
}
|
||||
t/TEST -stop-httpd
|
||||
# in case of failures, see http://perl.apache.org/docs/2.0/user/help/help.html#_C_make_test___Failures
|
||||
# then, debug like this:
|
||||
# t/TEST -start-httpd
|
||||
# tail -F t/logs/*&
|
||||
# t/TEST -run-tests -verbose $failed_test
|
||||
# t/TEST -stop-httpd
|
||||
%endif
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
make DESTDIR=$RPM_BUILD_ROOT install_vendor
|
||||
mkdir -p $RPM_BUILD_ROOT/%{apache_libexecdir}
|
||||
cp -p src/modules/perl/mod_perl.so $RPM_BUILD_ROOT/%{apache_libexecdir}
|
||||
mkdir -p $RPM_BUILD_ROOT/%{apache_includedir}/modules/perl
|
||||
cp src/modules/perl/*.h $RPM_BUILD_ROOT/%{apache_includedir}/modules/perl/
|
||||
%perl_process_packlist
|
||||
mkdir -p $RPM_BUILD_ROOT/%{apache_sysconfdir}/conf.d
|
||||
cat > $RPM_BUILD_ROOT/%{apache_sysconfdir}/mod_perl-startup.pl <<-EOF
|
||||
# Taken from http://perl.apache.org/docs/2.0/user/handlers/server.html#Startup_File
|
||||
|
||||
if ( ! \$ENV{MOD_PERL}) { die "GATEWAY_INTERFACE not Perl!"; }
|
||||
|
||||
use lib qw(/srv/www/perl-lib);
|
||||
|
||||
# enable if the mod_perl 1.0 compatibility is needed
|
||||
# use Apache2::compat ();
|
||||
|
||||
# preload all mp2 modules
|
||||
# use ModPerl::MethodLookup;
|
||||
# ModPerl::MethodLookup::preload_all_modules();
|
||||
|
||||
use ModPerl::Util (); #for CORE::GLOBAL::exit
|
||||
|
||||
use Apache2::RequestRec ();
|
||||
use Apache2::RequestIO ();
|
||||
use Apache2::RequestUtil ();
|
||||
|
||||
use Apache2::ServerRec ();
|
||||
use Apache2::ServerUtil ();
|
||||
use Apache2::Connection ();
|
||||
use Apache2::Log ();
|
||||
|
||||
use APR::Table ();
|
||||
|
||||
use ModPerl::Registry ();
|
||||
|
||||
use Apache2::Const -compile => ':common';
|
||||
use APR::Const -compile => ':common';
|
||||
|
||||
1;
|
||||
EOF
|
||||
mkdir -p $RPM_BUILD_ROOT/%{apache_serverroot}/perl-lib
|
||||
cat > $RPM_BUILD_ROOT/%{apache_sysconfdir}/conf.d/mod_perl.conf <<EOF
|
||||
<Directory "%{apache_serverroot}/perl-lib">
|
||||
AllowOverride None
|
||||
Options None
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
</Directory>
|
||||
|
||||
<IfModule mod_perl.c>
|
||||
PerlRequire "/etc/apache2/mod_perl-startup.pl"
|
||||
|
||||
ScriptAlias /perl/ "%{apache_serverroot}/cgi-bin/"
|
||||
<Location /perl/>
|
||||
# mod_perl mode
|
||||
SetHandler perl-script
|
||||
PerlResponseHandler ModPerl::Registry
|
||||
PerlOptions +ParseHeaders
|
||||
Options +ExecCGI
|
||||
</Location>
|
||||
|
||||
ScriptAlias /cgi-perl/ "%{apache_serverroot}/cgi-bin/"
|
||||
<Location /cgi-perl>
|
||||
# perl cgi mode
|
||||
SetHandler perl-script
|
||||
PerlResponseHandler ModPerl::PerlRun
|
||||
PerlOptions +ParseHeaders
|
||||
Options +ExecCGI
|
||||
</Location>
|
||||
|
||||
# The /cgi-bin/ ScriptAlias is already set up in httpd.conf
|
||||
|
||||
</IfModule>
|
||||
|
||||
# vim: ft=apache
|
||||
EOF
|
||||
|
||||
# install documentation files alongside perl modules, where applicable
|
||||
cp -av docs/api/*.pod $RPM_BUILD_ROOT/%{perl_vendorarch}/
|
||||
cp -av docs/api/APR/*.pod $RPM_BUILD_ROOT/%{perl_vendorarch}/APR/
|
||||
cp -av docs/api/Apache2/*.pod $RPM_BUILD_ROOT/%{perl_vendorarch}/Apache2/
|
||||
cp -av docs/api/ModPerl/*.pod $RPM_BUILD_ROOT/%{perl_vendorarch}/ModPerl/
|
||||
|
||||
# remove unwanted files
|
||||
find $RPM_BUILD_ROOT/%{perl_sitearch} -name .packlist | xargs --no-run-if-empty rm -v
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc Changes INSTALL LICENSE README RELEASE STATUS
|
||||
%doc docs
|
||||
%dir %{apache_libexecdir}
|
||||
%{apache_libexecdir}/mod_perl.so
|
||||
/var/adm/perl-modules/%{name}
|
||||
%dir %{apache_includedir}
|
||||
%dir %{apache_includedir}/modules
|
||||
%{apache_includedir}/modules/perl
|
||||
%config(noreplace) %{apache_sysconfdir}/mod_perl-startup.pl
|
||||
%config(noreplace) %{apache_sysconfdir}/conf.d/mod_perl.conf
|
||||
%dir %{apache_serverroot}/perl-lib
|
||||
%{_mandir}/man3/*
|
||||
%{perl_vendorarch}/Apache
|
||||
%{perl_vendorarch}/Apache2
|
||||
%{perl_vendorarch}/APR
|
||||
%{perl_vendorarch}/APR.pm
|
||||
%{perl_vendorarch}/Bundle
|
||||
%{perl_vendorarch}/ModPerl
|
||||
#%dir %{perl_sitearch}/auto
|
||||
%{perl_vendorarch}/auto/*
|
||||
%{perl_vendorarch}/mod_perl2.pm
|
||||
%{perl_vendorarch}/*.pod
|
||||
/usr/bin/mp2bug
|
||||
|
||||
%clean
|
||||
if ! test -f /.buildenv; then
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
fi
|
||||
|
||||
%changelog -n apache2-mod_perl
|
||||
* Wed Aug 09 2006 - poeml@suse.de
|
||||
- build fix for sles9: add openldap2-devel to BuildRequires
|
||||
* Fri Jul 14 2006 - olh@suse.de
|
||||
- rename gzip archive from .bz2 to .gz
|
||||
* Tue Jul 04 2006 - poeml@suse.de
|
||||
- add mod_perl-r411028-t_api_status.patch and
|
||||
mod_perl-t_content_length-r412063.patch, which both fix test
|
||||
cases to work with httpd trunk
|
||||
- remove SOL_IPV6-test.c and mod_perl-1.99_09-ipv6.dif, which have
|
||||
not been needed for long enough now
|
||||
- enable more apache modules in testing (deflate, proxy,
|
||||
proxy_http)
|
||||
* Mon Jan 30 2006 - poeml@suse.de
|
||||
- removed libapr-util1-devel from BuildRequires (apache2-devel does
|
||||
require it)
|
||||
* Wed Jan 25 2006 - mls@suse.de
|
||||
- converted neededforbuild to BuildRequires
|
||||
* Wed Dec 21 2005 - varkoly@suse.de
|
||||
- Update to 2.0.2
|
||||
* Mon Dec 12 2005 - poeml@suse.de
|
||||
- fix quoting of dollar sign in here document which creates the
|
||||
startup file [#136882]
|
||||
* Tue Nov 15 2005 - uli@suse.de
|
||||
- disabled tests on ARM, don't make much sense with current QEMU
|
||||
* Fri Aug 12 2005 - poeml@suse.de
|
||||
- install documentation [#95243]
|
||||
* Tue Aug 02 2005 - pth@suse.de
|
||||
- mod_perl2 needs a different startup file (#99275)
|
||||
* Wed Jul 27 2005 - pth@suse.de
|
||||
- Update to 2.0.1
|
||||
* Tue Jan 25 2005 - poeml@suse.de
|
||||
- update 2.0.0 to release candidate 4
|
||||
- move usage hints from %%post into package description
|
||||
- remove obsolete stuff from %%clean
|
||||
* Mon Dec 20 2004 - poeml@suse.de
|
||||
- update to 2.0.0, release candidate 1
|
||||
- comment out mod_perl-1.99_09-ipv6.dif, it shouldn't be needed
|
||||
anymore for the build farm
|
||||
- the call to /usr/share/apache2/get_module_list is not needed
|
||||
- fix startup file for recent changes
|
||||
* Mon Oct 11 2004 - poeml@suse.de
|
||||
- update to 1.99_15_20040907
|
||||
- put Apache-Test in separate tarball
|
||||
* Tue Mar 02 2004 - poeml@suse.de
|
||||
- update to CVS snapshot 1.99_12_20040302
|
||||
- two tests need small tweaks for file permissions
|
||||
- mod_perl-1.99_09-perlmm.dif is obsolete
|
||||
- remove file ROADMAP from filelist
|
||||
* Thu Feb 19 2004 - ro@suse.de
|
||||
- added check-build.sh (build on 2.6 hosts only)
|
||||
* Wed Jan 28 2004 - ro@suse.de
|
||||
- build as normal user
|
||||
* Tue Nov 18 2003 - poeml@suse.de
|
||||
- add some comments about the SOL_IPV6-test.c test program [#31246]
|
||||
* Mon Sep 22 2003 - mls@suse.de
|
||||
- fix build for official perl-5.8.1 (missing MM initialization)
|
||||
* Thu Aug 28 2003 - poeml@suse.de
|
||||
- last added patch is not needed
|
||||
- clean up some old cruft from the spec file
|
||||
- use only IPv4 sockets for testing, if SOL_IPV6 socket option is
|
||||
not available. With this the package builds on all machines.
|
||||
* Thu Aug 21 2003 - mjancar@suse.cz
|
||||
- honor user supplied OPTIMIZE like original MakeMaker does
|
||||
- use $RPM_OPT_FLAGS
|
||||
* Wed Aug 20 2003 - mjancar@suse.cz
|
||||
- require the perl version we build with
|
||||
* Thu Aug 07 2003 - poeml@suse.de
|
||||
- update to snapshot 1.99_09_20030803
|
||||
- enable t/apr-ext/uuid.t (problem was that apr-config wasn't found)
|
||||
- add db-devel to neededforbuild, so APR.so can be linked with
|
||||
`apu-config --ldflags --libs`
|
||||
* Wed Aug 06 2003 - poeml@suse.de
|
||||
- fix last change: config-dist.sh did never exit with "ok"
|
||||
* Wed Aug 06 2003 - ro@suse.de
|
||||
- use different string in config-dist.sh (one we check for ...)
|
||||
* Mon Aug 04 2003 - poeml@suse.de
|
||||
- config-dist.sh: build only on hosts that support listening on
|
||||
IPv6-only sockets
|
||||
- increase the timeout when waiting for the test server.
|
||||
- add extra precautions to stop test server. The start can hang if
|
||||
the random device blocks, and when no pid file has been written
|
||||
the testsuite will not kill it
|
||||
- don't make use of %%jobs, it doesn't work
|
||||
- obsolete mod_perl_2, the precursor
|
||||
- fix typo in %%post
|
||||
* Mon Aug 04 2003 - poeml@suse.de
|
||||
- update to snapshot 1.99_09_20030803
|
||||
- disable a new test that fails
|
||||
- add a diagnostic config-dist.sh
|
||||
* Mon Jul 28 2003 - poeml@suse.de
|
||||
- update to snapshot 1.99_09_20030727
|
||||
- add sudo to the buildsystem, so the tests can be run as nobody
|
||||
- don't explicitely strip binaries since RPM handles it, and may
|
||||
keep the stripped information somewhere
|
||||
- add perl-Compress-Zlib to the buildsystem (for another test)
|
||||
- CFLAGS can be taken from apxs -q CFLAGS, and they'll match. It's
|
||||
better not to miss _FILE_OFFSET_BITS=64
|
||||
- allow passing of "jobs" define from rpm for make -j
|
||||
- install with install_vendor target, and use %%{perl_vendorarch}
|
||||
macro
|
||||
* Tue Jul 01 2003 - ro@suse.de
|
||||
- use perl_process_packlist macro
|
||||
* Tue Jun 17 2003 - poeml@suse.de
|
||||
- add missing directories
|
||||
- add a hint on how to configure mod_perl
|
||||
* Tue Jun 10 2003 - poeml@suse.de
|
||||
- update to 2.0_20030610110118 snapshot (called 1.99_09_20030610)
|
||||
* Fri Feb 28 2003 - poeml@suse.de
|
||||
- make the test suite pass again, by renaming two .pl files of the
|
||||
test suite to .shtml, because mod_include didn't include files
|
||||
other than .shtml any longer
|
||||
* Wed Feb 12 2003 - poeml@suse.de
|
||||
- rename package from mod_perl_2 to apache2-mod_perl
|
||||
* Tue Feb 11 2003 - poeml@suse.de
|
||||
- call the new apache configuration script, so modules that are
|
||||
needed for the test get loaded
|
||||
* Mon Feb 10 2003 - poeml@suse.de
|
||||
- MPM specific links to mod_dav_svn.so are no longer needed
|
||||
- add apache_libexecdir to filelist
|
||||
* Tue Jan 14 2003 - poeml@suse.de
|
||||
- update to 1.99_08
|
||||
- <Perl> directive missing closing '>' bug fixed, and much else
|
||||
- drop /etc/apache2/modules/mod_perl
|
||||
- add /etc/apache2/mod_perl-startup.pl, setting up with
|
||||
/srv/www/perl-lib in @INC
|
||||
- add /etc/apache2/conf.d/mod_perl.conf, setting up scriptaliases
|
||||
/perl/, and /cgi-perl/ (for unaltered CGI scripts under mod_perl)
|
||||
- use %%defattr
|
||||
* Wed Dec 04 2002 - poeml@suse.de
|
||||
- update to 1.99_07
|
||||
- build one module, it works for all MPMs
|
||||
- use RPM_OPT_FLAGS
|
||||
* Fri Aug 30 2002 - poeml@suse.de
|
||||
- new package with mod_perl-1.99_05 for Apache 2
|
||||
Reference in New Issue
Block a user