Summary: | sys-apps/fakeroot: when using FEATURES=fakeroot, build sleeps for ever in src_install() | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Justin Lecher (RETIRED) <jlec> |
Component: | Current packages | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | dev-portage, floppym |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Justin Lecher (RETIRED)
2013-11-27 19:45:53 UTC
A SIGTERM is not enough for the process to end. It needs a SIGKILL. And second this started to happen when switching to systemd. And when killing the fakeroot process it leaves the faked process behind. It look like the faked process is also not under the same process tree not sure anyone cares about fakeroot fakeroot works fine for me; it is nice to be able to test the install phase without root privs. (In reply to Mike Gilbert from comment #4) we should be able to do that w/out fakeroot (In reply to SpanKY from comment #5) > (In reply to Mike Gilbert from comment #4) > > we should be able to do that w/out fakeroot Sadly it doesn't. Or do I miss something? (In reply to Justin Lecher from comment #6) you can run `ebuild ... install` today as a non-root user. i test the vast majority of packages that way. as for `emerge`, i meant that we should investigate making it "just work" w/out needing fakeroot in the first place. the majority of ebuilds don't need root, and the few that do could be handled in other ways. having a program that does ELF interposition and ptracing (sandbox) run another program that does ELF interposition and ptracing (fakeroot) sounds pretty fragile to me. we could add support to sandbox to have it do the same thing, but seems like the other route makes more sense -- force everyone to have src_install run as non-root. (In reply to SpanKY from comment #7) > (In reply to Justin Lecher from comment #6) > > you can run `ebuild ... install` today as a non-root user. i test the vast > majority of packages that way. I could swear that for some long time "ebuild ... install" did bail out when used as normal user w/o fakeroot. That's why I am using it I will disable it and see what happens. (In reply to Justin Lecher from comment #8) > I will disable it and see what happens. it is still that way. >>> Install multitail-6.0 into /var/tmp/portage/app-text/multitail-6.0/image/ category app-text /usr/bin/install: cannot change ownership of ‘/var/tmp/portage/app-text/multitail-6.0/image//usr/bin/multitail’: Operation not permitted * ERROR: app-text/multitail-6.0::gentoo failed (install phase): * dobin failed * * If you need support, post the output of `emerge --info '=app-text/multitail-6.0::gentoo'`, * the complete build log and the output of `emerge -pqv '=app-text/multitail-6.0::gentoo'`. * The complete build log is located at '/var/log/portage/build/app-text/multitail-6.0:20131129-141942.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/app-text/multitail-6.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/app-text/multitail-6.0/temp/environment'. * Working directory: '/var/tmp/portage/app-text/multitail-6.0/work/multitail-6.0' * S: '/var/tmp/portage/app-text/multitail-6.0/work/multitail-6.0' Right, anything that calls chown(2) will cause problems. (In reply to Justin Lecher from comment #9) right, and my point is that we should change packages like that to stop doing the chown/install -g/etc... i think the number of packages that do this is way less than the number that don't. thinking a bit more, i suspect that the majority of packages that do do this do it via standard tools -- `chown` and `install`. we're already wrapping `install` via $PATH for xattr reasons, so adding owner parsing would be easy. (In reply to SpanKY from comment #11) It looks like dobin and dosbin have passed -o and -g to install for a long time; it predates the subversion history. I was hoping to find some commit message that would explain why that was implemented in the first place. Have a look at: https://bugs.gentoo.org/show_bug.cgi?id=489016 |