Commit Graph

3335 Commits

Author SHA1 Message Date
espie
a323bb36ea better 2013-01-05 21:48:50 +00:00
espie
c1c2864b82 give every task a "name". 2013-01-05 21:48:18 +00:00
espie
fe8936deab even if we've got pre-empted, we still have to lock.
otherwise, we're going to unlock something we don't own, which might
be a race.
2013-01-05 20:08:39 +00:00
espie
a5eeeec19c store information about live dependencies in dpb proper, to avoid
synchronization issues with external fs...

the external locks are still used to synchronize with other dpbs running
2013-01-05 20:06:29 +00:00
espie
7184d32670 retrieve the lists of paths locked per-host from the old lock scanner,
to eventually be able to clean them in init.
2013-01-05 19:59:43 +00:00
espie
209b83159b allow independent setup for the locks location. I strongly suggest
using a local fs.
2013-01-05 18:26:31 +00:00
espie
ba6937b81c and put serialize next to the code it protects
(again, no actual code change)
2013-01-05 18:09:30 +00:00
espie
a18e4e7af2 move install out of the way (no code change) 2013-01-05 18:08:06 +00:00
espie
b159503365 log junk lock handling 2013-01-05 17:29:14 +00:00
espie
82fbc0e7fd avoid opening filehandle again and again.
also, close STDERR after the STDOUT stuff was done, so that we get
error messages otherwise!
2013-01-05 17:22:04 +00:00
espie
ed58c56937 move the "running prepare" message up to handle_output, so that *every*
phase gets tagged.
2013-01-05 16:57:31 +00:00
espie
97912f877b thought I had done this already:
don't blindly append to history, but recreate it from scratch.
We need to remove lines corresponding to stuff that vanished at some
point but came back later!
2013-01-05 16:10:18 +00:00
espie
779bfd4ae7 fix typo 2013-01-05 15:13:48 +00:00
espie
96eed0203f crank factors up to 150, so that dpb consumes a bit less cpu yet. 2013-01-05 13:39:36 +00:00
espie
116acde577 change to NO_HISTORY and document (since there are other NO_* thingies) 2013-01-05 13:34:28 +00:00
espie
85b554d119 make it possible to skip "UPDATING DISTFILES" if we're just running dpb
again without any change.
2013-01-05 13:32:28 +00:00
espie
492a2898b1 fix thinko.
as noticed by
Mikolaj Kucharski.
2013-01-05 07:01:44 +00:00
espie
df5a288315 make sure we zap any lingering socket before we restart our master. 2013-01-04 21:19:18 +00:00
espie
a9b8de6833 switch to IO::File and explicit flush for the engine log.
should be slightly faster
2013-01-04 19:34:10 +00:00
espie
d606cc382f another half-baked change 2013-01-04 18:49:39 +00:00
espie
9eb2e2c9df fix typo. Symptom: errors out at end of build
noticed by rpe@
2013-01-04 18:29:13 +00:00
espie
5b5a52a451 synch manpage with reality 2013-01-04 12:56:26 +00:00
espie
7c00e154b6 ... and don't forget to propagate it thru 2013-01-04 12:49:06 +00:00
espie
9a2e664c54 force report display to fire whenever some new ports get built. 2013-01-04 12:46:20 +00:00
espie
9612257de1 tweak limiter output some more. offset display is not really needed,
but knowing about force computes might.
2013-01-04 12:45:44 +00:00
espie
66ec642cc7 remove unneeded scaffold 2013-01-04 12:34:29 +00:00
espie
9d015892e8 document new exhaustive rate-limiting 2013-01-04 12:16:51 +00:00
espie
a1d376fbf6 take the rate-limiting concept used for the engine, and make it available
elsewhere. Also use it for the Reporter, as it makes no sense to spend
THAT much time reporting quick changes, which actually slows the build.
($factor to tweak as needed).
2013-01-04 12:06:25 +00:00
espie
3db19612eb forgot that one commit for nojunk. Oops 2013-01-04 12:03:06 +00:00
espie
5e21b7b72c explain rationale and working of unjunk 2013-01-03 22:52:01 +00:00
espie
d17cfb86a3 tweak the Engine some more: don't bother adjusting distfiles in a loop
while dependencies are missing

Following landry's remark, also take packages to build out of the race
if some RUN_DEPENDS are going to be ignored. Only do it right before we
put the package in the queue, so that the test is run exactly once per
package instead of during every scan.

I was also worried about multi-packages, but this only takes one fullpkgpath
out of the loop, and "make package" is going to fail half-way through anyways.
2013-01-03 15:47:45 +00:00
espie
de678efd4a add support for unjunk property, that will prevent junking from actually
happening while some 'unjunk' ports are building.

