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:

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

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

reprepro -b /var/www/debian -C main includedeb wheezy *deb

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:


CategoryPermalink