#!perl use strict; require "./lib/mod_perl2.pm"; my $dev_build = is_dev_build(); my $release = $dev_build ? svn_release() : 1; my $version = $mod_perl2::VERSION_TRIPLET; my $path = $dev_build ? "mod_perl-$version-$dev_build" : "mod_perl-$version"; my $tarname = "$path.tar.gz"; my $httpd_ver = min_httpd_ver(); open(my $spec, ">mod_perl.spec") || die "Can't open mod_perl.spec $!"; print $spec <<"EOF"; %define _version $mod_perl2::VERSION_TRIPLET %define _release $release %define _source https://apache.org/dist/perl/$tarname %define _dirname $path %define _httpd_min_ver $httpd_ver %define _perl_min_ver 5.6.1 EOF print $spec <<'EOF'; Name: mod_perl Version: %{_version} Release: %{_release} Summary: An embedded Perl interpreter for the Apache Web server Group: System Environment/Daemons License: Apache License, Version 2.0 Packager: mod_perl Development Team URL: https://perl.apache.org/ Source: %{_source} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: httpd >= %{_httpd_min_ver} BuildRequires: perl >= %{_perl_min_ver} BuildRequires: httpd-devel >= %{_httpd_min_ver} BuildRequires: apr-devel, apr-util-devel %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 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. Install mod_perl if you're installing the Apache web server and you'd like for it to directly incorporate a Perl interpreter. %package devel Summary: Files needed for building XS modules that use mod_perl Group: Development/Libraries Requires: mod_perl = %{version}-%{release}, httpd-devel %description devel The mod_perl-devel package contains the files needed for building XS modules that use mod_perl. %prep %setup -q -n %{_dirname} %build CFLAGS="$RPM_OPT_FLAGS" %{__perl} Makefile.PL /dev/null ';' %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc Changes LICENSE README* STATUS SVN-MOVE docs/ %{_bindir}/* %{_libdir}/httpd/modules/mod_perl.so %{perl_vendorarch}/auto/* %{perl_vendorarch}/Apache/ %{perl_vendorarch}/Apache2/ %{perl_vendorarch}/Bundle/ %{perl_vendorarch}/APR/ %{perl_vendorarch}/ModPerl/ %{perl_vendorarch}/*.pm %{_mandir}/man?/* %files devel %defattr(-,root,root,-) %{_includedir}/httpd/* %changelog EOF sub min_httpd_ver { my $min_httpd_ver; open my $mk, 'Makefile.PL'; while (<$mk>) { if (/MIN_HTTPD_VERSION_DYNAMIC\s*=>\s*'(.*)'/) { $min_httpd_ver = $1; last; } } close $mk; $min_httpd_ver; } sub svn_release { open my $svn, "<.svn/entries"; my $revision; while (<$svn>) { if (/revision="(\d+)"/) { $revision = $1; last; } } close $svn; $revision; } sub is_dev_build { my $dev; open my $fh, 'Changes'; while (<$fh>) { if (/^=item.*-(dev|rc\d+)/) { $dev = $1; last; } last if /^=item/; } close $fh; $dev; }