While building systemd in an ARM cross chroot, postinst for systemd dies because of the fcaps call like so: * Setting caps 'cap_dac_override,cap_sys_ptrace=ep' on file '/usr/bin/systemd-detect-virt' failed: * warning - unable to get process capabilities (old libcap?) * unable to manipulate CAP_SETFCAP - try a newer libcap?: Invalid argument * ERROR: sys-apps/systemd-213::gentoo failed (postinst phase): * could not set caps * * Call stack: * ebuild.sh, line 93: Called pkg_postinst * environment, line 5011: Called fcaps 'cap_dac_override,cap_sys_ptrace=ep' 'usr/bin/systemd-detect-virt' * environment, line 2821: Called die * The specific snippet of code: * die "could not set caps" This isn't a huge deal, since systemd-detect-virt won't be run on that system, however it also means that the rest of postinst didn't get run, so migrate_locale, migrate_net_name_slot and the mtab section (the important ones imo) don't get run. libcap is 2.22-r2 which appears to be the latest stable as well as the latest in the tree, and the host system is running a 3.14.5 kernel. Reproducible: Always
This seems like a problem in the fcaps function. I think that it should not call die when invoked from pkg_postinst.
Or rather, as a utility function, it would be nice if it would not call die at all and leave it up to the ebuild.
Looks like eclass is no longer used (for example with 225)