commit:     05c688e81782d334db33e75e087fe94867ce85b9
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  4 19:34:46 2016 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Jun  4 19:36:14 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=05c688e8

dev-lang/perl: Go back from eblits to a monolithic ebuild

Package-Manager: portage-2.3.0_rc1

 dev-lang/perl/files/eblits/common-v50240002.eblit  |  71 ----
 .../files/eblits/src_configure-v50240002.eblit     | 192 ---------
 .../perl/files/eblits/src_prepare-v50240002.eblit  |  74 ----
 dev-lang/perl/perl-5.24.0-r1.ebuild                | 458 +++++++++++++++++++--
 4 files changed, 417 insertions(+), 378 deletions(-)

diff --git a/dev-lang/perl/files/eblits/common-v50240002.eblit 
b/dev-lang/perl/files/eblits/common-v50240002.eblit
deleted file mode 100644
index 94e01a2..0000000
--- a/dev-lang/perl/files/eblits/common-v50240002.eblit
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-src_remove_dual_file() {
-       local i pkg ver
-       pkg="$1"
-       ver="$2"
-       shift 2
-       case "${EBUILD_PHASE:-none}" in
-               postinst|postrm)
-                       for i in "$@" ; do
-                               alternatives_auto_makesym "${i}" "${i}-[0-9]*"
-                       done
-                       ;;
-               setup)
-                       for i in "$@" ; do
-                               if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; 
then
-                                       has_version ${pkg} && ewarn "You must 
reinstall ${pkg} !"
-                                       break
-                               fi
-                       done
-                       ;;
-               install)
-                       for i in "$@" ; do
-                               if ! [[ -f "${ED}"${i} ]] ; then
-                                       ewarn "${i} does not exist!"
-                                       continue
-                               fi
-                               mv "${ED}"${i}{,-${ver}-${P}} || die
-                       done
-                       ;;
-       esac
-}
-
-src_remove_dual_man() {
-       local i pkg ver ff
-       pkg="$1"
-       ver="$2"
-       shift 2
-       case "${EBUILD_PHASE:-none}" in
-               postinst|postrm)
-                       for i in "$@" ; do
-                               ff=`echo 
"${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
-                               ff=${ff##*${i#${i%.[0-9]}}}
-                               alternatives_auto_makesym "${i}${ff}" 
"${i%.[0-9]}-[0-9]*"
-                       done
-                       ;;
-               install)
-                       for i in "$@" ; do
-                               if ! [[ -f "${ED}"${i} ]] ; then
-                                       ewarn "${i} does not exist!"
-                                       continue
-                               fi
-                               mv "${ED}"${i} 
"${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
-                       done
-                       ;;
-       esac
-}
-
-src_remove_dual() {
-       local i pkg ver
-       pkg="$1"
-       ver="$2"
-       shift 2
-       for i in "$@" ; do
-               src_remove_dual_file  "${pkg}" "${ver}" "/usr/bin/${i}"
-               src_remove_dual_man   "${pkg}" "${ver}" 
"/usr/share/man/man1/${i}.1"
-       done
-}
-

diff --git a/dev-lang/perl/files/eblits/src_configure-v50240002.eblit 
b/dev-lang/perl/files/eblits/src_configure-v50240002.eblit
deleted file mode 100644
index 058171e..0000000
--- a/dev-lang/perl/files/eblits/src_configure-v50240002.eblit
+++ /dev/null
@@ -1,192 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-myconf() {
-       # the myconf array is declared in src_configure
-       myconf=( "${myconf[@]}" "$@" )
-}
-
-eblit-perl-src_configure() {
-       declare -a myconf
-
-       export LC_ALL="C"
-       [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
-
-       # some arches and -O do not mix :)
-       use ppc && replace-flags -O? -O1
-       # Perl has problems compiling with -Os in your flags with glibc
-       use elibc_uclibc || replace-flags "-Os" "-O2"
-       # This flag makes compiling crash in interesting ways
-       filter-flags "-malign-double"
-       # Fixes bug #97645
-       use ppc && filter-flags "-mpowerpc-gpopt"
-       # Fixes bug #143895 on gcc-4.1.1
-       filter-flags "-fsched2-use-superblocks"
-
-       use sparc && myconf -Ud_longdbl
-
-       export BUILD_BZIP2=0
-       export BZIP2_INCLUDE=${EPREFIX}/usr/include
-       export BZIP2_LIB=${EPREFIX}/usr/$(get_libdir)
-
-       export BUILD_ZLIB=False
-       export ZLIB_INCLUDE=${EPREFIX}/usr/include
-       export ZLIB_LIB=${EPREFIX}/usr/$(get_libdir)
-
-       # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
-
-       myndbm='U'
-       mygdbm='U'
-       mydb='U'
-
-       if use gdbm ; then
-               mygdbm='D'
-               myndbm='D'
-       fi
-       if use berkdb ; then
-               mydb='D'
-               has_version '=sys-libs/db-1*' && myndbm='D'
-       fi
-
-       myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
-
-       if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
-               ewarn "Perl will not be built with berkdb support, use gcc if 
you needed it..."
-               myconf -Ui_db -Ui_ndbm
-       fi
-
-       use ithreads && myconf -Dusethreads
-
-       if use debug ; then
-               append-cflags "-g"
-               myconf -DDEBUGGING
-       elif [[ ${CFLAGS} == *-g* ]] ; then
-               myconf -DDEBUGGING=-g
-       else
-               myconf -DDEBUGGING=none
-       fi
-
-       if [[ -n ${PERL_OLDVERSEN} ]] ; then
-               local inclist=$(for v in ${PERL_OLDVERSEN}; do echo -n 
"${v}/${myarch}${mythreading} ${v} "; done )
-               myconf -Dinc_version_list="${inclist}"
-       fi
-
-       [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
-
-       # Make sure we can do the final link #523730, need to set deployment
-       # target to override hardcoded 10.3 which breaks on modern OSX
-       [[ ${CHOST} == *-darwin* ]] && \
-               myconf "-Dld=env 
MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
-
-       # Prefix: the host system needs not to follow Gentoo multilib stuff, 
and in
-       # Prefix itself we don't do multilib either, so make sure perl can find
-       # something compatible.
-       if use prefix ; then
-               # Set a hook to check for each detected library whether it 
actually works.
-               export libscheck="
-                       ( echo 'main(){}' > '${T}'/conftest.c &&
-                         $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c 
-l\$thislib >/dev/null 2>/dev/null
-                       ) || xxx=/dev/null"
-
-               # Use all host paths that might contain useful stuff, the hook 
above will filter out bad choices.
-               local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 
/lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
-               myconf "-Dlibpth=${EPREFIX}/$(get_libdir) 
${EPREFIX}/usr/$(get_libdir) ${paths}"
-       elif [[ $(get_libdir) != "lib" ]] ; then
-               # We need to use " and not ', as the written config.sh use ' ...
-               myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) 
/usr/$(get_libdir)"
-       fi
-
-       # don't try building ODBM, bug #354453
-       disabled_extensions="ODBM_File"
-
-       if ! use gdbm ; then
-               # workaround for bug #157774: don't try building GDBM related 
stuff with USE="-gdbm"
-               disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
-       fi
-
-       myconf -Dnoextensions="${disabled_extensions}"
-
-       echo Configuring Perl as follows:
-       echo sh Configure \
-               -des \
-               -Duseshrplib \
-               -Darchname="${myarch}" \
-               -Dcc="$(tc-getCC)" \
-               -Doptimize="${CFLAGS}" \
-               -Dldflags="${LDFLAGS}" \
-               -Dprefix="${EPREFIX}"'/usr' \
-               -Dinstallprefix="${EPREFIX}"'/usr' \
-               -Dsiteprefix="${EPREFIX}"'/usr/local' \
-               -Dvendorprefix="${EPREFIX}"'/usr' \
-               -Dscriptdir="${EPREFIX}"'/usr/bin' \
-               -Dprivlib="${EPREFIX}${PRIV_LIB}" \
-               -Darchlib="${EPREFIX}${ARCH_LIB}" \
-               -Dsitelib="${EPREFIX}${SITE_LIB}" \
-               -Dsitearch="${EPREFIX}${SITE_ARCH}" \
-               -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
-               -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
-               -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
-               -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
-               -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
-               -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
-               -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
-               -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
-               -Dman1ext='1' \
-               -Dman3ext='3pm' \
-               -Dlibperl="${LIBPERL}" \
-               -Dlocincpth="${EPREFIX}"'/usr/include ' \
-               -Dglibpth="${EPREFIX}/$(get_libdir) 
${EPREFIX}/usr/$(get_libdir)"' ' \
-               -Duselargefiles \
-               -Dd_semctl_semun \
-               -Dcf_by='Gentoo' \
-               -Dmyhostname='localhost' \
-               -Dperladmin='root@localhost' \
-               -Dinstallusrbinperl='n' \
-               -Ud_csh \
-               -Dsh="${EPREFIX}"/bin/sh \
-               -Dtargetsh="${EPREFIX}"/bin/sh \
-               -Uusenm \
-               "${myconf[@]}"
-
-       sh Configure \
-               -des \
-               -Duseshrplib \
-               -Darchname="${myarch}" \
-               -Dcc="$(tc-getCC)" \
-               -Doptimize="${CFLAGS}" \
-               -Dldflags="${LDFLAGS}" \
-               -Dprefix="${EPREFIX}"'/usr' \
-               -Dinstallprefix="${EPREFIX}"'/usr' \
-               -Dsiteprefix="${EPREFIX}"'/usr/local' \
-               -Dvendorprefix="${EPREFIX}"'/usr' \
-               -Dscriptdir="${EPREFIX}"'/usr/bin' \
-               -Dprivlib="${EPREFIX}${PRIV_LIB}" \
-               -Darchlib="${EPREFIX}${ARCH_LIB}" \
-               -Dsitelib="${EPREFIX}${SITE_LIB}" \
-               -Dsitearch="${EPREFIX}${SITE_ARCH}" \
-               -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
-               -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
-               -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
-               -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
-               -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
-               -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
-               -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
-               -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
-               -Dman1ext='1' \
-               -Dman3ext='3pm' \
-               -Dlibperl="${LIBPERL}" \
-               -Dlocincpth="${EPREFIX}"'/usr/include ' \
-               -Dglibpth="${EPREFIX}/$(get_libdir) 
${EPREFIX}/usr/$(get_libdir)"' ' \
-               -Duselargefiles \
-               -Dd_semctl_semun \
-               -Dcf_by='Gentoo' \
-               -Dmyhostname='localhost' \
-               -Dperladmin='root@localhost' \
-               -Dinstallusrbinperl='n' \
-               -Ud_csh \
-               -Dsh="${EPREFIX}"/bin/sh \
-               -Dtargetsh="${EPREFIX}"/bin/sh \
-               -Uusenm \
-               "${myconf[@]}" || die "Unable to configure"
-}

diff --git a/dev-lang/perl/files/eblits/src_prepare-v50240002.eblit 
b/dev-lang/perl/files/eblits/src_prepare-v50240002.eblit
deleted file mode 100644
index b30b1a5..0000000
--- a/dev-lang/perl/files/eblits/src_prepare-v50240002.eblit
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-src_prepare_update_patchlevel_h() {
-       # Copied and modified from debian:
-       # Copyright 2011 Niko Tyni
-       # This program is free software; you can redistribute it and/or modify
-       # it under the same terms as Perl itself.
-       local patchdir="${WORKDIR}/patches"
-       local prefix
-       local patchoutput="patchlevel-gentoo.h"
-
-       [[ -f ${patchdir}/series ]] || return 0
-
-while read patch
-do
-       patchname=$(echo $patch | sed 's/\.diff$//')
-       < $patchdir/$patch sed -e '/^Subject:/ { N; s/\n / / }' | sed -n -e '
-
-       # massage the patch headers
-       s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
-       s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; 
tprepend;
-       s|^Bug-Gentoo: ||; tprepend;
-       s/^\(Subject\|Description\): //; tappend;
-       s|^Origin: 
.*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; 
tprepend;
-
-       # post-process at the end of input
-       $ { x;
-               # include the version number in the patchlevel.h description 
(if available)
-               s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;
-
-               # escape any backslashes and double quotes
-               s|\\|\\\\|g; s|"|\\"|g;
-
-               # add a prefix
-               s|^|\t,"'"$prefix$patchname"' - |;
-               # newlines away
-               s/\n/ /g; s/  */ /g;
-               # add a suffix
-               s/ *$/"/; p
-       };
-       # stop all processing
-       d;
-       # label: append to the hold space
-       :append H; d;
-       # label: prepend to the hold space
-       :prepend x; H; d;
-       '
-done < "${WORKDIR}"/patches/series > "${S}/${patchoutput}"
-echo "${patchoutput}" >> "${S}/MANIFEST"
-}
-
-eblit-perl-src_prepare() {
-       local patch
-       EPATCH_OPTS+=" -p1"
-       einfo "Applying patches from ${MY_P}-${PATCH_VER} ..."
-       while read patch ; do
-               EPATCH_SINGLE_MSG="  ${patch} ..."
-               epatch "${WORKDIR}"/patches/${patch}
-       done < "${WORKDIR}"/patches/series
-
-       src_prepare_update_patchlevel_h
-
-       # pod/perltoc.pod fails
-       # lib/ExtUtils/t/Embed.t fails
-       if ! tc-is-static-only ; then
-               ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
-               ln -s ${LIBPERL} libperl$(get_libname ) || die
-       fi
-
-       default
-}
-

diff --git a/dev-lang/perl/perl-5.24.0-r1.ebuild 
b/dev-lang/perl/perl-5.24.0-r1.ebuild
index d63e0dc..2d2060e 100644
--- a/dev-lang/perl/perl-5.24.0-r1.ebuild
+++ b/dev-lang/perl/perl-5.24.0-r1.ebuild
@@ -67,60 +67,436 @@ dual_scripts() {
        src_remove_dual_man  perl-core/podlators          4.70.0        
/usr/share/man/man1/perlpodstyle.1
 }
 
-# eblit-include [--skip] <function> [version]
-eblit-include() {
-       local skipable=false
-       [[ $1 == "--skip" ]] && skipable=true && shift
-       [[ $1 == pkg_* ]] && skipable=true
-
-       local e v func=$1 ver=$2
-       [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]"
-       for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do
-               e="${FILESDIR}/eblits/${func}${v}.eblit"
-               if [[ -e ${e} ]] ; then
-                       . "${e}"
-                       return 0
+check_rebuild() {
+       if has_version "<dev-lang/perl-${SHORT_PV}" ; then
+               echo ""
+               ewarn "UPDATE THE PERL MODULES:"
+               ewarn "After updating dev-lang/perl the installed Perl modules"
+               ewarn "have to be re-installed. In most cases, this is done 
automatically"
+               ewarn "by the package manager, but you should still call 
perl-cleaner to"
+               ewarn "make sure your system is consistent."
+               ewarn "Use: perl-cleaner --all"
+       elif has_version dev-lang/perl ; then
+               if (   use ithreads && ! has_version dev-lang/perl[ithreads] ) 
|| \
+                  ( ! use ithreads &&   has_version dev-lang/perl[ithreads] ) 
|| \
+                  (   use debug    && ! has_version dev-lang/perl[debug]    ) 
|| \
+                  ( ! use debug    &&   has_version dev-lang/perl[debug]    ) 
; then
+                       echo ""
+                       ewarn "TOGGLED USE-FLAGS WARNING:"
+                       ewarn "You changed one of the use-flags ithreads or 
debug."
+                       ewarn "You must rebuild all perl-modules installed."
+                       ewarn "Use: perl-cleaner --modules ; perl-cleaner 
--force --libperl"
                fi
+       fi
+}
+
+pkg_setup() {
+       case ${CHOST} in
+               *-freebsd*)   osname="freebsd" ;;
+               *-dragonfly*) osname="dragonfly" ;;
+               *-netbsd*)    osname="netbsd" ;;
+               *-openbsd*)   osname="openbsd" ;;
+               *-darwin*)    osname="darwin" ;;
+               *-interix*)   osname="interix" ;;
+               *-aix*)       osname="aix" ;;
+               *)            osname="linux" ;;
+       esac
+
+       myarch="${CHOST%%-*}-${osname}"
+       if use debug ; then
+               myarch+="-debug"
+       fi
+       if use ithreads ; then
+               mythreading="-multi"
+               myarch+="-thread"
+       fi
+
+       LIBPERL="libperl$(get_libname ${MY_PV} )"
+       PRIV_LIB="/usr/$(get_libdir)/perl5/${MY_PV}"
+       ARCH_LIB="/usr/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}"
+       SITE_LIB="/usr/local/$(get_libdir)/perl5/${MY_PV}"
+       
SITE_ARCH="/usr/local/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}"
+       VENDOR_LIB="/usr/$(get_libdir)/perl5/vendor_perl/${MY_PV}"
+       
VENDOR_ARCH="/usr/$(get_libdir)/perl5/vendor_perl/${MY_PV}/${myarch}${mythreading}"
+
+       if use ithreads ; then
+               echo ""
+               ewarn "THREADS WARNING"
+               ewarn "PLEASE NOTE: You are compiling ${MY_P} with 
interpreter-level threading enabled."
+               ewarn "Threading is not supported by all applications that 
compile against perl. You"
+               ewarn "use threading at your own discretion."
+       fi
+
+       dual_scripts
+}
+
+src_remove_dual_file() {
+       local i pkg ver
+       pkg="$1"
+       ver="$2"
+       shift 2
+       case "${EBUILD_PHASE:-none}" in
+               postinst|postrm)
+                       for i in "$@" ; do
+                               alternatives_auto_makesym "${i}" "${i}-[0-9]*"
+                       done
+                       ;;
+               setup)
+                       for i in "$@" ; do
+                               if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; 
then
+                                       has_version ${pkg} && ewarn "You must 
reinstall ${pkg} !"
+                                       break
+                               fi
+                       done
+                       ;;
+               install)
+                       for i in "$@" ; do
+                               if ! [[ -f "${ED}"${i} ]] ; then
+                                       ewarn "${i} does not exist!"
+                                       continue
+                               fi
+                               mv "${ED}"${i}{,-${ver}-${P}} || die
+                       done
+                       ;;
+       esac
+}
+
+src_remove_dual_man() {
+       local i pkg ver ff
+       pkg="$1"
+       ver="$2"
+       shift 2
+       case "${EBUILD_PHASE:-none}" in
+               postinst|postrm)
+                       for i in "$@" ; do
+                               ff=`echo 
"${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
+                               ff=${ff##*${i#${i%.[0-9]}}}
+                               alternatives_auto_makesym "${i}${ff}" 
"${i%.[0-9]}-[0-9]*"
+                       done
+                       ;;
+               install)
+                       for i in "$@" ; do
+                               if ! [[ -f "${ED}"${i} ]] ; then
+                                       ewarn "${i} does not exist!"
+                                       continue
+                               fi
+                               mv "${ED}"${i} 
"${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
+                       done
+                       ;;
+       esac
+}
+
+src_remove_dual() {
+       local i pkg ver
+       pkg="$1"
+       ver="$2"
+       shift 2
+       for i in "$@" ; do
+               src_remove_dual_file  "${pkg}" "${ver}" "/usr/bin/${i}"
+               src_remove_dual_man   "${pkg}" "${ver}" 
"/usr/share/man/man1/${i}.1"
        done
-       ${skipable} && return 0
-       die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
 }
 
-# eblit-run-maybe <function>
-# run the specified function if it is defined
-eblit-run-maybe() {
-       [[ $(type -t "$@") == "function" ]] && "$@"
+src_prepare_update_patchlevel_h() {
+       # Copied and modified from debian:
+       # Copyright 2011 Niko Tyni
+       # This program is free software; you can redistribute it and/or modify
+       # it under the same terms as Perl itself.
+       local patchdir="${WORKDIR}/patches"
+       local prefix
+       local patchoutput="patchlevel-gentoo.h"
+
+       [[ -f ${patchdir}/series ]] || return 0
+
+while read patch
+do
+       patchname=$(echo $patch | sed 's/\.diff$//')
+       < $patchdir/$patch sed -e '/^Subject:/ { N; s/\n / / }' | sed -n -e '
+
+       # massage the patch headers
+       s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
+       s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; 
tprepend;
+       s|^Bug-Gentoo: ||; tprepend;
+       s/^\(Subject\|Description\): //; tappend;
+       s|^Origin: 
.*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; 
tprepend;
+
+       # post-process at the end of input
+       $ { x;
+               # include the version number in the patchlevel.h description 
(if available)
+               s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;
+
+               # escape any backslashes and double quotes
+               s|\\|\\\\|g; s|"|\\"|g;
+
+               # add a prefix
+               s|^|\t,"'"$prefix$patchname"' - |;
+               # newlines away
+               s/\n/ /g; s/  */ /g;
+               # add a suffix
+               s/ *$/"/; p
+       };
+       # stop all processing
+       d;
+       # label: append to the hold space
+       :append H; d;
+       # label: prepend to the hold space
+       :prepend x; H; d;
+       '
+done < "${WORKDIR}"/patches/series > "${S}/${patchoutput}"
+echo "${patchoutput}" >> "${S}/MANIFEST"
+}
+
+src_prepare() {
+       local patch
+       EPATCH_OPTS+=" -p1"
+       einfo "Applying patches from ${MY_P}-${PATCH_VER} ..."
+       while read patch ; do
+               EPATCH_SINGLE_MSG="  ${patch} ..."
+               epatch "${WORKDIR}"/patches/${patch}
+       done < "${WORKDIR}"/patches/series
+
+       src_prepare_update_patchlevel_h
+
+       if ! tc-is-static-only ; then
+               ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
+               ln -s ${LIBPERL} libperl$(get_libname ) || die
+       fi
+
+       default
 }
 
-# eblit-run <function> [version]
-# aka: src_unpack() { eblit-run src_unpack ; }
-eblit-run() {
-       eblit-include --skip common "${*:2}"
-       eblit-include "$@"
-       eblit-run-maybe eblit-$1-pre
-       eblit-${PN}-$1
-       eblit-run-maybe eblit-$1-post
+myconf() {
+       # the myconf array is declared in src_configure
+       myconf=( "${myconf[@]}" "$@" )
 }
 
-src_prepare()  { eblit-run src_prepare   v50240002 ; }
+src_configure() {
+       declare -a myconf
+
+       export LC_ALL="C"
+       [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
+
+       # some arches and -O do not mix :)
+       use ppc && replace-flags -O? -O1
+
+       # Perl has problems compiling with -Os in your flags with glibc
+       use elibc_uclibc || replace-flags "-Os" "-O2"
+
+       # This flag makes compiling crash in interesting ways
+       filter-flags "-malign-double"
+
+       # Fixes bug #97645
+       use ppc && filter-flags "-mpowerpc-gpopt"
+
+       # Fixes bug #143895 on gcc-4.1.1
+       filter-flags "-fsched2-use-superblocks"
+
+       use sparc && myconf -Ud_longdbl
+
+       export BUILD_BZIP2=0
+       export BZIP2_INCLUDE=${EPREFIX}/usr/include
+       export BZIP2_LIB=${EPREFIX}/usr/$(get_libdir)
+
+       export BUILD_ZLIB=False
+       export ZLIB_INCLUDE=${EPREFIX}/usr/include
+       export ZLIB_LIB=${EPREFIX}/usr/$(get_libdir)
+
+       # allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
+       myndbm='U'
+       mygdbm='U'
+       mydb='U'
+       if use gdbm ; then
+               mygdbm='D'
+               myndbm='D'
+       fi
+       if use berkdb ; then
+               mydb='D'
+               has_version '=sys-libs/db-1*' && myndbm='D'
+       fi
+
+       myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
+
+       if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
+               ewarn "Perl will not be built with berkdb support, use gcc if 
you needed it..."
+               myconf -Ui_db -Ui_ndbm
+       fi
+
+       use ithreads && myconf -Dusethreads
+
+       if use debug ; then
+               append-cflags "-g"
+               myconf -DDEBUGGING
+       elif [[ ${CFLAGS} == *-g* ]] ; then
+               myconf -DDEBUGGING=-g
+       else
+               myconf -DDEBUGGING=none
+       fi
+
+       if [[ -n ${PERL_OLDVERSEN} ]] ; then
+               local inclist=$(for v in ${PERL_OLDVERSEN}; do echo -n 
"${v}/${myarch}${mythreading} ${v} "; done )
+               myconf -Dinc_version_list="${inclist}"
+       fi
+
+       [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
 
-src_configure()        { eblit-run src_configure v50240002 ; }
+       # Make sure we can do the final link #523730, need to set deployment
+       # target to override hardcoded 10.3 which breaks on modern OSX
+       [[ ${CHOST} == *-darwin* ]] && \
+               myconf "-Dld=env 
MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
 
-#src_compile() { eblit-run src_compile   v50160001 ; }
+       # Prefix: the host system needs not to follow Gentoo multilib stuff, 
and in
+       # Prefix itself we don't do multilib either, so make sure perl can find
+       # something compatible.
+       if use prefix ; then
+               # Set a hook to check for each detected library whether it 
actually works.
+               export libscheck="
+                       ( echo 'main(){}' > '${T}'/conftest.c &&
+                         $(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c 
-l\$thislib >/dev/null 2>/dev/null
+                       ) || xxx=/dev/null"
 
-src_test()             {
+               # Use all host paths that might contain useful stuff, the hook 
above will filter out bad choices.
+               local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 
/lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
+               myconf "-Dlibpth=${EPREFIX}/$(get_libdir) 
${EPREFIX}/usr/$(get_libdir) ${paths}"
+       elif [[ $(get_libdir) != "lib" ]] ; then
+               # We need to use " and not ', as the written config.sh use ' ...
+               myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) 
/usr/$(get_libdir)"
+       fi
+
+       # don't try building ODBM, bug #354453
+       disabled_extensions="ODBM_File"
+
+       if ! use gdbm ; then
+               # workaround for bug #157774: don't try building GDBM related 
stuff with USE="-gdbm"
+               disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
+       fi
+
+       myconf -Dnoextensions="${disabled_extensions}"
+
+       sh Configure \
+               -des \
+               -Duseshrplib \
+               -Darchname="${myarch}" \
+               -Dcc="$(tc-getCC)" \
+               -Doptimize="${CFLAGS}" \
+               -Dldflags="${LDFLAGS}" \
+               -Dprefix="${EPREFIX}"'/usr' \
+               -Dinstallprefix="${EPREFIX}"'/usr' \
+               -Dsiteprefix="${EPREFIX}"'/usr/local' \
+               -Dvendorprefix="${EPREFIX}"'/usr' \
+               -Dscriptdir="${EPREFIX}"'/usr/bin' \
+               -Dprivlib="${EPREFIX}${PRIV_LIB}" \
+               -Darchlib="${EPREFIX}${ARCH_LIB}" \
+               -Dsitelib="${EPREFIX}${SITE_LIB}" \
+               -Dsitearch="${EPREFIX}${SITE_ARCH}" \
+               -Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
+               -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
+               -Dman1dir="${EPREFIX}"/usr/share/man/man1 \
+               -Dman3dir="${EPREFIX}"/usr/share/man/man3 \
+               -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
+               -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
+               -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
+               -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
+               -Dman1ext='1' \
+               -Dman3ext='3pm' \
+               -Dlibperl="${LIBPERL}" \
+               -Dlocincpth="${EPREFIX}"'/usr/include ' \
+               -Dglibpth="${EPREFIX}/$(get_libdir) 
${EPREFIX}/usr/$(get_libdir)"' ' \
+               -Duselargefiles \
+               -Dd_semctl_semun \
+               -Dcf_by='Gentoo' \
+               -Dmyhostname='localhost' \
+               -Dperladmin='root@localhost' \
+               -Dinstallusrbinperl='n' \
+               -Ud_csh \
+               -Dsh="${EPREFIX}"/bin/sh \
+               -Dtargetsh="${EPREFIX}"/bin/sh \
+               -Uusenm \
+               "${myconf[@]}" || die "Unable to configure"
+}
+
+src_test() {
        export NO_GENTOO_NETWORK_TESTS=1;
-       eblit-run src_test      v50160001 ;
+       if [[ ${EUID} == 0 ]] ; then
+               ewarn "Test fails with a sandbox error (#328793) if run as 
root. Skipping tests..."
+               return 0
+       fi
+       use elibc_uclibc && export MAKEOPTS+=" -j1"
+       TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
 }
 
-src_install()  { eblit-run src_install   v50240001 ; }
+src_install() {
+       local i
+       local coredir="${ARCH_LIB}/CORE"
+
+       emake DESTDIR="${D}" install
 
-# FILESDIR might not be available during binpkg install
-# FIXME: version passing
-for x in setup {pre,post}{inst,rm} ; do
-       e="${FILESDIR}/eblits/pkg_${x}-v50240001.eblit"
-       if [[ -e ${e} ]] ; then
-               . "${e}"
-               eval "pkg_${x}() { eblit-run pkg_${x} v50240001 ; }"
+       rm -f "${ED}/usr/bin/perl${MY_PV}"
+       ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
+
+       if ! tc-is-static-only ; then
+               dolib.so "${ED}"${coredir}/${LIBPERL}
+               rm -f "${ED}"${coredir}/${LIBPERL}
+               ln -sf ${LIBPERL} 
"${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
+               ln -sf ${LIBPERL} 
"${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
+               ln -sf ../../../../../$(get_libdir)/${LIBPERL} 
"${ED}"${coredir}/${LIBPERL} || die
+               ln -sf ../../../../../$(get_libdir)/${LIBPERL} 
"${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
+               ln -sf ../../../../../$(get_libdir)/${LIBPERL} 
"${ED}"${coredir}/libperl$(get_libname) || die
+       fi
+
+       rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man 
pages"
+
+       # This removes ${D} from Config.pm
+       for i in $(find "${D}" -iname "Config.pm" ) ; do
+               einfo "Removing ${D} from ${i}..."
+               sed -i -e "s:${D}::" "${i}" || die "Sed failed"
+       done
+
+       find "${ED}" -type f -name .packlist -delete || die
+
+       dodoc Changes* README AUTHORS
+
+       if use doc ; then
+               # HTML Documentation
+               # We expect errors, warnings, and such with the following.
+
+               dodir /usr/share/doc/${PF}/html
+               LD_LIBRARY_PATH=. ./perl installhtml \
+                       --podroot='.' \
+                       --podpath='lib:ext:pod:vms' \
+                       --recurse \
+                       --htmldir="${ED}/usr/share/doc/${PF}/html"
        fi
-done
+
+       [[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
+
+       dual_scripts
+}
+
+pkg_postinst() {
+       dual_scripts
+
+       if [[ "${ROOT}" = "/" ]] ; then
+               local INC DIR file
+               INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if 
$line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
+               einfo "Removing old .ph files"
+               for DIR in ${INC} ; do
+                       if [[ -d "${DIR}" ]] ; then
+                               for file in $(find "${DIR}" -name "*.ph" -type 
f ) ; do
+                                       rm -f "${file}"
+                                       einfo "<< ${file}"
+                               done
+                       fi
+               done
+               # Silently remove the now empty dirs
+               for DIR in ${INC} ; do
+                       if [[ -d "${DIR}" ]] ; then
+                               find "${DIR}" -depth -type d -print0 | xargs -0 
-r rmdir &> /dev/null
+                       fi
+               done
+
+       fi
+}
+
+pkg_postrm(){
+       dual_scripts
+}

Reply via email to