Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > main-src > by-pkgid > 524b35467e8bf1124b69b059a362325a > files > 4

apache-mod_perl-1.3.23_1.26-5mdk.src.rpm

%define mm_major 1
%define mm_minor 1.3
%define mm_version %{mm_major}.%{mm_minor}
%define apache_version 1.3.23
%define apache_release 4mdk
%define mod_perl_version 1.26
%define embperl_version 1.3.4
%define release 5mdk

%define sysconfdir /etc
%define apachecontent /var/www/html
%define apachebase %{sysconfdir}/httpd
%define apacheroot /var/www
%define oldapacheroot /home/httpd
%define apachelogs /var/log

%define archlibexp %(eval `perl '-V:archlibexp'`; echo $archlibexp) 
%define perl_sitearch %(eval `perl '-V:installsitearch'`; echo $installsitearch) 
%define perl_archlib %(eval `perl '-V:installarchlib'`; echo $installarchlib) 
%define perl_man3dir %(eval `perl '-V:installman3dir'`; echo $installman3dir) 

#we use this so apache and apache-mod_perl can use the same modules
%define apflags %(echo "`%{_sbindir}/apxs -q CFLAGS 2>/dev/null`")

Summary: Apache Web server with a built-in Perl interpreter
Name: apache-mod_perl
URL: http://perl.apache.org
Version: %{apache_version}_%{mod_perl_version}
Release: %{release}
Group: System/Servers
License: Apache License
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
Provides: webserver mod_perl 
Provides: apache = %{apache_version}
Provides: mod_perl = %{mod_perl_version}
Obsoletes: mod_perl
Requires: perl = 5.601
Prereq: apache-conf = %{apache_version}
Prereq: apache-common = %{apache_version} 
Prereq: apache-modules = %{apache_version}
Prereq: mm = %{mm_major}.%{mm_minor}
Prereq: mod_perl-common = %{apache_version}_%{mod_perl_version}

BuildRequires: apache-source = %{apache_version}
BuildRequires: apache-devel = %{apache_version}
BuildRequires: apache-common = %{apache_version}
BuildRequires: mm-devel = %{mm_major}.%{mm_minor}, perl >= 5.600-28mdk
BuildRequires: perl-libwww-perl, perl-HTML-Parser, perl-URI
BuildRequires: perl-MIME-Base64, perl-libnet, perl-Digest-MD5
BuildRequires: perl-CGI
BuildRequires: perl-Apache-Session
BuildRequires: perl-devel, libgdbm2-devel, libdb3.3-devel, db1-devel
BuildRequires: glibc-devel
BuildConflicts: BerkeleyDB-devel

Source: mod_perl-%{mod_perl_version}.tar.bz2  
Source6: mod_include_xssi.c
Source16: proxied_handlers.pl
Source22: mod_include_xssi.html
Source60: mod_perl.html

Source70: ftp://ftp.dev.ecos.de/pub/perl/embperl/HTML-Embperl-%{embperl_version}.tar.bz2
Source71: embperl-apache.diff
Source72: HTML-Embperl.html

Source80: mod-perl-URI.patch

Patch: apache-mod_perl-1.3.23_1.26-ndbm.patch.bz2

%description 
Apache is a powerful, full-featured, efficient and freely-available
Web server. 

mod_perl incorporates a Perl interpreter into the Apache web
server, so that the Apache web server can directly execute Perl
code.  Mod_perl links the Perl runtime library into the Apache
web server and provides an object-oriented Perl interface for
Apache's C language API.  The end result is a quicker CGI script
turnaround process, since no external Perl interpreter has to
be started.

This package contains Apache with mod_perl linked statically. It also
contains a statically linked HTML::Embperl module, but you need the separate
HTML-Embperl package to activate it.

%package -n mod_perl-devel
Summary: Apache-Mod_Perl Development Files
URL: http://perl.apache.org
Version: %{apache_version}_%{mod_perl_version}
Group: System/Servers
#Icon: mod_perl.gif
Prereq: apache-conf = %{apache_version}
Prereq: apache-common = %{apache_version}
Prereq: apache-mod_perl = %{apache_version}_%{mod_perl_version}
Prereq: perl-devel
Prereq: mm = %{mm_major}.%{mm_minor}
Prereq: mod_perl-common = %{apache_version}_%{mod_perl_version}
Provides: apache-mod_perl-devel
Obsoletes: apache-mod_perl-devel
Requires: perl = 5.601

