I've been trying to update the Reproducible: Always Steps to Reproduce: On a system where the Perforce command line client (p4) and the new graphical interface (p4v) is installed: 1. emerge perl-5.8.0-r12 Actual Results: The tar.gz for perl-5.8.0-r12 is sucessfully found (perl-5.8.0.tar.gz appears in /usr/portage/distfiles/), but when the ebuild goes looking for the patches it fails. Expected Results: perl-5.8.0-r12 found and merged. When the patch fails the following file is generated: </usr/tmp/portage/perl-5.8.0-r12/temp/perl-5.8.0-sockatmark-should-__THROW.patch-2303.out> ***** perl-5.8.0-sockatmark-should-__THROW.patch ***** ====================================================== PATCH COMMAND: patch -p0 < /usr/portage/dev-lang/perl/files/perl-5.8.0-sockatmark-should-__THROW.patch ====================================================== can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- perl-5.8.0/perl.h.orig 2002-12-28 13:23:06.000000000 +0200 |+++ perl-5.8.0/perl.h 2002-12-28 13:23:47.000000000 +0200 -------------------------- No file to patch. Skipping patch. 1 out of 1 hunk ignored ====================================================== PATCH COMMAND: patch -p1 < /usr/portage/dev-lang/perl/files/perl-5.8.0-sockatmark-should-__THROW.patch ====================================================== Get file perl.h from Perforce with lock? [y] patching file perl.h ====================================================== ACTUALLY APPLYING perl-5.8.0-sockatmark-should-__THROW.patch... ====================================================== Get file perl.h from Perforce with lock? [y] Path '/usr/tmp/portage/perl-5.8.0-r12/work/perl-5.8.0/perl.h' is not under client's root '/store/perforce/'. patch: **** Can't get file perl.h from Perforce On this machine the perforce root directory lives in /store/perforce and the client has read/write access to all files in this directory. Perforce is corerctly set-up and working, so any requests will go to the central Perforce server. Since this server knows nothing about Gentoo, I assume this is why the merge fails. Any requests to an external Perforce server will also be blocked by our firewall.
The problem appears to be the patch command trying to get missing files from Perforce. Setting the environment variable PATCH_GET=0 disables this behaviour, and the ebuild installs correctly.
The problem appears to be the behaviour of the patch command when Perforce is installed. Setting the environment variable PATCH_GET=0 stops patch trying to get files via Perforce, and the ebuild installs normally.