diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2015-12-19 18:50:00 +0100 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2015-12-19 18:50:00 +0100 |
commit | dc858f6a75f94c0a1b3d6e5c6e83a874e8b57d8b (patch) | |
tree | da1d7742c356134218842c361ff5458a01621669 | |
parent | perl-module.eclass: style (diff) | |
download | gentoo-dc858f6a75f94c0a1b3d6e5c6e83a874e8b57d8b.tar.gz gentoo-dc858f6a75f94c0a1b3d6e5c6e83a874e8b57d8b.tar.bz2 gentoo-dc858f6a75f94c0a1b3d6e5c6e83a874e8b57d8b.zip |
perl-module.eclass and perl-functions.eclass: Add infrastructure to build .packlist files and keep/fix them in EAPI=6
-rw-r--r-- | eclass/perl-functions.eclass | 35 | ||||
-rw-r--r-- | eclass/perl-module.eclass | 9 |
2 files changed, 39 insertions, 5 deletions
diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index c38ed6c4a651..756847318366 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -106,17 +106,46 @@ perl_delete_packlist() { debug-print-function $FUNCNAME "$@" perl_set_version if [[ -d ${D}/${VENDOR_ARCH} ]] ; then - find "${D}/${VENDOR_ARCH}" -type f -a \( -name .packlist \ - -o \( -name '*.bs' -a -empty \) \) -delete + find "${D}/${VENDOR_ARCH}" -type f -a -name .packlist -delete + perl_delete_emptybsdir + fi +} + +# @FUNCTION: perl_delete_emptybsdir +# @USAGE: perl_delete_emptybsdir +# @DESCRIPTION: +# Look through ${D} for empty .bs files and empty directories, +# and get rid of items found. +perl_delete_emptybsdir() { + debug-print-function $FUNCNAME "$@" + perl_set_version + if [[ -d ${D}/${VENDOR_ARCH} ]] ; then + find "${D}/${VENDOR_ARCH}" -type f \ + -a -name '*.bs' -a -empty -delete find "${D}" -depth -mindepth 1 -type d -empty -delete fi } +# @FUNCTION: perl_fix_packlist +# @USAGE: perl_fix_packlist +# @DESCRIPTION: +# Look through ${D} for .packlist text files containing the temporary installation +# folder (i.e. ${D}). If the pattern is found, silently replace it with `/'. +perl_fix_packlist() { + debug-print-function $FUNCNAME "$@" + + find "${D}" -type f -name '.packlist' -print0 | while read -rd '' f ; do + if file "${f}" | grep -q -i " text" ; then + sed -i -e "s:${D}:/:g" "${f}" + fi + done +} + # @FUNCTION: perl_remove_temppath # @USAGE: perl_remove_temppath # @DESCRIPTION: # Look through ${D} for text files containing the temporary installation -# folder (i.e. ${D}). If the pattern is found (i.e. " text"), replace it with `/'. +# folder (i.e. ${D}). If the pattern is found, replace it with `/' and warn. perl_remove_temppath() { debug-print-function $FUNCNAME "$@" diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 80a829d4e795..8b2f3a44b622 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -244,7 +244,7 @@ perl-module_src_configure() { --installdirs=vendor \ --libdoc= \ --destdir="${D}" \ - --create_packlist=0 \ + --create_packlist=1 \ "${myconf_local[@]}" einfo "perl Build.PL" "$@" perl Build.PL "$@" <<< "${pm_echovar}" \ @@ -407,7 +407,12 @@ perl-module_src_install() { perl_delete_module_manpages perl_delete_localpod - perl_delete_packlist + if [[ ${EAPI:-0} == 5 ]] ; then + perl_delete_packlist + else + perl_fix_packlist + perl_delete_emptybsdir + fi perl_remove_temppath for f in Change* CHANGES README* TODO FAQ ${mydoc}; do |