From ef1a9de5bf0afa3e9829dad99ba521daf27881bc Mon Sep 17 00:00:00 2001 From: Benda Xu Date: Wed, 12 Aug 2015 12:15:44 +0900 Subject: perl: track perl-5.22 raw files. --- .../perl/files/eblits/pkg_postinst-v50220001.eblit | 67 ++++++++++++ .../perl/files/eblits/pkg_postrm-v50220001.eblit | 12 +++ .../perl/files/eblits/pkg_setup-v50220001.eblit | 72 +++++++++++++ dev-lang/perl/perl-5.22.0.ebuild | 120 +++++++++++++++++++++ 4 files changed, 271 insertions(+) create mode 100644 dev-lang/perl/files/eblits/pkg_postinst-v50220001.eblit create mode 100644 dev-lang/perl/files/eblits/pkg_postrm-v50220001.eblit create mode 100644 dev-lang/perl/files/eblits/pkg_setup-v50220001.eblit create mode 100644 dev-lang/perl/perl-5.22.0.ebuild (limited to 'dev-lang') diff --git a/dev-lang/perl/files/eblits/pkg_postinst-v50220001.eblit b/dev-lang/perl/files/eblits/pkg_postinst-v50220001.eblit new file mode 100644 index 0000000..a268f78 --- /dev/null +++ b/dev-lang/perl/files/eblits/pkg_postinst-v50220001.eblit @@ -0,0 +1,67 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +eblit-perl-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 + +# ebegin "Generating ConfigLocal.pm (ignore any error)" +# enc2xs -C + + einfo "Converting C header files to the corresponding Perl format (ignore any error)" + # Prefix note: unprefixed as this is all kernel/libc stuff that we never provide + pushd /usr/include >/dev/null + h2ph -Q -a -d "${EPREFIX}"${ARCH_LIB} \ + asm/termios.h syscall.h syslimits.h syslog.h sys/ioctl.h \ + sys/socket.h sys/time.h wait.h sysexits.h + popd >/dev/null + +# This has been moved into a function because rumor has it that a future release +# of portage will allow us to check what version was just removed - which means +# we will be able to invoke this only as needed :) + # Tried doing this via -z, but $INC is too big... + #if [[ "${INC}x" != "x" ]]; then + # cleaner_msg + #fi + fi +} + +cleaner_msg() { + eerror "You have had multiple versions of perl. It is recommended" + eerror "that you run perl-cleaner now. perl-cleaner will" + eerror "assist with this transition. This script is capable" + eerror "of cleaning out old .ph files, rebuilding modules for " + eerror "your new version of perl, as well as re-emerging" + eerror "applications that compiled against your old libperl$(get_libname)" + eerror + eerror "PLEASE DO NOT INTERRUPT THE RUNNING OF THIS SCRIPT." + eerror "Part of the rebuilding of applications compiled against " + eerror "your old libperl involves temporarily unmerging" + eerror "them - interruptions could leave you with unmerged" + eerror "packages before they can be remerged." + eerror "" + eerror "If you have run perl-cleaner and a package still gives" + eerror "you trouble, and re-emerging it fails to correct" + eerror "the problem, please check http://bugs.gentoo.org/" + eerror "for more information or to report a bug." + eerror "" +} diff --git a/dev-lang/perl/files/eblits/pkg_postrm-v50220001.eblit b/dev-lang/perl/files/eblits/pkg_postrm-v50220001.eblit new file mode 100644 index 0000000..5bead2a --- /dev/null +++ b/dev-lang/perl/files/eblits/pkg_postrm-v50220001.eblit @@ -0,0 +1,12 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +eblit-perl-pkg_postrm(){ + dual_scripts + +# if [[ -e ${ARCH_LIB}/Encode/ConfigLocal.pm ]] ; then +# ebegin "Removing ConfigLocal.pm" +# rm "${ARCH_LIB}/Encode/ConfigLocal.pm" +# fi +} diff --git a/dev-lang/perl/files/eblits/pkg_setup-v50220001.eblit b/dev-lang/perl/files/eblits/pkg_setup-v50220001.eblit new file mode 100644 index 0000000..a2b0957 --- /dev/null +++ b/dev-lang/perl/files/eblits/pkg_setup-v50220001.eblit @@ -0,0 +1,72 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +eblit-perl-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" + ewarn "interpreter-level threading enabled." + ewarn "Threading is not supported by all applications " + ewarn "that compile against perl. You use threading at " + ewarn "your own discretion. " + fi + check_rebuild + dual_scripts +} + +check_rebuild() { + if has_version " [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 [version]" + for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do + e="${FILESDIR}/eblits/${func}${v}.eblit" + if [[ -e ${e} ]] ; then + . "${e}" + return 0 + fi + done + ${skipable} && return 0 + die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/" +} + +# eblit-run-maybe +# run the specified function if it is defined +eblit-run-maybe() { + [[ $(type -t "$@") == "function" ]] && "$@" +} + +# eblit-run [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 +} + +src_prepare() { eblit-run src_prepare v50160001 ; } +src_configure() { eblit-run src_configure v50180002 ; } +#src_compile() { eblit-run src_compile v50160001 ; } +src_test() { + export NO_GENTOO_NETWORK_TESTS=1; + eblit-run src_test v50160001 ; +} +src_install() { eblit-run src_install v50200001 ; } + +# 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}-v50220001.eblit" + if [[ -e ${e} ]] ; then + . "${e}" + eval "pkg_${x}() { eblit-run pkg_${x} v50160001 ; }" + fi +done -- cgit v1.2.3-65-gdbad