%description -n mod_perl-devel
The apache-mod_perl include files for developing mod_perl modules

%package -n HTML-Embperl
Summary: HTML::Embperl module
URL: http://perl.apache.org/embperl/
Version: %{apache_version}_%{embperl_version}
Group: System/Servers
Requires: perl = 5.601
Prereq: apache-mod_perl = %{apache_version}_%{mod_perl_version}
Prereq: mod_perl-common = %{apache_version}_%{mod_perl_version}
Prereq: apache-modules = %{apache_version}
Prereq: apache-conf = %{apache_version}
Prereq: apache-common = %{apache_version}
Prereq: mm = %{mm_major}.%{mm_minor}

%description -n HTML-Embperl
Embeded perl allows perl to be embeded with HTML pages that are served out
to clients.

This module contains support for apache-mod_perl, support for standalone
mode, or cgi under any webserver.

%package -n mod_perl-common
Summary: The mod_perl and apache-mod_perl common files
URL: http://perl.apache.org
Version: %{apache_version}_%{mod_perl_version}
Group: System/Servers
Prereq: apache-conf = %{apache_version}
Prereq: apache-common = %{apache_version}
Prereq: apache-modules = %{apache_version}
Prereq: mm = %{mm_major}.%{mm_minor}
Requires: perl = 5.601

%description -n mod_perl-common
The mod_perl and apache-mod_perl common files

%prep

# unpack HTML-Embperl
%setup -q -n HTML-Embperl-%{embperl_version} -T -b 70

#unpack mod_perl
%setup -q -n mod_perl-%{mod_perl_version} 

rm -rf $RPM_BUILD_DIR/apache-mod_perl_%{apache_version}
cp -dpR /usr/src/apache_%{apache_version} \
	$RPM_BUILD_DIR/apache-mod_perl_%{apache_version}

%build
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT 

#JMD: do not use the serverbuild macro here, we pick the flags from apxs.

echo "### define configure flags"
APVARS=`cat $RPM_BUILD_DIR/apache-mod_perl_%{apache_version}/APVARS`

echo "### configure and pre-compile mod_perl and apache for embperl"
cd $RPM_BUILD_DIR/mod_perl-%{mod_perl_version}
perl -pi -e "s|PRODUCT|BASEPRODUCT|;" Makefile.PL
perl Makefile.PL \
     APACHE_SRC=../apache-mod_perl_%{apache_version}/src \
     DO_HTTPD=1 \
     USE_APACI=1 \
     EVERYTHING=1 \
     APACI_ARGS="$APVARS --enable-rule=EAPI --disable-rule=expat --disable-shared=perl"

# echo
#    APACHE_SRC=../apache-mod_perl_%{apache_version}/src \
#    DO_HTTPD=1
#	 USE_APXS=1 \
#	 WITH_APXS=/usr/sbin/apxs \

#     APACI_ARGS="$APVARS --enable-rule=EAPI --disable-rule=expat --disable-shared=include --disable-shared=perl"

#JMD: *Very Important!*
#get the optflags from apxs, so we're 100% module-compatible with apache
perl -pi -ple 's|OPTIM=|OPTIM=%{apflags}|; \
     s|EXTRA_LIBS=|EXTRA_LIBS=-ldb-3.3 -lgdbm -lpthread -lmm|;' \
    `find ../apache-mod_perl_%{apache_version}/src -name Makefile -print`

# (cb) 02.02.04 structure DBM is not in db1/db.h, but in db1/ndbm.h
cd $RPM_BUILD_DIR/apache-mod_perl_%{apache_version}/src/modules/standard
perl -pi -ple 's|<db.h>|<ndbm.h>|;' mod_rewrite.h
cd -

#JMD: why does -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 cause segfaults?!?!

make

echo "### patch Apache to enable linking mod_perl with embperl"
cd $RPM_BUILD_DIR/apache-mod_perl_%{apache_version} 
perl -pi -e \
	"s|EXTRA_INCLUDES=|EPDIR=../../../../HTML-Embperl-%{embperl_version}\nEXTRA_INCLUDES= -I\\\$\(EPDIR\) |" \
	src/modules/perl/Makefile
