the names of files in there are not totally trivial to figure out from the
normal filename + sha.
-> filename will be stripped off DIST_SUBDIR
-> b64 checksums interfere with filesystem semantics, e.g., /u8//ffg
will become u8/ffg
- 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.