[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