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