"$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}"
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
}
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
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:
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 \
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}