public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Introducing perl-functions.eclass
@ 2015-11-28  0:25 Andreas K. Huettel
  0 siblings, 0 replies; only message in thread
From: Andreas K. Huettel @ 2015-11-28  0:25 UTC (permalink / raw
  To: gentoo-dev; +Cc: perl

[-- Attachment #1: Type: Text/Plain, Size: 2259 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512


Hi all, 

before we even start implementing EAPI=6 stuff, Perl support will be 
reorganized a little bit. 

TL;DR: No need to do anything. :)

Longer version:
We're going to split all helper functions out of perl-module.eclass into a new 
eclass, perl-functions.eclass. 

* perl-functions will export no phases and keep all global variable meddling 
to a minimum. If you need perl support in a package that has a non-perl build 
system, this is what you may want to use in the future to get some helpers.

* perl-module.eclass will inherit perl-functions, and all things exported by 
perl-functions are explicitly also part of the API of perl-module (documented 
in the eclass), so you dont have to explicitly inherit perl-functions in your 
ebuild as well. perl-module.eclass is the "ready-made solution for CPAN", 
exporting all required phases.

We are only splitting the code into two parts now, but not really changing 
anything. So, because of abovementioned inheritance all ebuilds should just 
keep working as usual. 

Some changes will come later with the introduction of EAPI=6 support. 

(Boring) Patch attached for completeness. 

Cheers, 
Andreas

- -- 

Andreas K. Huettel
Gentoo Linux developer 
dilfridge@gentoo.org
http://www.akhuettel.de/

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.1

iQJ8BAEBCgBmBQJWWPSJXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ0RkJDMzI0NjNBOTIwMDY5MTQ2NkMzNDBF
MTM4NkZEN0VGNEI1Nzc5AAoJEOE4b9fvS1d5WIEQALg9JnpzEZ0bhyRitwVkICsb
m6ZWBjdQaOIt+QJh530rhprOWUVtmCepIm4zMhbeKGZ9TdGxK0lE7tDn8dYIjiRM
ZeMbnixNM502xspQUHZeEW7qsoBHCNfTQb7QpLHq74/qv7HWtPNqGcEOcwnL+9q+
Vbkt8H6iX3IBlXGbsR3G00uXmnBCAKNuno4GImdV6woEDjGewFnmrTQ0d76lAi9K
/wm/oNi6p64ibOU+NIQFvVa6CnXy+Tzmk/djgkJUrnoyJkVogm0l3ygDwjnIWk4T
lssw6cLQgjqLLiGpcSeV801z2TC7bWBxuZJm5+pIdBFoFd316zcfGUA/cxrbOOkK
vlBnmFLG90hU4JmHHZ+voGUB7ZLl3boLVjRv/2zLGxeWPU72dlyr06zWGhOvDChq
QHiRATJ0JLlWhqTfdqClAMaUOB6tEA2LXwXZHPenI9eBalC551ywKzaasVTy6Umv
1t+9puTn4Vi+H4eTYg/IAb6jbY6pQe2uXoFScsA0KkC1OHyiqBNvz6LYeUv8N1tS
jbgI2jNvA+XggF2WSfmAnz/u0ND0Vg3tNLj/hmjof7iTAneSUjejwvXemptYx4CQ
YRwxE167ZbawtXHT+HVJGbT6mQN9g0sdvD7rekRguW1mpCfluq/WPPF2AO76rA1q
mTcqAZDgM+G0wBdf1N+m
=nyGO
-----END PGP SIGNATURE-----

[-- Attachment #2: 0001-perl-modules.eclass-Separate-phases-and-helpers-into.patch --]
[-- Type: text/x-patch, Size: 17824 bytes --]

From 8a697f9fc2040571df94b5403c4892d7a103b204 Mon Sep 17 00:00:00 2001
From: "Andreas K. Huettel (dilfridge)" <dilfridge@gentoo.org>
Date: Sun, 22 Nov 2015 21:52:23 +0100
Subject: [PATCH] perl-modules.eclass: Separate phases and helpers into two
 eclasses

---
 eclass/perl-functions.eclass | 252 +++++++++++++++++++++++++++++++++++++++++++
 eclass/perl-module.eclass    | 230 +--------------------------------------
 2 files changed, 256 insertions(+), 226 deletions(-)
 create mode 100644 eclass/perl-functions.eclass

diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass
new file mode 100644
index 0000000..7ba47d1
--- /dev/null
+++ b/eclass/perl-functions.eclass
@@ -0,0 +1,252 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# @ECLASS: perl-functions.eclass
+# @MAINTAINER:
+# perl@gentoo.org
+# @AUTHOR:
+# Seemant Kulleen <seemant@gentoo.org>
+# Andreas K. Huettel <dilfridge@gentoo.org>
+# @BLURB: helper functions eclass for perl modules
+# @DESCRIPTION:
+# The perl-functions eclass is designed to allow easier installation of perl
+# modules, and their incorporation into the Gentoo Linux system.
+# It provides helper functions, no phases or variable manipulation in
+# global scope.
+
+[[ ${CATEGORY} == "perl-core" ]] && inherit alternatives
+
+case "${EAPI:-0}" in
+	5)
+		;;
+	*)
+		die "EAPI=${EAPI} is not supported by perl-functions.eclass"
+		;;
+esac
+
+perlinfo_done=false
+
+# @FUNCTION: perl_set_version
+# @USAGE: perl_set_version
+# @DESCRIPTION:
+# Extract version information and installation paths from the current Perl 
+# interpreter. 
+#
+# This sets the following variables: PERL_VERSION, SITE_ARCH, SITE_LIB, 
+# ARCH_LIB, VENDOR_LIB, VENDOR_ARCH
+#
+# This function used to be called perlinfo as well.
+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}
+}
+
+# @FUNCTION: perl_delete_localpod
+# @USAGE: perl_delete_localpod
+# @DESCRIPTION:
+# Remove stray perllocal.pod files in the temporary install directory D.
+#
+# This function used to be called fixlocalpod as well.
+perl_delete_localpod() {
+	debug-print-function $FUNCNAME "$@"
+
+	find "${D}" -type f -name perllocal.pod -delete
+	find "${D}" -depth -mindepth 1 -type d -empty -delete
+}
+
+# @FUNCTION: perl_fix_osx_extra
+# @USAGE: perl_fix_osx_extra
+# @DESCRIPTION:
+# Look through ${S} for AppleDouble encoded files and get rid of them.
+perl_fix_osx_extra() {
+	debug-print-function $FUNCNAME "$@"
+
+	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}/}
+		grep -q "${f}" "${S}"/MANIFEST && \
+			elog "AppleDouble encoded Macintosh file in MANIFEST: ${f#${S}/}"
+	done
+}
+
+# @FUNCTION: perl_delete_module_manpages
+# @USAGE: perl_delete_module_manpages
+# @DESCRIPTION:
+# Bump off manpages installed by the current module such as *.3pm files as well
+# as empty directories.
+perl_delete_module_manpages() {
+	debug-print-function $FUNCNAME "$@"
+
+	if [[ -d "${ED}"/usr/share/man ]] ; then
+		find "${ED}"/usr/share/man -type f -name "*.3pm" -delete
+		find "${ED}"/usr/share/man -depth -type d -empty -delete
+	fi
+}
+
+# @FUNCTION: perl_delete_packlist
+# @USAGE: perl_delete_packlist
+# @DESCRIPTION:
+# Look through ${D} for .packlist files, empty .bs files and empty directories,
+# and get rid of items found.
+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}" -depth -mindepth 1 -type d -empty -delete
+	fi
+}
+
+# @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 `/'.
+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
+}
+
+# @FUNCTION: perl_rm_files
+# @USAGE: perl_rm_files "file_1" "file_2"
+# @DESCRIPTION:
+# Remove certain files from a Perl release and remove them from the MANIFEST
+# while we're there.
+#
+# Most useful in src_prepare for nuking bad tests, and is highly recommended
+# for any tests like 'pod.t', 'pod-coverage.t' or 'kwalitee.t', as what they
+# test is completely irrelevant to end users, and frequently fail simply
+# because the authors of Test::Pod... changed their recommendations, and thus
+# failures are only useful feedback to Authors, not users.
+#
+# Removing from MANIFEST also avoids needless log messages warning
+# users about files "missing from their kit".
+perl_rm_files() {
+	debug-print-function $FUNCNAME "$@"
+	local skipfile="${T}/.gentoo_makefile_skip"
+	local manifile="${S}/MANIFEST"
+	local manitemp="${T}/.gentoo_manifest_temp"
+	oldifs="$IFS"
+	IFS="\n"
+	for filename in "$@"; do
+		einfo "Removing un-needed ${filename}";
+		# Remove the file
+		rm -f "${S}/${filename}"
+		[[ -e "${manifile}" ]] && echo "${filename}" >> "${skipfile}"
+	done
+	if [[ -e "${manifile}" && -e "${skipfile}" ]]; then
+		einfo "Fixing Manifest"
+		grep -v -F -f "${skipfile}" "${manifile}" > "${manitemp}"
+		mv -f -- "${manitemp}" "${manifile}"
+		rm -- "${skipfile}";
+	fi
+	IFS="$oldifs"
+}
+
+# @FUNCTION: perl_link_duallife_scripts
+# @USAGE: perl_link_duallife_scripts
+# @DESCRIPTION:
+# Moves files and generates symlinks so dual-life packages installing scripts do not
+# lead to file collisions. Mainly for use in pkg_postinst and pkg_postrm, and makes 
+# only sense for perl-core packages.
+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
+
+	local i ff
+	if has "${EBUILD_PHASE:-none}" "postinst" "postrm" ; then
+		for i in "${DUALLIFESCRIPTS[@]}" ; do
+			alternatives_auto_makesym "/${i}" "/${i}-[0-9]*"
+		done
+		for i in "${DUALLIFEMAN[@]}" ; do
+			ff=`echo "${EROOT}"/${i%.1}-${PV}-${P}.1*`
+			ff=${ff##*.1}
+			alternatives_auto_makesym "/${i}${ff}" "/${i%.1}-[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##*/}
+			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
+			DUALLIFEMAN[${#DUALLIFEMAN[*]}]=${i}
+		done
+		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."
+}
diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass
index 341fa89..5a476d2 100644
--- a/eclass/perl-module.eclass
+++ b/eclass/perl-module.eclass
@@ -7,13 +7,15 @@
 # perl@gentoo.org
 # @AUTHOR:
 # Seemant Kulleen <seemant@gentoo.org>
+# Andreas K. Huettel <dilfridge@gentoo.org>
 # @BLURB: eclass for perl modules
 # @DESCRIPTION:
 # The perl-module eclass is designed to allow easier installation of perl
 # modules, and their incorporation into the Gentoo Linux system.
+# All exported functions from perl-functions.eclass (inherited here)
+# explicitly also belong to the interface of perl-module.eclass.
 
-inherit eutils multiprocessing unpacker
-[[ ${CATEGORY} == "perl-core" ]] && inherit alternatives
+inherit eutils multiprocessing unpacker perl-functions
 
 PERL_EXPF="src_unpack src_prepare src_configure src_compile src_test src_install"
 
@@ -321,227 +323,3 @@ perl-module_pkg_postrm() {
 	fi
 	perl_link_duallife_scripts
 }
-
-# @FUNCTION: perl_set_version
-# @USAGE: perl_set_version
-# @DESCRIPTION:
-# Extract version information and installation paths from the current Perl 
-# interpreter. 
-#
-# This sets the following variables: PERL_VERSION, SITE_ARCH, SITE_LIB, 
-# ARCH_LIB, VENDOR_LIB, VENDOR_ARCH
-#
-# This function used to be called perlinfo as well.
-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}
-}
-
-# @FUNCTION: perl_delete_localpod
-# @USAGE: perl_delete_localpod
-# @DESCRIPTION:
-# Remove stray perllocal.pod files in the temporary install directory D.
-#
-# This function used to be called fixlocalpod as well.
-perl_delete_localpod() {
-	debug-print-function $FUNCNAME "$@"
-
-	find "${D}" -type f -name perllocal.pod -delete
-	find "${D}" -depth -mindepth 1 -type d -empty -delete
-}
-
-# @FUNCTION: perl_fix_osx_extra
-# @USAGE: perl_fix_osx_extra
-# @DESCRIPTION:
-# Look through ${S} for AppleDouble encoded files and get rid of them.
-perl_fix_osx_extra() {
-	debug-print-function $FUNCNAME "$@"
-
-	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}/}
-		grep -q "${f}" "${S}"/MANIFEST && \
-			elog "AppleDouble encoded Macintosh file in MANIFEST: ${f#${S}/}"
-	done
-}
-
-# @FUNCTION: perl_delete_module_manpages
-# @USAGE: perl_delete_module_manpages
-# @DESCRIPTION:
-# Bump off manpages installed by the current module such as *.3pm files as well
-# as empty directories.
-perl_delete_module_manpages() {
-	debug-print-function $FUNCNAME "$@"
-
-	if [[ -d "${ED}"/usr/share/man ]] ; then
-		find "${ED}"/usr/share/man -type f -name "*.3pm" -delete
-		find "${ED}"/usr/share/man -depth -type d -empty -delete
-	fi
-}
-
-# @FUNCTION: perl_delete_packlist
-# @USAGE: perl_delete_packlist
-# @DESCRIPTION:
-# Look through ${D} for .packlist files, empty .bs files and empty directories,
-# and get rid of items found.
-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}" -depth -mindepth 1 -type d -empty -delete
-	fi
-}
-
-# @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 `/'.
-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
-}
-
-# @FUNCTION: perl_rm_files
-# @USAGE: perl_rm_files "file_1" "file_2"
-# @DESCRIPTION:
-# Remove certain files from a Perl release and remove them from the MANIFEST
-# while we're there.
-#
-# Most useful in src_prepare for nuking bad tests, and is highly recommended
-# for any tests like 'pod.t', 'pod-coverage.t' or 'kwalitee.t', as what they
-# test is completely irrelevant to end users, and frequently fail simply
-# because the authors of Test::Pod... changed their recommendations, and thus
-# failures are only useful feedback to Authors, not users.
-#
-# Removing from MANIFEST also avoids needless log messages warning
-# users about files "missing from their kit".
-perl_rm_files() {
-	debug-print-function $FUNCNAME "$@"
-	local skipfile="${T}/.gentoo_makefile_skip"
-	local manifile="${S}/MANIFEST"
-	local manitemp="${T}/.gentoo_manifest_temp"
-	oldifs="$IFS"
-	IFS="\n"
-	for filename in "$@"; do
-		einfo "Removing un-needed ${filename}";
-		# Remove the file
-		rm -f "${S}/${filename}"
-		[[ -e "${manifile}" ]] && echo "${filename}" >> "${skipfile}"
-	done
-	if [[ -e "${manifile}" && -e "${skipfile}" ]]; then
-		einfo "Fixing Manifest"
-		grep -v -F -f "${skipfile}" "${manifile}" > "${manitemp}"
-		mv -f -- "${manitemp}" "${manifile}"
-		rm -- "${skipfile}";
-	fi
-	IFS="$oldifs"
-}
-
-# @FUNCTION: perl_link_duallife_scripts
-# @USAGE: perl_link_duallife_scripts
-# @DESCRIPTION:
-# Moves files and generates symlinks so dual-life packages installing scripts do not
-# lead to file collisions. Mainly for use in pkg_postinst and pkg_postrm, and makes 
-# only sense for perl-core packages.
-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
-
-	local i ff
-	if has "${EBUILD_PHASE:-none}" "postinst" "postrm" ; then
-		for i in "${DUALLIFESCRIPTS[@]}" ; do
-			alternatives_auto_makesym "/${i}" "/${i}-[0-9]*"
-		done
-		for i in "${DUALLIFEMAN[@]}" ; do
-			ff=`echo "${EROOT}"/${i%.1}-${PV}-${P}.1*`
-			ff=${ff##*.1}
-			alternatives_auto_makesym "/${i}${ff}" "/${i%.1}-[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##*/}
-			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
-			DUALLIFEMAN[${#DUALLIFEMAN[*]}]=${i}
-		done
-		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."
-}
-- 
2.6.3


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-11-28  0:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-28  0:25 [gentoo-dev] Introducing perl-functions.eclass Andreas K. Huettel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox