public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Alec Warner <antarus@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] perl eclass review - EAPI=3 + new helper eclass
Date: Tue, 30 Mar 2010 08:48:31 -0700	[thread overview]
Message-ID: <b41005391003300848t4a7d6e0cya39199fc1eb95a18@mail.gmail.com> (raw)
In-Reply-To: <20100330111154.GA28735@veller.net>

On Tue, Mar 30, 2010 at 4:11 AM, Torsten Veller <ml-en@veller.net> wrote:
> The perl-module.eclass must be updated to support EAPI=3 [1] and
> a new eclass will be added which does contain some (more or less) useful
> stand-alone functions split from the old perl-module.eclass without
> exporting phase functions.
> Functions used in ebuilds that don't need the exported default phases
> are perlinfo() and fixlocalpod().
>
>
> Below is the new eclass, working title is perl-helper.eclass.
> A diff between the the current and the new perl-module.eclass can be
> found at [2]. Both are in use in the perl-experimental overlay [3].
>
>
> Please review! If someone can come up with better names, either the
> perl-helper.eclass or the functions named perl_*, please tell me.
> I tried to make the perl-helper functions more unique but the
> meaningfulness is open to question.

It is obvious what many of the functions do (I can read shell, yay!)
but it is not obvious to me why they exist or why I would want to call
them.  Why do I want to delete AppleDouble files?  What are dual-life
scripts and why do I want to symlink them?  Why would I want to delete
packfiles?  Some documentation would be nice h ere.

-A

