He's not dead, he's resting
EAPI 3: Utilities Die, and New nonfatal Utility
This is part of a series on EAPI 3.
With older EAPIs,
econf (being a shell function) would
die on failure, as do most eclass-provided functions, but
emake (being an external, since people call it via
xargs) and most package-manager-provided utilities (external or not) merely return non-zero.
In EAPI 3, most utilities (consult PMS for exact details) will now die when an error is encountered. This in turn means the package manager has to be able to die from an external utility.
Occasionally, this isn’t desired behaviour. You might need to call a function, but do something else if it fails rather than aborting. In this case, use the
nonfatal utility with the command to run as its arguments. Mostly this is just used to give better error messages, but there are sometimes other cases:
nonfatal emake plugins || die "Making plugins failed. Do you need to frozbinate your zorgons?" # these usually exist, but sometimes don't, and we're too lazy to check manually nonfatal dodoc foo bar baz
This feature originated with exheres-0.