move the logs/locks yet again: those are dpb logs, so they belong in
logs dir (note the s). Use one single option (-L) to move both.
remove old -t mode, use -t/-T for ssh/display timeouts
Change the "mem" option to "parse size file", dependent on show-size.
- give more responsibility to tasks, so that they can time themselves without
any higher level support
- record errors the opposite way, so that more recent errors show up first
- better terminal display: use fullwidth, clamp to terminal height
- less logsize fuzz, always trim preparation stages
- dpb's pid - dependent ssh socket names, so that 2 dpb can talk to the same machine.
- pid display for dpb itself, and ssh masters.
will replace old dpb once we're satisfied it works.
some features:
- no more waiting, starts building right away, the dependencies discovery
process is just another job,
- monitor display that makes it easy to know when jobs get stuck, or machines
get down.
- loads of logs,
- locks that stay around in case of error, and that you can remove when
the error has been fixed (dpb picks it up),
- smart choice of which package to build,
- can take into account previous build times,
- builds on machines of differing speed, offloading "lighter" jobs to slower
boxes.
(again, ports is still locked for most people)
- simplify IGNORE handling, always define it, even when NO_IGNORE is set,
and only use it for the targets it's meant to influence.
- make it possible to multiply-IGNORE a port, so stuff that's BROKEN and
NOT_FOR_ARCH will show up as both.
- DESCRIBE_TARGETs can die, since we no longer need special IGNORE dance
for them.
- add an IGNORE_IS_FATAL tweak, so that ignored ports can actually error out.
- reorg dump-vars to choose what to show, including new IGNORE, and COMES_WITH.
- name an explicit prepare step, which does check build dependencies and
install them (useful for build timing purposes)
- move the do-fetch test out, so that we can add pre-extract and do-extract
there eventually.
- better at handling progress meter incomplete lines and sanitizing them
before output
- less greedy about maintaining a context, let post-error messages stuff
end up in the default.log, instead of seeing huge swaths of entering directory
after errors.
- -s silent option, for use when we see the output but don't need to duplicate
it.
After work with NicM, portslogger is useable with tmux. From within tmux,
just run something like:
tmux pipe-pane 'perl /usr/ports/infrastructure/build/portslogger -s /usr/ports/log'
to log all ports building activity...