>>>>> On Mon, 20 Mar 2017, Alexis Ballier wrote: >> After the PMS change, we will have the same properties for DISTDIR, >> FILESDIR, WORKDIR, and S. Namely: >> >> - All four variables will be valid in src_* phases and in global scope >> - They will have a consistent value in the ebuild environment >> - The actual directories must not be accessed in global scope
> Please correct me if I'm wrong, but then portage's behavior of > sending empty FILESDIR when it should not be used is wrong after > that, right ? No. "Consistent" only means that it has a constant value when it is defined, namely in src_* functions and in global scope. > The idea behind FILESDIR being valid only in src_* phases is to > allow portage-tree-less binpkgs to work. Not sure if that's even > possible right now, but that is definitely a desirable goal. > If I understand correctly, the change you mention would mean > FILESDIR will be "constant". Which is good since that'd avoid > regenerating the environment. However, this breaks autoconf ebuild > relying on FILESDIR being empty when invalid and this would trigger > the 'source $FILESDIR/... || die' part making the ebuild die in > global scope. Obviously the FILESDIR variable cannot be empty in global scope if PATCHES=("${FILESDIR}"/foo.patch) is supposed to work in EAPI 6. > There are probably simpler fixes than the proposed patches, but this > does indeed raise the question whether this is a backwards breaking > change or not. The spec will change from "not consistent" to "consistent" across phases. Where "not consistent" meant that ebuilds could not rely on the variable having the same value. I did *not* imply that ebuilds could rely on the variable having a different value in each phase. Ulrich
pgp8CF_rBRxcS.pgp
Description: PGP signature