forked from pool/apache2-mod_perl
		
	OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/apache2-mod_perl?expand=0&rev=13
		
			
				
	
	
		
			292 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
			
		
		
	
	
			292 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			RPMSpec
		
	
	
	
	
	
| #
 | |
| # spec file for package apache2-mod_perl (Version 2.0.4)
 | |
| #
 | |
| # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
 | |
| #
 | |
| # All modifications and additions to the file contributed by third parties
 | |
| # remain the property of their copyright owners, unless otherwise agreed
 | |
| # upon. The license for this file, and modifications and additions to the
 | |
| # file, is the same license as for the pristine package itself (unless the
 | |
| # license for the pristine package is not an Open Source License, in which
 | |
| # case the license is the MIT License). An "Open Source License" is a
 | |
| # license that conforms to the Open Source Definition (Version 1.9)
 | |
| # published by the Open Source Initiative.
 | |
| 
 | |
| # Please submit bugfixes or comments via http://bugs.opensuse.org/
 | |
| #
 | |
| 
 | |
| # norootforbuild
 | |
| 
 | |
| Url:            http://perl.apache.org/
 | |
| 
 | |
| 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:        ASLv..
 | |
| 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.4
 | |
| Release:        48
 | |
| Source0:        mod_perl-%{version}.tar.bz2
 | |
| Patch:          %{name}-%{version}-tests.diff
 | |
| #%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
 | |
| #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:
 | |
| 
 | |
| To load the module into Apache, run the command "a2enmod perl" as root.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| 
 | |
| %package devel
 | |
| License:        ASLv..
 | |
| Summary:        Embedded Perl for Apache - Development package
 | |
| Group:          Productivity/Networking/Web/Servers
 | |
| AutoReqProv:    on
 | |
| Requires:       %{name} = %{version}
 | |
| Provides:       apache2-mod_perl:/usr/include/apache2/modules/perl/modperl_cgi.h
 | |
| 
 | |
| %description devel
 | |
| The Apache/Perl integration project brings together the full power of
 | |
| the Perl programming language and the Apache HTTP server.
 | |
| 
 | |
| This package contains the include files useful for developing new
 | |
| software depending on apache2-mod_perl.
 | |
| 
 | |
| 
 | |
| 
 | |
| %prep
 | |
| #%setup -q -n modperl-2.0 -a 1
 | |
| %setup -q -n mod_perl-%{version}
 | |
| %patch
 | |
| find -name ".svn" -type d | xargs rm -rfv
 | |
| 
 | |
| %build
 | |
| perl Makefile.PL INSTALLDIRS=vendor 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 || true
 | |
| #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
 | |
| %perl_make_install
 | |
| ### since 11.4 perl_process_packlist
 | |
| ### removes .packlist, perllocal.pod files
 | |
| %if 0%{?suse_version} > 1130
 | |
| %perl_process_packlist
 | |
| %else
 | |
| # do not perl_process_packlist
 | |
| # remove .packlist file
 | |
| find $RPM_BUILD_ROOT%perl_vendorarch/auto -name .packlist -print0 | xargs -0 -r rm ;
 | |
| # remove perllocal.pod file
 | |
| %{__rm} -f $RPM_BUILD_ROOT%perl_archlib/perllocal.pod
 | |
| %endif
 | |
| 
 | |
| #mkdir -p $RPM_BUILD_ROOT/%{apache_libexecdir}
 | |
| #cp -p src/modules/perl/mod_perl.so $RPM_BUILD_ROOT/%{apache_libexecdir}
 | |
| %{__install} -D src/modules/perl/mod_perl.so \
 | |
|  $RPM_BUILD_ROOT/%{apache_libexecdir}/mod_perl.so
 | |
| 
 | |
| #mkdir -p $RPM_BUILD_ROOT/%{apache_includedir}/modules/perl
 | |
| %{__install} -d $RPM_BUILD_ROOT/%{apache_includedir}/modules/perl
 | |
| %{__cp} src/modules/perl/*.h $RPM_BUILD_ROOT/%{apache_includedir}/modules/perl/
 | |
| 
 | |
| #mkdir -p $RPM_BUILD_ROOT/%{apache_sysconfdir}/conf.d
 | |
| %{__install} -d $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
 | |
| %{__install} -d $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/
 | |
| 
 | |
| %files
 | |
| %defattr(-,root,root)
 | |
| %doc Changes INSTALL LICENSE README RELEASE STATUS
 | |
| %doc docs
 | |
| %dir %{apache_libexecdir}
 | |
| %{apache_libexecdir}/mod_perl.so
 | |
| %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
 | |
| #%{perl_vendorarch}/MyTest
 | |
| #%dir %{perl_sitearch}/auto
 | |
| %{perl_vendorarch}/auto/*
 | |
| %{perl_vendorarch}/mod_perl2.pm
 | |
| %{perl_vendorarch}/*.pod
 | |
| /usr/bin/mp2bug
 | |
| 
 | |
| %files devel
 | |
| %defattr(-,root,root)
 | |
| %dir %{apache_includedir}
 | |
| %dir %{apache_includedir}/modules
 | |
| %{apache_includedir}/modules/perl
 | |
| 
 | |
| %clean
 | |
| if ! test -f /.buildenv; then
 | |
| 	rm -rf $RPM_BUILD_ROOT
 | |
| fi
 | |
| 
 | |
| %changelog
 |