use the -q option, out-of-date looks for changed package names but not
for changed package signatures!
If you want to see ALL of you outdated packages, don't use -q.
"go ahead, commit" espie@
Now, resolve-lib can take a big list of libraries with full paths,
and it can solve a big list of spec at once.
Basically, we move most of the parsing of spec paths into resolve-lib.
Since print-package-signature does build a full list of libs, let's solve
it all at once, instead of invoking a costly perl script repeatedly.
Add some caching possibilities for out-of-date. Specifically:
- store libraries for each package under the directory _PORT_LIBS_CACHE
- use the dependency cache _DEPENDS_FILE to avoid recreating dependency
chains, add a new file _DEPENDS_CACHE that will accumulate all dependencies,
and extract these with a simple script extract-dependencies.
Use echo to build libraries lists instead of ls, that's a bit simpler...
Some more clean-up will happen: it's probably simpler to parse libspecs
at once, extract the libraries needed and go fetch the corresponding libraries
just once.
- automatically detect number of cpus per host
- differentiate between hosts and nodes
=> each cpu is its own node
=> ports are build on nodes now
=> multiple host entries are no longer necessary for smp machines
=> you have an SMP machine, use localhost0, localhost1, ...
- for remote sessions, use ssh multiplexing, this speeds up a dpb
restart by about 1/4 - 1/3
- new option '-s', which starts building in cwd
=> use 'dpb -s' instead of 'make package'
=> mostly useful for SMP machines or if you have your cluster powered
on all the time
- '-b' now forces creation of the dependency file, if it doesn't exist,
it is created automatically
- check signals on returning ssh sessions to notice which ones really
succeeded and which ones where killed
- don't invoke intermediate shells on exec(), allowing to actually kill children
- when we are going down, only kill remaining children, not the whole pgrp
- don't use a SIGCHLD handler, but call waitpid explicitly at the right places
- exit(1) in case of an error
others:
- a little cleanup
- new option -t <timeout>
ok pval@
This is not the linker's way of working, but this is the way dependencies
must be handled to find about update issues.
naddy@ agrees, nobody else gives a fuck.