Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 398984 Details for
Bug 543042
perl-module.eclass: should warn more clearly/loudly if ExtUtils-MakeMaker PERL_MM_OPT="INSTALL_BASE=" is already set
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
updated patch, also for bug 495044
envmbt.patch (text/plain), 4.39 KB, created by
Andreas K. Hüttel
on 2015-03-15 15:05:41 UTC
(
hide
)
Description:
updated patch, also for bug 495044
Filename:
MIME Type:
Creator:
Andreas K. Hüttel
Created:
2015-03-15 15:05:41 UTC
Size:
4.39 KB
patch
obsolete
>Index: perl-module.eclass >=================================================================== >RCS file: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v >retrieving revision 1.163 >diff -u -B -r1.163 perl-module.eclass >--- perl-module.eclass 14 Mar 2015 14:32:10 -0000 1.163 >+++ perl-module.eclass 15 Mar 2015 15:04:05 -0000 >@@ -114,6 +114,8 @@ > [[ ${SRC_PREP} = yes ]] && return 0 > SRC_PREP="yes" > >+ perl_check_env >+ > perl_set_version > > [[ -z ${pm_echovar} ]] && export PERL_MM_USE_DEFAULT=1 >@@ -127,13 +129,25 @@ > fi > > if [[ ( ${PREFER_BUILDPL} == yes || ! -f Makefile.PL ) && -f Build.PL ]] ; then >- 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!" >- if [[ -n ${PERLQAFATAL} ]]; then >- eerror "Bailing out due to PERLQAFATAL=1"; >- die; >+ if grep -q '\(use\|require\)\s*Module::Build::Tiny' Build.PL ; then >+ einfo "Using Module::Build::Tiny" >+ 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!" >+ if [[ -n ${PERLQAFATAL} ]]; then >+ eerror "Bailing out due to PERLQAFATAL=1"; >+ die >+ fi >+ 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!" >+ if [[ -n ${PERLQAFATAL} ]]; then >+ eerror "Bailing out due to PERLQAFATAL=1"; >+ die >+ fi > fi > fi > set -- \ >@@ -256,23 +270,22 @@ > > local f > >- if [[ -z ${mytargets} ]] ; then >+ if [[ -f Build ]]; then >+ mytargets="${mytargets:-install}" >+ mbparams="${mbparams:---pure}" >+ einfo "./Build ${mytargets} ${mbparams}" >+ ./Build ${mytargets} ${mbparams} \ >+ || die "./Build ${mytargets} ${mbparams} failed" >+ elif [[ -f Makefile ]]; then > case "${CATEGORY}" in > dev-perl|perl-core) mytargets="pure_install" ;; > *) mytargets="install" ;; > esac >- fi >- >- if [[ $(declare -p myinst 2>&-) != "declare -a myinst="* ]]; then >- local myinst_local=(${myinst}) >- else >- local myinst_local=("${myinst[@]}") >- fi >- >- if [[ -f Build ]] ; then >- ./Build ${mytargets} \ >- || die "./Build ${mytargets} failed" >- elif [[ -f Makefile ]] ; then >+ if [[ $(declare -p myinst 2>&-) != "declare -a myinst="* ]]; then >+ local myinst_local=(${myinst}) >+ else >+ local myinst_local=("${myinst[@]}") >+ fi > emake "${myinst_local[@]}" ${mytargets} \ > || die "emake ${myinst_local[@]} ${mytargets} failed" > fi >@@ -548,3 +561,53 @@ > popd > /dev/null > fi > } >+ >+# @FUNCTION: perl_check_env >+# @USAGE: perl_check_env >+# @DESCRIPTION: >+# Checks a blacklist of known-suspect ENV values that can be accidentally set by users >+# doing personal perl work, which may accidentally leak into portage and break the >+# system perl installaton. >+# Dies if any of the suspect fields are found, and tell the user what needs to be unset. >+# There's a workaround, but you'll have to read the code for it. >+perl_check_env() { >+ local errored value; >+ >+ for i in PERL_MM_OPT PERL5LIB PERL5OPT PERL_MB_OPT PERL_CORE PERLPREFIX; do >+ # Next unless match >+ [ -v $i ] || continue; >+ >+ # Warn only once, and warn only when one of the bad values are set. >+ # record failure here. >+ if [ ${errored:-0} == 0 ]; then >+ if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then >+ elog "perl-module.eclass: Suspicious environment values found."; >+ else >+ eerror "perl-module.eclass: Suspicious environment values found."; >+ fi >+ fi >+ errored=1 >+ >+ # Read ENV Value >+ eval "value=\$$i"; >+ >+ # Print ENV name/value pair >+ if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then >+ elog " $i=\"$value\""; >+ else >+ eerror " $i=\"$value\""; >+ fi >+ done >+ >+ # Return if there were no failures >+ [ ${errored:-0} == 0 ] && return; >+ >+ # Return if user knows what they're doing >+ if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then >+ elog "Continuing anyway, seems you know what you're doing." >+ return >+ fi >+ >+ eerror "Your environment settings may lead to undefined behavior and/or build failures." >+ die "Please fix your environment ( ~/.bashrc, package.env, ... ), see above for details." >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 543042
:
398942
|
398944
|
398946
|
398948
|
398956
|
398972
| 398984