this is a work-around for a known problem with cmake and qt4 include
dependency handlers...

Also, cache fullpkgpath while building a job, as this contributes for
a large part to the speed (not) of the display when building lots of
ports.
2013-01-03 15:45:18 +00:00
espie
c39d9434ff fix infamous "doesn't really quit when it's done" stop bug.
also move the report to the main package, and show a prominent
STOPPED in the title bar if you forget you stopped it during a
previous run ('why is my dpb not building anything ?')
2013-01-03 15:43:27 +00:00
espie
59ee0568e8 stats are comparatively cheap, run them even when the engine doesn't run.
Yields more accurate stat output, where we can see a staircase effect on
the queue when the engine is run not that often, and Built actually go
up until it goes back down again.
2013-01-02 11:13:52 +00:00
espie
f86dbb772a allow overriding the start-up script from the command line. 2012-12-31 09:50:55 +00:00
espie
092496c30a following landry's suggestion, add module hooks for post-install
I'm not too happy about stuff that will remove .la automatically though,
seems to me this shouldn't be generated in the first place.

ETOOMUCHMAGIC ?
2012-12-31 09:14:07 +00:00
espie
61c2611d5c document extra log files... 2012-12-31 08:29:31 +00:00
espie
dcf231188f forgot to GC this along with the imake weirdness.
seen by landry@
2012-12-30 20:40:40 +00:00
espie
d985cc05e2 mismatches are more annoying than extra cpu:
if we end up with only mismatches and we didn't run check_buildable last
time around, try a check_buildable first.
2012-12-30 14:33:46 +00:00
espie
45b128b893 fix elusive "jobs don't show up where they should".
duh. put "live" affinity markers while we're building stuff.
We don't re-read the on-disk markers outside of restart (should we ?)
so they HAVE to be in the pkgpath struct proper.
2012-12-30 14:04:17 +00:00
espie
eb77a6071b why not ? track total distsize for each port. might correlate with other
stuff later.
2012-12-30 11:47:24 +00:00
espie
ad8ad1c28f smarter affinity mismatch handling: if we have other cores idle, ask them.
also, officialize the engine-perf log somewhat (and give it a more descriptive
name).
2012-12-29 19:15:37 +00:00
espie
fa169c69ae allow looking for a given core when trying to match affinity 2012-12-29 19:14:51 +00:00
espie
ebb2a2c90a on start-up, log affinity in a more consistent way, with pid of running dpb. 2012-12-29 19:14:28 +00:00
jasper
fb9809c424 cleanup GCC, XCONTRIB, SUNSITE and GNOME mirror lists. 2012-12-29 07:58:03 +00:00
jasper
e60a243cf3 *** empty log message *** 2012-12-29 07:42:37 +00:00
espie
c3a8df2e5f log the markers we retrieve on any restart... I suspect something foul
happening with localhost.
2012-12-28 21:09:45 +00:00
espie
7adbbd9561 remove optimization that no longer makes sense. 2012-12-28 06:40:11 +00:00
espie
d624d61917 since we have a quick path where stuff move from tobuild to install without
adjusting things, stuff that can be built may have BEXTRA which are not
completed...
2012-12-28 06:31:03 +00:00
espie
3ca05b12fe replace next_check = last_check + check_interval
tweak the algorithm slightly (since we forget the old check_interval).
In particular, never keep old times in reserve.

Makes for simpler and clearer reading
2012-12-27 16:23:17 +00:00
espie
e293bae75a remove the need to loop around adjust_tobuild, fudge things a bit:
Most things will move as a result of {install} changes.

Things that move because of EXTRA depends that are satisfied are unlikely to trigger
further changes.

So, stagger changes for "normal" tobuild -> queue first, and extra depends later.
2012-12-27 14:14:19 +00:00
espie
99ac03e94d oops 2012-12-27 12:20:36 +00:00
espie
fc5ee33b62 add timestamp in phases for Job/Port.pm.
may help synchronize events from distinct logs in case this matters.
2012-12-27 12:03:33 +00:00
espie
7614ffa97a remove 'dead' cycles: changes in ToBuild can't trigger new changes in Built. 2012-12-27 11:04:43 +00:00
espie
98849d8242 self-adaptive delay... with a bit of log scaffolding for now. 2012-12-25 20:41:41 +00:00
espie
67de0deb11 if we have a sizeable queue (>50) and we ran check_buildable less than 30s
ago, don't run it again right now.

This prevents the Engine from busy-checking the same data when it's building
lots of small packages very fast.

