- keep a stash indexed by checksum, so dpb can identify duplicate files.
- in a full bulk, if the scan has no errors, write to a ${DISTDIR}/history
file the files encountered in ${DISTDIR}/distinfo that seem to no longer
be needed (with full timestamp and checksum info).
Should be enough info to know when to expire old DISTDIR entries.
- keep a cache of checked checksums as ${DISTDIR}/distinfo
- read existing cache on startup, don't need to recheck those files.
- split checksum_task: update the cache after the checksum is done
- create the by_cipher/sha256/... entries
- in fetch_only mode, do a "long" checksum on existing files not in the cache.
If you ever have doubts on the integrity of already checked files, just
rm ${DISTDIR}/distinfo.
building, like bsd.port.mk does.
won't change anything in the build, but makes pkg_add -a less confusing,
since mp ports won't try to add itself while building.0
That way, bsd.port.arch.mk can still make available in a Makefile, but
we can also include them early in bsd.port.mk, so that they will always
be available from modules and Makefile.inc.
if no-depends but that's complicated)
also, two distinct critical sections: we don't need to stay locked at
the end of show-prepare-result.
Even though that's not really important, simplify logic a wee little bit
to access more stuff they need.
Remove distantshell->make, ask state instead.
Provide state with the program we run, and the parameters we pass it.
- same make for distant and local hosts
- pass BUILD_ONCE=Yes if -a.
- refactor redirect a bit to store multi-line results to a temporary file
- new show-prepare-results stage using that
- prepare and show-prepare-results shouldn't be NoTime, since they're
predictable.
- lock host thru depends -> junk in the junk case.
acquiring the lock is done thru polling in the child, so that it doesn't block
dpb proper.
- new "junk" stage that gathers dependencies and deletes them.
stages, even if the package is already there.
This could break EXTRA depends where the package would already be there,
and thus its dependency tree not really solved, and thus depends could
easily miss packages...
problem reported by nigel@... and not reported by ajacoutot@ :)