diff -urN portage-2.2_rc32-orig/bin/ebuild.sh portage-2.2_rc32/bin/ebuild.sh --- portage-2.2_rc32-orig/bin/ebuild.sh 2009-05-02 13:45:33 +0900 +++ portage-2.2_rc32/bin/ebuild.sh 2009-05-02 13:47:25 +0900 @@ -685,6 +685,18 @@ ebuild_phase pre_src_unpack vecho ">>> Unpacking source..." ebuild_phase src_unpack + if [ -n "${PORTAGE_PATCHDIR}" -a -d "${PORTAGE_PATCHDIR}/${CATEGORY}/${PN}" ]; then + if [ "$(type -t epatch)" == "function" ]; then + vecho ">>> Applying custom patches..." + 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