Emerging biounzip fails because the 64bit patch is hard-set to something like /var/tmp/portage/etc/etc/brainfart/ Changing the first two lines of the patch to start at /work/ allows epatch to function in cases when portage's tmpdir is not /var/tmp/. (In my case it is /dev/shm.) I don't know if that's the clean way to do relative paths but it Works For Me (tm). On a related note, shouldn't epatch apply patches only when they are architecturally necessary? I'm on 32-bit x86. Why is an amd64 patch being applied to an x86 system? Reproducible: Always Steps to Reproduce: 1. Set PORTAGE_TMPDIR in make.conf to /dev/shm 2. Emerge biounzip. 3. Cry. Actual Results: Emerge fails at patching with a big red Failed Patch error. Additional log reports indicate epatch finds the patch file, which in turn can't find anything to patch. Expected Results: biounzip should have emerged. Just for clarity's sake, my fix is to change this: --- /var/tmp/portage/games-util/biounzip-1.1a/work/biounzip-1.1-old/biounzip.c 2007-03-08 02:06:16.000000000 +0200 +++ /var/tmp/portage/games-util/biounzip-1.1a/work/biounzip-1.1/biounzip.c 2007-03-08 02:06:50.000000000 +0200 to this: --- /work/biounzip-1.1-old/biounzip.c 2007-03-08 02:06:16.000000000 +0200 +++ /work/biounzip-1.1/biounzip.c 2007-03-08 02:06:50.000000000 +0200 Caveat is that I'm no software developer and I really have no idea what I'm doing.
(In reply to comment #0) > On a related note, shouldn't epatch apply patches only when they are > architecturally necessary? I'm on 32-bit x86. Why is an amd64 patch being > applied to an x86 system? Nope. Policy states we apply them unilaterally except in cases where they can break other arches. Anyway, I think I've fixed this now.