summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-08-29 22:04:42 -0700
committerZac Medico <zmedico@gentoo.org>2012-08-29 22:04:42 -0700
commit6b4b621f1abcf21d3bfa54b323126a3ef11eb52c (patch)
tree7fa1b7e4ddc3c01093f2166410191b81d5c08ff2 /bin
parent40ef0fd75e329b789ae1fd98184b89520e9ee0c3 (diff)
downloadportage-6b4b621f1abcf21d3bfa54b323126a3ef11eb52c.tar.gz
portage-6b4b621f1abcf21d3bfa54b323126a3ef11eb52c.tar.bz2
portage-6b4b621f1abcf21d3bfa54b323126a3ef11eb52c.zip
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
Diffstat (limited to 'bin')
-rw-r--r--bin/phase-functions.sh23
-rw-r--r--bin/phase-helpers.sh15
-rw-r--r--bin/save-ebuild-env.sh4
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: <DEPEND ATOM>
# @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}