On Thu, Feb 22, 2007 at 09:04:04AM +0100, Christian Faulhammer wrote: > Stefan Schweizer <[EMAIL PROTECTED]>: > > > Sadly this feature was removed from portage again - nice to see it > > coming up again. Please fix or point out ebuilds that are broken. > > Yep. Could someone compile a list (with the names of maintainers, if > possible).
Offhand, tracking the metadata the ebuild exports (SLOT, RESTRICT, etc) is the easiest way to spot the offenders- typically it's interaction between eclass and ebuild differing when the ebuild is actually sourced for building. Example would be java-vm's VMHANDLE var; most ebuilds set SLOT below inherit, thus VMHANDLE is ${PN}; both portage and pkgcore export SLOT into the setup environment (annoyingly, ebuilds expect it) thus enabling VMHANDLE to be correct for the setup phase. With paludis, SLOT isn't exported; thus VMHANDLE is always ${PN} for setup phase for them. Post setup phase, the var gets reset due to their forced re-sourcing of the ebuild/eclass for every phase, thus the value comes around as proper the second time, but first time around, it's not set correctly. Personally, portage behaviour I'd say rules out there; that said, the eclass is 'special' anyways, since unless the ebuild explicitly forces SLOT prior to the inheriting, the design of it allows VMHANDLE to very between inherits when it shouldn't. In the past, easiest way I found to deal with this issue (and general metadata nonconstant violations) is auditing eclasses, looking for variables that can toggle state between phases instead of remaining constant. Trace out those vars, and you'll spot the screwups. ~harring
pgpZ8LjnbsVZ7.pgp
Description: PGP signature