[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 8d9b2b281577717bb223f50b24f57ed4eaebd56c Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 09:58:36 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:34 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=8d9b2b28 perl-functions.eclass: Add a new (not in ::gentoo) perl_check_eapi function eclass/perl-functions.eclass | 54 1 file changed, 54 insertions(+) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index b189ff32c..21fe60592 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -686,3 +686,57 @@ perl_domodule() { insinto "/${target#/}" doins "${doins_opts[@]}" "${files[@]}" } + +# @FUNCTION: perl_check_eapi +# @DESCRIPTION: +# Checks a blacklist of known-suspect eclass variables which can be accidentally set +# by maintainers, or may be accidentally left residual after an EAPI change. +# +# Dies if any of the suspect fields are found, and tell the user that the ebuild in question +# is broken and needs a fix. +# +# There's a workaround, but you'll have to read the code for it. +perl_check_eapi() { + local errored value; + local suspect_vars=(); + + # Secret sauce to inhibit this check + [[ -n "${_EAPI_PERL_MODULE_PERMISSIVE}" ]] && return; + + if [[ ${EAPI:-0} == 5 ]]; then + suspect_vars=( DIST_TEST DIST_VERSION DIST_NAME DIST_AUTHOR DIST_A_EXT DIST_A DIST_SECTION DIST_EXAMPLES ); + else + suspect_vars=( MY_PN MY_PV MODULE_VERSION MY_P MODULE_A MODULE_A_EXT MODULE_AUTHOR MODULE_NAME SRC_TEST MODULE_SECTION ); + fi + for i in "${suspect_vars[@]}"; do + [[ -v $i ]] || continue; + + # Add heading once and only once + if [[ ${errored:-0} == 0 ]]; then + if [[ -n "${I_KNOW_WHAT_I_AM_DOING}" ]]; then + elog "perl-module.eclass: Suspicious EAPI${EAPI:-0} eclass variables found."; + else + eerror "perl-module.eclass: Suspicious EAPI${EAPI:-0} eclass variables found."; + fi + fi + + errored=1 + # Print ENV name/value pair + if [[ -n "${I_KNOW_WHAT_I_AM_DOING}" ]]; then + elog "${i}=\"${!i}\""; + else + eerror "${i}=\"${!i}\""; + 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 ebuild/env contains eclass variables that are known invalid/legacy and indicate author oversight." + die "Please file a bug for this ebuild as per above details." +}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: fe459db9888c8b04007820d488349b05edaf3a61 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:41:31 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:34 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=fe459db9 perl-module.eclass: src_configure: remove skip-src-configure logic outside EAPI5 eclass/perl-module.eclass | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index aea9a2230..860546698 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -212,7 +212,9 @@ perl-module_src_prepare() { perl-module_src_configure() { debug-print-function $FUNCNAME "$@" - [[ ${SRC_PREP} = yes ]] && return 0 + if [[ ${EAPI:-0} == 5 && ${SRC_PREP} == yes ]]; then + return 0 + fi SRC_PREP="yes" perl_check_env
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: ed840e0aa89638422581bd62a0985ba524873f3d Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 03:56:30 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:38 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=ed840e0a perl-functions.eclass: Add internal option decoder for eapi6 This is much more like the version in ::gentoo eclass/perl-functions.eclass | 44 1 file changed, 44 insertions(+) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 28657799f..194bbc820 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -783,3 +783,47 @@ _perl_get_test_opts_eapi5() { return } +# Internal: EAPI6 Implementation of probe, mostly the same mechanics +# as ::gentoo, with exception of explicit fail for network-required +_perl_get_test_opts_eapi6() { + local can_test=1 + local is_parallel=1 + local is_verbose=0 + local is_network=0 + local my_test_control + debug-print-function $FUNCNAME "$@" + + [[ -n "${DIST_TEST_OVERRIDE}" ]] && ewarn DIST_TEST_OVERRIDE is set to ${DIST_TEST_OVERRIDE} + my_test_control="${DIST_TEST_OVERRIDE:-${DIST_TEST:-do parallel}}" + + if ! has 'do' ${my_test_control} && ! has 'parallel' ${my_test_control}; then + ewarn "Skipping tests due to DIST_TEST=${my_test_control}" + can_test=0 + elif has 'network-required' ${my_test_control}; then + # "do parallel network-required" -> Bail still , but please just write "network-required" + # for compat with ::gentoo + ewarn "Skipping tests due to DIST_TEST=${my_test_control}" + can_test=0 + else + if ! has 'parallel' ${my_test_control}; then + is_parallel=0 + fi + if has 'verbose' ${my_test_control}; then + is_verbose=1 + fi + if has 'network' ${my_test_control}; then + ewarn "Network tests enabled due to DIST_TEST=${my_test_control}" + is_network=1 + fi + fi + if [[ ${can_test} == 0 ]]; then + printf "skip\n" + return + fi + printf "test " + [[ ${is_parallel} == 1 ]] && printf "parallel " + [[ ${is_verbose} == 1 ]] && printf "verbose " + [[ ${is_network} == 1 ]] && printf "network " + printf "\n" + return +}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 7b90583916bc9d40af69abda084341fd2ee9450c Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:37:34 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:33 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=7b905839 perl-module.eclass: remove defaults for SRC_TEST and perlinfo_done eclass/perl-module.eclass | 2 -- 1 file changed, 2 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 27afac97e..c07599eab 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -169,11 +169,9 @@ else fi SRC_PREP="no" -SRC_TEST="skip" PREFER_BUILDPL="yes" pm_echovar="" -perlinfo_done=false # @FUNCTION: perl-module_src_unpack # @DESCRIPTION:
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 11e52068ff5158fdf6aaae7482441b306748ef45 Author: Kent Fredric gentoo org> AuthorDate: Fri Sep 15 20:54:10 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:37 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=11e52068 perl-module.eclass: run perl_check_eapi in src_configure I had to think long and hard about where to put this :/ Putting it where it should be logically: * pkg_setup: Downsides: new phase function people won't expect to be there Downsides: makes extra work for the common definition of pkg_setup * src_unpack: Downsides: Same as pkg_setup * src_pretend: Downsides: Too early Downsides: makes all perl modules slow to install * global Downsides: makes metadata collection very slow Downsides: risks running too much code in global scope * src_configre: Downsides: risks only discovering the bug after shipping However, the case of the last one dictates that the maintainer did significant changes, and then never even compile tested it. Maintainer rightly gets a rap over the knuckles and such things should never be stable eclass/perl-module.eclass | 1 + 1 file changed, 1 insertion(+) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 3b4971389..5789d96bf 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -228,6 +228,7 @@ perl-module_src_configure() { fi SRC_PREP="yes" + perl_check_eapi perl_check_env perl_set_version
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 06649f5912fc007c582b782d0455b6a03dedaaf1 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 05:49:45 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:33 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=06649f59 perl-module.eclass: sync EAPI + GENTOO_DEPEND_ON_PERL and DIST_(X) logic eclass/perl-module.eclass | 147 +++--- 1 file changed, 114 insertions(+), 33 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 9f3f7a28a..27afac97e 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -40,52 +40,133 @@ esac # slot operator (EAPI=6). All packages installing into the vendor_perl # path must use yes here. -case "${GENTOO_DEPEND_ON_PERL:-yes}" in -yes) - case "${GENTOO_DEPEND_ON_PERL_SUBSLOT:-yes}" in - yes) - DEPEND="dev-lang/perl:=[-build(-)]" - ;; - *) - DEPEND="dev-lang/perl[-build(-)]" +case ${EAPI:-0} in + 5) + [[ ${CATEGORY} == perl-core ]] && \ + PERL_EXPF+=" pkg_postinst pkg_postrm" + + case "${GENTOO_DEPEND_ON_PERL:-yes}" in + yes) + case "${GENTOO_DEPEND_ON_PERL_SUBSLOT:-yes}" in + yes) + DEPEND="dev-lang/perl:=[-build(-)]" + ;; + *) + DEPEND="dev-lang/perl[-build(-)]" + ;; + esac + RDEPEND="${DEPEND}" + ;; + esac + + case "${PERL_EXPORT_PHASE_FUNCTIONS:-yes}" in + yes) + EXPORT_FUNCTIONS ${PERL_EXPF} + ;; + no) + debug-print "PERL_EXPORT_PHASE_FUNCTIONS=no" + ;; + *) + die "PERL_EXPORT_PHASE_FUNCTIONS=${PERL_EXPORT_PHASE_FUNCTIONS} is not supported by perl-module.eclass" + ;; + esac ;; - esac - RDEPEND="${DEPEND}" - ;; -esac + 6) + [[ ${CATEGORY} == perl-core ]] && \ + PERL_EXPF+=" pkg_postinst pkg_postrm" + + case "${GENTOO_DEPEND_ON_PERL:-yes}" in + yes) + DEPEND="dev-lang/perl:=" + RDEPEND="dev-lang/perl:=" + ;; + noslotop) + DEPEND="dev-lang/perl" + RDEPEND="dev-lang/perl" + ;; + esac -if [[ -z "${MODULE_VERSION}" && -n "${MODULE_VERSION_SCHEME}" ]]; then - inherit perl-version - MODULE_VERSION=$( perl-version-denormalize ${MY_PV:-${PV}} $MODULE_VERSION_SCHEME ) -fi + if [[ "${GENTOO_DEPEND_ON_PERL_SUBSLOT:-yes}" != "yes" ]]; then + eerror "GENTOO_DEPEND_ON_PERL_SUBSLOT=no is banned in EAPI=6. If you don't want a slot operator" + die"set GENTOO_DEPEND_ON_PERL=noslotop instead." + fi + + if [[ "${PERL_EXPORT_PHASE_FUNCTIONS}" ]]; then + eerror "PERL_EXPORT_PHASE_FUNCTIONS is banned in EAPI=6. Use perl-module.eclass if you need" + die"phase functions, perl-functions.eclass if not." + fi -case "${PERL_EXPORT_PHASE_FUNCTIONS:-yes}" in - yes) EXPORT_FUNCTIONS ${PERL_EXPF} ;; - no) - debug-print "PERL_EXPORT_PHASE_FUNCTIONS=no" - ;; *) - die "PERL_EXPORT_PHASE_FUNCTIONS=${PERL_EXPORT_PHASE_FUNCTIONS} is not supported by perl-module.eclass" + die "EAPI=${EAPI:-0} is not supported by perl-module.eclass" ;; esac LICENSE="${LICENSE:-|| ( Artistic GPL-1+ )}" -if [[ -n ${MY_PN} || -n ${MY_PV} || -n ${MODULE_VERSION} ]] ; then - : ${MY_P:=${MY_PN:-${PN}}-${MY_PV:-${MODULE_VERSION:-${PV - S=${MY_S:-${WORKDIR}/${MY_P}} -fi +# @ECLASS-VARIABLE: DIST_NAME +# @DESCRIPTION: +# (EAPI=6) This variable provides a way to override PN for the calculation of S, +# SRC_URI, and HOMEPAGE. Defaults to PN. + +# @ECLASS-VARIABLE: DIST_VERSION +# @DESCRIPTION: +# (EAPI=6) This variable provides a way to override PV for the calculation of S and SRC_URI. +# Use it to provide the non-normalized, upstream version number. Defaults to PV. +# Named MODULE_VERSION in EAPI=5. + +# @ECLASS-VARIABLE: DIST_A_EXT +# @DESCRIPTION: +# (EAPI=6) This variable provides a way to override the distfile extension for the calculation of +# SRC_URI. Defaults to
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: eb040de5e03592c3aa264772942612abe67325d2 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:44:52 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:34 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=eb040de5 perl-module.eclass: Stop deleting packlists past EAPI5 eclass/perl-module.eclass | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 864ea8474..18e559d68 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -413,7 +413,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
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 0e14c664b964314a0a4830100ac63b3d604c27ab Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 03:56:30 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:38 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=0e14c664 perl-functions.eclass: Add (not in ::gentoo) perl_get_test_opts function eclass/perl-functions.eclass | 35 +++ 1 file changed, 35 insertions(+) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 194bbc820..1c40dac61 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -827,3 +827,38 @@ _perl_get_test_opts_eapi6() { printf "\n" return } + +# @FUNCTION: perl_get_test_opts +# @DESCRIPTION: +# Decodes a dizzying collection of options and returns a list of flags +# Returns a list of the following possible strings +# skip: tests should be skipped +# test: tests should run +# parallel: tests should run in parallel +# verbose : tests should be run verbosely +# network : network tests should run +# +# On first invocation, any atypical configurations will be ewarn'd about +# and then cached in perl_test_opts +# +# @CODE +# local opts="$(perl_get_test_opts)" +# if has verbose ${opts}; then +# ... +# fi +# if has network ${opts}; then +# ... +# fi +# @CODE +perl_get_test_opts() { + debug-print-function $FUNCNAME "$@" + + if [[ ! -v _perl_test_opts ]]; then + if [[ ${EAPI:-0} == 5 ]]; then + _perl_test_opts="$(_perl_get_test_opts_eapi5)" + else + _perl_test_opts="$(_perl_get_test_opts_eapi6)" + fi + fi + echo "${_perl_test_opts}" +}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: afb03689efd0c191928ecf021b0f70fca1dce9d4 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 05:47:35 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:32 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=afb03689 perl-module.eclass: sync EAPI-support and inherit logic eclass/perl-module.eclass | 20 +++- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 96d4c587c..9f3f7a28a 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -17,15 +17,17 @@ # ExtUtils::MakeMaker or Module::Build), we recommend to use perl-functions.eclass # instead. -inherit eutils multiprocessing unpacker perl-functions -[[ ${CATEGORY} == "perl-core" ]] && inherit alternatives - -PERL_EXPF="src_unpack src_compile src_test src_install src_prepare src_configure" -[[ ${CATEGORY} == "perl-core" ]] && PERL_EXPF+=" pkg_postinst pkg_postrm" - -case "${EAPI:-0}" in - 5) ;; - *) die "EAPI=${EAPI} is not supported by perl-module.eclass" +case ${EAPI:-0} in + 5) + inherit eutils multiprocessing unpacker perl-functions + PERL_EXPF="src_unpack src_prepare src_configure src_compile src_test src_install" + ;; + 6) + inherit multiprocessing perl-functions + PERL_EXPF="src_prepare src_configure src_compile src_test src_install" + ;; + *) + die "EAPI=${EAPI} is not supported by perl-module.eclass" ;; esac
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 827cfafd22e458208ed384e48e71e57c9c333b05 Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 06:25:35 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:38 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=827cfafd perl-module.eclass: Reimplement src_test using perl_has_test_opt eclass/perl-module.eclass | 77 ++- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 5789d96bf..d94a3d554 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -316,7 +316,8 @@ perl-module_src_compile() { fi } -# Starting 2014-10-12: +# Historical notes for EAPI5 only on perl-experimental +# Starting 2014-10-12 # # AUTHORS: # @@ -344,51 +345,59 @@ perl-module_src_compile() { # SRC_TEST: #No longer used and completely ignored +# @ECLASS-VARIABLE: DIST_TEST +# @DESCRIPTION: +# (EAPI=6) Variable that controls if tests are run in the test phase +# at all, and if yes under which conditions. Defaults to "do parallel" +# If neither "do" nor "parallel" is recognized, tests are skipped. +# (In EAPI=5 the variable is called SRC_TEST, defaults to "skip", and +# recognizes fewer options.) +# The following space-separated keywords are recognized: +# do : run tests +# parallel : run tests in parallel +# verbose : increase test verbosity +# network : do not try to disable network tests + +# @ECLASS-VARIABLE: DIST_TEST_OVERRIDE +# @DEFAULT_UNSET +# @DESCRIPTION: +# (EAPI=6) Variable that controls if tests are run in the test phase +# at all, and if yes under which conditions. It is intended for use in +# make.conf or the environment by ebuild authors during testing, and +# accepts the same values as DIST_TEST. If set, it overrides DIST_TEST +# completely. DO NOT USE THIS IN EBUILDS! + +# @FUNCTION: perl-module_src-test +# @DESCRIPTION: +# This code attempts to work out your threadingness and runs tests +# according to the settings of DIST_TEST using Test::Harness. perl-module_src_test() { debug-print-function $FUNCNAME "$@" + local my_test_verbose=0 - # Turn it off globally per user choice. - if has 'parallel-test' ${USER_PERL_RESTRICT}; then - einfo "Disabling Parallel Testing: USER_PERL_RESTRICT=parallel-test"; - export HARNESS_OPTIONS=""; - - # If user has TEST_VERBOSE globally, disable parallelism because verboseness - # can break parallel testing. - elif ! has "${TEST_VERBOSE:-0}" 0; then - einfo "Disabling Parallel Testing: TEST_VERBOSE=${TEST_VERBOSE}"; - export HARNESS_OPTIONS=""; - - # If ebuild says parallel tests dont work, turn them off. - elif has 'parallel-test' ${PERL_RESTRICT}; then - einfo "Disabling Parallel Testing: PERL_RESTRICT=parallel-test"; - export HARNESS_OPTIONS=""; - else - # Default is on. + + if perl_has_test_opt skip; then + return; + fi + + perl_has_test_opt verbose && my_test_verbose=1 + + if perl_has_test_opt parallel; then einfo "Test::Harness Jobs=$(makeopts_jobs)" export HARNESS_OPTIONS=j$(makeopts_jobs) + else + export HARNESS_OPTIONS="" fi - # If a user says "USER_PERL_RESTRICT=network-test", - # then assume many CPAN dists will respect NO_NETWORK_TESTING and friends - # even if Gentoo haven't made the entire dist "no network testing" - if has 'network-test' ${USER_PERL_RESTRICT}; then + if ! perl_has_test_opt network; then export NO_NETWORK_TESTING=1 fi - # However, if CPAN don't auto trigger on the above, Gentoo - # Can still disable them package wide with PERL_RESTRICT=network-test - # But they'll run by default unless USER_PERL_RESTRICT=network-test - if has 'network-test' ${USER_PERL_RESTRICT} && has 'network-test' ${PERL_RESTRICT}; then - einfo "Skipping Tests: USER_PERL_RESTRICT=network-test && PERL_RESTRICT=network-test"; - return true; - fi - - ${perlinfo_done} || perl_set_version - + perl_set_version if [[ -f Build ]] ; then - ./Build test verbose=${TEST_VERBOSE:-0} || die "test failed" + ./Build test verbose=${my_test_verbose} || die "test failed" elif [[ -f Makefile ]] ; then - emake test TEST_VERBOSE=${TEST_VERBOSE:-0} || die "test failed" + emake test TEST_VERBOSE=${my_test_verbose} || die "test failed" fi }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: ca7426cf1432dfc74331d2f106dfe3da2999bed8 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:42:12 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:34 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=ca7426cf perl-module.eclass: Tell Build.PL to create packlists eclass/perl-module.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 860546698..31afa6dc8 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -251,7 +251,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}" \
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: a02c6eaf26f440d9cdca673672f7cccf3fc1535f Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 02:12:17 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:37 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=a02c6eaf perl-functions.eclass: add internal option-decoder for eapi5 This is an internal function that produces a canonical option string as per EAPI5 as per the deviated API I introduced on overlay eclass/perl-functions.eclass | 43 +++ 1 file changed, 43 insertions(+) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 21fe60592..28657799f 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -740,3 +740,46 @@ perl_check_eapi() { eerror "Your ebuild/env contains eclass variables that are known invalid/legacy and indicate author oversight." die "Please file a bug for this ebuild as per above details." } + +# Internal: this is specific to EAPI5 on the overlay +_perl_get_test_opts_eapi5() { + local can_test=1 + local is_parallel=1 + local is_verbose=0 + local is_network=1 + debug-print-function $FUNCNAME "$@" + + if has 'parallel-test' ${USER_PERL_RESTRICT}; then + ewarn "Parallel tests disabled via USER_PERL_RESTRICT=parallel-test" + is_parallel=0 + elif ! has "${TEST_VERBOSE:-0}" 0; then + ewarn "Parallel tests disabled via TEST_VERBOSE=1" + ewarn "Verbose tests enabled via TEST_VERBOSE=1" + is_verbose=1 + is_parallel=0 + elif has 'parallel-test' ${PERL_RESTRICT}; then + ewarn "Parallel tests disabled via PERL_RESTRICT=parallel-test" + is_parallel=0 + fi + + if has 'network-test' ${USER_PERL_RESTRICT} && has 'network-test' ${PERL_RESTRICT}; then + ewarn "Tests disabled via USER_PERL_RESTRICT & PERL_RESTRICT = network-test" + can_test=0 + elif has 'network-test' ${USER_PERL_RESTRICT}; then + ewarn "Network tests disabled via USER_PERL_RESTRICT=network-test" + is_network=0 + fi + + if [[ ${can_test} == 0 ]]; then + printf "skip\n" + return; + fi + + printf "test " + [[ ${is_parallel} == 1 ]] && printf "parallel " + [[ ${is_verbose} == 1 ]] && printf "verbose " + [[ ${is_network} == 1 ]] && printf "network " + printf "\n" + return +} +
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 813980f0ceafc5816f556387d4332fdd78b9f2a4 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:46:03 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:35 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=813980f0 perl-module.eclass: Fatalize pkg_postrm outside perl-core eclass/perl-module.eclass | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index bce191e76..c68d13173 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -452,10 +452,8 @@ perl-module_pkg_postinst() { perl-module_pkg_postrm() { debug-print-function $FUNCNAME "$@" 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" "$FUNCNAME is private to perl-core" - return 0 + eerror "perl-module.eclass: You are calling perl-module_pkg_postrm outside the perl-core category." + die" This does not do anything; the call can be removed." fi perl_link_duallife_scripts }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 91fd2768eb6b0df7aefdd43b7a41d707ccdb7a55 Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 06:33:42 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:39 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=91fd2768 perl-functions.eclass: sync duallife scripts implementation from ::gentoo eclass/perl-functions.eclass | 26 +- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index ee90324e2..e37cf1e53 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -280,43 +280,27 @@ perl_link_duallife_scripts() { return 0 fi - local i ff execdir mandir - - execdir="usr/share/perl-${P}/bin" - mandir="usr/share/perl-${P}/man/man1" - + local i ff 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 - # 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=`echo "${EROOT}"/${i%.1}-${PV}-${P}.1*` ff=${ff##*.1} - alternatives_auto_makesym "/${i%.1}-${PV}.1${ff}" "${EROOT}${mandir}/${i##*/}${ff}" - alternatives_auto_makesym "/${i}${ff}" "/${i%.1}-[0-9]*.1${ff}" + 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 - mkdir -p "${D}/${execdir}" || die - mv ${i} "${D}/${execdir}/${i##*/}" || die + 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 - mkdir -p "${D}/${mandir}" || die - mv ${i} "${D}/${mandir}/${i##*/}" || die + mv ${i} ${i%.1}-${PV}-${P}.1 || die DUALLIFEMAN[${#DUALLIFEMAN[*]}]=${i} done - - einfo "Cleaning empty directories" - perl_trim_empty_dirs "${EROOT}/usr/bin" - popd > /dev/null fi }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 6aad2715aa7be4d95218214023e8730ead0abd1c Author: Kent Fredric gentoo org> AuthorDate: Fri Sep 15 06:21:04 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:34 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=6aad2715 perl-module.eclass: Make Module-Build/Module-Build-Tiny deps fatal eclass/perl-module.eclass | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 31afa6dc8..f21e3a684 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -235,16 +235,14 @@ perl-module_src_configure() { 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!" - perl_qafatal "modulebuildtiny" "Needs to depend on Module-Build-Tiny" + eerror "QA Notice: The ebuild uses Module::Build::Tiny but doesn't depend on it." + die" Add dev-perl/Module-Build-Tiny to DEPEND!" fi else einfo "Using Module::Build" if [[ ${DEPEND} != *virtual/perl-Module-Build* && ${DEPEND} != *dev-perl/Module-Build* && ${PN} != Module-Build ]] ; then - eqawarn "QA Notice: The ebuild uses Module::Build but doesn't depend on it." - eqawarn " Add dev-perl/Module-Build to DEPEND!" - perl_qafatal "modulebuild" "Needs to depend on Module-Build" + eerror "QA Notice: The ebuild uses Module::Build but doesn't depend on it." + die" Add dev-perl/Module-Build to DEPEND!" fi fi set -- \
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 47de0a8955d04e02ef2cebd2b574417229c154f1 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:38:48 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:33 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=47de0a89 perl-module.eclass: ban direct use of perl-module_src_unpack in EAPI6 eclass/perl-module.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index c07599eab..6460e874a 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -179,7 +179,7 @@ pm_echovar="" # This function is to be called during the ebuild src_unpack() phase. perl-module_src_unpack() { debug-print-function $FUNCNAME "$@" - + [[ ${EAPI:-0} == 5 ]] || die "perl-module_src_unpack is banned in EAPI=6 or later" unpacker_src_unpack has src_prepare ${PERL_EXPF} || perl-module_src_prepare }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 60b86b0b85f41fe4a288410c27f928e27f987c4a Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 03:58:31 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:38 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=60b86b0b perl-functions.eclass: add (Not in ::gentoo) perl_has_test_opt function eclass/perl-functions.eclass | 27 +++ 1 file changed, 27 insertions(+) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 1c40dac61..45d4da617 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -862,3 +862,30 @@ perl_get_test_opts() { fi echo "${_perl_test_opts}" } + +# @FUNCTION: perl_has_test_opt +# @USAGE: +# @DESCRIPTION: +# Compute if a given test flag is enabled by computing a bunch of environment values +# +# See perl_get_test_opts for the various values and meanings +# +# @CODE +# src_test() { +# if ! perl_has_test_opt network; then +# ... +# fi +# perl-module_src_test +# } +# @CODE +perl_has_test_opt() { + debug-print-function $FUNCNAME "$@" + if [[ ! -v _perl_test_opts ]]; then + if [[ ${EAPI:-0} == 5 ]]; then + _perl_test_opts="$(_perl_get_test_opts_eapi5)" + else + _perl_test_opts="$(_perl_get_test_opts_eapi6)" + fi + fi + has "$1" ${_perl_test_opts} +}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: f473f7cbd4bb64ceb543e464565d2b536a3ecc0c Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:40:10 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:33 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=f473f7cb perl-module.eclass: src_prepare: use epatch_user in EAPI5, else, call default eclass/perl-module.eclass | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 0804c044e..21762adfc 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -189,10 +189,15 @@ perl-module_src_unpack() { # This function is to be called during the ebuild src_prepare() phase. perl-module_src_prepare() { debug-print-function $FUNCNAME "$@" - has src_prepare ${PERL_EXPF} && \ - [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}" - debug-print "$FUNCNAME: applying user patches" - epatch_user + + if [[ ${EAPI:-0} == 5 ]] ; then + [[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}" + debug-print "$FUNCNAME: applying user patches" + epatch_user + else + default + fi + if [[ ${PERL_RM_FILES[@]} ]]; then debug-print "$FUNCNAME: stripping unneeded files" perl_rm_files "${PERL_RM_FILES[@]}"
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 775dcb129011fbc2b30135ebe963791556fe7232 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:44:02 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:34 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=775dcb12 perl-module.eclass: Remove fallback src_configure calling because EAPI!=5 is gone eclass/perl-module.eclass | 2 -- 1 file changed, 2 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index f21e3a684..864ea8474 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -284,8 +284,6 @@ perl-module_src_compile() { debug-print-function $FUNCNAME "$@" perl_set_version - has src_configure ${PERL_EXPF} || perl-module_src_configure - if [[ $(declare -p mymake 2>&-) != "declare -a mymake="* ]]; then local mymake_local=(${mymake}) else
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 8a10fbbec5dcca39cd0680dd47add7925947a208 Author: Kent Fredric gentoo org> AuthorDate: Fri Sep 15 06:25:51 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:35 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=8a10fbbe perl-module.eclass: Add DIST_EXAMPLES support to EAPI6 eclass/perl-module.eclass | 17 + 1 file changed, 17 insertions(+) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index c68d13173..3b4971389 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -139,6 +139,15 @@ LICENSE="${LICENSE:-|| ( Artistic GPL-1+ )}" # SRC_URI. Only required in rare cases for very special snowflakes. # Named MODULE_SECTION in EAPI=5. +# @ECLASS-VARIABLE: DIST_EXAMPLES +# @DEFAULT_UNSET +# @DESCRIPTION: +# (EAPI=6) This Bash array allows passing a list of example files to be installed +# in /usr/share/doc/${PF}/examples. If set before inherit, automatically adds +# a use-flag examples, if not you'll have to add the useflag in your ebuild. +# Examples are installed only if the useflag examples exists and is activated. + + if [[ ${EAPI:-0} == 5 ]]; then if [[ -n ${MY_PN} || -n ${MY_PV} || -n ${MODULE_VERSION} ]] ; then : ${MY_P:=${MY_PN:-${PN}}-${MY_PV:-${MODULE_VERSION:-${PV @@ -166,6 +175,8 @@ else SRC_URI="mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${DIST_SECTION:+${DIST_SECTION}/}${DIST_A}" [[ -z "${HOMEPAGE}" ]] && \ HOMEPAGE="http://search.cpan.org/dist/${DIST_NAME}/; + + [[ -z "${DIST_EXAMPLES}" ]] || IUSE+=" examples" fi SRC_PREP="no" @@ -425,6 +436,12 @@ perl-module_src_install() { [[ -s ${f} ]] && dodoc ${f} done + if [[ ${EAPI:-0} != 5 ]] ; then + if in_iuse examples && use examples ; then +[[ ${#DIST_EXAMPLES[@]} -eq 0 ]] || perl_doexamples "${DIST_EXAMPLES[@]}" + fi + fi + perl_link_duallife_scripts }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 73a0bc56fb219717618f974a4f1d96ea9fde69c7 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:45:39 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:35 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=73a0bc56 perl-module.eclass: Fatalize pkg_postinst outside perl-core eclass/perl-module.eclass | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 18e559d68..bce191e76 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -437,10 +437,8 @@ perl-module_src_install() { perl-module_pkg_postinst() { debug-print-function $FUNCNAME "$@" 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" "$FUNCNAME is private to perl-core" - return 0 + eerror "perl-module.eclass: You are calling perl-module_pkg_postinst outside the perl-core category." + die" This does not do anything; the call can be removed." fi perl_link_duallife_scripts }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 86642470fc266b5f8a38ad591b67afd6e480e5ad Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:39:17 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:33 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=86642470 perl-module.eclass: stop calling src_prepare in src_unpack eclass/perl-module.eclass | 1 - 1 file changed, 1 deletion(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 6460e874a..0804c044e 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -181,7 +181,6 @@ perl-module_src_unpack() { debug-print-function $FUNCNAME "$@" [[ ${EAPI:-0} == 5 ]] || die "perl-module_src_unpack is banned in EAPI=6 or later" unpacker_src_unpack - has src_prepare ${PERL_EXPF} || perl-module_src_prepare } # @FUNCTION: perl-module_src_prepare
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: e7a58393c16d853a165ec56d2637d4c1649ff033 Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 21:59:56 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:39 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=e7a58393 perl-functions.eclass: Update check_module_version for EAPI6 eclass/perl-functions.eclass | 22 +- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index e37cf1e53..da444735b 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -57,7 +57,7 @@ perl_diagnostics() { eerror } -perl_check_module_version() { +_perl_check_module_version_eapi5() { local REAL_PV local gpmv="$(type -p gentoo-perlmod-version.pl)" [[ -n ${MODULE_VERSION} && -n ${gpmv} && -x ${gpmv} ]] || return @@ -69,6 +69,26 @@ perl_check_module_version() { fi } +_perl_check_module_version_eapi6() { + local REAL_PV + local gpmv="$(type -p gentoo-perlmod-version.pl)" + [[ -n ${DIST_VERSION} && -n ${gpmv} && -x ${gpmv} ]] || return + REAL_PV=$( ${gpmv} --oneshot "${DIST_VERSION}" ) + if [[ -n ${REAL_PV} && ${REAL_PV} != ${PV} ]] ; then + eqawarn "QA Notice: Based on DIST_VERSION=${DIST_VERSION} the ebuild version ${PV} is wrong!" + eqawarn " The ebuild version should be ${REAL_PV}" + perl_qafatal "version" "${REAL_PV} != ${PV}" + fi +} + +perl_check_module_version() { + debug-print-function $FUNCNAME "$@" + if [[ ${EAPI:-0} == 5 ]]; then + _perl_check_module_version_eapi5 + return + fi + _perl_check_module_version_eapi6 +} perlinfo_done=false # @FUNCTION: perl_set_version
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 85be8a2170d0a7e948ea1dcc7f8760fc0b63ba4a Author: Kent Fredric gentoo org> AuthorDate: Sat Sep 16 06:29:27 2017 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:39:38 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=85be8a21 perl-functions.eclass: Make PERL_RESTRICT suspect in EAPI6 eclass/perl-functions.eclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index 45d4da617..ee90324e2 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -706,7 +706,7 @@ perl_check_eapi() { if [[ ${EAPI:-0} == 5 ]]; then suspect_vars=( DIST_TEST DIST_VERSION DIST_NAME DIST_AUTHOR DIST_A_EXT DIST_A DIST_SECTION DIST_EXAMPLES ); else - suspect_vars=( MY_PN MY_PV MODULE_VERSION MY_P MODULE_A MODULE_A_EXT MODULE_AUTHOR MODULE_NAME SRC_TEST MODULE_SECTION ); + suspect_vars=( MY_PN MY_PV MODULE_VERSION MY_P MODULE_A MODULE_A_EXT MODULE_AUTHOR MODULE_NAME SRC_TEST MODULE_SECTION PERL_RESTRICT ); fi for i in "${suspect_vars[@]}"; do [[ -v $i ]] || continue;
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 1c9856f0a34d8538ebb3a20b7936b6a6a99bc200 Author: Kent Fredric gmail com> AuthorDate: Mon Apr 11 06:40:31 2016 + Commit: Kent Fredric gentoo org> CommitDate: Sun Sep 17 00:07:33 2017 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=1c9856f0 perl-module.eclass: src_prepare: stop calling esvn_clean eclass/perl-module.eclass | 1 - 1 file changed, 1 deletion(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 21762adfc..aea9a2230 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -203,7 +203,6 @@ perl-module_src_prepare() { perl_rm_files "${PERL_RM_FILES[@]}" fi perl_fix_osx_extra - esvn_clean } # @FUNCTION: perl-module_src_configure
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 58c48f826fda0d1d65dc0d5ffae7fbcb753a4edf Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Thu Jun 25 01:23:44 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Thu Jun 25 01:23:44 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=58c48f82 [eclass] Drop redundant calls to set_eprefix eclass/perl-module.eclass | 2 -- 1 file changed, 2 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 3c7702c..7ad2283 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -123,7 +123,6 @@ perl-module_src_configure() { perl_check_env perl_set_version - perl_set_eprefix [[ -z ${pm_echovar} ]] export PERL_MM_USE_DEFAULT=1 # Disable ExtUtils::AutoInstall from prompting @@ -298,7 +297,6 @@ perl-module_src_install() { debug-print-function $FUNCNAME $@ perl_set_version - perl_set_eprefix local f
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 94b98bb0d11bfda14193cdb9c01c4c10d6e6f7ba Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sun Jun 21 00:14:19 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sun Jun 21 00:23:28 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=94b98bb0 [eclass] Add perl-version.eclass which can turn normalised forms into floats eclass/perl-version.eclass | 91 ++ 1 file changed, 91 insertions(+) diff --git a/eclass/perl-version.eclass b/eclass/perl-version.eclass new file mode 100644 index 000..97022e2 --- /dev/null +++ b/eclass/perl-version.eclass @@ -0,0 +1,91 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# @ECLASS: perl-versions.eclass +# @MAINTAINER: +# p...@gentoo.org +# Kent Fredric ken...@cpan.org +# @BLURB: Perl versioning functions +# @DESCRIPTION: +# The perl-version eclass contains an assortment of functions for denormalizing versions +# in order to streamline version bumps and minimise risk of accidental failure to update +# MODULE_VERSION and unify all the ways of turning arbitrary normalised versions back into +# a form used upstream. + +# expand-tail 5 = 005 +# expand-tail 5.5 = 005005 +perl-version-expand-tail() { + local tail=$1 + if [ -z ${tail} ]; then + echo '000'; + return; + fi + # Tail with no segments + if [ ${tail%%.*} = ${tail} ]; then + printf %03d $tail + return; + fi + local head=${tail%%.*} + local rest=$( perl-version-expand-tail ${tail#*.} ) + printf %03d%s $head $rest; + return; +} + +# float 5.1 = 5.001 +# float 5.10 = 5.010 +# float 5.100 = 5.100 +# float 5.1.1 = 5.001001 +perl-version-float() { + local version=$1 + local major=${version%%.*} + local tail=${version#*.} + if [ $tail = $version ]; then + tail=000; + else + tail=$( perl-version-expand-tail ${tail} ) + fi + printf %s.%s $major $tail; + return; +} + +# float_n 5.201.505.200 8 = 5.20150520 +perl-version-float_n() { + local version=$1 + local mantissa=$2 + local major=${version%%.*} + if [ $mantissa -lt 1 ]; then + printf %s $major; + return; + fi + local tail=${version#*.} + if [ $tail = $version ]; then + tail=000; + else + tail=$( perl-version-expand-tail ${tail} ) + fi + if [ ${#tail} -lt $mantissa ]; then + local pad=$(( $mantissa - ${#tail} )); + printf %s.%s%0${pad}d ${major} ${tail} 0 + return + fi + printf %s.%s ${major} ${tail:0:$mantissa} +} + +# denormalize 5.201.505.200 float_n 8 = 5.20150520 +perl-version-denormalize() { + local version=$1; + local scheme=$2; + shift + shift + case ${scheme} in + float_n) + perl-version-float_n $version $@ + return + ;; + *) + die Unknown version scheme ${scheme} + ;; + esac +} +
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 4789b645559d63cf8ec771d76cd66f9fd7937db0 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sun Jun 21 00:24:35 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sun Jun 21 00:24:35 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=4789b645 [eclass] perl-module.eclass can now guess MODULE_VERSION from PV using perl-version-denormalize + MODULE_VERSION_SCHEME eclass/perl-module.eclass | 5 + 1 file changed, 5 insertions(+) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index f714e13..3c7702c 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -38,6 +38,11 @@ yes) ;; esac +if [[ -z ${MODULE_VERSION} -n ${MODULE_VERSION_SCHEME} ]]; then + inherit perl-version + MODULE_VERSION=$( perl-version-denormalize ${MY_PV:-${PV}} $MODULE_VERSION_SCHEME ) +fi + case ${PERL_EXPORT_PHASE_FUNCTIONS:-yes} in yes) EXPORT_FUNCTIONS ${PERL_EXPF}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 294fb5f3cba60c3bb656dc4e1d478873b9c015ca Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sat Jun 20 20:39:15 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sat Jun 20 20:39:15 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=294fb5f3 [eclass] drop support for EAPIs other than 5 and 2 entirely eclass/perl-module.eclass | 7 +-- 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index d2e5522..c768b43 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -18,12 +18,7 @@ inherit eutils multiprocessing unpacker perl-functions 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 EAPI 0 and 1 are deprecated; - PERL_EXPF+= pkg_setup pkg_preinst pkg_postinst pkg_prerm pkg_postrm - ;; - 2|3|4|5) + 2|5) PERL_EXPF+= src_prepare src_configure [[ ${CATEGORY} == perl-core ]] \ PERL_EXPF+= pkg_postinst pkg_postrm
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 35ef1cad1e30d52dcf72550460433478f2506c07 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sat Jun 20 21:32:05 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sat Jun 20 21:32:05 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=35ef1cad [eclass] Drop support for all EAPIS under 5 eclass/perl-functions.eclass | 23 ++- eclass/perl-module.eclass| 43 --- 2 files changed, 22 insertions(+), 44 deletions(-) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass index d9a5343..e3a6640 100644 --- a/eclass/perl-functions.eclass +++ b/eclass/perl-functions.eclass @@ -11,6 +11,12 @@ # The perl-functions eclass is a collection of perl-specific utilities # that may be useful in non-CPAN based ebuilds. +case ${EAPI:-0} in + 5) ;; + *) die EAPI=${EAPI} is not supported by perl-functions.eclass + ;; +esac + perl_diagnostics() { local d d=${T}/perl-diagnostics.log @@ -125,8 +131,6 @@ perl_fix_osx_extra() { 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 @@ -213,8 +217,6 @@ perl_link_duallife_scripts() { return 0 fi - perl_set_eprefix - local i ff execdir mandir execdir=usr/share/perl-${P}/bin @@ -290,19 +292,6 @@ perl_qafatal() { fi } -perl_set_eprefix() { - debug-print-function $FUNCNAME $@ - case ${EAPI:-0} in - 0|1|2) - if ! use prefix; then - EPREFIX= - ED=${D} - EROOT=${ROOT} - fi - ;; - esac -} - # @FUNCTION: perl_check_env # @USAGE: perl_check_env # @DESCRIPTION: diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 99171f4..f714e13 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -15,38 +15,27 @@ inherit eutils multiprocessing unpacker perl-functions [[ ${CATEGORY} == perl-core ]] inherit alternatives -PERL_EXPF=src_unpack src_compile src_test src_install +PERL_EXPF=src_unpack src_compile src_test src_install src_prepare src_configure +[[ ${CATEGORY} == perl-core ]] PERL_EXPF+= pkg_postinst pkg_postrm case ${EAPI:-0} in - 2|5) - PERL_EXPF+= src_prepare src_configure - [[ ${CATEGORY} == perl-core ]] \ - PERL_EXPF+= pkg_postinst pkg_postrm - - case ${GENTOO_DEPEND_ON_PERL:-yes} in - yes) - case ${EAPI:-0} in - 5) - case ${GENTOO_DEPEND_ON_PERL_SUBSLOT:-yes} in - yes) - DEPEND=dev-lang/perl:=[-build(-)] - ;; - *) - DEPEND=dev-lang/perl[-build(-)] - ;; - esac - ;; - *) - DEPEND=|| ( =dev-lang/perl-5.16 dev-lang/perl-5.16[-build] ) - ;; - esac - RDEPEND=${DEPEND} - ;; - esac + 5) ;; + *) die EAPI=${EAPI} is not supported by perl-module.eclass + ;; +esac + +case ${GENTOO_DEPEND_ON_PERL:-yes} in +yes) + case ${GENTOO_DEPEND_ON_PERL_SUBSLOT:-yes} in + yes) + DEPEND=dev-lang/perl:=[-build(-)] ;; *) - die EAPI=${EAPI} is not supported by perl-module.eclass + DEPEND=dev-lang/perl[-build(-)] ;; + esac + RDEPEND=${DEPEND} + ;; esac case ${PERL_EXPORT_PHASE_FUNCTIONS:-yes} in
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 6a6f9cad155f25b3a6bcdb9cf12df83cd057aac9 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sat Jun 20 20:30:29 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sat Jun 20 20:30:29 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=6a6f9cad [eclass] Split all non-phase functions in use into perl-functions.eclass eclass/perl-functions.eclass | 355 +++ eclass/perl-module.eclass| 343 + 2 files changed, 356 insertions(+), 342 deletions(-) diff --git a/eclass/perl-functions.eclass b/eclass/perl-functions.eclass new file mode 100644 index 000..d9a5343 --- /dev/null +++ b/eclass/perl-functions.eclass @@ -0,0 +1,355 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# @ECLASS: perl-functions.eclass +# @MAINTAINER: +# p...@gentoo.org +# Seemant Kulleen seem...@gentoo.org +# @BLURB: perl utility functions +# @DESCRIPTION: +# The perl-functions eclass is a collection of perl-specific utilities +# that may be useful in non-CPAN based ebuilds. + +perl_diagnostics() { + local d + d=${T}/perl-diagnostics.log + [[ -e ${d} ]] return + : $d + + { + echo perl: $(type -p perl) + echo + echo ENV values: + env | grep -E '^(PERL|HOME=|MANPATH|PATH|TEST|GENTOO_PERL)' + echo + echo perl -V: + perl -V 21 + echo + if type -p perl-info 2/dev/null ; then + echo perl-info output: + echo + perl-info + echo + fi + echo Corelist Versions: + perl -MModule::CoreList -e 'for $mod ( Module::CoreList-find_modules(qr/^/) ) { eval require $mod; print q[$mod : ] . \$${mod}::VERSION . qq[\n]; 1 or print qq{\e[31mNA: $mod\e[0m\n};}' + } $d + + eerror + eerror -- Gentoo Perl Team specific bug reporting request -- + eerror Please attach the contents of the following file with your bug report: + eerror $d + eerror +} + +perl_check_module_version() { + local REAL_PV + local gpmv=$(type -p gentoo-perlmod-version.pl) + [[ -n ${MODULE_VERSION} -n ${gpmv} -x ${gpmv} ]] || return + REAL_PV=$( ${gpmv} --oneshot ${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! + eqawarnThe ebuild version should be ${REAL_PV} + perl_qafatal version ${REAL_PV} != ${PV} + fi +} + +# @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 + + perl_check_module_version + + 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 $@ + + # 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 +} + +# @FUNCTION: perl_delete_module_manpages +# @USAGE:
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: b335766ad3ded55d068fb863672e45a22f0d6b85 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sat Jun 20 20:40:08 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sat Jun 20 20:40:08 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=b335766a [eclass] Remove redundant and deprecated functions eclass/perl-module.eclass | 72 --- 1 file changed, 72 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index c768b43..99171f4 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -188,21 +188,6 @@ perl-module_src_configure() { fi } -# @FUNCTION: perl-module_src_prep -# @USAGE: perl-module_src_prep -# @DESCRIPTION: -# Configure the ebuild sources (bis). -# -# This function is still around for historical reasons -# and will be soon deprecated. -# -# Please use the function above instead, perl-module_src_configure(). -perl-module_src_prep() { - debug-print-function $FUNCNAME $@ - ewarn perl-modules.eclass: perl-module_src_prep is deprecated and will be removed. Please use perl-module_src_configure instead. - perl-module_src_configure -} - # @FUNCTION: perl-module_src_compile # @USAGE: perl-module_src_compile # @DESCRIPTION: @@ -355,28 +340,6 @@ perl-module_src_install() { perl_link_duallife_scripts } -# @FUNCTION: perl-module_pkg_setup -# @USAGE: perl-module_pkg_setup -# @DESCRIPTION: -# This function was to be called during the pkg_setup() phase. -# Deprecated, to be removed. Where it is called, place a call to perl_set_version instead. -perl-module_pkg_setup() { - debug-print-function $FUNCNAME $@ - ewarn perl-modules.eclass: perl-module_pkg_setup is deprecated and will be removed. Please use perl_set_version instead. - perl_set_version -} - -# @FUNCTION: perl-module_pkg_preinst -# @USAGE: perl-module_pkg_preinst -# @DESCRIPTION: -# This function was to be called during the pkg_preinst() phase. -# Deprecated, to be removed. Where it is called, place a call to perl_set_version instead. -perl-module_pkg_preinst() { - debug-print-function $FUNCNAME $@ - ewarn perl-modules.eclass: perl-module_pkg_preinst is deprecated and will be removed. Please use perl_set_version instead. - perl_set_version -} - # @FUNCTION: perl-module_pkg_postinst # @USAGE: perl-module_pkg_postinst # @DESCRIPTION: @@ -395,16 +358,6 @@ perl-module_pkg_postinst() { perl_link_duallife_scripts } -# @FUNCTION: perl-module_pkg_prerm -# @USAGE: perl-module_pkg_prerm -# @DESCRIPTION: -# This function was to be called during the pkg_prerm() phase. -# It does not do anything. Deprecated, to be removed. -perl-module_pkg_prerm() { - debug-print-function $FUNCNAME $@ - ewarn perl-module.eclass: perl-module_pkg_prerm does not do anything and will be removed. Please remove the call. -} - # @FUNCTION: perl-module_pkg_postrm # @USAGE: perl-module_pkg_postrm # @DESCRIPTION: @@ -424,28 +377,3 @@ perl-module_pkg_postrm() { } has perl_diagnostics ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+= perl_diagnostics - - -# @FUNCTION: perlinfo -# @USAGE: perlinfo -# @DESCRIPTION: -# This function is deprecated. -# -# Please use the function above instead, perl_set_version(). -perlinfo() { - debug-print-function $FUNCNAME $@ - ewarn perl-modules.eclass: perlinfo is deprecated and will be removed. Please use perl_set_version instead. - perl_set_version -} - -# @FUNCTION: fixlocalpod -# @USAGE: fixlocalpod -# @DESCRIPTION: -# This function is deprecated. -# -# Please use the function above instead, perl_delete_localpod(). -fixlocalpod() { - debug-print-function $FUNCNAME $@ - ewarn perl-modules.eclass: fixlocalpod is deprecated and will be removed. Please use perl_delete_localpod instead. - perl_delete_localpod -}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 065a21548221b32109f3567c95c5a5ef02b25ec2 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Thu Mar 26 12:12:52 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Thu Mar 26 12:12:52 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=065a2154 [eclass/perl-declaredeps.eclass] Mark this ancient eclass experiment as deprecated and slate for removal eclass/perl-declaredeps.eclass | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eclass/perl-declaredeps.eclass b/eclass/perl-declaredeps.eclass index 8c9d1fe..f10c1bc 100644 --- a/eclass/perl-declaredeps.eclass +++ b/eclass/perl-declaredeps.eclass @@ -38,6 +38,9 @@ case ${EAPI:-0} in 4) + eerror perl-declaredeps:THIS ECLASS IS FULLY DEPRECATED and will begin fataling after April 10, 2015. + eerror If you need it to work after that point, replicate it to your overlay + eerror -- in ${CATEGORY}/${PF} ;; *) die perl-declaredeps needs EAPI4;
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 2ffb3fed8273157c85bbb4eb0ff1577393b77fe9 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sun Mar 15 16:29:13 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sun Mar 15 16:29:13 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=2ffb3fed [perl-module.eclass] Sync with dilfridge's changes from bug 543042 eclass/perl-module.eclass | 33 - 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index f71753e..71f 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -1,6 +1,6 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.161 2014/12/17 16:40:53 dilfridge Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.163 2015/03/14 14:32:10 dilfridge Exp $ # @ECLASS: perl-module.eclass # @MAINTAINER: @@ -752,10 +752,8 @@ perl_set_eprefix() { # 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 tells users the circumvention options -# for the problem, whether it be unsetting the bad fields, or setting -# I_KNOW_WHAT_IM_DOING=1 - +# 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; @@ -765,26 +763,35 @@ perl_check_env() { # Warn only once, and warn only when one of the bad values are set. # record failure here. - [ ${errored:-0} == 0 ] \ - ewarn perl-module.eclass: Suspect ENV values found.; - + 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 - ewarn $i=\$value\; + 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 [ ${I_KNOW_WHAT_IM_DOING:-0} == 1 ]; then - ewarn Continuing due to I_KNOW_WHAT_IM_DOING=1 + if [ -n ${I_KNOW_WHAT_I_AM_DOING} ]; then + elog Continuing anyway, seems you know what you're doing. return fi - die Please unset from ENV ( ~/.bashrc, package.env, etc ) or set I_KNOW_WHAT_IM_DOING=1 + 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. }
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 5f8e66084195ff46a00c8e86fe0ce9c734e026e9 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sun Mar 15 05:04:24 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sun Mar 15 05:04:24 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=5f8e6608 [perl-module.eclass] make perl_qawarn invocations have clearer errors under PERL_QAFATAL eclass/perl-module.eclass | 47 --- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index dcf8620..f71753e 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. eqawarnAdd 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. eqawarnAdd 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. eqawarnThis 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. eqawarnThis 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! eqawarnThe 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
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 4abc0cf75db47cf0389e3bd126487168e5ded370 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sun Mar 15 03:28:14 2015 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sun Mar 15 03:32:17 2015 + URL:https://gitweb.gentoo.org/proj/perl-overlay.git/commit/?id=4abc0cf7 [perl-module.eclass] Add perl_check_env patch re bug 543042 eclass/perl-module.eclass | 45 + 1 file changed, 45 insertions(+) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 593a030..dcf8620 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -131,6 +131,8 @@ perl-module_src_configure() { [[ ${SRC_PREP} = yes ]] return 0 SRC_PREP=yes + perl_check_env + perl_set_version perl_set_eprefix @@ -726,3 +728,46 @@ perl_set_eprefix() { ;; esac } + +# @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 tells users the circumvention options +# for the problem, whether it be unsetting the bad fields, or setting +# I_KNOW_WHAT_IM_DOING=1 + +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. + [ ${errored:-0} == 0 ] \ + ewarn perl-module.eclass: Suspect ENV values found.; + + errored=1 + + # Read ENV Value + eval value=\$$i; + + # Print ENV name/value pair + ewarn $i=\$value\; + done + + # Return if there were no failures + [ ${errored:-0} == 0 ] return; + + # Return if user knows what they're doing + if [ ${I_KNOW_WHAT_IM_DOING:-0} == 1 ]; then + ewarn Continuing due to I_KNOW_WHAT_IM_DOING=1 + return + fi + + die Please unset from ENV ( ~/.bashrc, package.env, etc ) or set I_KNOW_WHAT_IM_DOING=1 +}
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 47a31f879a0c5d3a25621cde73d4a8539ef0a02c Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Tue Dec 23 14:41:59 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Tue Dec 23 14:41:59 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=47a31f87 perl-module.eclass: Synchronise a lot of changes from ::gentoo --- eclass/perl-module.eclass | 165 +- 1 file changed, 149 insertions(+), 16 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index dd7ffc2..df4f87f 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -1,6 +1,6 @@ -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.139 2014/03/30 19:25:14 zlogene Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.161 2014/12/17 16:40:53 dilfridge Exp $ # @ECLASS: perl-module.eclass # @MAINTAINER: @@ -65,7 +65,7 @@ case ${PERL_EXPORT_PHASE_FUNCTIONS:-yes} in ;; esac -LICENSE=${LICENSE:-|| ( Artistic GPL-1 GPL-2 GPL-3 )} +LICENSE=${LICENSE:-|| ( Artistic GPL-1+ )} if [[ -n ${MY_PN} || -n ${MY_PV} || -n ${MODULE_VERSION} ]] ; then : ${MY_P:=${MY_PN:-${PN}}-${MY_PV:-${MODULE_VERSION:-${PV @@ -88,12 +88,23 @@ PREFER_BUILDPL=yes pm_echovar= perlinfo_done=false +# @FUNCTION: perl-module_src_unpack +# @USAGE: perl-module_src_unpack +# @DESCRIPTION: +# Unpack the ebuild tarball(s). +# This function is to be called during the ebuild src_unpack() phase. perl-module_src_unpack() { debug-print-function $FUNCNAME $@ + unpacker_src_unpack has src_prepare ${PERL_EXPF} || perl-module_src_prepare } +# @FUNCTION: perl-module_src_prepare +# @USAGE: perl-module_src_prepare +# @DESCRIPTION: +# Get the ebuild sources ready. +# This function is to be called during the ebuild src_prepare() phase. perl-module_src_prepare() { debug-print-function $FUNCNAME $@ has src_prepare ${PERL_EXPF} \ @@ -108,13 +119,14 @@ perl-module_src_prepare() { esvn_clean } +# @FUNCTION: perl-module_src_configure +# @USAGE: perl-module_src_configure +# @DESCRIPTION: +# Configure the ebuild sources. +# This function is to be called during the ebuild src_configure() phase. perl-module_src_configure() { debug-print-function $FUNCNAME $@ - perl-module_src_prep -} -perl-module_src_prep() { - debug-print-function $FUNCNAME $@ [[ ${SRC_PREP} = yes ]] return 0 SRC_PREP=yes @@ -172,11 +184,31 @@ perl-module_src_prep() { fi } +# @FUNCTION: perl-module_src_prep +# @USAGE: perl-module_src_prep +# @DESCRIPTION: +# Configure the ebuild sources (bis). +# +# This function is still around for historical reasons +# and will be soon deprecated. +# +# Please use the function above instead, perl-module_src_configure(). +perl-module_src_prep() { + debug-print-function $FUNCNAME $@ + ewarn perl-modules.eclass: perl-module_src_prep is deprecated and will be removed. Please use perl-module_src_configure instead. + perl-module_src_configure +} + +# @FUNCTION: perl-module_src_compile +# @USAGE: perl-module_src_compile +# @DESCRIPTION: +# Compile the ebuild sources. +# This function is to be called during the ebuild src_compile() phase. perl-module_src_compile() { debug-print-function $FUNCNAME $@ perl_set_version - has src_configure ${PERL_EXPF} || perl-module_src_prep + has src_configure ${PERL_EXPF} || perl-module_src_configure if [[ $(declare -p mymake 2-) != declare -a mymake=* ]]; then local mymake_local=(${mymake}) @@ -274,6 +306,11 @@ perl-module_src_test() { fi } +# @FUNCTION: perl-module_src_install +# @USAGE: perl-module_src_install +# @DESCRIPTION: +# Install a Perl ebuild. +# This function is to be called during the ebuild src_install() phase. perl-module_src_install() { debug-print-function $FUNCNAME $@ @@ -315,35 +352,72 @@ perl-module_src_install() { perl_link_duallife_scripts } +# @FUNCTION: perl-module_pkg_setup +# @USAGE: perl-module_pkg_setup +# @DESCRIPTION: +# This function was to be called during the pkg_setup() phase. +# Deprecated, to be removed. Where it is called, place a call to perl_set_version instead. perl-module_pkg_setup() { debug-print-function $FUNCNAME $@ + ewarn perl-modules.eclass: perl-module_pkg_setup is deprecated and will be removed. Please use perl_set_version instead. perl_set_version } +# @FUNCTION: perl-module_pkg_preinst +# @USAGE: perl-module_pkg_preinst +# @DESCRIPTION: +# This function was to be called during the pkg_preinst() phase. +# Deprecated, to be removed. Where it is called, place a call to perl_set_version instead.
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: c008440b0904162ae204b26c98e9bd07f958a107 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Tue Dec 23 17:44:36 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Tue Dec 23 17:46:06 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=c008440b perl-module.eclass: move PERLQAFATAL handling to its own function and extend its featureset --- eclass/perl-module.eclass | 42 ++ 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index df4f87f..70f7d0f 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -20,6 +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_EXPF+= pkg_setup pkg_preinst pkg_postinst pkg_prerm pkg_postrm ;; 2|3|4|5) @@ -148,10 +149,7 @@ perl-module_src_configure() { if [[ ${DEPEND} != *virtual/perl-Module-Build* ${PN} != Module-Build ]] ; then eqawarn QA Notice: The ebuild uses Module::Build but doesn't depend on it. eqawarnAdd virtual/perl-Module-Build to DEPEND! - if [[ -n ${PERLQAFATAL} ]]; then - eerror Bailing out due to PERLQAFATAL=1; - die; - fi + perl_qafatal modulebuild fi set -- \ --installdirs=vendor \ @@ -386,6 +384,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. eqawarnThis does not do anything; the call can be safely removed. + perl_qafatal function return 0 fi perl_link_duallife_scripts @@ -413,6 +412,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. eqawarnThis does not do anything; the call can be safely removed. + perl_qafatal function return 0 fi perl_link_duallife_scripts @@ -460,6 +460,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! eqawarnThe ebuild version should be ${REAL_PV} + perl_qafatal version fi } @@ -672,6 +673,39 @@ perl_link_duallife_scripts() { fi } +# @FUNCTION: perl_qafatal +# @USAGE: perl_qafatal TYPE +# @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. +# +# The value TYPE will be used to optionally allow the user to filter certain QA Types. +# TYPE = eapi : Legacy EAPI warnings +# TYPE = modulebuild: Failure to include Module-Build as a dependency. +# TYPE = modulebuildtiny : Failure to include Module-Build-Tiny as a dependency +# TYPE = function : Use of a deprecated function +# TYPE = version: version and expected version missmatch +# +# PERL_QAFATAL: +# == 1 - Fatal for all types +# has all - Fatal for all types +# has $type - Fatal for $type +perl_qafatal() { + local failtype=$1 + if [[ ${PERLQAFATAL:-0} == 1 ]]; then + eerror Bailing out due to PERLQAFATAL including $failtype (==1); + die; + fi + if has 'all' ${PERLQAFATAL}; then + eerror Bailing out due to PERLQAFATAL including $failtype (all); + die; + fi + if has $failtype ${PERLQAFATAL}; then + eerror Bailing out due to PERLQAFATAL including $1; + die; + fi +} + perl_set_eprefix() { debug-print-function $FUNCNAME $@ case ${EAPI:-0} in
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 49ec79fcc3863ca26369ceb1ded509c0cdc36165 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Tue Dec 23 17:50:54 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Tue Dec 23 18:01:25 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=49ec79fc perl-module.eclass: Unify Module::Build and MBTiny logic with --pure parameter, improving QA checks in the process --- eclass/perl-module.eclass | 44 ++-- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 70f7d0f..593a030 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -145,11 +145,20 @@ perl-module_src_configure() { 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. - eqawarnAdd virtual/perl-Module-Build to DEPEND! - perl_qafatal modulebuild + 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. + eqawarnAdd dev-perl/Module-Build-Tiny to DEPEND! + perl_qafatal modulebuildtiny + 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. + eqawarnAdd virtual/perl-Module-Build to DEPEND! + perl_qafatal modulebuild + fi fi set -- \ --installdirs=vendor \ @@ -317,23 +326,22 @@ perl-module_src_install() { 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
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: d709c163243c21f1338ede069911aa9906fd0c87 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sat Oct 11 17:19:49 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sat Oct 11 17:19:49 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=d709c163 [eclass] perl-module.eclass: EQAWarn on EAPI0 and 1 --- eclass/perl-module.eclass | 1 + 1 file changed, 1 insertion(+) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 1dc824e..a61f6d1 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -19,6 +19,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_EXPF+= pkg_setup pkg_preinst pkg_postinst pkg_prerm pkg_postrm ;; 2|3|4|5)
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: fa40465a56e6b0f5484c8a1994d3270ee0316d38 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sat Oct 11 18:09:17 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sat Oct 11 18:09:17 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=fa40465a [eclass] perl-module.eclass: default tests and parallel testing to ON. This is a respectable change that needs much testing, and is a staging test for ::gentoo to see how it works out. Gentoo has only planned to phase in this kind of behaviour in, or after, EAPI6, so I'm chasing the concepts tail to make sure it will work. Thus, the behaviour is now On by default in **all** EAPIs. Things that break, please file bugs to have RESTRICT=test, PERL_RESTRICT=parallel-test or PERL_RESTRICT=network-test where applicable. Also, there's a new user ENV control flag for those who want it, USER_PERL_RESTRICT. Adding parallel-test to this will disable parallel testing globally if its too much of a problem for you. Adding network-test will make Gentoo do their best to skip testing where network interaction is involved. Enjoy. --- eclass/perl-module.eclass | 89 ++- 1 file changed, 64 insertions(+), 25 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index a61f6d1..dd7ffc2 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -198,40 +198,79 @@ perl-module_src_compile() { fi } -# For testers: -# This code attempts to work out your threadingness from MAKEOPTS -# and apply them to Test::Harness. +# Starting 2014-10-12: # -# If you want more verbose testing, set TEST_VERBOSE=1 -# in your bashrc | /etc/make.conf | ENV +# AUTHORS: # -# For ebuild writers: -# If you wish to enable default tests w/ 'make test' , +# - src_test is enabled by default +# - if tests dont work or should not be run, modify your ebuild to use RESTRICT=test +# - parallel testing is enabled by default +# - if parallel testing breaks an ebuild, turn it off with PERL_RESTRICT=parallel-test +# - if your ebuild calls out to network, set PERL_RESTRICT=network-test and it will normally do nothing different. # -# SRC_TEST=do +# USERS: # -# If you wish to have threads run in parallel ( using the users makeopts ) -# all of the following have been tested to work. +# If you get sick of parallel tests, set USER_PERL_RESTRICT=parallel-test, and it will go away. +# If your environment means you can't run tests that require the network, set USER_PERL_RESTRICT=network-test and they'll stop being run +# if an author is nice enough to set PERL_RESTRICT=network-test. # -# SRC_TEST=do parallel -# SRC_TEST=parallel -# SRC_TEST=parallel do -# SRC_TEST=parallel # +# VARIABLES: +# +# PERL_RESTRICT: +#parallel-test - parallel testing is unsupported +#network-test - a test requires network access ( File Bugs upstream to use NO_NETWORK_TESTING ) +# USER_PERL_RESTRICT: +#parallel-test - never do parallel testing +#network-test - never run tests that require network access +# SRC_TEST: +#No longer used and completely ignored perl-module_src_test() { debug-print-function $FUNCNAME $@ - if has 'do' ${SRC_TEST} || has 'parallel' ${SRC_TEST} ; then - if has ${TEST_VERBOSE:-0} 0 has 'parallel' ${SRC_TEST} ; then - export HARNESS_OPTIONS=j$(makeopts_jobs) - einfo Test::Harness Jobs=$(makeopts_jobs) - fi - ${perlinfo_done} || perl_set_version - if [[ -f Build ]] ; then - ./Build test verbose=${TEST_VERBOSE:-0} || die test failed - elif [[ -f Makefile ]] ; then - emake test TEST_VERBOSE=${TEST_VERBOSE:-0} || die test failed - fi + + # Turn it off globally per user choice. + if has 'parallel-test' ${USER_PERL_RESTRICT}; then + einfo Disabling Parallel Testing: USER_PERL_RESTRICT=parallel-test; + export HARNESS_OPTIONS=; + + # If user has TEST_VERBOSE globally, disable parallelism because verboseness + # can break parallel testing. + elif ! has ${TEST_VERBOSE:-0} 0; then + einfo Disabling Parallel Testing: TEST_VERBOSE=${TEST_VERBOSE}; + export HARNESS_OPTIONS=; + + # If ebuild says parallel tests dont work, turn them off. + elif has 'parallel-test' ${PERL_RESTRICT}; then + einfo Disabling Parallel Testing: PERL_RESTRICT=parallel-test; + export HARNESS_OPTIONS=; + else + # Default is on. + einfo Test::Harness Jobs=$(makeopts_jobs) + export HARNESS_OPTIONS=j$(makeopts_jobs) + fi + + # If a user says USER_PERL_RESTRICT=network-test, + # then assume many CPAN
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: ff64744a2fdeb36717c350eea48cd4a46fa4f049 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Tue Aug 26 18:54:49 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Tue Aug 26 18:54:49 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=ff64744a perl-module.eclass: Fix a bunch of bugs in perl_rm_files function. Add PERL_RM_FILES bash array to ebuilds that gets pruned automatically during src_prepare if defined --- eclass/perl-module.eclass | 26 ++ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 6f7b5f4..1dc824e 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -99,6 +99,10 @@ perl-module_src_prepare() { [[ ${PATCHES[@]} ]] epatch ${PATCHES[@]} debug-print $FUNCNAME: applying user patches epatch_user + if [[ ${PERL_RM_FILES[@]} ]]; then + debug-print $FUNCNAME: stripping unneeded files + perl_rm_files ${PERL_RM_FILES[@]} + fi perl_fix_osx_extra esvn_clean } @@ -442,18 +446,24 @@ perl_remove_temppath() { # users about files missing from their kit. perl_rm_files() { debug-print-function $FUNCNAME $@ - local skipfile=${S}/.gentoo_makefile_skip - local manifile=${S}/MANIFEST - local manitemp=${S}/.gentoo_manifest_temp + 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 ${S}/$filename - echo ${filename} ${skipfile} + rm -f ${S}/${filename} + [[ -e ${manifile} ]] echo ${filename} ${skipfile} done - grep -v -F -f $skipfile $manifile $manitemp - mv $manitemp $manifile - rm $skipfile; + 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 } perl_link_duallife_scripts() {
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 2b3eb8fa5687ff501687e12d1c133eccc6e3670e Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Sun Aug 24 12:29:14 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Sun Aug 24 12:29:14 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=2b3eb8fa add perl_rm_files function to perl-module.eclass ( bug #520756 ) --- eclass/perl-module.eclass | 30 ++ 1 file changed, 30 insertions(+) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index b1d4c2e..6f7b5f4 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -426,6 +426,36 @@ perl_remove_temppath() { 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=${S}/.gentoo_makefile_skip + local manifile=${S}/MANIFEST + local manitemp=${S}/.gentoo_manifest_temp + for filename in $@; do + einfo Removing un-needed ${filename}; + # Remove the file + rm ${S}/$filename + echo ${filename} ${skipfile} + done + grep -v -F -f $skipfile $manifile $manitemp + mv $manitemp $manifile + rm $skipfile; +} + perl_link_duallife_scripts() { debug-print-function $FUNCNAME $@ if [[ ${CATEGORY} != perl-core ]] || ! has_version =dev-lang/perl-5.8.8-r8 ; then
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: ec11189f5b792e021ccf8e461ca237f3a8be7e41 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Wed Aug 20 11:25:22 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Wed Aug 20 11:37:55 2014 + URL: http://sources.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=ec11189f add new experimental perl-virtual-2.eclass as experimental simplification --- eclass/perl-virtual-2.eclass | 139 +++ 1 file changed, 139 insertions(+) diff --git a/eclass/perl-virtual-2.eclass b/eclass/perl-virtual-2.eclass new file mode 100644 index 000..4bcce30 --- /dev/null +++ b/eclass/perl-virtual-2.eclass @@ -0,0 +1,139 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# +# Original Author: Kent Fredric kentfred...@gmail.com +# Purpose: Experimental virtuals for gentoo perl +# Reason: http://wiki.gentoo.org/wiki/Project:Perl/Ongoing_tasks#Updating_the_virtuals + + +# usage: +# +# EAPI=5 +# ON_CPAN=1 +# inherit perl-virtual-2 +# +# EAPI=5 +# ON_CPAN=1 +# PERL_VERSIONS=5.18 +# inherit perl-virtual-2 +# +# EAPI=5 +# PERL_VERSIONS=5.18 +# inherit perl-virtual-2 + + +case ${EAPI:0} in + 5) + + ;; + *) + die EAPI=${EAPI} is not supported by perl-virtual-2.eclass; + ;; +esac + +DESCRIPTION=Virtual for perl-core/${PN#perl-} +# Note: This has to be blank, repoman doesn't like it. +# But otherwise we'd link to http://wiki.gentoo.org/wiki/Project:Perl/Ongoing_tasks#Updating_the_virtuals +HOMEPAGE= +SRC_URI= +LICENSE= +IUSE= + +[[ ${ON_CPAN} ]] || ON_CPAN= +ON_PERL=1 + +[[ ${PERL_VERSIONS} ]] || ON_PERL=; + +[[ ${ON_CPAN} || ${ON_PERL} ]] || die One of ON_CPAN or PERL_VERSIONS must be specified for perl-virtual-2.eclass; + +# CPAN + Perl = +# perl_5_18 ? ( =perl-5.18* , !perl-core/ ) +# perl_5_16 ? ( =perl-5.16* , !perl-core/ ) +# !perl_5_18? ( !perl_5_16? ( +# || ( =perl-5.18* =perl-5.18* =perl-core/ ) +# !perl-core/...$PV !perl-core/..$PV +# )) +if [[ ${ON_CPAN} ${ON_PERL} ]]; then + PL_DEPS=; + EXCL_DEPS=; + NEXCL_START=; + NEXCL_STOP=; + NPLS=0; + OLDIFS=$IFS; + IFS= ; + for i in ${PERL_VERSIONS}; do + IUSE=$IUSE perl_${i//./_} + EXCL_DEPS=$EXCL_DEPS perl_${i//./_}? ( =dev-lang/perl-${i}* !perl-core/${PN#perl-} ) + NEXCL_START=$NEXCL_START !perl_${i//./_}? ( + NEXCL_STOP=) $NEXCL_STOP + PL_DEPS=$PL_DEPS =dev-lang/perl-${i}* + NPLS=$(( $NPLS + 1 )); + done + IFS=$OLDIFS; + RDEPEND= + $EXCL_DEPS + $NEXCL_START + || ( $PL_DEPS ~perl-core/${PN#perl-}-${PV} ) + !perl-core/${PN#perl-}-${PV} + !perl-core/${PN#perl-}-${PV}-r999 + $NEXCL_STOP +fi + +# CPAN + !Perl = +# =perl-core/..$PV +# +if [[ ${ON_CPAN} ! ${ON_PERL} ]]; then + RDEPEND=~perl-core/${PN#perl-}-${PV} +fi + +# !CPAN + Perl = +# +# either: +# =perl-5.18 +# !perl-core/.. +# +# or +# +# perl_5_18? ( =perl-5.18* ) +# perl_5_16? ( =perl-5.16* ) +# !perl_5_18? ( !perl_5_16? ( +#|| ( =perl-5.18* =perl-5.16* ) +# )) +# !perl-core/ +# +if [[ ! ${ON_CPAN} ${ON_PERL} ]]; then + PL_DEPS=; + NPLS=0; + EXCL_DEPS=; + NEXCL_START=; + NEXCL_STOP=; + XIUSE=; + OLDIFS=$IFS; + IFS= ; + for i in ${PERL_VERSIONS}; do + XIUSE=$XIUSE perl_${i//./_} + EXCL_DEPS=$EXCL_DEPS perl_${i//./_}? ( =dev-lang/perl-${i}* ) + NEXCL_START=$NEXCL_START !perl_${i//./_}? ( + NEXCL_STOP=) $NEXCL_STOP + PL_DEPS=$PL_DEPS =dev-lang/perl-${i}* + NPLS=$(( $NPLS + 1 )); + done + IFS=$OLDIFS; + if [[ $NPLS 1 ]]; then + IUSE=$IUSE ${XIUSE}; + RDEPEND= + $EXCL_DEPS + $NEXCL_START + || ( $PL_DEPS ) + $NEXCL_STOP + !perl-core/${PN#perl-} + + else + RDEPEND= + $PL_DEPS + !perl-core/${PN#perl-} + + fi +fi
[gentoo-commits] proj/perl-overlay:master commit in: eclass/
commit: 964110878b9ba9d5f9616e11279ee2cd3cb2ab66 Author: Kent Fredric kentfredric AT gmail DOT com AuthorDate: Fri Apr 4 23:07:51 2014 + Commit: Kent Fredric kentfredric AT gmail DOT com CommitDate: Fri Apr 4 23:08:52 2014 + URL: http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=96411087 eclass: Sync base.eclass consumption/EAPI5 Subslots difference with Gentoo --- eclass/perl-module.eclass | 33 + 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/eclass/perl-module.eclass b/eclass/perl-module.eclass index 320a43e..b1d4c2e 100644 --- a/eclass/perl-module.eclass +++ b/eclass/perl-module.eclass @@ -1,6 +1,6 @@ -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.134 2012/09/15 16:16:53 zmedico Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/perl-module.eclass,v 1.139 2014/03/30 19:25:14 zlogene Exp $ # @ECLASS: perl-module.eclass # @MAINTAINER: @@ -12,7 +12,7 @@ # The perl-module eclass is designed to allow easier installation of perl # modules, and their incorporation into the Gentoo Linux system. -inherit eutils base multiprocessing +inherit eutils multiprocessing unpacker [[ ${CATEGORY} == perl-core ]] inherit alternatives PERL_EXPF=src_unpack src_compile src_test src_install @@ -27,10 +27,24 @@ case ${EAPI:-0} in PERL_EXPF+= pkg_postinst pkg_postrm case ${GENTOO_DEPEND_ON_PERL:-yes} in - yes) + yes) + case ${EAPI:-0} in + 5) + case ${GENTOO_DEPEND_ON_PERL_SUBSLOT:-yes} in + yes) + DEPEND=dev-lang/perl:=[-build(-)] + ;; + *) + DEPEND=dev-lang/perl[-build(-)] + ;; + esac + ;; + *) DEPEND=|| ( =dev-lang/perl-5.16 dev-lang/perl-5.16[-build] ) - RDEPEND=${DEPEND} ;; + esac + RDEPEND=${DEPEND} + ;; esac ;; *) @@ -75,13 +89,16 @@ perlinfo_done=false perl-module_src_unpack() { debug-print-function $FUNCNAME $@ - base_src_unpack + unpacker_src_unpack has src_prepare ${PERL_EXPF} || perl-module_src_prepare } perl-module_src_prepare() { debug-print-function $FUNCNAME $@ - has src_prepare ${PERL_EXPF} base_src_prepare + has src_prepare ${PERL_EXPF} \ + [[ ${PATCHES[@]} ]] epatch ${PATCHES[@]} + debug-print $FUNCNAME: applying user patches + epatch_user perl_fix_osx_extra esvn_clean } @@ -162,7 +179,7 @@ perl-module_src_compile() { local mymake_local=(${mymake[@]}) fi - if [[ ( ${PREFER_BUILDPL} == yes || ! -f Makefile ) -f Build ]] ; then + if [[ -f Build ]] ; then ./Build build \ || die Compilation failed elif [[ -f Makefile ]] ; then