%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