Commit Graph

51 Commits

Author SHA1 Message Date
espie
9cbe5aecb1 have a look at PORTSDIR_PATH as well, so that we can dpb -P dir/p
under mystuff.

problem noticed by jeremy@
2012-04-02 15:51:24 +00:00
espie
11d2036d1a duplicate -m option, resolve conflict by renaming old unused one to -M.
Document some new stuff
2012-03-09 15:16:38 +00:00
espie
38db8f2149 tweak weight handling so that fixing weights and scaling weights works.
add -m option as a reverse to -x, like in pkg_add
2012-03-09 12:51:38 +00:00
espie
bffed54177 create build-stats dir (noticed by Mark Patruck) 2012-03-06 11:22:40 +00:00
espie
5327873dc1 fix -a bug: if you specify -I ..., this shouldn't negate a -a.
"permanent build log" under %f/build-stats/%a
-J250 by default
2012-03-05 19:43:09 +00:00
espie
a366b51e34 %f for distdir (where fetched distfiles live) 2012-03-02 19:35:09 +00:00
espie
2cc9bc20ca tweak so that dpb -I misc/screen/
will work
2012-02-27 17:50:14 +00:00
espie
fb2feec6cf let's do error messages differently: get die to reset_cursor and die
(reverse-override reporter), and get warn to use myprint (and need for
tabs to become spaces in that case...)
2012-02-27 15:37:36 +00:00
espie
56b1b3241a allow -I/-P/-C and command-line arguments to be lists of pkgpaths, or pkgpath
(it's easy to distinguish between a file and a directory under ports).

expand sequences for those files and hosts

when restarting dpb, kill locks that don't correspond to errors, but to a dpb
running on the same host that's no longer there.

do __WARN__ like __DIE__

option -DDONT_BUILD_ONCE
option -DDONT_CLEAN_LOCKS

document some
2012-02-27 14:51:37 +00:00
espie
9a29fe97e4 allow weights to be scaled
add longer traceback in case we die
2012-02-17 07:35:42 +00:00
espie
7f2b8805ae finish distfiles history handling: people who don't fetch/build the whole
tree may want to weed distfiles too, so allow for a full scan of the tree
without building/fetching anything, just to update history:

dpb -DHISTORY_ONLY

(just requires making sure the right engines are created, and a very shortened
loop at end waiting for history to be updated).
2012-01-30 15:11:04 +00:00
espie
f8050aba6f run "expire_old" as a separate job, since it may take some time.
find files under $DISTDIR, anything we don't know about should also
end up in history.
2012-01-09 17:56:28 +00:00
espie
fa990a1dba give dpb more knowledge about distfiles.
- 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.
2012-01-08 20:28:37 +00:00
espie
d179751a0f on SIGINFO, dump T/B hashes into info.log (and mark the display for refresh,
as the shell might muck it with its own information)
2011-12-10 14:48:40 +00:00
espie
c783276075 truly random mode shouldn't peek at most frequent dependencies ! 2011-12-05 21:22:35 +00:00
espie
abb8ddf57d turn -J into an option taking a number.
always run show-prepare-results, and always serialize
depends/prepare/show-prepare-results(/junk) on a single host.
2011-12-05 16:10:00 +00:00
espie
a38035bd67 clean-up job running a bit: add methods to Grabber and PortBuilder objects
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.
2011-12-04 12:05:41 +00:00
espie
ddebaf6da6 not ideal, but will now stop at the end of a -F run. 2011-12-04 11:24:38 +00:00
espie
91b04a0eac fix quick-start: the interface to grabber changed in a silent way.
explicitly move the main_loop near handle_non_waiting_jobs to try to
fix that mess (and finish all the time)
2011-12-03 11:01:47 +00:00
espie
2cfd4c615d new junk option (to remove packages as they're no longer needed) to pass
around thru JobBuilder (along with locks since we need to write stuff into
that file)
2011-12-02 22:33:46 +00:00
espie
7b925859cf stop getting bad timings from erroneous builds. 2011-11-26 11:46:15 +00:00
espie
8890044380 weights in the -I option as well 2011-11-14 21:59:45 +00:00
espie
2f6111d127 explain to the engine how to install stuff when it's ready (no error
checks though).

new -I option to do that.
change -C option to be more useful.
2011-11-14 21:57:47 +00:00
espie
9efee931ed smarter dump at end of build:
- try resolving RDEPENDS on tobuild, so that known dependencie are zapped.
- use equivalence info to not reprint same thing twice.
- dump tobuild AND built, since both are usually relevant in case lots of
stuff didn't build
2011-11-09 08:28:55 +00:00
espie
852e15455d let -S work again 2011-10-11 09:50:35 +00:00
espie
234027bfe0 unfuck pkgpaths.
- instead of seen/unseen, have an actual constructor. Instead, mark pkgpath
for which we wantinfo/wantbuild.
- only mark EXTRA dependencies as wantinfo. So the devel/haddock,no_deps
temporary error should be gone.
- since we have FLAVOR and SUBPACKAGE available, construct as much info as
we can during vars scanning (see handle_equivalences). This avoids about 150
path rescans during a full bulk. Also, grab the timing and logsizes from
equivalent files, so that most stuff should know show % all the time.
- tweak subdirlist to be a hash, and correctly add pkgpath_and_flavors to it.
That way, we rescan avahi pseudo flavors just once, and not four or five times.
2011-10-10 18:56:50 +00:00
espie
7fb255ef24 make dpb more useful for people hacking on ports, allow them to not clean
the work directory after building.
2011-09-25 10:41:30 +00:00
espie
ed1516a867 beginning of a fetch-only option that is supposed to replace mirror-maker
eventually.

- fetch all files
- ignore ignores
- specific builder that doesn't look at existing packages

currently: does not stop when  fetch is finished, which is somewhat of the
remaining issue.

Also: change stats to store pid, to make sense of interleaved log files.
2011-09-13 09:46:53 +00:00
espie
a88700cf54 add extra files at the end of ARGV, not the start 2011-07-14 12:44:39 +00:00
espie
a76e6ce09c turn on -f2 by default 2011-07-14 11:02:50 +00:00
espie
9ba6fb7c5c - unify code in Fetch/Build subengines
- zap heuristic#3, not critical
- don't rebuild the Fetch queue all the time, it's too expensive
- fix bugs in FetchQueue computation, correctly handle 1 distfile case
- create a quick path thru adjust* that handles only new paths.
- use it during LISTING while fetching files, to make more files available
quicker.
- model distfiles as FDEPENDS, DIST, so that they can get dumped.
- add -v option that dumps a bit more stuff in log files.

with these, dpb will fetch all distfiles in a not too surprising order,
and it won't consume 40% cpu while doing so...
2011-06-02 17:09:25 +00:00
espie
1e22893e8e if we -f -a, then scan SUPBDISTFILES too, and use the Distfile cache
to write a list of all known distfiles, that can be used to remove extra
stuff from /usr/ports/distfiles
2011-05-29 11:06:23 +00:00
espie
8cef021866 initial support for fetching distfiles, somewhat experimental yet.
- clean up clock handling, jobs with timer.
- pass more parameters thru state
- tweak the engine to handle distfiles
- lots of new code in Fetch for new jobs.
2011-05-22 08:21:38 +00:00
espie
afdb81839a finish refactoring options.
Deprecate: -t and -T
use -DCONNECTION_TIMEOUT=... -DDISPLAY_TIMEOUT=... instead
New feature: -DSTUCK_TIMEOUT=
kill tasks when they don't show any progress for that long.
2011-04-25 11:58:46 +00:00
espie
cd0ba747ac more option handling refactoring 2011-04-24 09:14:45 +00:00
espie
41d3fc886a move $heuristics into $state 2011-04-24 08:34:05 +00:00
espie
69684267b3 get options to parse 2011-04-24 08:07:02 +00:00
espie
2ad5e5806c refactor options slightly 2011-04-24 08:02:07 +00:00
espie
66650886f9 okay, we're dpb and no longer dpb3 2011-04-18 14:00:57 +00:00
espie
1c93a7f734 auto-complete build dir with arch and build.log 2011-04-05 08:23:00 +00:00
espie
2d255d213d small hack to make these work even if PORTSDIR is not set and non-standard,
since the lib are supposed to be in the same relative location.
2010-12-29 12:28:23 +00:00
espie
a6fdaa4a74 do -d automatically, we don't really need that option 2010-11-01 12:24:47 +00:00
espie
8a26786deb new file/option: save dependencies and be able to reuse them.
makes for a "quick listing" of the most important ports first (e.g., groff).
document -R, even though it's not perfect yet.
flesh out all the recent parts and update the BUGS AND LIMITATIONS section.
2010-10-31 11:07:20 +00:00
espie
f072ab3a17 proof-of-concept implementation of -R (rebuild when signature changes).
Somewhat inefficient (deep check of package vs port signature).
More proper approach would be to tell the engine to always build, have first
step be a check for signature if the package exist, and abort if it matches:
- here we double check everything
- propagating rebuilds means non-uptodate packages give rise to non uptodate.
2010-10-30 11:19:38 +00:00
espie
10e6cc104f engine improvements:
- if several cores are available, recheck errors, so that we're not stuck
waiting for a core to finish to start new shit.
- $logdir/stop-<machine_name> allows you to stop a given machine while
you clean it up and (possibly) restart it (e.g., won't start new jobs)
2010-10-29 11:51:42 +00:00
espie
1c010712c9 keep the output from dump-vars around, and save it in the logfile is
something bad happens.

get rid of special reporter for Vars, E= is enough, people should look
in the paths/logfile now.
2010-10-28 14:54:38 +00:00
espie
309af926e4 kill more code related to P= (will simplify next parts) 2010-10-27 22:53:32 +00:00
espie
1fecde2518 rework PkgPath to distinguish between empty and default flavors...
turns out we probably don't need FULLSUBDIR after all.
compute SUBDIR better, possibly with quotes.
Remove trailing / on subdirs, in case people use completion.
2010-10-26 15:45:09 +00:00
espie
663157b0c7 add an option for dpb to keep going if there are errors left.
there's a bug in the display (to be fixed) as errors won't show properly
and you have to look manually though...
2010-10-24 10:01:57 +00:00
espie
9b38b584e9 better namespace for make-plist internals, prepare to cut up check-lib-depends 2010-08-20 15:22:21 +00:00