Bug #455030 is just one of many bugs that arose in the past and can potentially arise in the future. I propose that the usage of FILESDIR, T and probably other variables inside pkg_* phases gets banned completely. With the term "banned", I mean that: - PMS documentation should explicitly state that developers are not allowed to use such variables inside pkg_* phases. - repoman should detect this violation considering it a critical error. Reproducible: Always
PMS already bans it.
http://dev.gentoo.org/~ulm/pms/5/pms.html#x1-11700011 FILESDIR is src_* only, T is always available (though, of course, it won't be binpackaged).
Not so fast Ciaran. repoman should inhibit the commit then, because it does not seem to do that. @mgorny: T is always avaiable but you cannot expect files created during src_* to be still there.
repoman can't parse bash. If you want to catch violations, you'll need to get your package mangler to set FILESDIR=/pile/of/monkeys during pkg_ phases.
PMS is quite clear on these variables. It says that FILESDIR is only legal in src_* (even with a footnote "Not necessarily present when installing from a binary package"). About T it says that it is "consistent and preserved across a single connected sequence of install or uninstall phases", so obviously it's not preserved when installing a binary package. But I don't see any reason why we should forbid usage of T in pkg_* phases (as long as the ebuild doesn't assume its being preserved from src_*). That would break several eclasses.
(In reply to comment #5) yes, banning $T in any func is wrong. the current desc is correct.