diff -urN portage-2.2.0_alpha30-orig/bin/ebuild.sh portage-2.2.0_alpha30/bin/ebuild.sh --- portage-2.2.0_alpha30-orig/bin/ebuild.sh 2011-03-28 07:37:47 +0900 +++ portage-2.2.0_alpha30/bin/ebuild.sh 2011-04-15 20:47:08 +0900 @@ -764,6 +764,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 >> "$PORTAGE_BUILDDIR/.unpacked" || \ die "Failed to create $PORTAGE_BUILDDIR/.unpacked" vecho ">>> Source unpacked in ${WORKDIR}" @@ -1010,6 +1023,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 >> "$PORTAGE_BUILDDIR/.prepared" || \ die "Failed to create $PORTAGE_BUILDDIR/.prepared" vecho ">>> Source prepared."