Summary: | Failing collision protect check runs src_install again with next ebuild <ebuild> merge | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Petteri Räty (RETIRED) <betelgeuse> |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | truedfx |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Petteri Räty (RETIRED)
![]() It does mark src_install as completed, but src_install is re-executed anyway. /var/tmp/portage/${P}/.installed exists afterwards, you can check this. Anyway, install phase shouldn't (and doesn't) do a collision-protect check, this would fail for emerge --buildpkgonly / ebuild ... package. collision-protect check is done during merge phase, and since the merge phase failed for you the first time, it makes sense that it's executed a second time. Personally, I rather like that, I'd hate to have files overwritten with collision-protect just because I forgot that I already had a collision-protect report earlier and hadn't cleaned my /var/tmp/portage yet, which seems to be what you're asking for. To disable it, it's always possible to temporarily export FEATURES=-collision-protect. Well I would just like to see that I don't need to run src_install twice if collision-protect fails because a few packages have quite long make installs. Use qmerge then. As said, collision-protect is run during the merge phase, and there isn't really a way to change this without changing the semantics of it fundamentally. If you want portage to not repeat the install phase, well, that is nothing specific to collision-protect (and qmerge avoids that). |