./pkgtools/pbulk-base, Core components of the modular bulk build framework

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.57, Package name: pbulk-base-0.57, Maintainer: pkgsrc-users

pbulk is the modular bulk build framework for pkgsrc.

This package contains the core components:

- pbulk-scan, a program to scan the entire pkgsrc tree
or a list of directories therein for packages and
dependencies. Distributed operation using a master/client
mode is supported.

- pbulk-resolve, a program to resolve the dependencies
from the output of pbulk-scan

- pbulk-build, the build scheduler. Distributed builds via TCP
are supported.

This package does not contain the script logic to build actual packages.


Required to build:
[pkgtools/cwrappers]

Version history: (Expand)


CVS history: (Expand)


   2023-02-12 22:17:24 by Joerg Sonnenberger | Files touched by this commit (3)
Log message:
pbulk-0.57: switch to a binary heap for the build queue
   2023-02-12 05:12:54 by Joerg Sonnenberger | Files touched by this commit (3)
Log message:
pbulk-base-0.56: Support for adjusting scheduling

Switch to a weighted scheduling algorithm. Before, build order was based
on number of reachable nodes in the dependency graph. This assumes that
heavy packages are required by other packages. Some big packages
nowadays violate that assumption and can result in long periods at the
end of a build where only a few builders are active. Annotating those
packages with PBULK_WEIGHT in the pbulk-index output can boost their
priority to let them be built earlier. The default weight is 100.

Note: the pbulk-build report has grown an extra field per line with the
computed effective weight of each package. This file is normally used
only internally.
   2023-02-11 00:14:32 by Joerg Sonnenberger | Files touched by this commit (3)
Log message:
pbulk-base-0.55: Optimize DAG computation

Before the build starts, pbulk-build computes the size of the dependee
graph for each package. This is naturally a O(n^2) problem. The existing
algorithm used a linked list to check for duplicates. Replace this with
a simple array for seen markers. While it is still quadratic to reset
the array for every package, clearing the array is a simple memset.
A no-op run after a full build now needs 0.3s on my work station
compared to over 3min before.
   2019-03-12 16:37:51 by Thomas Klausner | Files touched by this commit (2)
Log message:
pbulk-base: fix double free().

Debugged by dillo & myself.

Bump version.
   2016-06-23 17:07:39 by Joerg Sonnenberger | Files touched by this commit (2)
Log message:
pbulk-base-0.53:
After processing the tree-scan job, reassign jobs to all idle clients.
Before, this was only necessary at the very start of the build.
   2016-06-20 19:54:44 by Joerg Sonnenberger | Files touched by this commit (5)
Log message:
pbulk-base-0.52:
Move the tree iteration logic from the master to the client. This
matters primarily when using the additional package list in the top
level makefile and ensures that the client configuration is used
consistently.
   2016-03-10 10:25:42 by Jonathan Perkin | Files touched by this commit (1)
Log message:
Use LDFLAGS, LDADD isn't in OPSYSVARS and LDFLAGS doesn't require
having to pass through MAKE_ENV.  Fixes build on SunOS.
   2016-02-25 18:25:05 by Jonathan Perkin | Files touched by this commit (3)
Log message:
Use OPSYSVARS.