##
## perl.spec -- OpenPKG RPM Package Specification
## Copyright (c) 2000-2007 OpenPKG Foundation e.V.
## Copyright (c) 2000-2007 Ralf S. Engelschall
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: perl
Summary: Practical Extraction and Reporting Language
URL: http://www.perl.com/
Vendor: The Perl Project
Packager: OpenPKG Foundation e.V.
Distribution: OpenPKG Community
Class: CORE
Group: Perl
License: GPL/Artistic
Version: 5.8.8
Release: 20071011
# list of sources
Source0: ftp://ftp.cpan.org/pub/CPAN/src/perl-%{version}.tar.gz
Patch0: perl.patch
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130, gcc
PreReq: OpenPKG, openpkg >= 20040130
AutoReq: no
AutoReqProv: no
%description
Perl ("Practical Reporting and Extraction Language") is a very
sophisticated and flexible (but this way also complex) programming
language. This is the original implementation of the Perl 5 interpreter
from Larry Wall and his community.
%track
prog perl = {
version = %{version}
url = ftp://ftp.cpan.org/pub/CPAN/src/
regex = perl-(5\.8\.\d+)\.tar\.gz
}
%prep
%setup -q
%patch -p0
chmod -R u+w .
%build
# configure the Perl package
%{l_shtool} subst \
-e 's;\(.*for thislib in $libswanted.*\);libswanted=`echo " $libswanted " | sed -e "s/ bind / /g" -e "s/ db / /g" -e "s/ gdbm / /g" -e "s/ iconv / /g"`\; \1;' \
-e 's;package=perl5;package=perl;' \
Configure
%{l_shtool} subst \
-e 's; */usr/local/lib;;' \
hints/freebsd.sh hints/netbsd.sh
optimize=""
case "%{l_platform -t}" in
amd64-* ) optimize="%{l_cflags}" ;;
*-aix* ) optimize="%{l_cflags}" ;;
*-* ) optimize="%{l_cflags -O}" ;;
esac
if [ ".$optimize" = . ]; then
optimize="-Uoptimize"
else
optimize="-Doptimize=$optimize"
fi
libdirs=""
for dir in %{l_prefix}/lib /lib64 /usr/lib64 /lib /usr/lib /usr/ccs/lib; do
[ -d $dir ] && libdirs="$libdirs $dir"
done
./Configure \
-d -e -s \
-Dcf_by="%{l_openpkg_release}" \
-Dcf_email="http://www.openpkg.org/" \
-Dprefix=%{l_prefix} \
-Dvendorprefix=%{l_prefix} \
-Dinstallprefix=%{l_prefix} \
-Dinstallstyle="lib/perl5" \
-Dman1dir=%{l_prefix}/man/man1 \
-Dman3dir=%{l_prefix}/man/man3 \
-Dcc="%{l_prefix}/bin/gcc" "$optimize" \
-Dlocincpth="%{l_prefix}/include" \
-Dloclibpth="%{l_prefix}/lib" \
-Dldflags="%{l_ldflags}" \
-Dlibpth="$libdirs" \
-Dglibpth="$libdirs" \
-Dscriptdir="%{l_prefix}/bin" \
-Uinstallusrbinperl \
-Ui_malloc -Ui_iconv -Ui_db
# build the Perl package
%{l_make} %{l_mflags} -f Makefile
%install
rm -rf $RPM_BUILD_ROOT
# install the Perl package via standard procedure
%{l_make} %{l_mflags} -f Makefile install DESTDIR=$RPM_BUILD_ROOT
# install Perl versions of system header files
( case "%{l_platform -t}" in
*-darwin* ) export DYLD_LIBRARY_PATH="`pwd`" ;;
esac
cd /usr/include
PERL5LIB=$RPM_BUILD_ROOT%{l_prefix}/lib/perl
export PERL5LIB
eval `$RPM_BUILD_ROOT%{l_prefix}/bin/perl -V:installarchlib`
echo *.h sys/*.h |\
xargs $RPM_BUILD_ROOT%{l_prefix}/bin/perl \
$RPM_BUILD_ROOT%{l_prefix}/bin/h2ph -h -d $RPM_BUILD_ROOT$installarchlib
) || exit $?
# post-adjustments to installation tree
rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/perl%{version}
rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man3
for name in \
libnetcfg perlaix perlamiga perlapollo \
perlbeos perlbs2000 perlcygwin perldgux perlepoc perlfreebsd perlhpux \
perlhurd perlirix perlmachten perlmacos perlmacosx perlmint perlmpeix \
perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris \
perlvmesa perlvms perlvos perlwin32; do
rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/$name.1
done
# re-adjust configuration as mentioned in Perl's INSTALL document
( case "%{l_platform -t}" in
*-darwin* ) export DYLD_LIBRARY_PATH="`pwd`" ;;
esac
$RPM_BUILD_ROOT%{l_prefix}/bin/perl -pi.orig \
-e "s:$RPM_BUILD_ROOT%{l_prefix}:%{l_prefix}:g" \
$RPM_BUILD_ROOT%{l_prefix}/lib/perl/%{version}/*/Config.pm \
`find $RPM_BUILD_ROOT%{l_prefix}/lib/perl/%{version}/ \
-type f -name ".packlist" -print`
find $RPM_BUILD_ROOT%{l_prefix}/lib/perl/ \
-name "*.orig" -print | xargs rm -f
) || exit $?
# strip binary files
strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2>/dev/null || true
# resolve file conflicts (with perl-locale)
rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/enc2xs \
$RPM_BUILD_ROOT%{l_prefix}/bin/piconv
# determine installed files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT