1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-07 06:40:06 +00:00
freebsd-ports/Tools
Kris Kennaway b8d81fba50 Checkpoint a major round of changes:
* Only keep distfiles if the port passes 'make fetch', so we don't
  accidentally keep files with invalid checksums

* Use cleanup() instead of directly exiting in some error conditions

* When cleanup() is called indicating an unexpected error (possibly
  leaving the filesystem in an inconsistent state), mark the chroot
  as dirty so it will not be reused by another build

* Remove packages in dependency order instead of with pkg_delete -f in
  possibly incorrect order.  This paves the way for focusing on errors
  generated by pkg_delete (e.g. @dirrm that should be @dirrmtry) in the
  future. [1]

* Detect when packages were left behind because they were still in use
  by other packages, indicating an incorrect or incomplete port
  dependency list

* Partial support for ccache builds (not yet complete)

* Support non-standard LOCALBASE/X11BASE settings

* Delete FETCH_DEPENDS after the 'make fetch' stage.  We have to add
  them again before 'make extract' since, due to a lack of a 'fetch
  cookie', 'make extract' actually *always* runs 'make fetch' again,
  even when distfiles have already been fetched.  We need to delete
  them in order to:

* Record an mtree spec of the 'pristine' filesystem state, for later
  comparison.
  # XXX Perhaps this can be done in stage 1 before the
  # 'make fetch', removing the need to delete-and-readd.

* Also record an mtree spec of the filesystem state prior to the
  build phase.  Compare this to the state of the filesystem
  immediately before running the install phase, to detect files
  that were inappropriately installed during the build phase.
  Doing so is a fatal error.

* Prior to installing, try to run a 'regression-test' port makefile
  target, if it exists.  This allows ports to hook their internal
  regression suites into the package build.  This needs further
  infrastructure support, e.g. a default NOP target in bsd.port.mk.
  For now this is run with 'make -k', so regression failures will
  not yet actually cause package build failures.

* Separate the 'make install' from 'make package' phases rather than
  let the latter implicitly do the install.

* After the newly packaged port has been deleted, compare the state
  of the filesystem to the state before 'make install'.

* After removing BUILD and RUN dependencies, compare the filesystem
  state to the pristine state before the start of the build.  This
  also detects package dependencies that did not clean themselves up
  properly when deinstalling.  It also detects dependencies that were
  'missing' from the port INDEX: these were not pkg_added into place,
  so the package build had to compile them from scratch (a big waste
  of time and effort), so this is now also a fatal error.

PR:		ports/85746 (inspired by) [1]
Submitted by:	Boris B. Samorodov <bsam@ipt.ru> [1]
2006-02-11 09:38:18 +00:00
..
portbuild Checkpoint a major round of changes: 2006-02-11 09:38:18 +00:00
scripts Warn if there are duplicate MD5/SHA256/SIZE statements for a single file 2006-01-24 21:53:51 +00:00
make_index Fix bogus comments. No code change. 2006-02-02 00:40:37 +00:00
make_readmes Put $FreeBSD$ for ident(1)'ing. 2005-03-13 08:49:38 +00:00