On Wed, 17 Oct 2018 16:14:37 +0000 Michał Górny wrote: > Dnia October 17, 2018 4:03:17 PM UTC, Michael Haubenwallner napisał(a): > >On 10/15/2018 08:05 PM, Michał Górny wrote: > >> On Mon, 2018-10-15 at 13:34 +0200, Michael Haubenwallner wrote: > >>> Hi, > >>> > >>> in pkg_nofetch, beyond to "direct the user to download relevant > >source files", > >>> I've found it useful to tell the user which filesystem directory to > >put the > >>> files into once downloaded. > >>> > >>> Beyond that, I've also found it useful to tell the user whether a > >relevant > >>> source file is 'already there' or 'still missing'. > >>> > >>> Since the EAPI 6 related update to pkg_* phases to not have access > >to DISTDIR > >>> (even in earlier EAPI) any more, I'm wondering if both informations > >are still > >>> available to pkg_nofetch in one or another way. > >>> > >>> Any idea? > >>> > >>> Or is my only option to reduce the information to "all these files > >need to be > >>> put in your DISTDIR", requiring the user to find out both the right > >DISTDIR > >>> and which of the listed files are still missing herself? > >>> > >> > >> How would you know whether the file in DISTDIR is correct and > >complete? > >> > >Well, pkg_nofetch is called only if some files are still missing, > >so portage really should have checked them before, and eventually > >renamed invalid files to "checksum_failure", no? > > Maybe. That's entirely undefined behavior. > Does the construction of the shadow dir happen before checksum etc validation? Or does it happen afterwards? One option would potentially be to only create entries in the shadow dir if they're verified to be complete as per Manifest. Then a simple -e test is all that's needed to know if its downloaded yet. ( But PMS will need to stipulate which phases -e tests should be able to check this ) Outside that, perhaps a future EAPI could have a function for this purpose, where the function is defined to only return a true value if the distfile exists *and* is Manifestly correct ( doing on-demand verification and possibly caching it )