I was just trying to mock an ebuild for step (https://github.com/smallstep/cli/) which they've helpfully put in a repo called cli rather than step, meaning the tarball from github comes out containing cli-0.0.1 rather than step-0.0.1. Overriding ${S} to get over this issue highlighted that the golang-build eclass hardcodes the use of "${WORKDIR}/${P}" rather than using "${S}" which is probably what was intended. Lemme know if you need any more information... 5:)