[Pbuilder-maint] pbuilder CVS update: pbuildd README

pbuilder CVS Commit pbuilder-maint at lists.alioth.debian.org
Mon Apr 3 09:01:30 UTC 2006


  User: schepler
  Date: 06/04/03 09:01:29

  Added:       .        README
  Log:
  Initial check in of pbuildd scripts.
  
  Revision  Changes    Path
  1.1                  pbuildd/README
  
  CVSWEB Options: -------------------
  
  CVSWeb: Annotate this file:            http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuildd/README?annotate=1.1&cvsroot=
  
  CVSWeb: View this file:             http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/pbuilder/pbuildd/README?rev=1.1&content-type=text/x-cvsweb-markup&cvsroot=
  
  -----------------------------------
  
  Index: README
  ===================================================================
  The pbuildd script rebuilds the entire Debian archive from scratch
  given a chroot with just the build-essential packages installed.  It
  does this using pbuilder, with the help of several "cycle-breaker"
  scripts to resolve circular Build-Depends.  (Note that currently the
  cycle-breaker scripts probably only work on i386.)
  
  To set up the pbuildd environment:
  
  * Make sure to have lots of free space on your hard drive.  Currently
    on i386 a full archive takes about 25 GB, and building
    openoffice.org requires about 11 GB of free disk space.
    (If you want to save some disk space, and you have a good network
    connection, you can periodically run
    find /var/cache/pbuildd/pool -name \*.tar.gz | xargs rm
    Don't delete .dsc or .changes files from pool, though -- the .dsc
    files are used to detect the current version of packages, and the
    .changes files are used by hooks/A50pb_ver to ensure the +pb version
    gets incremented each time.)
  
  * Create a /var/cache/pbuildd directory and the following directories
    underneath it:
    + build/
    + dists/sid/main/binary-i386/
    + done/
    + done-partial/
    + fail/
    + old-pool/
    + partial/
    + pool/
    + stuck/
    + tmp/
  
  * cp /dev/null to dists/sid/main/binary-i386/Packages,
    partial/Packages, and old-pool/Packages.
  
  * Copy a base.tgz file from a pbuilder setup (using unstable) to
    /var/cache/pbuildd/base.tgz.
  
  * cp -r <checkout dir>/{scripts,hooks} /var/cache/pbuildd/
  
  * cp <checkout dir>/dists/release.conf /var/cache/pbuildd/dists/
  
  * I recommend (for now) that you mkdir -p stuck/b/bison++, and
    download the bison++ sources into that directory.  Otherwise, this
    package's "Provides: bison" will create problems until the real
    bison package is built.  (Bug report filed: this package is based on
    such an ancient version of bison that it no longer deserves that
    Provides.)
  
  * cd /var/cache/pbuildd; pbuilder update --extrapackages fakeroot;
    pbuilder update --configfile scripts/pbuilderrc --override-config.
  
  * If you wish to use the built packages in /etc/apt/sources.list,
    create a GPG key pair in dists/archive.pub and dists/archive.sec,
    and add dists/archive.pub to the apt keyring.  Then add
      deb file:///var/cache/pbuildd/ sid main
    to /etc/apt/sources.list.  The following in /etc/apt/preferences
      Package: *
      Pin: release o=pbuildd
      Pin-Priority: 600
    can also be useful, to keep from unnecessarily downloading new
    versions from the official archives before pbuildd's --upgrade
    option rebuilds the affected packages.
  
  * Ensure that /etc/apt/sources.list contains a deb-src line pointing
    to the official archive.  It's probably not a good idea to have a
    deb-src line pointing to experimental sources, though.
  
  * scripts/pbuildd --upgrade --build-new --remove-obsolete
    and wait a couple weeks.
    Or, if you don't want to build everything, you can instead run
    scripts/pbuildd --upgrade --remove-obsolete <list of packages>
    If you choose the latter, you will probably need to monitor the
    process and add missing Build-Depends packages periodically.
  
  
  A brief description of the command line options:
    --upgrade: At the end of each pass, check for out of date packages
    in the archive and rebuild them.
    --build-new: At the end of each pass, check for packages in the
    official archive not present locally and build them.
    --remove-obsolete: At the end of each pass, check for packages which
    have been removed from the official archive, and remove the local
    copies.
    <list of packages>: These packages get downloaded into the build/
    queue before the script starts making passes through build/.
  
  
  A brief description of the different directories under
  /var/cache/pbuildd:
     build: Holds source packages yet to be built.
     pool: Holds successfully built binary packages.
     partial: Holds binary packages built using the cycle-breaker
     scripts, or built with --binary-arch because some of the
     Build-Depends-Indep packages are not yet available.
     done, done-partial: Holds built packages until the end of a pass
     through build, when they are moved to pool and partial,
     respectively.
     fail: Holds source packages which have failed to build.  Ideally,
     this would stay empty. :)
     dists: Holds generated Packages, Release, etc. files.
     old-pool: If you want to restart the build process from scratch,
     but you have the archive in your global sources.list and don't want
     to lose those packages, you can move the packages here.
     stuck: You can move source packages here which you don't want to
     build just yet, or which are slowing things down because of certain
     packages failing to install.
     tmp: Used briefly when downloading an updated version of a source
     package, to avoid having to redownload anything which was in the
     build/ directory.
  
  (If you build packages by hand to work around build failures and to
  allow the pbuildd process to get farther, you should put the results
  under the appropriate directory under done-partial/.)
  
  
  



More information about the Pbuilder-maint mailing list