Contents
Howto setup a piuparts test-instance for development
*This is still incomplete.*
Setup a private repo using reprepro
To be able to run piuparts on packages outside the archive, they need to be in a repository, which is available via http.
Install reprepro and create a repo in /var/www/debian:
- create dir /var/www/debian/conf/
- create repo definitions in /var/www/debian/conf/distributions
Codename: sid Architectures: amd64 i386 source Components: main contrib non-free UDebComponents: main Codename: wheezy Architectures: amd64 i386 source Components: main contrib non-free UDebComponents: main Codename: squeeze Architectures: amd64 i386 source Components: main contrib non-free UDebComponents: main Codename: lenny Architectures: amd64 i386 source Components: main contrib non-free UDebComponents: main
- create the repo's:
reprepro -b /var/www/debian export lenny reprepro -b /var/www/debian export squeeze reprepro -b /var/www/debian export wheezy reprepro -b /var/www/debian export sid
- export /var/www via http
- add packages to the repo:
reprepro -b /var/www/debian -C main includedeb wheezy *deb
- remove packages from the repo:
reprepro -b /var/www/debian -C main remove ${PKG}
Create pbuilder tarballs
This step can be skipped, but if you create tarballs with pbuilder first, creating the initial chroot is faster, because there is no need for a debootstrap each time.
For each distro (eg wheezy) and each arch (eg amd64), create a configfile.
/etc/pbuilder/pbuilderrc.i386-wheezy:
ARCHITECTURE=i386 DISTRIBUTION=wheezy BASETGZ=/var/cache/pbuilder/base-$DISTRIBUTION-$ARCHITECTURE.tgz BUILDRESULT=/var/cache/pbuilder/result-$DISTRIBUTION-$ARCHITECTURE MIRRORSITE=http://ftp.de.debian.org/debian PKGNAME_LOGFILE_EXTENTION=.buidlog
Then just run
pbuilder --create --configfile /etc/pbuilder/pbuilderrc.i386-wheezy
run install test
TODO
run upgrade test squeeze2wheezy
In this example, /ram is a ramdisk which is large enough to do the piuparts run.
run_piuparts_squeeze2wheezy:
#! /bin/bash PKG=$1 LOCALREPO=http://localhost/debian piuparts \ --tmpdir=/ram \ --warn-on-others \ --no-eatmydata \ --warn-on-leftovers-after-purge \ --skip-logrotatefiles-test \ --scriptsdir /etc/piuparts/scripts \ -d squeeze \ -d wheezy \ -m http://ftp.de.debian.org/debian/ \ -m ${LOCALREPO} \ --do-not-verify-signatures \ -b /var/cache/pbuilder/base-squeeze-i386.tgz \ --apt \ $PKG | tee ${PKG}.`date +%s`.log
run upgrade test lenny2squeeze2wheezy
As lenny isn't available on mirrors anymore, it needs to be downloaded from archive.debian.org. Currently, piuparts doesn't really have a nice way to deal with this (see bug #699028), but this patch works for now:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699028#5
run run_piuparts_lenny2squeeze2wheezy:
PKG=$1 LOCALREPO=http://localhost/debian PIUPARTSDIR=/path/to/piuparts/dir ${PIUPARTSDIR}/piuparts.lenny \ --tmpdir=/ram \ --warn-on-others \ --no-eatmydata \ --warn-on-leftovers-after-purge \ --skip-logrotatefiles-test \ --scriptsdir /etc/piuparts/scripts \ --dpkg-noforce-unsafe-io \ --no-eatmydata \ -d lenny \ -d squeeze \ -d wheezy \ -m http://ftp.de.debian.org/debian/ \ -m ${LOCALREPO} \ --do-not-verify-signatures \ -b /var/cache/pbuilder/base-lenny-i386.tgz \ --apt \ $PKG | tee ${PKG}.`date +%s`.log
run custom scripts
TODO: describe this:
- examples from scripts that are used in the piuparts runs on the archive
- install some extra package before the piuparts run
- others?
- example scripts to display extra info in the log