From 6b4b621f1abcf21d3bfa54b323126a3ef11eb52c Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 29 Aug 2012 22:04:42 -0700 Subject: EAPI 5: User patches (no-op dummy stub for now) A real apply_user_patches implementation will be a bit more work, so for now we'll just implement the minimum amount necessary to satisfy the spec: http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=a8bf7862967cce36b7f1b408934a774126da2538 --- bin/phase-functions.sh | 23 ++++++++++++++++++++++- bin/phase-helpers.sh | 15 +++++++++++++++ bin/save-ebuild-env.sh | 4 +++- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh index c23be74d3..ff7d85520 100644 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh @@ -277,7 +277,8 @@ dyn_clean() { "$PORTAGE_BUILDDIR"/.{configured,compiled,tested,packaged} \ "$PORTAGE_BUILDDIR"/.die_hooks \ "$PORTAGE_BUILDDIR"/.ipc_{in,out,lock} \ - "$PORTAGE_BUILDDIR"/.exit_status + "$PORTAGE_BUILDDIR"/.exit_status \ + "$PORTAGE_BUILDDIR"/.apply_user_patches rm -rf "${PORTAGE_BUILDDIR}/build-info" rm -rf "${WORKDIR}" @@ -381,6 +382,14 @@ dyn_prepare() { die "Failed to create $PORTAGE_BUILDDIR/.prepared" vecho ">>> Source prepared." ebuild_phase post_src_prepare + case "${EAPI}" in + 0|1|2|3|4|4-python|4-slot-abi) + ;; + *) + [[ ! -f ${PORTAGE_BUILDDIR}/.apply_user_patches ]] && \ + die "src_prepare must call apply_user_patches at least once" + ;; + esac trap - SIGINT SIGQUIT } @@ -804,6 +813,18 @@ _ebuild_phase_funcs() { eval "default_src_install() { _eapi4_src_install \"\$@\" ; }" [[ $phase_func = src_install ]] && \ eval "default() { _eapi4_$phase_func \"\$@\" ; }" + case "$eapi" in + 4|4-python|4-slot-abi) + ;; + *) + ! declare -F src_prepare >/dev/null && \ + src_prepare() { _eapi5_src_prepare "$@" ; } + default_src_prepare() { _eapi5_src_prepare "$@" ; } + [[ $phase_func = src_prepare ]] && \ + eval "default() { _eapi5_$phase_func \"\$@\" ; }" + apply_user_patches() { _eapi5_apply_user_patches "$@" ; } + ;; + esac ;; esac diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh index 3f02c0701..3230870c2 100644 --- a/bin/phase-helpers.sh +++ b/bin/phase-helpers.sh @@ -598,6 +598,21 @@ _eapi4_src_install() { fi } +_eapi5_src_prepare() { + apply_user_patches +} + +apply_user_patches() { + die "apply_user_patches is not supported with EAPI ${EAPI}" +} + +_eapi5_apply_user_patches() { + # This is a no-op that is just enough to fullfill the spec. + [[ -f ${PORTAGE_BUILDDIR}/.apply_user_patches ]] && return 1 + > "${PORTAGE_BUILDDIR}/.apply_user_patches" || die + return 1 +} + # @FUNCTION: has_version # @USAGE: # @DESCRIPTION: diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh index 47a2acae5..4bf6e4e18 100644 --- a/bin/save-ebuild-env.sh +++ b/bin/save-ebuild-env.sh @@ -46,7 +46,8 @@ save_ebuild_env() { done unset x - unset -f assert assert_sigpipe_ok dump_trace die diefunc \ + unset -f apply_user_patches assert assert_sigpipe_ok \ + dump_trace die diefunc \ quiet_mode vecho elog_base eqawarn elog \ esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major \ KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has \ @@ -67,6 +68,7 @@ save_ebuild_env() { save_ebuild_env filter_readonly_variables preprocess_ebuild_env \ set_unless_changed unset_unless_changed source_all_bashrcs \ ebuild_main ebuild_phase ebuild_phase_with_hooks \ + _eapi5_apply_user_patches _eapi5_src_prepare \ _ebuild_arg_to_phase _ebuild_phase_funcs default \ _hasg _hasgq _unpack_tar \ ${QA_INTERCEPTORS} -- cgit v1.2.3-1-g7c22