File: make_rpm_spec

package info (click to toggle)
libapache2-mod-perl2 2.0.13-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,016 kB
  • sloc: perl: 97,771; ansic: 14,493; makefile: 51; sh: 18
file content (146 lines) | stat: -rw-r--r-- 4,038 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!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 <dev@perl.apache.org>
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 \
	PREFIX=$RPM_BUILD_ROOT/usr \
	INSTALLDIRS=vendor \
	MP_APXS=%{_sbindir}/apxs
make %{?_smp_mflags} OPTIMIZE="$RPM_OPT_FLAGS"

%install
rm -rf $RPM_BUILD_ROOT
install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/httpd/modules
make install \
    MODPERL_AP_LIBEXECDIR=$RPM_BUILD_ROOT%{_libdir}/httpd/modules \
    MODPERL_AP_INCLUDEDIR=$RPM_BUILD_ROOT%{_includedir}/httpd

# Remove the temporary files.
find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -name perllocal.pod -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type f -name '*.bs' -a -size 0 -exec rm -f {} ';'
find $RPM_BUILD_ROOT -type d -depth -exec rmdir {} 2>/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;
}