Help building an rpm

Nate Bradley nate at acsmagnum.com
Thu Feb 19 19:30:25 UTC 2004


I hope this is the right list.
I am trying to build an rpm for mod_perl-1.29 (I'm using apache 1.3)

rpmbuild is complaining that the perl files cannot be found and that is
true because the directory cannot be cd'd to directly.

It is looking for the files in /var/tmp/mod_perl-root/usr/lib/perl?/...

but when I cd to '/var/tmp/mod_perl-root/usr/lib/perl? the directory
doesn't exist.
if I cd to '/var/tmp/mod_perl-root/usr/lib' there is a 'debug' directory
instead of 'perl?'.

only when I cd to '/var/tmp/mod_perl-root'
then cd to 'usr/lib' does the perl (and everything else) directory
appear.

What is this behavior??  I'm including the .spec file modified from
mod_perl-1.26-5.

%define defperlver 5.8.1
%define perlver %(rpm -q perl --queryformat '%%{version}' 2> /dev/null
|| echo %{defperlver})
%define perlmajor %(echo %{perlver} | cut -f1 -d.)
%define contentdir /var/www

Summary: An embedded Perl interpreter for the Apache Web server.
Name: mod_perl
Version: 1.29
Release: 1
Group: System Environment/Daemons
Source0: http://perl.apache.org/dist/mod_perl-1.29.tar.gz
License: GPL
URL: http://perl.apache.org/
BuildRoot: %{_tmppath}/%{name}-root
Requires: webserver, perl = %{perlver}
BuildPrereq: apache-devel, perl
Prereq: perl

%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.

%prep
%setup -q -n mod_perl-%{version}

%build
# Compile the module.
perl Makefile.PL \
    USE_APXS=1 WITH_APXS=%{_sbindir}/apxs PERL_USELARGEFILES=0 \
    EVERYTHING=1 CCFLAGS="$RPM_OPT_FLAGS -fPIC -DEAPI"
make

# Run the test suite.
make test

%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
make pure_install INSTALLDIRS=vendor PREFIX=$RPM_BUILD_ROOT%{_prefix}

# Install the module itself.
mkdir -p $RPM_BUILD_ROOT/etc/httpd/modules
install -c -m 755 apaci/libperl.so $RPM_BUILD_ROOT/etc/httpd/modules/

# Install its manual.
mkdir -p $RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl
install -c -m 644 htdocs/manual/mod/mod_perl.html \
       $RPM_BUILD_ROOT%{contentdir}/html/manual/mod

make -C faq
rm faq/pod2htm*
install -m644 faq/*.html
$RPM_BUILD_ROOT%{contentdir}/html/manual/mod/mod_perl/

# Remove the temporary files.
#find $RPM_BUILD_ROOT%{_libdir}/perl?/vendor_perl/*/*/auto -name "*.bs"
| xargs rm
#rm  
$RPM_BUILD_ROOT%{_libdir}/perl?/vendor_perl/*/*/auto/%{name}/.packlist

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

%files
%defattr(-,root,root)
%doc CREDITS Changes README SUPPORT cgi_to_mod_perl.pod mod_perl.pod
%doc mod_perl_method_handlers.pod mod_perl_traps.pod mod_perl_tuning.pod
%doc INSTALL faq/*.html eg faq
%doc apache-modlist.html
%{contentdir}/html/manual/mod/*
#%{_libdir}/apache/libperl.so
/etc/httpd/modules/libperl.so
%{_libdir}/perl?/vendor_perl/*/*/auto/*
%{_libdir}/perl?/vendor_perl/*/*/Apache*
%{_libdir}/perl?/vendor_perl/*/*/Bundle/*
%{_libdir}/perl?/vendor_perl/*/*/cgi*
%{_libdir}/perl?/vendor_perl/*/*/mod_perl*
%{_mandir}/man3/*.3*






More information about the fedora-devel-list mailing list