Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Feb 2006 09:38:18 +0000 (UTC)
From:      Kris Kennaway <kris@FreeBSD.org>
To:        ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: ports/Tools/portbuild/scripts buildscript
Message-ID:  <200602110938.k1B9cIXX013641@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
kris        2006-02-11 09:38:18 UTC

  FreeBSD ports repository

  Modified files:
    Tools/portbuild/scripts buildscript 
  Log:
  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]
  
  Revision  Changes    Path
  1.23      +202 -65   ports/Tools/portbuild/scripts/buildscript



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602110938.k1B9cIXX013641>