Differences between revisions 73 and 74
Revision 73 as of 2013-06-01 15:00:40
Size: 6728
Editor: HolgerLevsen
Comment: cleanup
Revision 74 as of 2013-06-01 15:03:45
Size: 2732
Editor: HolgerLevsen
Comment: move examples to http://wiki.debian.org/piuparts/UseCases
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
== Old development efforts == Old development efforts ==
Line 46: Line 46:
= Howto setup a piuparts test-instance for development =


*most of this is still to be written*

TODO these scripts should really be converted to a single script that can do all the different runs (at the same time, if needed).

== Setup a private repo ==

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:

{{{#!
#! /bin/bash

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:

 * 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

Overview about piuparts

Description: .deb package installation, upgrading, and removal testing tool

piuparts is being run constantly on the main archive, the results are public on piuparts.debian.org. piuparts itself has a README and a piuparts manpage, for the piuparts.debian.org setup there is also an FAQ available. Below is an overview of information not covered elsewhere.

Developing piuparts

Old development efforts

How piuparts is setup on piuparts.debian.org

Running piuparts is the boring, automated part and is supervised by Luk and Holger, who can su into the piupartss (slave) user. piuparts-slave is run in a shared screen session and seldom needs interaction. The piupartss user needs to be able to run piuparts and thus can use sudo without restrictions.

The slave automatically starts the master, to reserve packages to process and to pass logfiles to the master.

Ideally all members of the Debian-QA group can su to the piupartsm user and process the logfiles - currently it's again only Luk and Holger. piupartsm has no special privileges. If you want to help, please join #debian-qa and say so there.

Once a day piuparts-reports is run as piupartsm by cron to generate the html output of the logs.

For more information see http://anonscm.debian.org/gitweb/?p=piuparts/piatti.git;a=blob;f=README.txt;hb=HEAD


CategoryPermalink