patch -p0 < %{SOURCE71}

echo "### build embperl"
cd $RPM_BUILD_DIR/HTML-Embperl-%{embperl_version} 
(echo y;echo y)| \
    perl -I$RPM_BUILD_DIR/mod_perl-%{mod_perl_version}/blib/lib Makefile.PL 
perl -pi -e \
    "s|{ . |{ . $RPM_BUILD_DIR/mod_perl-%{mod_perl_version}/blib/lib |;" \
    test/conf/startup.pl
make

echo "### build Apache with mod_perl+embperl linked statically, also build Perl-side"
# files
cd $RPM_BUILD_DIR/mod_perl-%{mod_perl_version} 
make
cd faq
make
cd ..
##Make the test work even if the hostname is invalid!
perl -pi -e "s/autoindex/autoindex\|unique/g;" ./apaci/load_modules.pl

patch -p1 < %{SOURCE80}

%ifnarch ia64
make test
%endif

echo "### test embperl to make sure everything was linked successfully"
cd $RPM_BUILD_DIR/HTML-Embperl-%{embperl_version} 
%ifnarch alpha ia64
make test
%endif

#-----------------------------------

%install

# install mod_perl files
cd $RPM_BUILD_DIR/mod_perl-%{mod_perl_version}
make PREFIX=$RPM_BUILD_ROOT/usr install_perl

mkdir -p $RPM_BUILD_ROOT%{_docdir}/apache-mod_perl-%{apache_version}_%{mod_perl_version}
mkdir -p $RPM_BUILD_ROOT%{apachecontent}/addon-modules
pushd $RPM_BUILD_ROOT%{apachecontent}/addon-modules
rm -f mod_perl-%{apache_version}_%{mod_perl_version}
ln -s  ../../../..%{_docdir}/mod_perl-common-%{apache_version}_%{mod_perl_version} \
	mod_perl-%{apache_version}_%{mod_perl_version}
popd

# install HTML-Embperl
cd $RPM_BUILD_DIR/HTML-Embperl-%{embperl_version} 
make install PREFIX=$RPM_BUILD_ROOT/tmp/usr
rm -f $RPM_BUILD_ROOT/tmp/%{perl_sitearch}/auto/HTML/Embperl/.packlist
rm -f $RPM_BUILD_ROOT/tmp/%{perl_sitearch}/auto/HTML/Embperl/Embperl.bs
rm -rf $RPM_BUILD_ROOT/tmp/usr
make install PREFIX=$RPM_BUILD_ROOT/usr
rm -f $RPM_BUILD_ROOT/%{perl_sitearch}/auto/HTML/Embperl/.packlist
rm -f $RPM_BUILD_ROOT/%{perl_sitearch}/auto/HTML/Embperl/Embperl.bs
rm -rf HTML-Embperl
mkdir -p $RPM_BUILD_ROOT%{apacheroot}/perl/HTML-Embperl-%{embperl_version}
pushd $RPM_BUILD_ROOT%{apacheroot}/perl/HTML-Embperl-%{embperl_version}
cp -dpR $RPM_BUILD_DIR/HTML-Embperl-%{embperl_version}/eg .
cat << EOF > .htaccess
<Files ~ (\.htm)>
SetHandler perl-script
PerlHandler HTML::Embperl
</Files>
Options +Indexes
EOF
popd


