[gentoo-dev] perl eclass review - EAPI=3 + new helper eclass
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. 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 ${duallifescrip...@]} ; 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() {
Re: [gentoo-dev] perl eclass review - EAPI=3 + new helper eclass
On Tue, Mar 30, 2010 at 4:11 AM, Torsten Veller ml...@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 ${duallifescrip...@]} ; 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
[gentoo-dev] RFC: Google Apps Standard Edition @ gentoo.org
Hello, Currently a number of developers have engaged Google Apps Team Edition for gentoo.org. However Team Edition does not come with gmail and a subset of Team Edition users would like to host their gentoo.org mail on gmail. Activating Standard Edition is free and likely requires minimal configuration on dev.gentoo.org to setup. Standard Edition comes with Google Docs, Google Calendar, Google Mail, Google Sites, Google Video, and probably a bunch of other stuff we could turn on. This service would be opt-in (only devs that want an account get one). Infra should continue to offer standard mail services on smtp.gentoo.org. All content that is what I would term 'of value' to the community should be available anonymously; that is you should not need to sign up for a Google Account to be able to access documents in a read-only fashion. Writing documents will require sign-in (similarly to how the calendar works in a previous thread.) This thread is primarily engaged in gauging interest in such a setup. Please reply if you are interested (or go vote on the bug.) [1] http://bugs.gentoo.org/312037 -A