The portage ebuild's pkg_postinst will have to adjust $PORTDIR permissions, since $PORTDIR may contain mixed permissions (see bug #277970).
This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=94d4ee45d0944fb112aa701449d7939f29c5ecd6 Since usersync assumes that the permissions of subdirectories are consistent with the top-level ${PORTDIR} permissions, the portage ebuild's pkg_postinst should do something like this: if $USERSYNC_UPGRADE && [[ -d ${PORTDIR} ]] ; then case "${USERLAND}" in BSD) local ownership=$(stat -f '%Su:%Sg' "${PORTDIR}") ;; *) local ownership=$(stat -c '%U:%G' "${PORTDIR}") ;; esac chown -R "${ownership}" "${PORTDIR}" fi
This is fixed in 2.1.13 and 2.2.0_alpha189.