The freetype 1.4 ebuild has been recently modified to use $EPREFIX and $ED. When I tried building it, I got a sandbox access violation, because $ED was not actually set, so it was trying to install to /usr/lib When I set EAPI="4" in the ebuild, everything worked. I don't know much about the internals of portage, but I'm pretty sure by this point that setting EAPI is required to have EPREFIX and ED set. Reproducible: Always Steps to Reproduce: 1. update the portage tree to include $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/freetype-1.4_pre20080316-r2.ebuild,v 1.8 2011/08/28 17:32:21 grobian Exp $ 2. emerge media-libs/freetype:1 Actual Results: sandbox access violation when trying to install into /usr/lib Expected Results: normal emerge, installing into /var/tmp/portage/media-libs/freetype-1.4_pre20080316-r2/image/usr/lib or some such, then merging
We need to migrate the ebuild to EAPI 3. Fabian, I think you just volunteered ;).
Hey that seems like unintended breakage. Sorry folks! I couldn't migrate the ebuild to EAPI=3, so I added guards for the prefix vars. Tested on amd64. I hope this fixes the issue for everyone. Sorry once again for the breakage! @Gianni: yes you're right. EPREFIX, EROOT and ED are only available starting from EAPI=3. Since EAPI=2 src_compile is split in src_configure and src_compile, which means the econf calls all need to be done at the same time, which is not easily possible, since they depend on each other, that is the second econf requires the first one to have finished and actually built some libs.