Commit graph

126 commits

Author SHA1 Message Date
dmcmahill
6ce703782b don't exit if a depends can't be pkg_add'ed. In this case it will be
rebuilt from sources.
2001-05-09 02:39:31 +00:00
dmcmahill
ab699dabf0 some code cleanup.
- use the PKGPATH variable instead of getting it indirectly

- don't use `foo` when we only want the return value, not the output.

Also, in the non-cache case, we need to remove un-needed packages as noted
in the most recent non-cached bulk build.

Patches provided by Hubert and slightly modified by me.
2001-05-03 21:19:55 +00:00
dmcmahill
0c4917e918 do some extra checks. In particular, don't try to pkg_add a package if
it doesn't exist (doh!).
2001-05-02 13:51:43 +00:00
dmcmahill
fe65792de1 get rid of an unneeded awk invocation 2001-03-31 00:03:03 +00:00
dmcmahill
c341f514d3 -add support for a BULK_PREREQ make variable. BULK_PREREQ contains a list
of packages which must stay installed during the build, but are not pulled
 in by the DEPENDS for each package.  Currently, BULK_PREREQ will always include
 pkgtools/digest.  At this time, the primary use will be to add
 BULK_PREREQ+=pkgtools/xpkgwedge
 in /etc/mk.conf to do an xpkgwedge'd bulk build.  It is up to the user to make
 sure that the list of packages in BULK_PREREQ is a flattened list (ie all the
 DEPENDS are listed too).  Again, at this time, xpkgwedge is really the only
 package that should be added to the list.

-add an ADMINSIG build.conf variable.  This is the signature at the end of the
 email report.  Maybe now I'll quit forwarding reports signed as "-Hubert".

-while here, eliminate grep|awk lines and `grep >/dev/null` replacing them
 with pure awk and grep -q.
2001-03-19 11:25:39 +00:00
dmcmahill
4e817902cb reduce the verbosity when adding/removing pkgs. Suggested by Hubert 2001-02-17 15:48:51 +00:00
dmcmahill
7a46b730b6 when removing out of date binary packages from ${PACKAGES}/All, also remove
the links from the package category subdirectories so we don't leave bad
links around.
2001-02-15 20:13:28 +00:00
dmcmahill
8595fb34da only use the depends cache files during a bulk build, otherwise revert to
the old behaviour.  This is done because unless we're in the middle of a
bulk build, we don't really know that the cache files are up to date.  These
are fairly time consuming (relative to a single smallish package build) to
generate and depend on all of the pkgsrc makefiles.  During a bulk build, the
overhead is far outweighed by the savings.

In particular, 'make bulk-install' will now work correctly outside of a bulk
build (useful for debugging broken packages).

Thanks to Hubert who noted the 'make bulk-install' problem in a private email.
2001-02-13 23:02:23 +00:00
dmcmahill
82f326d1da when a package fails to package, keep a count of how many others packages
fail as a result.  Then report this number in the generated email and
html summary.  The goal is to help the pkgsrc crew focus our efforts
on the broken packages which have the largest impact.  Thanks to
Christoph Badura for suggesting that I do this and Hubert Feyrer who
suggested an easier to read output format.
2001-02-08 19:17:38 +00:00
dmcmahill
bf85b1aa00 This commit incorporates several speed improvements which have been tested
over several bulk builds on an alpha:

- At the start of a bulk build, 4 files are created to allow fast lookup of
  various dependency tree things.  These files are
  .index       ==  maps package name (foo-2.3) to directory (bar/foo)
  .dependstree == contains the complete pkgsrc dependency tree in a tsort(1)
                  compatible format.
  .depends     == contains 1 line per package and lists all the build depends
                  for the package.
  .supports    == contains 1 line per package and lists all packages which
                  depend on this package.

- When a package fails to build, the list of all packages which depend upon
  it is read from .supports.  Each of those packages is immediately marked
  as broken.  This prevents us from trying to build those packages which can
  have significant overhead if lots of other depends are installed before the
  system notices the broken one.

  In addition, the post-build postprocessing will now indicate that a package
  is 'truely broken' (ie, bad PLIST, failed compilation) vs. a package which
  is broken because it depends on a failed package.  This assists in determining
  where to focus our efforts in fixing broken packages.