(50 and 30 may need some fine-tuning)
2012-12-25 16:07:02 +00:00
espie
11cb77656d make "rebuild" behavior a proper subclass of DPB::PortBuilder, instead
of having tests all over the place.

Take advantage of that to not rechecking signatures if already done.
2012-12-25 10:43:36 +00:00
espie
66b2639394 compute dependencies right away in the job: we don't actually have to
fork depends/prepare/prepare-results for ports which don't have any
depends.

This also prevents some lock contention, obviously.
2012-12-25 10:25:04 +00:00
espie
1af810c8d6 on rebuild, mark all existing files as 'uptodate'. Will prevent extra
rebuilds on @option always-update multi-packages when using -R.
2012-12-25 10:00:08 +00:00
espie
3de193b931 also take things off the later list if they were there. Prevents behavior
like the following:

14426@1356424364: B: x11/kde/graphics3
14426@1356424364: B: x11/kde/graphics3,-kpov
14426@1356424364: B: x11/kde/graphics3,-kamera
14426@1356424364: B: x11/kde/graphics3,-sane
14426@1356424364: B: x11/kde/graphics3,-main
14426@1356424364: V: x11/kde/graphics3,-kpov	<--- note put back on queue
14426@1356424364: V: x11/kde/graphics3
14426@1356424364: V: x11/kde/graphics3,-kamera
14426@1356424364: I: x11/kde/graphics3,-sane
14426@1356424364: I: x11/kde/graphics3
14426@1356424364: I: x11/kde/graphics3,-kamera
14426@1356424364: I: x11/kde/graphics3,-main
14426@1356424366: J: graphics/povray echo.home 0
14426@1356424496: B: devel/goffice
14426@1356424496: I: devel/goffice
14426@1356424496: Q: math/gnumeric
14426@1356424498: B: x11/kde/graphics3		<--- so, duh rebuilt...
14426@1356424498: B: x11/kde/graphics3,-main
14426@1356424498: B: x11/kde/graphics3,-kamera
14426@1356424498: B: x11/kde/graphics3,-sane
14426@1356424498: J: graphics/opencv,-docs echo.home 0
14426@1356424675: B: graphics/povray
14426@1356424675: I: x11/kde/graphics3,-sane
14426@1356424675: I: graphics/povray
14426@1356424675: I: x11/kde/graphics3		<-- and installable, again.
14426@1356424675: I: x11/kde/graphics3,-kpov
14426@1356424675: I: x11/kde/graphics3,-kamera
14426@1356424675: I: x11/kde/graphics3,-main
2012-12-25 09:46:24 +00:00
espie
130df9a3bc will work better with a non-reversed test... 2012-12-25 09:31:54 +00:00
espie
e4c671527c add affinity information to restart jobs on the right host preferentially.
- affinity info is similar to locks, but with a completely different
lifetime.
- streamline the main loop of the engine, so that it can do two passes:
first pass shuns paths with the wrong affinity. If no good path is found,
those are considered during the second pass.
- make the Core factory aware of what hosts might be running, so that
affinity info for machines removed from a config file will be ignored.

thanks to landry@ for a few tests.
2012-12-24 17:24:46 +00:00
espie
0ff5bc966a be slightly more aggressive when a pkgpath is done: for multi-packages,
zap all subpackages from the queue.

need to distinguish the normal case (is_done) with a simpler case
(is_done_quick) that's used when scanning the ports tree. Otherwise, we
would check multi-packages loads of time.
2012-12-24 17:22:15 +00:00
espie
c4f1bfc74e reorg the tests slightly, no functional change 2012-12-24 17:19:01 +00:00
espie
027e6592d6 testing option 2012-12-23 13:28:55 +00:00
espie
cdb441ddb5 cutdate is first parameter, not second.
tighten parenthesis.
add -h history for testing.
2012-12-23 13:27:08 +00:00
espie
25bc62ba46 quicker restart: when adding a new_path, directly check whether it
was built already... so things will go straight to B/I instead of
getting through T/Q...
less noise in engine.log, and much more accurate information for choosing
queue items.
2012-12-21 12:26:16 +00:00
naddy
ee869d0426 do not define ac_cv_func_openpty=no since it breaks this idiom:
AC_CHECK_LIB(util, openpty)
AC_CHECK_FUNCS(openpty)
2012-12-08 14:32:29 +00:00
naddy
8ac927d997 we now have the Unix 98 PTY functions; noticed by ajacoutot@ 2012-12-07 15:15:32 +00:00
florian
93a80502d7 +dnsfilter 2012-12-04 16:29:26 +00:00
jasper
6cc72db009 layout of ftp.belnet.be changed; adjust MASTER_SITE_GNOME accordingly 2012-12-02 19:20:46 +00:00
miod
aec30b0bda m88k ports now use gcc 3; ok espie@ 2012-12-01 21:12:28 +00:00
espie
c1c86bf73d be a bit more specific in _SOLVING_DEP, so that ports that regress-depend
on themselves won't clean themselves when BULK=Auto.
problem reported by sthen@, okay sthen@
2012-11-27 11:35:57 +00:00
pascal
efbbb4e0ba Reserve _wesnothd user/group. 2012-11-20 15:05:44 +00:00
sthen
54fe7aeb13 +spiped 2012-11-19 22:14:31 +00:00
espie
40d8555822 fix reverted lock logic. From Vadim Zhukov. 2012-11-19 14:19:35 +00:00
espie
eef2946135 add a new value for BULK and use it as default:
BULK=auto  will invoke bulk behavior on dependencies, but not during
normal build.
(internally, deps have _SOLVING_DEP=yes, so we can distinguish them)

