summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Fredric <kentfredric@gmail.com>2015-03-15 18:04:24 +1300
committerKent Fredric <kentfredric@gmail.com>2015-03-15 18:04:24 +1300
commit5f8e66084195ff46a00c8e86fe0ce9c734e026e9 (patch)
treeb7d588bc35ee641ee8ab3407bb4e160d4e1ac263
parent[perl-module.eclass] Add perl_check_env patch re bug 543042 (diff)
downloadperl-overlay-5f8e6608.tar.gz
perl-overlay-5f8e6608.tar.bz2
perl-overlay-5f8e6608.zip
[perl-module.eclass] make perl_qawarn invocations have clearer errors under PERL_QAFATAL
-rw-r--r--eclass/perl-module.eclass47
1 files changed, 32 insertions, 15 deletions
diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass
index dcf862053..f71753e01 100644
--- a/eclass/perl-module.eclass
+++ b/eclass/perl-module.eclass
@@ -20,7 +20,7 @@ PERL_EXPF="src_unpack src_compile src_test src_install"
case "${EAPI:-0}" in
0|1)
eqawarn "$P: EAPI 0 and 1 are deprecated both in ::gentoo and ::perl-experimental"
- perl_qafatal "eapi";
+ perl_qafatal "eapi" "EAPI 0 and 1 are deprecated";
PERL_EXPF+=" pkg_setup pkg_preinst pkg_postinst pkg_prerm pkg_postrm"
;;
2|3|4|5)
@@ -152,14 +152,14 @@ perl-module_src_configure() {
if [[ ${DEPEND} != *dev-perl/Module-Build-Tiny* && ${PN} != Module-Build-Tiny ]]; then
eqawarn "QA Notice: The ebuild uses Module::Build::Tiny but doesn't depend on it."
eqawarn " Add dev-perl/Module-Build-Tiny to DEPEND!"
- perl_qafatal "modulebuildtiny"
+ perl_qafatal "modulebuildtiny" "Needs to depend on Module-Build-Tiny"
fi
else
einfo "Using Module::Build"
if [[ ${DEPEND} != *virtual/perl-Module-Build* && ${PN} != Module-Build ]] ; then
eqawarn "QA Notice: The ebuild uses Module::Build but doesn't depend on it."
eqawarn " Add virtual/perl-Module-Build to DEPEND!"
- perl_qafatal "modulebuild"
+ perl_qafatal "modulebuild" "Needs to depend on Module-Build"
fi
fi
set -- \
@@ -394,7 +394,7 @@ perl-module_pkg_postinst() {
if [[ ${CATEGORY} != perl-core ]] ; then
eqawarn "perl-module.eclass: You are calling perl-module_pkg_postinst outside the perl-core category."
eqawarn " This does not do anything; the call can be safely removed."
- perl_qafatal "function"
+ perl_qafatal "function" "$FUNCNAME is private to perl-core"
return 0
fi
perl_link_duallife_scripts
@@ -422,7 +422,7 @@ perl-module_pkg_postrm() {
if [[ ${CATEGORY} != perl-core ]] ; then
eqawarn "perl-module.eclass: You are calling perl-module_pkg_postrm outside the perl-core category."
eqawarn " This does not do anything; the call can be safely removed."
- perl_qafatal "function"
+ perl_qafatal "function" "$FUNCNAME is private to perl-core"
return 0
fi
perl_link_duallife_scripts
@@ -470,7 +470,7 @@ perl_check_module_version() {
if [[ -n ${REAL_PV} && ${REAL_PV} != ${PV} ]] ; then
eqawarn "QA Notice: Based on MODULE_VERSION=${MODULE_VERSION} the ebuild version ${PV} is wrong!"
eqawarn " The ebuild version should be ${REAL_PV}"
- perl_qafatal "version"
+ perl_qafatal "version" "${REAL_PV} != ${PV}"
fi
}
@@ -658,33 +658,49 @@ perl_link_duallife_scripts() {
perl_set_eprefix
- local i ff
+ local i ff execdir mandir
+
+ execdir="usr/share/perl-${P}/bin"
+ mandir="usr/share/perl-${P}/man/man1"
+
if has "${EBUILD_PHASE:-none}" "postinst" "postrm" ; then
for i in "${DUALLIFESCRIPTS[@]}" ; do
+ alternatives_auto_makesym "/${i}-${PV}" "${EROOT}${execdir}/${i##*/}"
alternatives_auto_makesym "/${i}" "/${i}-[0-9]*"
done
for i in "${DUALLIFEMAN[@]}" ; do
- ff=`echo "${EROOT}"/${i%.1}-${PV}-${P}.1*`
+ # Expand $i to a full path as it was installed,
+ # which may add .gz or whatever to the end during compress.
+ # then boil it till you just get ".gz"
+ ff="${EROOT}${mandir}/${i##*/}";
+ ff=$( echo ${ff%.1}.1* );
ff=${ff##*.1}
- alternatives_auto_makesym "/${i}${ff}" "/${i%.1}-[0-9]*"
+ alternatives_auto_makesym "/${i%.1}-${PV}.1${ff}" "${EROOT}${mandir}/${i##*/}${ff}"
+ alternatives_auto_makesym "/${i}${ff}" "/${i%.1}-[0-9]*.1${ff}"
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
+ mkdir -p "${D}/${execdir}" || die
+ mv ${i} "${D}/${execdir}/${i##*/}" || die
#DUALLIFESCRIPTS[${#DUALLIFESCRIPTS[*]}]=${i##*/}
DUALLIFESCRIPTS[${#DUALLIFESCRIPTS[*]}]=${i}
done
for i in $(find usr/share/man/man1 -maxdepth 1 -type f 2>/dev/null) ; do
- mv ${i} ${i%.1}-${PV}-${P}.1 || die
+ mkdir -p "${D}/${mandir}" || die
+ mv ${i} "${D}/${mandir}/${i##*/}" || die
DUALLIFEMAN[${#DUALLIFEMAN[*]}]=${i}
done
+
+ einfo "Cleaning empty directories"
+ perl_trim_empty_dirs "${EROOT}/usr/bin"
+
popd > /dev/null
fi
}
# @FUNCTION: perl_qafatal
-# @USAGE: perl_qafatal TYPE
+# @USAGE: perl_qafatal TYPE "Die reason"
# @DESCRIPTION:
# Invoking this method after eqawarn's allows an entry point for the eclass to trigger
# a fatal exit if the user has PERL_QAFATAL set.
@@ -702,17 +718,18 @@ perl_link_duallife_scripts() {
# has "$type" - Fatal for "$type"
perl_qafatal() {
local failtype=$1
+ local failreason=$2
if [[ "${PERLQAFATAL:-0}" == 1 ]]; then
eerror "Bailing out due to PERLQAFATAL including $failtype (==1)";
- die;
+ die "$failtype: $failreason"
fi
if has 'all' ${PERLQAFATAL}; then
eerror "Bailing out due to PERLQAFATAL including $failtype (all)";
- die;
+ die "$failtype: $failreason"
fi
if has $failtype ${PERLQAFATAL}; then
eerror "Bailing out due to PERLQAFATAL including $1";
- die;
+ die "$failtype: $failreason"
fi
}