In cvs eclass, there is no SRC_URI variable, so "emerge -f/-F" won't fetch the source code from the server ,the real fetch process is in *src_unpack* stage. the scenario of problem: 0) for single live ebuild, emerge -f/-F =${CATEGORY}/${PN}-9999 don't fetch the source code, we have to do following to workaround this: cd ${CATEGORY}/${PN} && ebuild ${PN}-9999.ebuld unpack && ebuild ${PN}-9999.ebuild clean 1) If I install the foo-9999 package which use this eclass, it will be recorded into @world, then we have problem during "emerge -f/F @world", the source code won't be updated. 2) If I have plenty of live ebuilds which base on this eclass, I can't take advantages of parallel fetch. Say, It won't fetch the source code while another is compiling, it will just wait, this is kind of making the build/fetch process serialize, and make the entire building process longer, for slow network, the situation even worse. 3) If I have serveral live ebuilds, say 10 live ebuild, I can't update or clone all the source code in one run without doing upacking, I want the "emerge -f/-F @package_set" also works for live ebuild. I'm also thinking about adding one --fetch-live-uri to emerge, and which only fetch the live ebuilds, it's probably useful. Reproducible: Always
I asked dlan to open this bug as this problem has always really bothered me. The fetching could easily be done in src_fetch and the copy could happen in src_unpack. Is there any specific reason why this is not done? I can easily enough provide patches for review. Again, I'm not very familiar with this eclass but I suspect this isn't that difficult to do...
*** This bug has been marked as a duplicate of bug 249086 ***