okay ajacoutot@
2012-11-19 12:24:50 +00:00
espie
e009da097e remove some old cruft
checked by naddy@ for no incidence on current builds
2012-11-19 12:19:30 +00:00
espie
ba8f355da8 more descriptive name 2012-11-18 12:37:21 +00:00
espie
440719fdce fix clean + check for packages interaction 2012-11-18 01:59:31 +00:00
espie
7fafb5c793 allow for -DWAIT_TIMEOUT=0 to propagate correctly
lower default for junk
2012-11-18 01:58:36 +00:00
brad
655424c0b1 Sync with git
ok sthen@
2012-11-15 08:31:36 +00:00
dcoppa
46f826992d Add "native-sigpending: permit" to avoid warnings from systrace now
that make(1) uses this function.

ok espie@
2012-11-12 10:55:17 +00:00
espie
c2ac425fce multiplication doesn't work on undefined values... noticed by naddy@
so initialize $job->{waiting} if needed.
2012-11-09 17:49:17 +00:00
espie
d73a931704 don't mix up wait_timeout and waiting_timeout, as noticed by naddy@.
re-enable wait_timeout on localhost temporarily (should be done in another
way, most probably by checking whether repo is on nfs, we can steal code
from VStat.pm)

pass umask through ssh. This took us long enough to figure out, and it's
considerably simpler than tweaking every login class once again.
2012-11-06 08:26:29 +00:00
espie
3d3c336bb7 waive the other xenocara check if we're building it, as noticed by naddy. 2012-11-05 20:29:35 +00:00
espie
35f70aaf08 determine the xenocara makefile name directly, as it is inconvenient
to do if you're not sure you have the right WRKSRC.
2012-11-03 09:40:05 +00:00
sthen
9553728031 sort .poison lines, add a couple more 2012-11-02 01:44:19 +00:00
espie
9ce8be5926 fix base/xenocara location 2012-11-01 09:58:53 +00:00
espie
21af771d16 add a bit of experimental scaffolding to build xenocara from ports
- resurrect USE_X11 in a smart way: auto-determine it correctly from
WANTLIBS (accounts for most ports)
- define a BUILD_XENOCARA knob that builds fake based on mtree for
X11BASE.
- if BUILD_XENOCARA_TOO=Yes, prepare to hook to a xenocara "fake" meta
package.

All of this off by default, the xenocara shadow tree is not in yet
anyways. Zero impact on regular builds.
2012-10-29 22:27:05 +00:00
espie
b626ac149d thinko 2012-10-28 10:32:23 +00:00
espie
e1f5ebd7f8 be very explicit: running several dpb on the same box is perfectly safe.
so that nitpicky developers are not deluded into thinking this doesn't work
perfectly (hi matthieu@)
2012-10-27 11:17:56 +00:00
rpe
92c015487d lock directory -> locks directory
ok espie@
2012-10-26 14:43:17 +00:00
sthen
41d0a0310e fileutils has been replaced with coreutils, handle this in the autoconf cache
fragment which normally handles gmkdir.  ok jasper@
2012-10-25 12:26:29 +00:00
espie
964fc46d9a document WAITING_TIMEOUT 2012-10-13 09:10:07 +00:00
espie
8553ebea36 disable the waiting period if waiting_timeout is 0.
and don't do it on localhost
2012-10-13 09:06:55 +00:00
espie
04618136d2 fix default property handling 2012-10-13 09:00:02 +00:00
espie
3453d11c35 zap warnings 2012-10-13 08:47:32 +00:00
espie
302ada6ac0 tweaks
- waiting should know when it gets interrupted! so that it doesn't zombify
- add a time limit.
2012-10-13 08:32:58 +00:00
espie
76fe3e54e3 shrink msg 2012-10-12 22:18:10 +00:00