--- portage-2.2_rc87-orig/bin/ebuild.sh 2010-09-26 21:50:19 +0900 +++ portage-2.2_rc87/bin/ebuild.sh 2010-09-26 21:50:50 +0900 @@ -749,6 +749,19 @@ ebuild_phase pre_src_unpack vecho ">>> Unpacking source..." ebuild_phase src_unpack + if [ "${EAPI-0}" -lt 2 -a -n "${PORTAGE_PATCHDIR}" -a -d "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}" ]; then + if [ "$(type -t epatch)" == "function" ]; then ( + vecho ">>> Applying custom patches..." + cd "$S" + for patch in "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}"/* \ + "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}/${PV}"/*; do + [ -f "${patch}" ] || continue + epatch "${patch}" || die "Failed to apply patch ${patch}" + done + ); else + ewarn "Cannot apply custom patches because eutils.eclass is not inherited by the ebuild." + fi + fi touch "${PORTAGE_BUILDDIR}/.unpacked" || die "IO Failure -- Failed 'touch .unpacked' in ${PORTAGE_BUILDDIR}" vecho ">>> Source unpacked in ${WORKDIR}" ebuild_phase post_src_unpack @@ -994,6 +1007,19 @@ ebuild_phase pre_src_prepare vecho ">>> Preparing source in $PWD ..." ebuild_phase src_prepare + if [ "${EAPI-0}" -ge 2 -a -n "${PORTAGE_PATCHDIR}" -a -d "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}" ]; then + if [ "$(type -t epatch)" == "function" ]; then ( + vecho ">>> Applying custom patches..." + cd "$S" + for patch in "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}"/* \ + "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}/${PV}"/*; do + [ -f "${patch}" ] || continue + epatch "${patch}" || die "Failed to apply patch ${patch}" + done + ); else + ewarn "Cannot apply custom patches because eutils.eclass is not inherited by the ebuild." + fi + fi touch "$PORTAGE_BUILDDIR"/.prepared vecho ">>> Source prepared." ebuild_phase post_src_prepare