--- a/bin/phase-helpers.sh +++ a/bin/phase-helpers.sh @@ -1094,6 +1094,7 @@ if ___eapi_has_eapply_user; then local tagfile=${T}/.portage_user_patches_applied [[ -f ${tagfile} ]] && return >> "${tagfile}" + [[ *" ${FEATURES} "* == *" userpatches "* ]] || return 0 local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches --- a/cnf/make.globals +++ a/cnf/make.globals @@ -61,7 +61,7 @@ FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch - userpriv usersandbox usersync" + userpatches userpriv usersandbox usersync" # Ignore file collisions in /lib/modules since files inside this directory # are never unmerged, and therefore collisions must be ignored in order for --- a/lib/portage/const.py +++ a/lib/portage/const.py @@ -203,6 +203,7 @@ SUPPORTED_FEATURES = frozenset([ "unmerge-orphans", "unprivileged", "userfetch", + "userpatches", "userpriv", "usersandbox", "usersync",