- In the old approach, all packages are removed after each one is built.  The
  purpose was to a) conserve disk space, b) verify that all required dependencies
  are in fact listed, and c) prevent conflicts.  The problem was that often times
  several packages in a row have similar depends.  For example we might want to
  build several perl packages in a row.  In the old approach, we would install perl,
  build the pkg, deinstall perl and continue with the next one.

  In the new approach, when it is decided that a pkg is out of date and should be
  rebuilt, the .depends file is used to obtain a list of pkgs we require.  Then
  and pkgs which are no longer needed are removed.  This helps to minimize the total
  number of pkg_add/pkg_delete's in a bulk build.

- Since the order of the build is controlled by the depends tree, all depends for a
  given package will have been built by the time the pkg in question needs them.
  If any of the depends failed to build, then the pkg which needs the failed one will
  have been marked as broken.  Given this, the complete depends list for a pkg is
  read from .depends and the depends installed via pkg_add rather than relying on
  recursive make calls to install the depends.

- while here, fix a few minor bugs
  x - don't leave .make log files around when the build succeeds
  x - make sure we refer to the correct report file in the email
  x - use '.order' for the build order file instead of '.l'
  x - use 'grep -c' instead of 'grep | wc -l'
2001-02-01 08:47:29 +00:00
dmcmahill
7954444aca be consistant about the use of "BULK> " as the prompt relating to the bulk
build system instead of a mix of ">> " and "BULK> ".

replace a few foo -> ${FOO}
2001-01-28 21:20:48 +00:00
hubertf
a638bc5107 Whitespace fix 2000-09-15 21:47:03 +00:00
hubertf
07dccfdb81 remove debug code 2000-09-02 14:05:36 +00:00
hubertf
94e6e8bd17 log more stuff to buildlog 2000-09-02 13:53:06 +00:00
dmcmahill
7b2960addc a couple of minor changes to the bulk-check-uptodate target:
- quote arguments to pkg_admin so the shell doesn't try to expand any *'s.

- be sure that all required binary packages exist.  The previous version
  made sure the required packages were not newer, but missed catching missing
  required packages.

Still todo:
When examining required binary packages to see if they have changed, the test
only looks at the modification time of the binary package.  It does not verify
that the required binary package is also up to date with respect to its
pkgsrc files.
2000-08-25 12:43:28 +00:00
dmcmahill
d768c43c3c escape the \ in an echo command so we see it 2000-08-24 15:48:12 +00:00
hubertf
f3fb78f833 If a required binary pkg is found newer, tell which one. 2000-08-24 02:49:44 +00:00
hubertf
7a01adbfdb Remove a comment that's no longer valid after we have 'pkg_admin lsbest'
now - we can expand all pkg wildcards with that.
2000-08-24 00:59:18 +00:00
hubertf
0711a31398 Back out last commit: It nuked pkgs that we compile in several versions,
e.g. for "normal" and -current pkgs.
2000-08-24 00:52:23 +00:00
hubertf
e0fcb9cbea When rebuilding a pkg, don't only remove the binary pkg currently
available with the current version, but ALL version.

That way, old pkg versions are automatically removed when building new
ones.
2000-08-11 20:38:04 +00:00
hubertf
71fc302230 Suppress any errors from pkg_delete if no pkgs are installed 2000-08-04 03:24:33 +00:00
dmcmahill
b5e3262f6a minor grammar fix 2000-08-01 21:19:21 +00:00
hubertf
8926c8c0b2 s/depends/install-depends/ 2000-08-01 02:56:43 +00:00
hubertf
1d49b935a8 make sure the required packages (depends) are installed before the
package is about to be built. This allows measuring of (only) this
pkg's build cost in some future step.
2000-07-31 22:22:33 +00:00
hubertf
ff3cf6b5cf No need to set PKG_MISC_TARGETS in /etc/mk.conf any more, it's now
on per default in bsd.pkg.subdir.mk
2000-07-28 01:16:04 +00:00
hubertf
ac4380bdd5 initial commit of bulk build targets (more to come) 2000-07-28 00:46:17 +00:00