# install apache-mod_perl 
cd $RPM_BUILD_DIR/apache-mod_perl_%{apache_version}
mkdir -p $RPM_BUILD_ROOT%{_sbindir}
install -m755 src/httpd $RPM_BUILD_ROOT%{_sbindir}/httpd-perl
install -d -m755 $RPM_BUILD_ROOT%{_libdir}/perl-apache/
install -m755 src/modules/*/*.so $RPM_BUILD_ROOT%{_libdir}/perl-apache/

# install Embperl documentation
install -m644 %{SOURCE72} \
        $RPM_BUILD_ROOT/%{apachecontent}/addon-modules/HTML-Embperl.html
export EMBDOC=mod_perl-%{mod_perl_version}/embdoc
mkdir -p $RPM_BUILD_DIR/$EMBDOC
install -m 644 $RPM_BUILD_DIR/HTML-Embperl-%{embperl_version}/{README,TODO} \
	$RPM_BUILD_DIR/$EMBDOC
install -m 644 $RPM_BUILD_DIR/HTML-Embperl-%{embperl_version}/*.pod \
	$RPM_BUILD_DIR/$EMBDOC

# install mod_perl files
cd $RPM_BUILD_DIR/mod_perl-%{mod_perl_version}
make pure_install PREFIX=$RPM_BUILD_ROOT/usr
rm -f $RPM_BUILD_ROOT%{archlibexp}/auto/Apache/Symbol/Symbol.bs
rm -f $RPM_BUILD_ROOT%{archlibexp}/auto/Apache/Leak/Leak.bs

#install mod_perl documentation
export PERLDOC=mod_perl-%{mod_perl_version}/perldocs
mkdir -p $RPM_BUILD_DIR/$PERLDOC
install -m 644 htdocs/manual/mod/mod_perl.html \
	$RPM_BUILD_DIR/$PERLDOC
perl -pi -e "s|../../../|/manual/images/|g;" \
	$RPM_BUILD_DIR/$PERLDOC/mod_perl.html
install -m 644 %{SOURCE60} \
	$RPM_BUILD_DIR/$PERLDOC
install -m 644 README \
	$RPM_BUILD_DIR/$PERLDOC/README.txt
install -m 644 SUPPORT Changes ToDo \
	$RPM_BUILD_DIR/$PERLDOC
install -m 644 faq/*.html faq/*.txt \
	$RPM_BUILD_DIR/$PERLDOC
install -m 644 apache-modlist.html mod_perl.gif eg/perl_sections.txt \
	$RPM_BUILD_DIR/$PERLDOC
install -m 644 eg/{httpd.conf,startup}.pl \
	$RPM_BUILD_DIR/$PERLDOC

mkdir -p $RPM_BUILD_ROOT/%{apachebase}/conf/addon-modules
install -m 644 %{SOURCE16} \
	$RPM_BUILD_ROOT/%{apachebase}/conf/addon-modules/proxied_handlers.pl
install -d -m755 $RPM_BUILD_ROOT/%{apacheroot}/perl
install -m 755 eg/{registry,test}.pl $RPM_BUILD_ROOT/%{apacheroot}/perl
perl -p -i -e "s,user/local,usr," $RPM_BUILD_ROOT/%{apacheroot}/perl/test.pl

perl -pi -e "s,^/usr.*\n,,;" \
         -e "s,^$RPM_BUILD_ROOT,,;" \
    $RPM_BUILD_ROOT/%{perl_sitearch}/auto/mod_perl/.packlist

ln -sf ../..%{_libdir}/perl-apache $RPM_BUILD_ROOT%{apachebase}/perl-modules

cp %{_includedir}/apache/README.ADVX \
	$RPM_BUILD_DIR/mod_perl-%{mod_perl_version}/

%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%files 
%defattr(-,root,root)
%config(noreplace) %{apachebase}/conf/addon-modules/proxied_handlers.pl
%{_sbindir}/httpd-perl
%doc README.ADVX

#files modules
#%{_libdir}/perl-apache/*
#%{apachebase}/perl-modules

%files -n mod_perl-common
%defattr(-,root,root)
%{archlibexp}/Apache.pm
%dir %{archlibexp}/Apache
%{archlibexp}/Apache/*
%{archlibexp}/auto/Apache/Leak/*
%{archlibexp}/auto/Apache/Symbol/*
%{archlibexp}/auto/Apache/mod_perl.exp
%{archlibexp}/auto/Apache/typemap
%{archlibexp}/cgi_to_mod_perl.pod
%{archlibexp}/mod_perl*
%{perl_man3dir}/Apache*
%{perl_man3dir}/Bundle::Apache*
%{perl_man3dir}/cgi_to_mod_perl*
%{perl_man3dir}/mod_perl*
%attr (-,apache,apache) %{apacheroot}/perl/*.pl
%attr (-,apache,apache) %{apachecontent}/addon-modules/mod_perl-*
%doc perldocs/*
%doc README.ADVX

%files -n mod_perl-devel
%defattr(-,root,root)
%{archlibexp}/auto/Apache/include/*
%doc README.ADVX

%files -n HTML-Embperl 
%defattr(-,root,root)
%attr(-,apache,apache) %{apachecontent}/addon-modules/HTML-Embperl.html
%attr(-,apache,apache) %{apacheroot}/perl/HTML-Embperl-%{embperl_version}
%doc embdoc/*
%{perl_sitearch}/HTML/*
%{perl_sitearch}/auto/HTML/*
%{perl_man3dir}/HTML*
%doc README.ADVX


%post

#JMD: fix httpd-perl.conf since the package changed radically. We now use 
#the same modules for apache and apache-mod_perl
if [ $1 -gt 1 ]; then
    perl -pi -e "s|perl-modules|modules|g;" %{apachebase}/conf/httpd-perl.conf
fi

#JMD: do *not* use _post_service here, it is used in apache-conf, since we
#can have both apache and apache-mod_perl
if [ -e %{_sbindir}/AESctl ]; then %{_sbindir}/AESctl update;fi

%postun
#JMD: do *not* use _post_service here, otherwise it will uninstall
#apache as well!!
if [ $1 = "0" ]; then
	/usr/bin/killall httpd-perl
	if [ -e %{_sbindir}/AESctl ]; then %{_sbindir}/AESctl update;fi
fi


%changelog
* Mon Mar 02 2002 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.3.23_1.26-5mdk
- Disable expat to prevent segfault with axkit
- Put back make test
- Fix broken link in doc

* Mon Feb 04 2002 Christian Belisle <cbelisle@mandrakesoft.com> 1.3.23_1.26-4mdk
- Rollback to Embperl 1.3.4.
- Rebuild against latest apache.
- Build mod_rewrite part against ndbm.h instead of db.h.
- mod_perl test still not working (it doesn't find URI perl module).

* Sun Oct 28 2001 Stefan van der Eijk <stefan@eijk.nu> 1.3.22_1.26-3mdk
- EXTRA_LIBS=-ldb-3.2 --> EXTRA_LIBS=-ldb-3.3

* Thu Oct 25 2001 Christian Belisle <cbelisle@mandrakesoft.com> 1.3.22_1.26-2mdk
- Provides the Obsoletes for compatibilty.

* Thu Oct 25 2001 Christian Belisle <cbelisle@mandrakesoft.com> 1.3.22_1.26-1mdk
- mod_perl 1.26.
- Embperl 2.0b3 (make test not working...).
- Build against new apache.
- Build against new db3.
- make rpmlint happier.

* Wed Aug 29 2001 Philippe Libat <philippe@mandrakesoft.com> 1.3.20_1.25_01-3mdk
- build against libgdbm2

* Thu Jul 12 2001 Philippe Libat <philippe@mandrakesoft.com> 1.3.20_1.25_01-2mdk
- fix HTML-Embed version

* Tue Jul 10 2001 Philippe Libat <philippe@mandrakesoft.com> 1.3.20_1.25_01-1mdk
- upgrade
- new apache version
- fix db3 lib

* Wed Jun 13 2001 Pixel <pixel@mandrakesoft.com> 1.3.19_1.25-4mdk
- rebuild for perl 5.6.1
- new HTML-Embed 1.3.3 (needed for perl 5.6.1)

* Fri Apr 13 2001 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.3.19_1.25-3mdk
- fix requires
- fix documentation links

* Mon Apr  9 2001 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.3.19_1.25-2mdk
- fix httpd-perl segfault when installing apache-conf
- BuildRequires perl-CGI now that the package has been split

* Sun Mar 25 2001 Jean-Michel Dault <jmdault@mandrakesoft.com> 1.3.19_1.25-1mdk
- Completely remade spec file
- Re-split mod_perl in its own package again
- Get Apache source from package apache-source so we share the same code
  and it's easier to maintain
- Get optflags from apxs so that apache and apache-mod_perl have the same
  flags and we can use the same modules
- Get apache-mod_perl and apache share same modules so we can have a static
  apache+mod_perl and still have mod_dav, etc...
- Put httpd-perl.conf in apache-conf package to enable better configuration
  for OEMs and ISPs