>
>
> Thanks
>
>
> [1] https://bugs.gentoo.org/310453
> [2] http://dev.gentoo.org/~tove/files/perl-module.diff
> [3] http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=tree;f=eclass;hb=HEAD
>
>
>
> # Copyright 1999-2010 Gentoo Foundation
> # Distributed under the terms of the GNU General Public License v2
> # $Header: $
>
> [[ ${CATEGORY} == "perl-core" ]] && inherit alternatives
>
> perlinfo() {
>        debug-print-function $FUNCNAME "$@"
>        perl_set_version
> }
>
> perl_set_version() {
>        debug-print-function $FUNCNAME "$@"
>        debug-print "$FUNCNAME: perlinfo_done=${perlinfo_done}"
>        ${perlinfo_done} && return 0
>        perlinfo_done=true
>
>        local f version install{{site,vendor}{arch,lib},archlib}
>        eval "$(perl -V:{version,install{{site,vendor}{arch,lib},archlib}} )"
>        PERL_VERSION=${version}
>        SITE_ARCH=${installsitearch}
>        SITE_LIB=${installsitelib}
>        ARCH_LIB=${installarchlib}
>        VENDOR_LIB=${installvendorlib}
>        VENDOR_ARCH=${installvendorarch}
> }
>
> fixlocalpod() {
>        debug-print-function $FUNCNAME "$@"
>        perl_delete_localpod
> }
>
> perl_delete_localpod() {
>        debug-print-function $FUNCNAME "$@"
>
>        find "${D}" -type f -name perllocal.pod -delete
>        find "${D}" -depth -mindepth 1 -type d -empty -delete
> }
>
> perl_fix_osx_extra() {
>        debug-print-function $FUNCNAME "$@"
>
>        # Remove "AppleDouble encoded Macintosh file"
>        local f
>        find "${S}" -type f -name "._*" -print0 | while read -rd '' f ; do
>                einfo "Removing AppleDouble encoded Macintosh file: ${f#${S}/}"
>                rm -f "${f}"
>                f=${f#${S}/}
>        #       f=${f//\//\/}
>        #       f=${f//\./\.}
>        #       sed -i "/${f}/d" "${S}"/MANIFEST || die
>                grep -q "${f}" "${S}"/MANIFEST && \
>                        elog "AppleDouble encoded Macintosh file in MANIFEST: ${f#${S}/}"
>        done
> }
>
> perl_delete_module_manpages() {
>        debug-print-function $FUNCNAME "$@"
>
>        perl_set_eprefix
>
>        if [[ -d "${ED}"/usr/share/man ]] ; then
> #               einfo "Cleaning out stray man files"
>                find "${ED}"/usr/share/man -type f -name "*.3pm" -delete
>                find "${ED}"/usr/share/man -depth -type d -empty -delete
>        fi
> }
>
> perl_delete_packlist() {
>        debug-print-function $FUNCNAME "$@"
>        perl_set_version
>        if [[ -d ${D}/${VENDOR_LIB} ]] ; then
>                find "${D}/${VENDOR_LIB}" -type f -a \( -name .packlist \
>                        -o \( -name '*.bs' -a -empty \) \) -delete
>                find "${D}/${VENDOR_LIB}" -depth -mindepth 1 -type d -empty -delete
>        fi
> }
>
> perl_remove_temppath() {
>        debug-print-function $FUNCNAME "$@"
>
>        find "${D}" -type f -not -name '*.so' -print0 | while read -rd '' f ; do
>                if file "${f}" | grep -q -i " text" ; then
>                        grep -q "${D}" "${f}" && ewarn "QA: File contains a temporary path ${f}"
>                        sed -i -e "s:${D}:/:g" "${f}"
>                fi
>        done
> }
>
> perl_link_duallife_scripts() {
>        debug-print-function $FUNCNAME "$@"
>        if [[ ${CATEGORY} != perl-core ]] || ! has_version ">=dev-lang/perl-5.8.8-r8" ; then
>                return 0
>        fi
>
>        perl_set_eprefix
>
>        local i ff
>        if has "${EBUILD_PHASE:-none}" "postinst" "postrm" ; then
>                for i in "${DUALLIFESCRIPTS[@]}" ; do
>                        alternatives_auto_makesym "/usr/bin/${i}" "/usr/bin/${i}-[0-9]*"
>                        ff=`echo "${EROOT}"/usr/share/man/man1/${i}-${PV}-${P}.1*`
>                        ff=${ff##*.1}
>                        alternatives_auto_makesym "/usr/share/man/man1/${i}.1${ff}" "/usr/share/man/man1/${i}-[0-9]*"
>                done
>        else
>                pushd "${ED}" > /dev/null
>                for i in $(find usr/bin -maxdepth 1 -type f 2>/dev/null) ; do
>                        mv ${i}{,-${PV}-${P}} || die
>                        DUALLIFESCRIPTS[${#DUALLIFESCRIPTS[*]}]=${i##*/}
>                        if [[ -f usr/share/man/man1/${i##*/}.1 ]] ; then
>                                mv usr/share/man/man1/${i##*/}{.1,-${PV}-${P}.1} || die
>                        fi
>                done
>                popd > /dev/null
>        fi
> }
>
> perl_set_eprefix() {
>        debug-print-function $FUNCNAME "$@"
>        case ${EAPI:-0} in
>                0|1|2)
>                        if ! use prefix; then
>                                EPREFIX=
>                                ED=${D}
>                                EROOT=${ROOT}
>                        fi
>                        ;;
>        esac
> }
>
>

  reply	other threads:[~2010-03-30 15:49 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-30 11:11 [gentoo-dev] perl eclass review - EAPI=3 + new helper eclass Torsten Veller
2010-03-30 15:48 ` Alec Warner [this message]
2010-04-03 10:33   ` [gentoo-dev] " Torsten Veller
2010-04-01 23:41 ` [gentoo-dev] " James Cloos
2010-04-02  0:12   ` [gentoo-dev] " Jonathan Callen
2010-04-02  0:14   ` [gentoo-dev] " Zac Medico
2010-04-02  0:17     ` Brian Harring
2010-04-02  0:25       ` Zac Medico
2010-04-06 14:22     ` James Cloos
2010-04-06 18:39       ` Zac Medico
2010-04-12 17:17         ` James Cloos
2010-04-12 17:30           ` James Cloos
2010-04-12 18:00             ` Brian Harring
2010-04-12 22:55               ` Zac Medico
2010-04-16 20:00                 ` James Cloos
2010-04-12 22:47           ` Zac Medico
2010-04-16 20:23             ` James Cloos
2010-04-16 20:28               ` Ciaran McCreesh
2010-04-17  3:30                 ` Steev Klimaszewski
2010-04-17  7:13                   ` Ciaran McCreesh
2010-04-18  3:28                 ` James Cloos
2010-04-18  7:45                   ` Ciaran McCreesh
2010-04-19 20:59                     ` James Cloos
2010-04-19 21:46                       ` Harald van Dijk
2010-04-23 15:14                         ` James Cloos
2010-04-25  6:16                           ` Zac Medico
2010-04-03 10:33   ` [gentoo-dev] " Torsten Veller
2010-04-04  8:25     ` Michael Higgins
2010-04-06 14:27       ` James Cloos
2010-04-06 14:52         ` Duncan
2010-04-10  0:40           ` James Cloos
2010-04-06 14:25     ` James Cloos
2010-04-06 16:00       ` Michał Górny
2010-04-10  0:34         ` James Cloos
2010-04-17 20:07       ` Torsten Veller
2010-04-12  8:07 ` Christian Faulhammer
2010-04-12  9:03   ` Fabian Groffen
2010-04-20  6:49 ` Torsten Veller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b41005391003300848t4a7d6e0cya39199fc1eb95a18@mail.gmail.com \
    --to=antarus@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox