[Piuparts-commits] [SCM] piuparts git repository branch, piatti, updated. 0.44-755-ga3ab31d

Andreas Beckmann debian at abeckmann.de
Mon Jun 18 11:37:47 UTC 2012


The following commit has been merged in the piatti branch:
commit 33bf68443a267bc22156e07c961ed12cf0124e98
Author: Andreas Beckmann <debian at abeckmann.de>
Date:   Thu Jun 14 20:02:00 2012 +0200

    remove trailing whitespace

diff --git a/Makefile b/Makefile
index b3fc4d9..a0c20d3 100644
--- a/Makefile
+++ b/Makefile
@@ -20,14 +20,14 @@ ignore = -I fdmount -N
 all: install-conf install-doc install
 
 install-doc:
-	# build and install manual 
+	# build and install manual
 	a2x --copy -a toc -a toclevels=3 -f xhtml -r /etc/asciidoc/ README.txt
 	install -d $(docdir)/
 	for file in README.txt README.html docbook-xsl.css ; do \
 	    install -m 0644 $$file $(docdir)/ ; done
 	# build and install manpage
 	a2x -f manpage piuparts.1.txt
-	install -d $(man1dir) 
+	install -d $(man1dir)
 	install -m 0644 piuparts.1 $(man1dir)
 	gzip -9f $(man1dir)/piuparts.1
 	a2x --copy -f xhtml piuparts.1.txt
@@ -38,7 +38,7 @@ install-conf:
 	install -m 0644 conf/piuparts.conf.sample $(etcdir)/piuparts/piuparts.conf
 
 install:
-	install -d $(sbindir) 
+	install -d $(sbindir)
 	sed -e 's/__PIUPARTS_VERSION__/$(version)/g' piuparts.py > piuparts
 	install piuparts $(sbindir)/piuparts
 	rm piuparts
@@ -59,4 +59,4 @@ check:
 	python unittests.py
 
 clean:
-	rm -rf piuparts.1 piuparts.1.xml piuparts.1.html piuparts README.xml README.html docbook-xsl.css piuparts.html 
+	rm -rf piuparts.1 piuparts.1.xml piuparts.1.html piuparts README.xml README.html docbook-xsl.css piuparts.html
diff --git a/NEWS b/NEWS
index ad05cd8..4c8d4d1 100644
--- a/NEWS
+++ b/NEWS
@@ -149,7 +149,7 @@ New features and significant user visible changes
                 with piuparts-slave.
 
                 The chroot is always set up for piuparts, even if it is
-                unpacked from a tarball. This reduces problems with 
+                unpacked from a tarball. This reduces problems with
                 out-of-date chroots and with using the pbuilder base.tgz
                 tarball.
 
diff --git a/README.txt b/README.txt
index 44c0d63..32b599d 100644
--- a/README.txt
+++ b/README.txt
@@ -1,12 +1,12 @@
 piuparts README
 ---------------
 
-Author: Lars Wirzenius 
+Author: Lars Wirzenius
 Email: <liw at iki.fi>
 
 After reading this README you probably also want to have a look
 at the piuparts manpage, to learn about the available options.
-But read this document first! 
+But read this document first!
 
 == Introduction
 
@@ -27,9 +27,9 @@ License, version 2, or (at your option) any later version.
 Testing your packages with piuparts is as easy as typing at the
 console prompt:
 
----- 
+----
 # piuparts sm_0.6-1_i386.deb
----- 
+----
 
 Note that in order to work, piuparts has to be executed as user
 root, so you need to be logged as root or use 'sudo'.
@@ -40,20 +40,20 @@ your package.
 If you want to test your package in another release, for example,
 squeeze, you can do so with:
 
----- 
+----
 # piuparts ./sm_0.6-1_i386.deb -d squeeze
----- 
+----
 
 By default, this will read the first mirror from your
 '/etc/apt/sources.list ' file. If you want to specify a different
 mirror you can do it with the option '-m':
 
----- 
+----
 # piuparts ./sm_0.6-1_i386.deb -m http://ftp.de.debian.org/debian
----- 
+----
 
-It's possible to use -d more than once. For example, to do a first 
-installation in stable, then upgrade to testing, then upgrade to 
+It's possible to use -d more than once. For example, to do a first
+installation in stable, then upgrade to testing, then upgrade to
 unstable and then upgrade to the local package use this:
 
 ----
@@ -65,7 +65,7 @@ unstable and then upgrade to the local package use this:
 
 If you use piuparts on a regular basis, waiting for it to create
 a chroot every time takes too much time, even if you are using a
-local mirror or a caching tool such as approx. 
+local mirror or a caching tool such as approx.
 
 Piuparts has the option of using a tarball as the contents of the
 initial chroot, instead of building a new one with debootstrap. A
@@ -73,27 +73,27 @@ easy way to use this option is use a tarball created with
 pbuilder. If you are not a pbuilder user, you can create this
 tarball with the command (again, as root):
 
----- 
+----
 # pbuilder create
----- 
+----
 
 then you only have to remember to update this tarball with:
 
----- 
+----
 # pbuilder update
----- 
+----
 
 To run piuparts using this tarball:
 
----- 
+----
 # piuparts -p ./sm_0.6-1_i386.deb
----- 
+----
 
 If you want to use your own pre-made tarball:
 
----- 
+----
 # piuparts --basetgz=/path/to/my/tarball.tgz ./sm_0.6-1_i386.deb
----- 
+----
 
 Piuparts also has the option of using a tarball as the contents
 of the initial chroot, instead of building a new one with
@@ -118,7 +118,7 @@ version (deb files given to piuparts in the input), removes and
 purges.
 
 If you only want to perfom the first test, you can use the
-option: '--no-upgrade-test'  
+option: '--no-upgrade-test'
 
 === Testing packages in the config-files-remaining state
 
@@ -137,10 +137,10 @@ This exercises different code paths in the maintainer scripts.
 When piuparts finishes all the tests satisfactorily, you will get
 these lines as final output:
 
----- 
+----
 0m39.5s INFO: PASS: All tests.
 0m39.5s INFO: piuparts run ends.
----- 
+----
 
 Anyway, it is a good idea to read the whole log in order to
 discover possible problems that did not stop the piuparts
@@ -304,7 +304,7 @@ with a space, and followed by a line containing only a period.
 A sample session (">>" indicates what the slave sends, "<<" what
 the master responds with):
 
-----                
+----
 << hello
 >> pass liwc 1.2.3-4
 >>  The piuparts
@@ -326,51 +326,51 @@ The slave shall not speak until the master has spoken.
 
 Commands and responses in this protocol:
 
-----                
+----
 Command: reserve
 Success: ok <packagename> <packageversion>
 Failure: error
-----                    
+----
 Slave asks master to reserve a package (a particular version of
 it) for the slave to test.  The slave may reserve any number of
 packages to test. If the transaction fails, there are no more
 packages to test, and the slave should disconnect, wait some time
 and try again.
 
----- 
+----
 Command: unreserve <packagename> <packageversion>
 Success: ok
----- 
+----
 
 Slave informs master it cannot test the desired version of a
 package (perhaps it went away from the mirror?).
 
----- 
+----
 Command: pass <packagename> <packageversion>
           log file contents
          .
 Success: ok
----- 
+----
 
 Slave reports that it has tested a particular version of a
 package and that the package passed all tests. Master records
 this and stores the log file somewhere suitable.
 
----- 
+----
 Command: fail <packagename> <packageversion>
           log file contents
          .
 Success: ok
----- 
+----
 
 Same as "pass", but package failed one or more tests.
 
----- 
+----
 Command: untestable <packagename> <packageversion>
           log file contents
          .
 Success: ok
----- 
+----
 
 Slave reports that a particular package is untestable, possibly
 because it insists on interacting with the user.
@@ -401,7 +401,7 @@ this:
 ----
     [master]
     foo = bar
----- 
+----
 
 ==== global configuration
 
@@ -462,7 +462,7 @@ to set them all to be sure what the configuration actually is.
 
 In addition to some of the above settings the following
 configuration settings are used by the scripts in '~piuparts?/bin/'
-used to run piuparts.debian.org. They are all optional, default 
+used to run piuparts.debian.org. They are all optional, default
 values are set in the scripts.
 
 * "prefix" (global) sets the prefix of the piuparts installation, e.g. for finding $prefix/share/piuparts/ .
diff --git a/README_piatti.txt b/README_piatti.txt
index d5bd840..0fc5714 100644
--- a/README_piatti.txt
+++ b/README_piatti.txt
@@ -1,4 +1,4 @@
-Notes about the piuparts installation on piatti.debian.org 
+Notes about the piuparts installation on piatti.debian.org
 ==========================================================
 
 == ToDo
@@ -33,7 +33,7 @@ piupartss       ALL=(ALL) NOPASSWD: ALL
 * Copy 'http://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git;hb=piatti;a=blob_plain;f=home/piupartss/bin/update-piuparts-setup' on the host and run it under the 'piupartss' user. It assumes you want to set it up in '/org/piuparts.debian.org' and does all further updates from git as well as the initial installation. It needs the piupartss and piupartsm user set up as described below, though.
 * mkdir /org/piuparts.debian.org
 * sudo ln -s /org/piuparts.debian.org/etc/ /etc/piuparts
-	
+
 === Apache configuration
 
 (Any other webserver will do.)
@@ -71,7 +71,7 @@ piupartss at piatti:/org/piuparts.debian.org$ ~/bin/update-piuparts-setup
 Run the following script under *your* user account you will start piuparts-slave on piatti, piuparts-master will be started automatically by the slave.
 
 ----
-holger at piatti:~$ sudo /home/piupartss/bin/slave_run 
+holger at piatti:~$ sudo /home/piupartss/bin/slave_run
 ----
 
 There are several cronjobs installed via '~piupartsm/crontab' and '~piupartss/crontab') which monitor the slave and the host it's running on.
@@ -83,7 +83,7 @@ It's possible to kill the slave any time by pressing CTRL-C, the currently done
 Run the following script under *your* user account:
 
 ----
-holger at piatti:~$ sudo /home/piupartss/bin/slave_join 
+holger at piatti:~$ sudo /home/piupartss/bin/slave_join
 ----
 
 === Filing bugs
diff --git a/TODO b/TODO
index 81fa8f6..5e32fe1 100644
--- a/TODO
+++ b/TODO
@@ -13,7 +13,7 @@ for 0.45:
 - mv piatti.git piuparts.git/doc/examples  and include it into a new
   binary package.  when doing so keep in mind the two tango icons
   and credit those in debian/copyright.
-  Instead of copying the icons the piuparts-server package should rather 
+  Instead of copying the icons the piuparts-server package should rather
   depend on the tango icons package.
 
 
@@ -32,7 +32,7 @@ for 0.46:
 - sometimes a chroot doesn't get removed on piatti - find out
   why and fix it.
 - slave_run: cleanup stale proc mountpoints
-  -> there is ~piupartss/bin/slave_cleanup now, maybe it should be executed 
+  -> there is ~piupartss/bin/slave_cleanup now, maybe it should be executed
   at the beginning of slave_run?
 
 - copy/move .kpr files to htdocs?
@@ -41,7 +41,7 @@ for 0.46:
   lowest precedence, that is, only when there are no new logs to be tested.
 
 - write reportbug(-like) wrapper for mass bug filing (start
-  simple, make it more sophisticated later). 
+  simple, make it more sophisticated later).
 
 - generate piuparts.1.txt automatically from piuparts.py - see
   this blog post for a nice howto:
@@ -74,7 +74,7 @@ for 0.48 and later:
 
 - mounting /proc and perhaps others (usbfs, sysfs, /dev/pts,
   etc.) in the chroot might be a good idea because some packages
-  might need this.  
+  might need this.
 
 - report:
   - write stats about the reasons for failures, as its done with
@@ -82,7 +82,7 @@ for 0.48 and later:
     "fragment".)
   - RSS feeds of logs
   - do more fancy R graphs, eg. also per state
-  - sort packages on maintainer pages alphabetically (states first 
+  - sort packages on maintainer pages alphabetically (states first
     though)
   - link (and target) to piuparts.d.o configuration is static to
     piatti. should refer to the actual hosts configuration, eg
@@ -115,7 +115,7 @@ for 0.50 and later:
   turn off debugging output for piuparts.py - see
   http://docs.python.org/library/logging.html
 
-- commandline-switches for all programms 
+- commandline-switches for all programms
 
 - move shell cronjobs functionality into master, slave & report
 
@@ -125,7 +125,7 @@ Low priority stuff (a.k.a. "nobody's said they must have it now")
 
 - piuparts.py: add a panic handler to remove the temp_tgz
 
-- create archive of broken packages to provide test cases for 
+- create archive of broken packages to provide test cases for
   piuparts testing.
 
 - create emacspeak-broken-dpkg-preconfigure package for broken
diff --git a/conf/piuparts.conf.sample b/conf/piuparts.conf.sample
index c118d1d..2d38775 100644
--- a/conf/piuparts.conf.sample
+++ b/conf/piuparts.conf.sample
@@ -3,7 +3,7 @@
 #
 # The sample file does not set all required values, to prevent the
 # master from being run accidentally.
-# 
+#
 # You MUST make sure that master-host, master-user, master-directory, mirror
 # and packages-url are also set correctly. The sample file does not set it at
 # all, to prevent the master from being run accidentally.
@@ -34,8 +34,8 @@ description = "Debian sid / main"
 piuparts-cmd = sudo piuparts --no-symlinks --scriptsdir /etc/piuparts/scripts/ --tmpdir /var/tmp
 distro = sid
 chroot-tgz = sid.tar.gz
-upgrade-test-distros = 
-upgrade-test-chroot-tgz = 
+upgrade-test-distros =
+upgrade-test-chroot-tgz =
 max-reserved = 50
 debug = no
 log-file = sid-master.log
diff --git a/debian/changelog b/debian/changelog
index 07d9b4a..5ec71bc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -556,10 +556,10 @@ piuparts (0.38) unstable; urgency=low
     - Add support for using LVM snapshots. Thanks to
       Patrick Schoenfeld for the patch. (Closes: #559449)
     - Add support for warning on broken symlinks. Thanks to Carl Chenet for
-      the patch. (Closes: #440151)  
+      the patch. (Closes: #440151)
     - Make --help usuable without needing to be run as root. (Closes: #547379)
     - --skip-minimize is now the default. This is because debootstrap is called
-      with --variant=minbase instead of --resolv-deps now and because if a 
+      with --variant=minbase instead of --resolv-deps now and because if a
       base.tgz or an lvm snapshot is specified, piuparts should not touch it.
       (Closes: #539142, #559048)
       Introduce a new option, --minimize, to minimize a chroot with debfoster.
@@ -571,7 +571,7 @@ piuparts (0.38) unstable; urgency=low
       (Closes: #545907)
       In the chroots, APT::Get::AllowUnauthenticated is set accordingly in
       /etc/apt/apt.conf.
-    - Add new option, --pedantic-purge-test, to tell piuparts to be pedantic 
+    - Add new option, --pedantic-purge-test, to tell piuparts to be pedantic
       when checking if a purged package leaves files behind. If this option is
       not set, files left in /tmp are ignored. (Closes: #528266)
     - Add new option, --dpkg-force-confdef, to make dpkg use --force-confdev,
@@ -584,25 +584,25 @@ piuparts (0.38) unstable; urgency=low
     - Create policy-rc.d in 2nd chroot when using -b. (Closes: #466049)
       Thanks again to Patrick Schoenfeld for his help.
   * piuparts-report: report broken symlinks.
-  * piuparts-slave: 
-    - gracefully deal with upgrade-test-distros and upgrade-test-chroot-tgz 
-      not being set in the configuration. Thanks to Carl Chenet and Patrick 
+  * piuparts-slave:
+    - gracefully deal with upgrade-test-distros and upgrade-test-chroot-tgz
+      not being set in the configuration. Thanks to Carl Chenet and Patrick
       Schoenfeld for the patch. (Closes: #519192)
     - new default value for idle-sleep, 300 instead of 10 seconds. Also the
       slave will now only sleep if there is nothing to do for any section.
-  * Makefile: workaround 559305 by calling a2x twice.   
+  * Makefile: workaround 559305 by calling a2x twice.
   * Update debian/NEWS.
-  * Replace all references to sarge and etch with ones to lenny and squeeze.  
+  * Replace all references to sarge and etch with ones to lenny and squeeze.
 
  -- Holger Levsen <holger at debian.org>  Thu, 17 Dec 2009 14:10:27 +0000
 
 piuparts (0.37) unstable; urgency=low
 
-  * piuparts-report.py: report packages with update-rc.d warnings and those 
-    failing due to insserv errors. (Closes: #546540) 
-  * Fix typo in NEWS.Debian, thanks to Justin Rye for spotting it. 
+  * piuparts-report.py: report packages with update-rc.d warnings and those
+    failing due to insserv errors. (Closes: #546540)
+  * Fix typo in NEWS.Debian, thanks to Justin Rye for spotting it.
     (Closes: #547439)
-  * piuparts.py: 
+  * piuparts.py:
     - added to self.ignored_patterns:
       - /var/cache/man(/.*)? (Closes: #550953)
       - /var/lib/insserv/run.*.log
@@ -625,14 +625,14 @@ piuparts (0.36) unstable; urgency=low
   * Break backwards compatibility of the configuration files for master-slave-
     mode. Merge those three into one: /etc/piuparts/piuparts/piuparts.conf.
     Introduce a new global section in piuparts.conf which is shared among the
-    other sections there. 
+    other sections there.
   * piuparts.py:
-    - add check whether scriptsdir exits, to fail gracefully if not. 
+    - add check whether scriptsdir exits, to fail gracefully if not.
     - copy scriptsdir to chroot also when doing upgrade tests.
     - added to self.ignored_files:
       - /etc/shadow and /etc/shadow- (just as /etc/passwd* and /etc/group*)
       - /var/games (see #524461)
-      - /etc/apt/trusted.gpg and /etc/apt/trusted.gpg~ (just as 
+      - /etc/apt/trusted.gpg and /etc/apt/trusted.gpg~ (just as
         /etc/apt/trustdb.gpg and other backup files)
     - added to self.ignored_patterns:
       -  /var/lib/dpkg/triggers/*
@@ -643,8 +643,8 @@ piuparts (0.36) unstable; urgency=low
     - configure apt in chroots to not install recommends and suggests.
     - add support for scanning for packages in changes files, thanks to Andres
       Mejia for the patch. (Closes: #352940)
-    - change some methods from using 'args' to 'package_list'. This more 
-      accurately represents what is being passed into these methods now. 
+    - change some methods from using 'args' to 'package_list'. This more
+      accurately represents what is being passed into these methods now.
     - add an optional parameter to panic() method to specify what exit status
       to use. Also thanks to Andres.
     - add advice how to read the logfile to the top of the logfiles produced.
@@ -655,29 +655,29 @@ piuparts (0.36) unstable; urgency=low
     - fail gracefully if piuparts is run as non-root user. Thanks to Ignace
       Mouzannar for the patch. (Closes: #538273)
   * piupartslib/packagesdb.py:
-    - change the test whether a package is testable to check whether the 
+    - change the test whether a package is testable to check whether the
       package is of priority "required", and not whether it's "Essential".
-    - rename status "essential-required-important" to "essential-required" 
+    - rename status "essential-required-important" to "essential-required"
       as important packages can be tested like all the others.
-    - handle binNMUs where the Source header in the Packages file includes the 
+    - handle binNMUs where the Source header in the Packages file includes the
       Version and the Source package name in one line.
-    - fix get_packages_in_state() to only return unique packages and not also 
+    - fix get_packages_in_state() to only return unique packages and not also
       the provided ones as exact copies.
   * Install scripts for master-slave mode without .py extension.
-  * piuparts-master.py: remove code to write statistics, that is done only in 
+  * piuparts-master.py: remove code to write statistics, that is done only in
     piuparts-report.py now.
   * piuparts-slave.py:
-    - support looping trough multiple sections in piuparts.conf via new config 
-      value "sections". Thanks to Frank Ploss for writing this patch with me 
+    - support looping trough multiple sections in piuparts.conf via new config
+      value "sections". Thanks to Frank Ploss for writing this patch with me
       and helping me understand the code much better!
     - allow the user to stop the slave with control-C.
     - call piuparts with --mirror when mirror is set in piuparts.conf.
-  * Re-add piuparts-reports.py which got removed/lost between 0.14 and 0.20 
+  * Re-add piuparts-reports.py which got removed/lost between 0.14 and 0.20
     without changelog entry.
-  * piuparts-report.py: 
-    - support sections in configuration file. 
+  * piuparts-report.py:
+    - support sections in configuration file.
     - support looping trough multiple sections in piuparts.conf via new config
-      value "sections". 
+      value "sections".
     - generate counts.txt (per section) with raw numbers of packages per state,
       include these stats in the debug output (so it gets included in the mails
       send by cron.)
@@ -689,27 +689,27 @@ piuparts (0.36) unstable; urgency=low
     - provide links to logfiles in statistics page.
     - provide links to source packages pages from state pages and back, as well
       as links to the dependencies state.
-    - draw graphs of package states over time (if pypthon-rpy and gs are 
+    - draw graphs of package states over time (if pypthon-rpy and gs are
       installed) - thanks to Thomas Viehmann and Dirk Eddelbüttel for
       inspiration and support.
-    - create maintainer centric pages for each email address found in 
+    - create maintainer centric pages for each email address found in
       Maintainers or Uploaders.
     - improve layout, generate navigation for all pages.
-    - use icons to provide a quick overview of a source packages status. 
+    - use icons to provide a quick overview of a source packages status.
       (Thanks to tango.freedesktop.org for the icons!)
     - include index.tpl (if it exists) from output-directory into the
       generated index page, so one can add news to the index page without
       editing piuparts-report.py.
     - generate pages for known issues, which are detected by bash helper
-      script, run by cron on piuparts.debian.org and available from 
+      script, run by cron on piuparts.debian.org and available from
       svn/piuparts/piatti/home/piupartsm/bin/detect_well_known_errors
   * Always use alphabetic time zone abbreviation in timestamps.
-  * Makefile: 
+  * Makefile:
     - add "~$date" to versionstring if building an unreleased version, thus
       adding dpkg-dev to build-depends.
     - split install target into install-doc, install-conf and install, to aid
       development and deployment from trunk.
-  * debian/control: 
+  * debian/control:
     - depend on python (>>2.4), make dependency to python-debian unversioned.
     - add build-dependencies on debhelper, asciidoc and xmlto.
     - dependency gs has been renamed to ghostcript
@@ -722,16 +722,16 @@ piuparts (0.36) unstable; urgency=low
       sending mail to it
     - bump Standards-Version to 3.8.3, no changes necessary.
   * Rewrite debian/rules from scratch using debhelper.
-  * Merge README, how-to-use-piuparts.txt and custom-scripts.txt into 
-    README.txt, convert it to asciidoc and build pdf and html versions of it. 
-  * Restructure and update README.txt to reflect the configuration changes in 
+  * Merge README, how-to-use-piuparts.txt and custom-scripts.txt into
+    README.txt, convert it to asciidoc and build pdf and html versions of it.
+  * Restructure and update README.txt to reflect the configuration changes in
     master-slave mode.
   * Add debian/NEWS file.
   * Rewrite piuparts manpage in asciidoc.
   * Build and install html version of the piuparts manpage.
   * Update debian/copyright to reflect that piuparts is licenced under GPL2+.
   * Update FSF address in all files referencing the GPL.
-  * Remove unused file piuparts.css. 
+  * Remove unused file piuparts.css.
 
   [ Lars Wirzenius ]
   * Removed Lars Wirzenius as uploader.
@@ -760,7 +760,7 @@ piuparts (0.34) unstable; urgency=low
 
 piuparts (0.33) unstable; urgency=low
 
-  * Added --bindmount option, thanks to Aníbal Monsalve Salaza for the patch. 
+  * Added --bindmount option, thanks to Aníbal Monsalve Salaza for the patch.
     (Closes: #496186)
 
  -- Holger Levsen <holger at debian.org>  Sat, 08 Nov 2008 17:07:22 +0000
@@ -771,9 +771,9 @@ piuparts (0.32) unstable; urgency=low
   * Fix a typo in how-to-use-piuparts.txt.
 
   [ Holger Levsen ]
-  * Replace all references to sarge and etch with etch and lenny. 
+  * Replace all references to sarge and etch with etch and lenny.
     (Closes: #466111)
-  * Update README to reflect that piuparts runs fine in etch. 
+  * Update README to reflect that piuparts runs fine in etch.
   * Rename the post_upgrade custom script to post_distupgrade and introduce
     pre_distupgrade.
   * Bumped standards version, no changes needed.
@@ -927,9 +927,9 @@ piuparts (0.24) unstable; urgency=low
 piuparts (0.23) unstable; urgency=low
 
   * Cosmetic change, now file owner and file are shown in the same line.
-  * Add option --list-installed-files, that list files added/removed/modified 
+  * Add option --list-installed-files, that list files added/removed/modified
     to the chroot after the package's installation.  (Closes: #431821)
-  * Add option --no-upgrade-test, that allows skip testing upgrade from an 
+  * Add option --no-upgrade-test, that allows skip testing upgrade from an
     existing version in the archive. (Closes: #349933)
 
  -- Ana Beatriz Guerrero Lopez <ana at debian.org>  Tue, 10 Jul 2007 19:47:21 +0200
@@ -942,9 +942,9 @@ piuparts (0.22) unstable; urgency=low
 
   [ Ana Beatriz Guerrero Lopez ]
   * Rename piuparts.py.in back to piuparts.py.
-  * Add option --skip-minimize that allows skip the minimize chroot step 
+  * Add option --skip-minimize that allows skip the minimize chroot step
     with debfoster.
-  * Remove m4 substitution, and use sed instead. Drop Build-Depends on m4. 
+  * Remove m4 substitution, and use sed instead. Drop Build-Depends on m4.
     (Closes: #431248)
   * Drop support for python 2.3 and add support for python 2.5.
   * debian/rules:
@@ -1008,7 +1008,7 @@ piuparts (0.18-1) unstable; urgency=low
 
   * New upstream version. No Debian bugs fixed.
   * debian/control: Updated for new Python policy.
-  * debian/prerm, debian/postrm: Written. They compile/remove byte code 
+  * debian/prerm, debian/postrm: Written. They compile/remove byte code
     files.
 
  -- Lars Wirzenius <liw at iki.fi>  Thu,  7 Sep 2006 20:42:03 +0300
@@ -1025,7 +1025,7 @@ piuparts (0.17-1) unstable; urgency=low
 
 piuparts (0.16-1) unstable; urgency=low
 
-  * New upstream version. Fixes the following bugs reported against the 
+  * New upstream version. Fixes the following bugs reported against the
     Debian package:
     - TODO: keep track of bugs to show expected failures and unexpected
       successes (Closes: #353215)
@@ -1062,7 +1062,7 @@ piuparts (0.13-1) unstable; urgency=low
 piuparts (0.12-1) unstable; urgency=low
 
   * New upstream version. Fixes bug in Debian:
-    - dist-upgrade to experimental does not work (now documented as a 
+    - dist-upgrade to experimental does not work (now documented as a
       feature). Closes: #330749.
 
  -- Lars Wirzenius <liw at iki.fi>  Mon, 17 Oct 2005 21:03:12 +0300
@@ -1072,7 +1072,7 @@ piuparts (0.11-1) unstable; urgency=low
   * New upstream version. Fixes bugs in Debian:
     - Checks whether there are packages on the command line before creating
       a chroot. Closes: #322441.
-    - apt-get configured to allow unauthenticated repositories. 
+    - apt-get configured to allow unauthenticated repositories.
       Closes: #326705.
 
  -- Lars Wirzenius <liw at iki.fi>  Fri, 14 Oct 2005 01:16:25 +0300
diff --git a/debian/control b/debian/control
index 21f88c1..f7d2514 100644
--- a/debian/control
+++ b/debian/control
@@ -13,7 +13,7 @@ X-Python-Version: >= 2.6
 
 Package: piuparts
 Architecture: all
-Depends: apt, ${python:Depends}, debootstrap, lsof, lsb-release, 
+Depends: apt, ${python:Depends}, debootstrap, lsof, lsb-release,
     python-debian, ${misc:Depends}, python-debianbts, python-apt
 Suggests: python-rpy, ghostscript, schroot
 Description: .deb package installation, upgrading, and removal testing tool
@@ -23,6 +23,6 @@ Description: .deb package installation, upgrading, and removal testing tool
  upgrading, and removing packages in that environment, and comparing the
  state of the directory tree before and after. piuparts reports any
  files that have been added, removed, or modified during this process.
- . 
+ .
  piuparts is meant as a quality assurance tool for people who create .deb
  packages to test them before they upload them to the Debian package archive.
diff --git a/debian/copyright b/debian/copyright
index 5db4394..bfa4b9f 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,16 +1,16 @@
 Format: http://dep.debian.net/deps/dep5
-Upstream-Name: piuparts 
-Upstream-Contact: Holger Levsen <holger at debian.org> 
+Upstream-Name: piuparts
+Upstream-Contact: Holger Levsen <holger at debian.org>
 Source: http://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git
-Copyright: 2005-2008 Lars Wirzenius 
-           2008-2011 Holger Levsen 
+Copyright: 2005-2008 Lars Wirzenius
+           2008-2011 Holger Levsen
 Comment: Original author is also Lars Wirzenius <liw at iki.fi>
  Upstream is bunch of lunatics who don't make release tarballs publicly
  available. The Debian .orig.tar.gz is what would be released, though.
 
 Files: *
-Copyright: 2005-2008 Lars Wirzenius <liw at iki.fi> 
-           2008-2011 Holger Levsen <holger at debian.org> 
+Copyright: 2005-2008 Lars Wirzenius <liw at iki.fi>
+           2008-2011 Holger Levsen <holger at debian.org>
 License: GPL-2+
  This program is free software; you can redistribute it
  and/or modify it under the terms of the GNU General Public
diff --git a/debian/rules b/debian/rules
index efc5e7a..20376db 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,6 +1,6 @@
 #!/usr/bin/make -f
 
-# Uncomment this to turn on verbose mode. 
+# Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
 build-arch:
@@ -30,7 +30,7 @@ binary-indep: build install
 	dh_compress
 	dh_fixperms
 	dh_python2
-	dh_installdeb 
+	dh_installdeb
 	dh_gencontrol
 	dh_md5sums
 	dh_builddeb
diff --git a/home/piupartsm/bin/archive_old_logs b/home/piupartsm/bin/archive_old_logs
index 8d9f65c..d361f1e 100755
--- a/home/piupartsm/bin/archive_old_logs
+++ b/home/piupartsm/bin/archive_old_logs
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009-2011 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -43,14 +43,14 @@ get_config_value SECTIONS global sections
 #
 # archive old log files
 #
-for SECTION in $SECTIONS ; do 
+for SECTION in $SECTIONS ; do
 	mkdir -p $MASTER/$SECTION/archive
 	cd $MASTER/$SECTION
 	mkdir -p archive/pass archive/bugged archive/affected archive/fail
 	test -f archive/stamp || touch -d @0 archive/stamp  # start at the epoch
 	touch -d yesterday archive/stamp.new  # look back one more day the next time we will be run
 	OUTPUT=""
-	# loop through all packages logs 
+	# loop through all packages logs
 	for PACKAGE in $(find pass/ fail/ bugged/ affected/ -name '*.log' -newer archive/stamp | cut -d"_" -f1 | cut -d"/" -f2 | sort -u) ; do
 		# all logs except the last one (|sed '$d' deletes the last line)
 		OLDLOGS=$( ls -tr1 --color=none bugged/${PACKAGE}_*.log affected/${PACKAGE}_*.log fail/${PACKAGE}_*.log pass/${PACKAGE}_*.log 2>/dev/null|sed '$d' )
diff --git a/home/piupartsm/bin/detect_archive_issues b/home/piupartsm/bin/detect_archive_issues
index c8aafa1..1ed60fa 100755
--- a/home/piupartsm/bin/detect_archive_issues
+++ b/home/piupartsm/bin/detect_archive_issues
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -49,7 +49,7 @@ get_config_value DAYS global reschedule-untestable-days 7
 
 LOGS=`mktemp`
 URLS=`mktemp`
-for SECTION in $SECTIONS ; do 
+for SECTION in $SECTIONS ; do
 	mkdir -p $MASTER/$SECTION/fail/ $MASTER/$SECTION/untestable/
 	find $MASTER/$SECTION/fail -name '*.log' -mtime +1 | xargs -r \
 		grep -l -E "E: Broken packages|E: Unable to correct problems, you have held broken packages|E: Error, pkgProblemResolver::Resolve generated breaks" 2>/dev/null > $LOGS
@@ -71,7 +71,7 @@ if [ -s $URLS ]; then
 	echo "        'E: Unable to correct problems, you have held broken packages',"
 	echo "        'E: Error, pkgProblemResolver::Resolve generated breaks'"
 	echo "in failed logs.)"
-	echo 
+	echo
 	echo 'The following packages have been moved to $section/untestable and will be'
 	echo "tested again in $DAYS days."
 	echo
diff --git a/home/piupartsm/bin/detect_network_issues b/home/piupartsm/bin/detect_network_issues
index 3c887ba..b8f61c2 100755
--- a/home/piupartsm/bin/detect_network_issues
+++ b/home/piupartsm/bin/detect_network_issues
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -45,7 +45,7 @@ get_config_value SECTIONS global sections
 #
 
 FILE=`mktemp`
-for SECTION in $SECTIONS ; do 
+for SECTION in $SECTIONS ; do
 	for subdir in fail bugged affected ; do
 		rgrep -l "Cannot initiate the connection to" $MASTER/$SECTION/$subdir >> $FILE
 		rgrep -l "Hash Sum mismatch" $MASTER/$SECTION/$subdir >> $FILE
@@ -62,7 +62,7 @@ for SECTION in $SECTIONS ; do
 		rgrep -l -E '  /usr/share/doc/(.*)/changelog.*owned by: \1' $MASTER/$SECTION/$subdir >> $FILE
 	done
 done
-if [ -s $FILE ] ; then 
+if [ -s $FILE ] ; then
 	echo "Network problems on detected!"
 	echo "(By grep'ing for"
 	echo "    'Cannot initiate the connection to',"
@@ -73,8 +73,8 @@ if [ -s $FILE ] ; then
 	echo "in failed logs.)"
 	echo "Test failures due to modified /usr/share/doc/*/changelog.*"
 	echo "are caused by mirror updates during the test."
-	echo 
-	echo "The following logfiles have been deleted:" 
+	echo
+	echo "The following logfiles have been deleted:"
 	echo
 	echo "----------------------------------------------------------------------"
 	echo
diff --git a/home/piupartsm/bin/detect_piuparts_issues b/home/piupartsm/bin/detect_piuparts_issues
index d08b66f..af89b3f 100755
--- a/home/piupartsm/bin/detect_piuparts_issues
+++ b/home/piupartsm/bin/detect_piuparts_issues
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -45,7 +45,7 @@ get_config_value SECTIONS global sections
 #
 
 FILE=`mktemp`
-for SECTION in $SECTIONS ; do 
+for SECTION in $SECTIONS ; do
 	for subdir in fail bugged affected ; do
 		rgrep -l -E "tar( \(child\))?: .*.tar.gz: Cannot open: No such file or directory" $MASTER/$SECTION/$subdir >> $FILE
 		rgrep -l -e "tar: .*: No space left on device" $MASTER/$SECTION/$subdir >> $FILE
@@ -61,11 +61,11 @@ for SECTION in $SECTIONS ; do
 		rgrep -l -e 'userdel: user .* is currently logged in' $MASTER/$SECTION/$subdir >> $FILE
 	done
 done
-if [ -s $FILE ] ; then 
+if [ -s $FILE ] ; then
 	echo "piuparts problem detected!"
 	echo "(By grep'ing for 'tar: .*.tar.gz: Cannot open: No such file or directory'"
 	echo "and for some python errors and tracebacks in failed logs.)"
-	echo 
+	echo
 	echo "Please review the following logfiles/packages."
         echo "If it is always the same package failing, it's likely to be an issue in the"
 	echo "package."
diff --git a/home/piupartsm/bin/detect_slave_problems b/home/piupartsm/bin/detect_slave_problems
index 01dc1e1..067fedc 100755
--- a/home/piupartsm/bin/detect_slave_problems
+++ b/home/piupartsm/bin/detect_slave_problems
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009-2010 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -47,7 +47,7 @@ get_config_value SECTIONS global sections
 
 #
 # this scripts monitors the output of piuparts-slave
-# when running in screen started by ~piupartss/bin/slave_run 
+# when running in screen started by ~piupartss/bin/slave_run
 #
 
 SCREENLOG=$MASTER/../slave/screenlog.0
diff --git a/home/piupartsm/bin/detect_stale_mounts b/home/piupartsm/bin/detect_stale_mounts
index 24e73dd..d139808 100755
--- a/home/piupartsm/bin/detect_stale_mounts
+++ b/home/piupartsm/bin/detect_stale_mounts
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
diff --git a/home/piupartsm/bin/detect_tmp_cruft b/home/piupartsm/bin/detect_tmp_cruft
index bbb8e9e..e628310 100755
--- a/home/piupartsm/bin/detect_tmp_cruft
+++ b/home/piupartsm/bin/detect_tmp_cruft
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -40,7 +40,7 @@ get_config_value PIUPARTS_TEMPDIR global tempdir /org/piuparts.debian.org/tmp
 
 
 LS_TMP=$(ls --color=never -l $PIUPARTS_TEMPDIR)
-if [ "$(echo "$LS_TMP" | wc -l)" -gt 12 ] ; then 
+if [ "$(echo "$LS_TMP" | wc -l)" -gt 12 ] ; then
 	echo "More than ten directories in $PIUPARTS_TEMPDIR detected!"
 	echo
 	echo "$LS_TMP"
diff --git a/home/piupartsm/bin/detect_well_known_errors b/home/piupartsm/bin/detect_well_known_errors
index 37d69c9..50dd5de 100755
--- a/home/piupartsm/bin/detect_well_known_errors
+++ b/home/piupartsm/bin/detect_well_known_errors
@@ -2,17 +2,17 @@
 
 # Copyright 2009-2010 Holger Levsen (holger at layer-acht.org)
 # Copyright © 2011 Andreas Beckmann <debian at abeckmann.de>
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -147,7 +147,7 @@ do
 		# source files to get COMMAND, HELPTEXT and ISSUE
 		. $PROBLEMDIR/$problem
 		grep " $problem" $ALLKPR | cut -d' ' -f1 | sort -u > $LOGS
-		if [ -s $LOGS ] ; then 
+		if [ -s $LOGS ] ; then
 			OUTPUT=$HTDOCS/$SECTION/${problem%.conf}.tpl
 			echo '<table class="righttable"><tr class="titlerow"><td class="titlecell">' > $OUTPUT
 			echo "$HEADER in $SECTION" >> $OUTPUT
@@ -164,9 +164,9 @@ do
 				PACKAGE=${PACKAGE%%_*}
 				grep "/${PACKAGE}_" $LIST_ALL > $LIST_PKG
 				LATEST=$(tail -n 1 $LIST_PKG | cut -d "/" -f1)
-				if [ "${problem%_error.conf}_error.conf" = "$problem" ] ; then 
+				if [ "${problem%_error.conf}_error.conf" = "$problem" ] ; then
 					LATESTFAIL=$(grep -v ^pass/ $LIST_PKG | tail -n 1)
-					if [ "$LATEST" != "pass" ] && [ "$LATESTFAIL" = "$LOG" ] ; then 
+					if [ "$LATEST" != "pass" ] && [ "$LATESTFAIL" = "$LOG" ] ; then
 						echo "<li><a href=\"$LOG\">$LOG</a>" >> $OUTPUT
 						echo "    (<a href=\"http://bugs.debian.org/$PACKAGE?dist=unstable\" target=\"_blank\">BTS</a>)" >> $OUTPUT
 						BUG=${LOG%.log}.bug
@@ -178,11 +178,11 @@ do
 				else
 					# this is an issue, not an error
 					LATESTSUCCESS=$(grep ^pass/ $LIST_PKG | tail -n 1)
-					if [ "$LATEST" = "pass" ] && [ "$LATESTSUCCESS" = "$LOG" ] ; then 
+					if [ "$LATEST" = "pass" ] && [ "$LATESTSUCCESS" = "$LOG" ] ; then
 						echo "<li><a href=\"$LOG\">$LOG</a> (<a href=\"http://bugs.debian.org/$PACKAGE?dist=unstable\" target=\"_blank\">BTS</a>)</li>" >> $OUTPUT
 						echo "$LOG" >> $KNOWNLOGS
 						COUNT=$((COUNT+1))
-					fi 
+					fi
 				fi
 			done
 			echo "</ul>" >>$OUTPUT
@@ -211,7 +211,7 @@ do
 			grep "/${PACKAGE}_" $LIST_ALL > $LIST_PKG
 			LATEST=$(tail -n 1 $LIST_PKG | cut -d "/" -f1)
 			LATESTFAIL=$(grep -v ^pass/ $LIST_PKG | tail -n 1)
-			if [ "$LATEST" != "pass" ] && [ "$LATESTFAIL" = "$LOG" ] ; then 
+			if [ "$LATEST" != "pass" ] && [ "$LATESTFAIL" = "$LOG" ] ; then
 				echo "<li><a href=\"$LOG\">$LOG</a>" >> $OUTPUT
 				echo "    (<a href=\"http://bugs.debian.org/$PACKAGE?dist=unstable\" target=\"_blank\">BTS</a>)" >> $OUTPUT
 				BUG=${LOG%.log}.bug
diff --git a/home/piupartsm/bin/generate_daily_report b/home/piupartsm/bin/generate_daily_report
index b5244a0..4cd0eec 100755
--- a/home/piupartsm/bin/generate_daily_report
+++ b/home/piupartsm/bin/generate_daily_report
@@ -59,7 +59,7 @@ date > $LOCKFILE
 OUTPUT=$(mktemp)
 for SCRIPT in detect_stale_mounts detect_tmp_cruft detect_network_issues detect_piuparts_issues archive_old_logs report_newly_bugged_packages ; do
   ~/bin/$SCRIPT 2>&1 > $OUTPUT
-  if [ -s $OUTPUT ] ; then 
+  if [ -s $OUTPUT ] ; then
 	cat $OUTPUT | mail -s $SCRIPT $LOGNAME
   fi
 done
diff --git a/home/piupartsm/bin/known_problems/command_not_found_error.conf b/home/piupartsm/bin/known_problems/command_not_found_error.conf
index e98c5e3..c24a37e 100644
--- a/home/piupartsm/bin/known_problems/command_not_found_error.conf
+++ b/home/piupartsm/bin/known_problems/command_not_found_error.conf
@@ -21,6 +21,6 @@ purge phase__.
 <p>
 NOTE: it has not been verified that this error really caused the package to
 fail the piuparts test, but it did fail.
-<br>There are also successful logs with "command not found" (though not listed below). 
+<br>There are also successful logs with "command not found" (though not listed below).
 </p>
 '
diff --git a/home/piupartsm/bin/known_problems/command_not_found_issue.conf b/home/piupartsm/bin/known_problems/command_not_found_issue.conf
index 54edf79..ad9d431 100644
--- a/home/piupartsm/bin/known_problems/command_not_found_issue.conf
+++ b/home/piupartsm/bin/known_problems/command_not_found_issue.conf
@@ -6,7 +6,7 @@ WHERE='pass'
 ISSUE=1
 HEADER='Packages which passed the piuparts test but have logs with the string "command not found"'
 HELPTEXT='
-<p>From the third paragraph about the meaning of the depends field in 
+<p>From the third paragraph about the meaning of the depends field in
 <a href="http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps">http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps</a>:
 </p>
 
diff --git a/home/piupartsm/bin/known_problems/cron_error_after_removal_error.conf b/home/piupartsm/bin/known_problems/cron_error_after_removal_error.conf
index 3781e30..19a53b4 100644
--- a/home/piupartsm/bin/known_problems/cron_error_after_removal_error.conf
+++ b/home/piupartsm/bin/known_problems/cron_error_after_removal_error.conf
@@ -13,7 +13,7 @@ From <a href="http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.5">http
 <pre>
 The scripts or crontab entries in these directories should check if all
 necessary programs are installed before they try to execute them. Otherwise,
-problems will arise when a package was removed but not purged since 
+problems will arise when a package was removed but not purged since
 configuration files are kept on the system in this situation.
 </pre>
 
diff --git a/home/piupartsm/bin/known_problems/disappeared_files_after_purge_error.conf b/home/piupartsm/bin/known_problems/disappeared_files_after_purge_error.conf
index 5bd873d..02d9abc 100644
--- a/home/piupartsm/bin/known_problems/disappeared_files_after_purge_error.conf
+++ b/home/piupartsm/bin/known_problems/disappeared_files_after_purge_error.conf
@@ -1,5 +1,5 @@
 #
-# detect packages with disappeared files after purge 
+# detect packages with disappeared files after purge
 #
 COMMAND='grep "FAIL: After purging files have disappeared:" | grep -v "," | grep -v usr/local/'
 WHERE='fail bugged affected'
diff --git a/home/piupartsm/bin/known_problems/files_in_usr_local_error.conf b/home/piupartsm/bin/known_problems/files_in_usr_local_error.conf
index 12cf815..13a322e 100644
--- a/home/piupartsm/bin/known_problems/files_in_usr_local_error.conf
+++ b/home/piupartsm/bin/known_problems/files_in_usr_local_error.conf
@@ -7,7 +7,7 @@ ISSUE=0
 HEADER='Packages with files and/or directories in /usr/local/ after purge'
 HELPTEXT='
 <p>
-This is a violation of policy 9.1.2: see 
+This is a violation of policy 9.1.2: see
 <a href="http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.1.2">http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.1.2</a>.
 </p>
 '
diff --git a/home/piupartsm/bin/known_problems/insserv_error.conf b/home/piupartsm/bin/known_problems/insserv_error.conf
index c477adf..690e4d0 100644
--- a/home/piupartsm/bin/known_problems/insserv_error.conf
+++ b/home/piupartsm/bin/known_problems/insserv_error.conf
@@ -8,7 +8,7 @@ HEADER='Packages with failed logs with the string "insserv: exiting now"'
 HELPTEXT='
 <p>
 Some packages fail to install because their init.d scripts have
-headers with bugs.  There are several classes of bugs.  
+headers with bugs.  There are several classes of bugs.
 </p>
 <p>
 Some packages
diff --git a/home/piupartsm/bin/known_problems/modified_files_after_purge_error.conf b/home/piupartsm/bin/known_problems/modified_files_after_purge_error.conf
index a54e103..38da08d 100644
--- a/home/piupartsm/bin/known_problems/modified_files_after_purge_error.conf
+++ b/home/piupartsm/bin/known_problems/modified_files_after_purge_error.conf
@@ -1,5 +1,5 @@
 #
-# detect packages with modified files after purge 
+# detect packages with modified files after purge
 #
 COMMAND='grep "FAIL: After purging files have been modified:" | grep -v "," | grep -v usr/local/'
 WHERE='fail bugged affected'
diff --git a/home/piupartsm/bin/known_problems/overwrite_other_packages_files_error.conf b/home/piupartsm/bin/known_problems/overwrite_other_packages_files_error.conf
index 8ed298f..e634ec1 100644
--- a/home/piupartsm/bin/known_problems/overwrite_other_packages_files_error.conf
+++ b/home/piupartsm/bin/known_problems/overwrite_other_packages_files_error.conf
@@ -7,7 +7,7 @@ ISSUE=0
 HEADER='Packages with failed logs because they tried to overwrite other packages files'
 HELPTEXT='
 <p>
-This is because the package tries to overwrite another packages files without declaring a replaces relation. See policy 7.6 at 
+This is because the package tries to overwrite another packages files without declaring a replaces relation. See policy 7.6 at
 <a href="http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces">http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces</a>.
 </p>
 <p>
diff --git a/home/piupartsm/bin/known_problems/owned_files_after_purge_error.conf b/home/piupartsm/bin/known_problems/owned_files_after_purge_error.conf
index 9211331..8e73602 100644
--- a/home/piupartsm/bin/known_problems/owned_files_after_purge_error.conf
+++ b/home/piupartsm/bin/known_problems/owned_files_after_purge_error.conf
@@ -12,7 +12,7 @@ WARNING: this list might contain false positives.
 </p>
 
 <p>
-Packages need to remove owned files after purge, see 
+Packages need to remove owned files after purge, see
 <a href="http://www.debian.org/doc/debian-policy/ch-files.html#s10.7.3">http://www.debian.org/doc/debian-policy/ch-files.html#s10.7.3</a>
 </p>
 '
diff --git a/home/piupartsm/bin/known_problems/owned_files_after_purge_issue.conf b/home/piupartsm/bin/known_problems/owned_files_after_purge_issue.conf
index b9a921b..411385f 100644
--- a/home/piupartsm/bin/known_problems/owned_files_after_purge_issue.conf
+++ b/home/piupartsm/bin/known_problems/owned_files_after_purge_issue.conf
@@ -12,7 +12,7 @@ WARNING: this list might contain false positives.
 </p>
 
 <p>
-Packages need to remove owned files after purge, see 
+Packages need to remove owned files after purge, see
 <a href="http://www.debian.org/doc/debian-policy/ch-files.html#s10.7.3">http://www.debian.org/doc/debian-policy/ch-files.html#s10.7.3</a>
 </p>
 '
diff --git a/home/piupartsm/bin/known_problems/processes_running_error.conf b/home/piupartsm/bin/known_problems/processes_running_error.conf
index 8658b2b..f138632 100644
--- a/home/piupartsm/bin/known_problems/processes_running_error.conf
+++ b/home/piupartsm/bin/known_problems/processes_running_error.conf
@@ -8,7 +8,7 @@ HEADER='Packages with failed logs because of processes left behind'
 HELPTEXT='
 <p>
 There were processes running inside the chroot at the end of the piuparts run.
-This is probably due to directly calling /etc/rc.d/ scripts in packages maintainer scripts, which is a violation of policy 9.3.3.2 and must be replaced by using invoke-rc.d (which will respect an optionally existing policy-rc.d) - see 
+This is probably due to directly calling /etc/rc.d/ scripts in packages maintainer scripts, which is a violation of policy 9.3.3.2 and must be replaced by using invoke-rc.d (which will respect an optionally existing policy-rc.d) - see
 <a href="http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.3.3">http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.3.3</a>, /usr/share/doc/sysv-rc/README.invoke-rc.d.gz and /usr/share/doc/sysv-rc/README.policy-rc.d.gz.
 </p>
 <p>
diff --git a/home/piupartsm/bin/known_problems/unowned_files_after_purge_error.conf b/home/piupartsm/bin/known_problems/unowned_files_after_purge_error.conf
index 0bb3a6e..c55e644 100644
--- a/home/piupartsm/bin/known_problems/unowned_files_after_purge_error.conf
+++ b/home/piupartsm/bin/known_problems/unowned_files_after_purge_error.conf
@@ -12,7 +12,7 @@ There are probably others like this as well.
 </p>
 
 <p>
-Packages with unowned files after purge (violating policy 6.8) see 
+Packages with unowned files after purge (violating policy 6.8) see
 <a href="http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s-removedetails">http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s-removedetails</a>
 </p>
 '
diff --git a/home/piupartsm/bin/known_problems/unowned_files_after_purge_issue.conf b/home/piupartsm/bin/known_problems/unowned_files_after_purge_issue.conf
index 776f533..25c8620 100644
--- a/home/piupartsm/bin/known_problems/unowned_files_after_purge_issue.conf
+++ b/home/piupartsm/bin/known_problems/unowned_files_after_purge_issue.conf
@@ -12,7 +12,7 @@ There are probably others like this as well.
 </p>
 
 <p>
-Packages with unowned files after purge (violating policy 6.8) see 
+Packages with unowned files after purge (violating policy 6.8) see
 <a href="http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s-removedetails">http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#s-removedetails</a>
 </p>
 '
diff --git a/home/piupartsm/bin/prepare_backup b/home/piupartsm/bin/prepare_backup
index df7af54..5efec36 100755
--- a/home/piupartsm/bin/prepare_backup
+++ b/home/piupartsm/bin/prepare_backup
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -42,9 +42,9 @@ get_config_value SECTIONS global sections
 
 #
 # backup statistiscs files to a single directory for DSA to backup
-# piuparts.d.o's state is not backupped 
+# piuparts.d.o's state is not backupped
 #	(currently it takes one month to run a full piuparts test on a suite
-#         which produces a gigabyte of logfiles to be saved, for basically 
+#         which produces a gigabyte of logfiles to be saved, for basically
 #         not much value)
 #
 BACKUPDIR=/org/piuparts.debian.org/backup
diff --git a/home/piupartsm/bin/report_newly_bugged_packages b/home/piupartsm/bin/report_newly_bugged_packages
index 2807154..a68ee04 100755
--- a/home/piupartsm/bin/report_newly_bugged_packages
+++ b/home/piupartsm/bin/report_newly_bugged_packages
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright © 2011 Andreas Beckmann <debian at abeckmann.de>
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
diff --git a/home/piupartsm/bin/report_stale_reserved_packages b/home/piupartsm/bin/report_stale_reserved_packages
index da2f0de..ecbfcb9 100755
--- a/home/piupartsm/bin/report_stale_reserved_packages
+++ b/home/piupartsm/bin/report_stale_reserved_packages
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009,2010 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -41,7 +41,7 @@ get_config_value SECTIONS global sections
 
 
 #
-# find packages which have been reserved for more than 2 days and unschedule them 
+# find packages which have been reserved for more than 2 days and unschedule them
 #
 
 DAYS=2
diff --git a/home/piupartsm/bin/report_untestable_packages b/home/piupartsm/bin/report_untestable_packages
index 947fd72..0a1b072 100755
--- a/home/piupartsm/bin/report_untestable_packages
+++ b/home/piupartsm/bin/report_untestable_packages
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -49,7 +49,7 @@ LOGS=`mktemp`
 for SECTION in $SECTIONS ; do
 	find $MASTER/$SECTION/untestable/ -mtime +$DAYS -name "*.log" 2>/dev/null >> $LOGS
 done
-if [ -s $LOGS ] ; then 
+if [ -s $LOGS ] ; then
 	echo "Untestable packages detected, which have been tested more than $DAYS days ago!"
 	echo "These packages have been rescheduled for piuparts testing."
 	echo
diff --git a/home/piupartsm/bin/reschedule_oldest_logs b/home/piupartsm/bin/reschedule_oldest_logs
index f67f34e..3dfaaf6 100755
--- a/home/piupartsm/bin/reschedule_oldest_logs
+++ b/home/piupartsm/bin/reschedule_oldest_logs
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009-2011 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
diff --git a/home/piupartsm/crontab b/home/piupartsm/crontab
index 691466f..382e156 100644
--- a/home/piupartsm/crontab
+++ b/home/piupartsm/crontab
@@ -14,7 +14,7 @@
 #
 # monitor slave session every hour
 #
-23 * * * * $HOME/bin/detect_slave_problems 
+23 * * * * $HOME/bin/detect_slave_problems
 
 #
 # make sure slave is reminded daily (and also monitored if not started with ~piupartss/bin/slave_run)
diff --git a/home/piupartss/bin/detect_leftover_processes b/home/piupartss/bin/detect_leftover_processes
index ca97325..a65baa4 100755
--- a/home/piupartss/bin/detect_leftover_processes
+++ b/home/piupartss/bin/detect_leftover_processes
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
diff --git a/home/piupartss/bin/slave_cleanup b/home/piupartss/bin/slave_cleanup
index 606a53b..50cda74 100755
--- a/home/piupartss/bin/slave_cleanup
+++ b/home/piupartss/bin/slave_cleanup
@@ -1,30 +1,30 @@
 #!/bin/sh
 
 # Copyright 2012 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
 #
-# cleanup /org/piuparts.debian.org/tmp/ 
+# cleanup /org/piuparts.debian.org/tmp/
 #
 # - this should only be run (automatically) on boot
 #
 set -e
 
 # do nothing if piuparts-slave is running
-if [ "$(ps fax|grep piuparts-slave|grep -v grep)" != "" ] ; then 
+if [ "$(ps fax|grep piuparts-slave|grep -v grep)" != "" ] ; then
 	exit 0
 fi
 
diff --git a/home/piupartss/bin/slave_join b/home/piupartss/bin/slave_join
index a0c20b5..26f47f6 100755
--- a/home/piupartss/bin/slave_join
+++ b/home/piupartss/bin/slave_join
@@ -1,17 +1,17 @@
-#!/bin/sh 
+#!/bin/sh
 
 # Copyright 2009-2010 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -23,11 +23,11 @@ set -e
 
 SCREENLOG=/org/piuparts.debian.org/slave/screenlog.0
 
-if [ -f $SCREENLOG ] ; then 
+if [ -f $SCREENLOG ] ; then
   screen -R -S piuparts-slave-screen
 else
   echo "$SCREENLOG does not exist, slave not running!"
-  echo 
+  echo
   echo "ps faxu | grep piuparts"
-  ps faxu | grep piuparts 
+  ps faxu | grep piuparts
 fi
diff --git a/home/piupartss/bin/slave_run b/home/piupartss/bin/slave_run
index 1f79314..92b6ba5 100755
--- a/home/piupartss/bin/slave_run
+++ b/home/piupartss/bin/slave_run
@@ -1,17 +1,17 @@
 #!/bin/sh
 
 # Copyright 2009-2011 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -28,7 +28,7 @@ export PYTHONPATH=/org/piuparts.debian.org/lib/python2.6/dist-packages:/org/piup
 cd /org/piuparts.debian.org/slave
 (ps fax|grep -v grep| grep piuparts-slave ) && exit 0
 rm -f $SCREENLOG					# used by ~piupartsm/bin/detect_slave_problems
-rm -f $MONITORDIR/*					# used by several scripts to only warn once a day 
+rm -f $MONITORDIR/*					# used by several scripts to only warn once a day
 
 trap "cat $SCREENLOG | mail -s 'slave abnormaly ended' piupartsm ; rm $SCREENLOG; exit" TERM EXIT
 screen -L -d -m -S piuparts-slave-screen su - piupartss -c "cd /org/piuparts.debian.org/slave && PYTHONPATH=$PYTHONPATH python ../share/piuparts/piuparts-slave"
diff --git a/home/piupartss/bin/update-piuparts-setup b/home/piupartss/bin/update-piuparts-setup
index e6bc5e8..d7f7ff5 100755
--- a/home/piupartss/bin/update-piuparts-setup
+++ b/home/piupartss/bin/update-piuparts-setup
@@ -1,4 +1,4 @@
-#!/bin/sh 
+#!/bin/sh
 set -e
 
 #
@@ -6,17 +6,17 @@ set -e
 #
 
 # Copyright 2009-2012 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -31,7 +31,7 @@ PIUPARTS_HTDOCS=$PIUPARTS_PREFIX/htdocs
 PIUPARTS_TEMPDIR=$PIUPARTS_PREFIX/tmp
 
 # please cleanup yourself
-cd 
+cd
 if [ -d piatti ] ; then
 	echo please rm ~/piatti manually
 fi
diff --git a/org/piuparts.debian.org/etc/piuparts.conf.goldwasser b/org/piuparts.debian.org/etc/piuparts.conf.goldwasser
index 64e4283..c77bb95 100644
--- a/org/piuparts.debian.org/etc/piuparts.conf.goldwasser
+++ b/org/piuparts.debian.org/etc/piuparts.conf.goldwasser
@@ -1,6 +1,6 @@
 #
 # This is the configuration file for piuparts running in master-slave mode on a host called goldwasser
-# 
+#
 # For more information on this setup see http://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git;hb=piatti;a=blob;f=README_piatti.txt
 #
 #
@@ -15,7 +15,7 @@ master-directory = /org/piuparts.debian.org/master/
 output-directory = /org/piuparts.debian.org/htdocs/
 master-command = PYTHONPATH=/org/piuparts.debian.org/lib/python2.6/dist-packages:/org/piuparts.debian.org/lib/python2.7/dist-packages python /org/piuparts.debian.org/share/piuparts/piuparts-master
 # this value is too high for production (it will cause piuparts-slave to sleep
-# for a whole day) but useful for testing master-slave mode, for running on a 
+# for a whole day) but useful for testing master-slave mode, for running on a
 # test system 24/7 without causing load for 24/7
 idle-sleep = 86400
 
@@ -58,7 +58,7 @@ max-reserved = 50
 auto-reschedule = no
 log-file = wheezy.log
 
- 
+
 [squeeze2wheezy]
 description = Debian main: package installation in squeeze and dist-upgrade to wheezy, then removal and purge test.
 packages-url = http://ftp.de.debian.org/debian/dists/wheezy/main/binary-amd64/Packages.bz2
diff --git a/org/piuparts.debian.org/etc/piuparts.conf.piatti b/org/piuparts.debian.org/etc/piuparts.conf.piatti
index 54e64a2..bcb768b 100644
--- a/org/piuparts.debian.org/etc/piuparts.conf.piatti
+++ b/org/piuparts.debian.org/etc/piuparts.conf.piatti
@@ -1,6 +1,6 @@
 #
 # This is the configuration file for piuparts running in master-slave mode on piatti.debian.org
-# 
+#
 # For more information on this setup see http://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git;hb=piatti;a=blob;f=README_piatti.txt
 #
 #
diff --git a/org/piuparts.debian.org/htdocs/bug_howto.tpl b/org/piuparts.debian.org/htdocs/bug_howto.tpl
index 9e7691c..877ec89 100644
--- a/org/piuparts.debian.org/htdocs/bug_howto.tpl
+++ b/org/piuparts.debian.org/htdocs/bug_howto.tpl
@@ -61,7 +61,7 @@
 
  attachment: $failed_logfile
 	</pre>
-	Please take care when filing bugs to file meaningful bugs and to not annoy maintainers. Don't nitpick or insist on severities, the important thing is to get the bug fixed, not the right severity. Optionally you can also send copies to the piuparts-devel mailinglist by adding <i>X-debbugs-cc: piuparts-devel at lists.alioth.debian.org</i> pseudo-headers. 
+	Please take care when filing bugs to file meaningful bugs and to not annoy maintainers. Don't nitpick or insist on severities, the important thing is to get the bug fixed, not the right severity. Optionally you can also send copies to the piuparts-devel mailinglist by adding <i>X-debbugs-cc: piuparts-devel at lists.alioth.debian.org</i> pseudo-headers.
      </td>
     </tr>
     <tr class="normalrow">
diff --git a/org/piuparts.debian.org/htdocs/index.tpl b/org/piuparts.debian.org/htdocs/index.tpl
index c66739e..23c3f09 100644
--- a/org/piuparts.debian.org/htdocs/index.tpl
+++ b/org/piuparts.debian.org/htdocs/index.tpl
@@ -7,14 +7,14 @@
     <tr class="normalrow">
      <td class="contentcell2">
       <em>piuparts</em> is a tool for testing that .deb packages can be installed, upgraded, and removed without problems. The
-      name, a variant of something suggested by Tollef Fog Heen, is short for "<em>p</em>ackage <em>i</em>nstallation, 
-      <em>up</em>grading <em>a</em>nd <em>r</em>emoval <em>t</em>esting <em>s</em>uite". 
+      name, a variant of something suggested by Tollef Fog Heen, is short for "<em>p</em>ackage <em>i</em>nstallation,
+      <em>up</em>grading <em>a</em>nd <em>r</em>emoval <em>t</em>esting <em>s</em>uite".
      </td>
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
       It does this by  creating a minimal Debian installation in a chroot, and installing,
-      upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after. 
+      upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after.
       piuparts reports any files that have been added, removed, or modified during this process.
      </td>
     </tr>
@@ -25,11 +25,11 @@
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      To make sure piuparts is run on all packages, piuparts.debian.org was set up as a service running on 
-      <a href="http://db.debian.org/machines.cgi?host=piatti" target="_blank">piatti.debian.org</a>. 
-      This machine was generously donated by <a href="http://hp.com/go/debian/" target="_blank">HP</a> 
-      to run piuparts on the Debian archive and is hosted as 
-      <a href="http://piuparts.cs.helsinki.fi">piuparts.cs.helsinki.fi</a> by the University of Helsinki, at the 
+      To make sure piuparts is run on all packages, piuparts.debian.org was set up as a service running on
+      <a href="http://db.debian.org/machines.cgi?host=piatti" target="_blank">piatti.debian.org</a>.
+      This machine was generously donated by <a href="http://hp.com/go/debian/" target="_blank">HP</a>
+      to run piuparts on the Debian archive and is hosted as
+      <a href="http://piuparts.cs.helsinki.fi">piuparts.cs.helsinki.fi</a> by the University of Helsinki, at the
       <a href="http://cs.helsinki.fi/index.en.html" target="_blank">Department of Computer Science</a>
       in Finland.
       As this is still being polished, see the piuparts wiki page to get an overview about <a href="http://wiki.debian.org/piuparts" target="_blank">piuparts development and the piuparts setup on piatti</a>. Better reports, statistics, tools to report bugs as well as testing on other architectures is planned. Join #debian-qa if you want to help.
@@ -57,7 +57,7 @@
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      <b>2012-03-05</b>: temporarily disabled this again until we've sorted out problems with it. 
+      <b>2012-03-05</b>: temporarily disabled this again until we've sorted out problems with it.
       <br>
       <b>2012-02-20</b>: piuparts-analyse now sends commands the BTS: if a bug has not been explicitly marked fixed in the new version, it can rather very savely be assumed it's still present.
      </td>
@@ -154,7 +154,7 @@
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      <b>2010-11-25</b>: Treat six packages specially: sudo (sensibly refuses removal if no root password is set), apt-listbugs (is called by apt and exists if there are RC buggy packages being upgraded), fai-nfsroot, ltsp-client-core (these two packages modify the installed system heavily and thus will only install if conditions are met), file-rc and upstart (these two replace essential packages and therefore apt needs to be told to do this). 
+      <b>2010-11-25</b>: Treat six packages specially: sudo (sensibly refuses removal if no root password is set), apt-listbugs (is called by apt and exists if there are RC buggy packages being upgraded), fai-nfsroot, ltsp-client-core (these two packages modify the installed system heavily and thus will only install if conditions are met), file-rc and upstart (these two replace essential packages and therefore apt needs to be told to do this).
      </td>
     </tr>
     <tr class="normalrow">
@@ -214,7 +214,7 @@
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      <b>2010-02-16</b>: The squeeze test has been split into squeeze and lenny2squeeze, where squeeze means package installation in squeeze, removal and purge test, while lenny2squeeze means package installation in lenny, then upgrade to squeeze, then removal and purge test. This allows more issues to be found in squeeze since (potential) brokeness in lenny is not blurring the results in squeeze. 
+      <b>2010-02-16</b>: The squeeze test has been split into squeeze and lenny2squeeze, where squeeze means package installation in squeeze, removal and purge test, while lenny2squeeze means package installation in lenny, then upgrade to squeeze, then removal and purge test. This allows more issues to be found in squeeze since (potential) brokeness in lenny is not blurring the results in squeeze.
      </td>
     </tr>
     <tr class="normalrow">
@@ -239,12 +239,12 @@
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      <b>2009-12-09</b>: Reschedule testing for 14287 successfully tested packages in sid, those in squeeze will be rescheduled once all testable package in sid have been tested again. This is because piuparts now creates and maintains chroots securily (using gpg signed Release files for both debootstrap and apt-get) and because it warns if broken symlinks are found in a package. 
+      <b>2009-12-09</b>: Reschedule testing for 14287 successfully tested packages in sid, those in squeeze will be rescheduled once all testable package in sid have been tested again. This is because piuparts now creates and maintains chroots securily (using gpg signed Release files for both debootstrap and apt-get) and because it warns if broken symlinks are found in a package.
      </td>
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      <b>2009-12-05</b>: Reschedule testing for ~400 failed packages in sid and ~600 in squeeze, to be followed by a rescheduling of all successful packages. This is because piuparts now warns if broken symlinks are found in a package. 
+      <b>2009-12-05</b>: Reschedule testing for ~400 failed packages in sid and ~600 in squeeze, to be followed by a rescheduling of all successful packages. This is because piuparts now warns if broken symlinks are found in a package.
      </td>
     </tr>
     <tr class="normalrow">
@@ -284,7 +284,7 @@
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
-      <b>2009-05-06</b>: Only believe statistics you faked yourself! Up until today piuparts used to include virtual packages (those only exist true the Provides: header) into the calculations of statistics of package states and the total number of packages. Suddenly, sid has 2444 packages less! 
+      <b>2009-05-06</b>: Only believe statistics you faked yourself! Up until today piuparts used to include virtual packages (those only exist true the Provides: header) into the calculations of statistics of package states and the total number of packages. Suddenly, sid has 2444 packages less!
      </td>
     </tr>
     <tr class="normalrow">
diff --git a/org/piuparts.debian.org/htdocs/style.css b/org/piuparts.debian.org/htdocs/style.css
index 9de148d..9b3be56 100644
--- a/org/piuparts.debian.org/htdocs/style.css
+++ b/org/piuparts.debian.org/htdocs/style.css
@@ -228,7 +228,7 @@ h1.header {
 table.containertable {
     clear: both;
     background-color: #ddd;
-    border: none; 
+    border: none;
 }
 table.lefttable {
     width: 100%;
@@ -247,19 +247,19 @@ table.righttable {
 td.containercell {
     background-color: #ddd;
 }
-td.titlecell { 
-    color: white; 
+td.titlecell {
+    color: white;
     background-color: #d70751;
-    font-weight: bold; 
+    font-weight: bold;
     text-align: center;
     padding: 0.2em 0.2em 0.1em 0.2em;
     border-top: 3px solid #999;
     border-bottom: 1px solid #999;
 }
-td.alerttitlecell { 
-    color: white; 
+td.alerttitlecell {
+    color: white;
     background-color: #0755d7;
-    font-weight: bold; 
+    font-weight: bold;
     text-align: center;
     padding: 0.2em 0.2em 0.1em 0.2em;
     border-top: 3px solid #999;
diff --git a/piuparts-analyze.py b/piuparts-analyze.py
index e25f0f8..9378687 100644
--- a/piuparts-analyze.py
+++ b/piuparts-analyze.py
@@ -15,7 +15,7 @@
 # Public License for more details.
 #
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
diff --git a/piuparts-master.py b/piuparts-master.py
index 65386d4..9e881d5 100644
--- a/piuparts-master.py
+++ b/piuparts-master.py
@@ -1,19 +1,19 @@
 #!/usr/bin/python
 #
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
@@ -164,8 +164,8 @@ class Master(Protocol):
         if package is None:
             self._short_response("error")
         else:
-            self._short_response("ok", 
-                                 package["Package"], 
+            self._short_response("ok",
+                                 package["Package"],
                                  package["Version"])
 
     def _unreserve(self, command, args):
diff --git a/piuparts-report.py b/piuparts-report.py
index 388862c..03ecac9 100644
--- a/piuparts-report.py
+++ b/piuparts-report.py
@@ -2,19 +2,19 @@
 #
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
 # Copyright 2009-2012 Holger Levsen (holger at layer-acht.org)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
@@ -91,14 +91,14 @@ HTML_HEADER = """
     </tr>
     <tr class="normalrow">
      <td class="contentcell">
-      <a href="http://wiki.debian.org/piuparts/FAQ" target="_blank">FAQ</a> 
+      <a href="http://wiki.debian.org/piuparts/FAQ" target="_blank">FAQ</a>
      </td>
-    </tr>     
+    </tr>
     <tr class="normalrow">
      <td class="contentcell">
       <a href="http://bugs.debian.org/src:piuparts" target="_blank">Bugs</a> / <a href="http://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git;a=blob;f=TODO" target="_blank">ToDo</a>
      </td>
-    </tr>     
+    </tr>
     <tr class="titlerow">
      <td class="titlecell">
       Documentation
@@ -138,9 +138,9 @@ HTML_HEADER = """
     </tr>
     <tr>
      <td class="contentcell">
-      <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=piuparts;users=debian-qa@lists.debian.org&archive=both" target="_blank">Bugs filed</a> 
+      <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=piuparts;users=debian-qa@lists.debian.org&archive=both" target="_blank">Bugs filed</a>
      </td>
-    </tr>     
+    </tr>
     $section_navigation
     <tr class="titlerow">
      <td class="titlecell">
@@ -185,7 +185,7 @@ HTML_HEADER = """
 HTML_FOOTER = """
   </td>
  </tr>
-</table> 
+</table>
 </div>
  <hr>
  <div id="footer">
@@ -314,14 +314,14 @@ INDEX_BODY_TEMPLATE = """
     <tr class="normalrow">
      <td class="contentcell2">
       piuparts is a tool for testing that .deb packages can be installed, upgraded, and removed without problems. The
-      name, a variant of something suggested by Tollef Fog Heen, is short for "<em>p</em>ackage <em>i</em>nstallation, 
-      <em>up</em>grading <em>a</em>nd <em>r</em>emoval <em>t</em>esting <em>s</em>uite". 
+      name, a variant of something suggested by Tollef Fog Heen, is short for "<em>p</em>ackage <em>i</em>nstallation,
+      <em>up</em>grading <em>a</em>nd <em>r</em>emoval <em>t</em>esting <em>s</em>uite".
      </td>
     </tr>
     <tr class="normalrow">
      <td class="contentcell2">
       It does this by  creating a minimal Debian installation in a chroot, and installing,
-      upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after. 
+      upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after.
       piuparts reports any files that have been added, removed, or modified during this process.
      </td>
     </tr>
@@ -619,11 +619,11 @@ class Section:
             versions = []
             for pathname, version in packages[package]:
                 version_count += 1
-                versions.append("<a href=\"%s\">%s</a>" % 
-                                (html_protect(pathname), 
+                versions.append("<a href=\"%s\">%s</a>" %
+                                (html_protect(pathname),
                                  html_protect(version)))
             line = "<tr class=\"normalrow\"><td class=\"contentcell2\">%s</td><td class=\"contentcell2\">%s</td></tr>" % \
-                                (html_protect(package), 
+                                (html_protect(package),
                                  ", ".join(versions))
             lines.append(line)
 
@@ -658,7 +658,7 @@ class Section:
                 package, version = basename[:-len(".log")].split("_")
                 vlist.append((os.path.join(vdir, basename), package, version))
             self.write_log_list_page(os.path.join(output_directory, vdir + ".html"),
-                                title_by_dir[vdir], 
+                                title_by_dir[vdir],
                                 desc_by_dir[vdir], vlist)
 
     def find_links_to_logs(self, package_name, dirs, logs_by_dir):
@@ -666,12 +666,12 @@ class Section:
         for vdir in dirs:
 
           # avoid linear search against log file names by caching in a dict
-          # 
+          #
           # this cache was added to avoid a very expensive linear search
           # against the arrays in logs_by_dir. Note that the use of this cache
           # assumes that the contents of logs_by_dir is invarient across calls
           # to find_links_to_logs()
-          # 
+          #
           if vdir not in self._log_name_cache:
               self._log_name_cache[vdir] = {}
 
@@ -751,7 +751,7 @@ class Section:
         return link
 
     def write_counts_summary(self):
-        logging.debug("Writing counts.txt")    
+        logging.debug("Writing counts.txt")
         header = "date"
         current_day = "%s" % time.strftime("%Y%m%d")
         counts = current_day
@@ -764,12 +764,12 @@ class Section:
             total += count
         logging.debug("total: %s" % total)
         logging.debug("source: %s" % len(self._source_db.get_all_packages()))
-        header += "\n"       
-        counts += "\n"       
+        header += "\n"
+        counts += "\n"
 
-        countsfile = os.path.join(self._output_directory, "counts.txt") 
+        countsfile = os.path.join(self._output_directory, "counts.txt")
         if not os.path.isfile(countsfile):
-          logging.debug("writing new file: %s" % countsfile) 
+          logging.debug("writing new file: %s" % countsfile)
           write_file(countsfile, header)
           last_line = ""
         else:
@@ -844,7 +844,7 @@ class Section:
         for binary in sorted([x.strip() for x in binaries.split(",") if x.strip()]):
           state = self._binary_db.get_package_state(binary)
           if state == "unknown":
-            # Don't track udebs and binary packages on other archs. 
+            # Don't track udebs and binary packages on other archs.
             # The latter is a FIXME which needs parsing the Packages files from other archs too
             continue
 
@@ -898,7 +898,7 @@ class Section:
 
 
     def create_package_summaries(self, logs_by_dir):
-        logging.debug("Writing package templates in %s" % self._config.section)    
+        logging.debug("Writing package templates in %s" % self._config.section)
 
         maintainers = {}
         source_binary_rows = {}
@@ -928,7 +928,7 @@ class Section:
         r('cname <- c("date",rep(colnames(t)))')
         # here we define how many days we wants stats for (163=half a year)
         #r('v <- t[(nrow(t)-163):nrow(t),0:12]')
-        # make graph since day 1  
+        # make graph since day 1
         r('v <- t[0:nrow(t),0:12]')
         # thanks to http://tango.freedesktop.org/Generic_Icon_Theme_Guidelines for those nice colors
         r('palette(c("#4e9a06", "#ef2929", "#d3d7cf", "#5c3566", "#c4a000", "#fce94f", "#a40000", "#888a85", "#2e3436", "#729fcf", "#3465a4", "#204a87", "#555753"))')
@@ -981,7 +981,7 @@ class Section:
                   if count_passed > 0:
                     substats += ": %s passed" % count_passed
               link += "<li><a href=%s>%s</a>%s</li>" % (
-                                                                       template[:-len(".tpl")]+".html", 
+                                                                       template[:-len(".tpl")]+".html",
                                                                        linktarget,
                                                                        substats
                                                        )
@@ -989,7 +989,7 @@ class Section:
               logging.debug("analysis template %s does not exist." % template)
 
         link += "</ul>"
-        if link == "<ul></ul>": 
+        if link == "<ul></ul>":
           link = ""
         return link
 
@@ -1021,7 +1021,7 @@ class Section:
             "section": html_protect(self._config.section),
             "description": html_protect(self._config["description"]),
             "tablerows": tablerows,
-            "packagesurl": html_protect(self._config["packages-url"]), 
+            "packagesurl": html_protect(self._config["packages-url"]),
            }))
 
     def _show_providers(self, dep):
@@ -1071,7 +1071,7 @@ class Section:
                     for alternatives in all_deps:
                         dep = alternatives[0]
                         vlist += "<li>dependency %s is %s</li>\n" % \
-                                  (self.link_to_state_page(self._config.section,dep,dep), 
+                                  (self.link_to_state_page(self._config.section,dep,dep),
                                   emphasize_reason(html_protect(self._binary_db.get_package_state(dep, resolve_virtual=False))))
                         vlist += self._show_providers(dep)
                         if len(alternatives) > 1:
@@ -1138,7 +1138,7 @@ class Section:
         if self._config["sources-url"]:
             self.create_package_summaries(logs_by_dir)
 
-        logging.debug("Writing section index page")    
+        logging.debug("Writing section index page")
         self.write_section_index_page(dirs, total_packages)
 
         logging.debug("Writing stats pages for %s" % self._config.section)
diff --git a/piuparts-slave.py b/piuparts-slave.py
index bd2ced1..2cc6a3b 100644
--- a/piuparts-slave.py
+++ b/piuparts-slave.py
@@ -1,19 +1,19 @@
 #!/usr/bin/python
 #
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
@@ -162,9 +162,9 @@ class Slave:
         else:
             user = ""
         ssh_cmdline = "cd %s; %s 2> %s.$$ && rm %s.$$" % \
-                      (self._master_directory or ".", 
+                      (self._master_directory or ".",
                       self._master_command, log_file, log_file)
-        p = subprocess.Popen(["ssh", user + self._master_host, ssh_cmdline], 
+        p = subprocess.Popen(["ssh", user + self._master_host, ssh_cmdline],
                        stdin=subprocess.PIPE, stdout=subprocess.PIPE)
         self._to_master = p.stdin
         self._from_master = p.stdout
@@ -411,7 +411,7 @@ class Section:
                 if version == package["Version"] or self._config["upgrade-test-distros"]:
                     test_package(self._config, package, packages_files)
                 else:
-                    create_file(os.path.join("untestable", 
+                    create_file(os.path.join("untestable",
                                 log_name(package_name, version)),
                                 "%s %s not found" % (package_name, version))
             else:
@@ -465,13 +465,13 @@ def run_test_with_timeout(cmd, maxwait, kill_all):
               pids.extend(get_process_children(p.pid))
           for pid in pids:
               if pid > 0:
-                  try: 
+                  try:
                       os.kill(pid, SIGKILL)
                   except OSError:
                       pass
           return -1,stdout
 
-      return p.returncode,stdout 
+      return p.returncode,stdout
 
 
 def test_package(config, package, packages_files):
@@ -481,7 +481,7 @@ def test_package(config, package, packages_files):
     logging.debug("Opening log file %s" % output_name)
     new_name = os.path.join("new", output_name)
     output = file(new_name, "we")
-    output.write(time.strftime("Start: %Y-%m-%d %H:%M:%S %Z\n", 
+    output.write(time.strftime("Start: %Y-%m-%d %H:%M:%S %Z\n",
                                time.gmtime()))
     output.write("\n")
     package.dump(output)
@@ -489,7 +489,7 @@ def test_package(config, package, packages_files):
 
     # omit distro test if chroot-tgz is not specified.
     ret = 0
-    if config["chroot-tgz"]: 
+    if config["chroot-tgz"]:
         command = "%(piuparts-cmd)s -ad %(distro)s -b %(chroot-tgz)s" % \
                     config
         if config["keep-sources-list"] in ["yes", "true"]:
@@ -524,7 +524,7 @@ def test_package(config, package, packages_files):
             output.flush()
 
     output.write("\n")
-    output.write(time.strftime("End: %Y-%m-%d %H:%M:%S %Z\n", 
+    output.write(time.strftime("End: %Y-%m-%d %H:%M:%S %Z\n",
                                time.gmtime()))
     output.close()
     if ret != 0:
@@ -558,7 +558,7 @@ def create_chroot(config, tarball, distro):
         os.rename(tarball + ".new", tarball)
 
 def create_or_replace_chroot_tgz(config, tgz, tgz_ctrl, distro):
-    forced = 0 
+    forced = 0
     if os.path.exists(tgz):
         max_tgz_age = tgz_ctrl[0]
         min_tgz_retry_delay = tgz_ctrl[1]
@@ -572,7 +572,7 @@ def create_or_replace_chroot_tgz(config, tgz, tgz_ctrl, distro):
             # stat.ST_CTIME is time created OR last renamed
             if min_tgz_retry_delay is None or now - statobj[stat.ST_CTIME] > min_tgz_retry_delay:
                 os.rename(tgz, tgz + ".old")
-                forced = 1 
+                forced = 1
                 logging.info("%s too old.  Renaming to force re-creation" % tgz)
     if not os.path.exists(tgz):
         create_chroot(config, tgz, distro)
@@ -588,7 +588,7 @@ def fetch_packages_file(config, distro):
     arch = config["arch"]
     if not arch:
         # Try to figure it out ourselves, using dpkg
-        p = subprocess.Popen(["dpkg", "--print-architecture"], 
+        p = subprocess.Popen(["dpkg", "--print-architecture"],
                              stdout=subprocess.PIPE)
         arch = p.stdout.read().rstrip()
     packages_url = \
@@ -652,6 +652,6 @@ if __name__ == "__main__":
   except KeyboardInterrupt:
      print ''
      print 'Slave interrupted by the user, exiting... manual cleanup still neccessary.'
-     sys.exit(1)  
+     sys.exit(1)
 
 # vi:set et ts=4 sw=4 :
diff --git a/piuparts.1.txt b/piuparts.1.txt
index 3fc6936..e924e7c 100644
--- a/piuparts.1.txt
+++ b/piuparts.1.txt
@@ -24,7 +24,7 @@ By default, piuparts can do three different tests:
 
 . An upgrade test between Debian releases. This test is enabled by using the '-d' option multiple times and disables the other two tests. It sets up the chroot with the first distribution named, then upgrades it to each successive one, and then remembers the directory tree state at the end. After this, it starts over with the chroot of the first distribution, installs the desired packages (via *apt-get*), and does the successive upgrading (via *apt-get dist-upgrade*). Then, if package files (and not just package names) were given on the command line, it installs them. Finally, it reports problems against the state of the directory tree at the last distribution compared with the state without the packages having been installed. This test can be quite slow to execute.
 +
-Note that this does not work with experimental, because *apt-get* does not automatically upgrade to packages in experimental. To test a particular package or group of packages in experimental, use the second test. 
+Note that this does not work with experimental, because *apt-get* does not automatically upgrade to packages in experimental. To test a particular package or group of packages in experimental, use the second test.
 
 
 Command line arguments are the paths to package files (e.g., _piuparts_1.0-1_all.deb_), paths to changes files (e.g., _piuparts_1.0-1_i386.changes_), or names of packages, if the '--apt' option is given.
diff --git a/piuparts.py b/piuparts.py
index 5f06349..34746b8 100644
--- a/piuparts.py
+++ b/piuparts.py
@@ -1,19 +1,19 @@
 #!/usr/bin/python
 #
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
@@ -23,7 +23,7 @@ This program sets up a minimal Debian system in a chroot, and installs
 and uninstalls packages and their dependencies therein, looking for
 problems.
 
-See the manual page (piuparts.1, generated from piuparts.1.txt) for 
+See the manual page (piuparts.1, generated from piuparts.1.txt) for
 more usage information.
 
 Lars Wirzenius <liw at iki.fi>
@@ -107,7 +107,7 @@ class DefaultsFactory:
     """Instantiate the right defaults class."""
 
     def guess_flavor(self):
-        p = subprocess.Popen(["lsb_release", "-i", "-s"], 
+        p = subprocess.Popen(["lsb_release", "-i", "-s"],
                              stdout=subprocess.PIPE)
         stdout, stderr = p.communicate()
         return stdout.strip().lower()
@@ -208,7 +208,7 @@ class Settings:
             "/etc/apt/trusted.gpg~",
             "/usr/share/keyrings/debian-archive-removed-keys.gpg~",
             "/var/cache/apt/archives/lock",
-            "/var/cache/apt/pkgcache.bin", 
+            "/var/cache/apt/pkgcache.bin",
             "/var/cache/apt/srcpkgcache.bin",
             "/var/cache/debconf/",
             "/var/cache/debconf/config.dat",
@@ -225,12 +225,12 @@ class Settings:
             "/var/lib/cdebconf/questions.dat",
             "/var/lib/cdebconf/templates.dat",
             "/var/lib/dpkg/available",
-            "/var/lib/dpkg/available-old", 
+            "/var/lib/dpkg/available-old",
             "/var/lib/dpkg/diversions",
             "/var/lib/dpkg/diversions-old",
-            "/var/lib/dpkg/lock", 
-            "/var/lib/dpkg/status", 
-            "/var/lib/dpkg/status-old", 
+            "/var/lib/dpkg/lock",
+            "/var/lib/dpkg/status",
+            "/var/lib/dpkg/status-old",
             "/var/lib/dpkg/statoverride",
             "/var/lib/dpkg/statoverride-old",
             "/var/log/alternatives.log",
@@ -416,7 +416,7 @@ def run(command, ignore_errors=False, timeout=0):
     env["LANGUAGES"] = ""
     env["PIUPARTS_OBJECTS"] = ' '.join(str(vobject) for vobject in settings.testobjects )
     devnull = open('/dev/null', 'r')
-    p = subprocess.Popen(command, env=env, stdin=devnull, 
+    p = subprocess.Popen(command, env=env, stdin=devnull,
                          stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
     output = ""
     excessive_output = False
@@ -452,10 +452,10 @@ def run(command, ignore_errors=False, timeout=0):
     if p.returncode == 0:
         logging.debug("Command ok: %s" % repr(command))
     elif ignore_errors:
-        logging.debug("Command failed (status=%d), but ignoring error: %s" % 
+        logging.debug("Command failed (status=%d), but ignoring error: %s" %
               (p.returncode, repr(command)))
     else:
-        logging.error("Command failed (status=%d): %s\n%s" % 
+        logging.error("Command failed (status=%d): %s\n%s" %
               (p.returncode, repr(command), indent_string(output)))
         panic()
     return p.returncode, output
@@ -639,19 +639,19 @@ class IsBrokenSymlinkTests(unittest.TestCase):
         shutil.rmtree(self.testdir)
 
     def testRelativeBroken(self):
-        self.failUnless(is_broken_symlink(self.testdir, self.testdir, 
+        self.failUnless(is_broken_symlink(self.testdir, self.testdir,
                                           "relative-broken"))
 
     def testRelativeBrokenToSymlink(self):
-        self.failUnless(is_broken_symlink(self.testdir, self.testdir, 
+        self.failUnless(is_broken_symlink(self.testdir, self.testdir,
                                           "relative-broken-to-symlink"))
 
     def testAbsoluteBroken(self):
-        self.failUnless(is_broken_symlink(self.testdir, self.testdir, 
+        self.failUnless(is_broken_symlink(self.testdir, self.testdir,
                                           "absolute-broken"))
 
     def testAbsoluteBrokenToSymlink(self):
-        self.failUnless(is_broken_symlink(self.testdir, self.testdir, 
+        self.failUnless(is_broken_symlink(self.testdir, self.testdir,
                                           "absolute-broken-to-symlink"))
 
     def testTrailingSlashBroken(self):
@@ -685,19 +685,19 @@ class IsBrokenSymlinkTests(unittest.TestCase):
                                           "dir/subdir/selfloop3"))
 
     def testRelativeWorks(self):
-        self.failIf(is_broken_symlink(self.testdir, self.testdir, 
+        self.failIf(is_broken_symlink(self.testdir, self.testdir,
                                       "relative-works"))
 
     def testRelativeWorksToSymlink(self):
-        self.failIf(is_broken_symlink(self.testdir, self.testdir, 
+        self.failIf(is_broken_symlink(self.testdir, self.testdir,
                                       "relative-works-to-symlink"))
 
     def testAbsoluteWorks(self):
-        self.failIf(is_broken_symlink(self.testdir, self.testdir, 
+        self.failIf(is_broken_symlink(self.testdir, self.testdir,
                                       "absolute-works"))
 
     def testAbsoluteWorksToSymlink(self):
-        self.failIf(is_broken_symlink(self.testdir, self.testdir, 
+        self.failIf(is_broken_symlink(self.testdir, self.testdir,
                                       "absolute-works-to-symlink"))
 
     def testTrailingSlashWorks(self):
@@ -856,7 +856,7 @@ class Chroot:
 
         logging.debug("Creating LVM snapshot %s from %s" % (self.lvm_snapshot, lvm_volume))
         run(['lvcreate', '-n', self.lvm_snapshot, '-s', lvm_volume, '-L', settings.lvm_snapshot_size])
-        logging.info("Mounting LVM snapshot to %s" % self.name); 
+        logging.info("Mounting LVM snapshot to %s" % self.name);
         run(['mount', self.lvm_snapshot, self.name])
 
     def setup_from_dir(self, dirname):
@@ -883,9 +883,9 @@ class Chroot:
         """Create an /etc/apt/sources.list with a given distro."""
         lines = []
         for mirror, components in settings.debian_mirrors:
-            lines.append("deb %s %s %s\n" % 
+            lines.append("deb %s %s %s\n" %
                          (mirror, distro, " ".join(components)))
-        create_file(self.relative("etc/apt/sources.list"), 
+        create_file(self.relative("etc/apt/sources.list"),
                     "".join(lines))
 
     def create_apt_conf(self):
@@ -895,13 +895,13 @@ class Chroot:
             'APT::Install-Recommends "0";\n',
             'APT::Install-Suggests "0";\n',
             ]
-        lines.append('APT::Get::AllowUnauthenticated "%s";\n' % settings.apt_unauthenticated) 
+        lines.append('APT::Get::AllowUnauthenticated "%s";\n' % settings.apt_unauthenticated)
         if "HTTP_PROXY" in os.environ:
             proxy = os.environ["HTTP_PROXY"]
         else:
             proxy = None;
             pat = re.compile(r"^Acquire::http::Proxy\s+\"([^\"]+)\"", re.I);
-            p = subprocess.Popen(["apt-config", "dump"], 
+            p = subprocess.Popen(["apt-config", "dump"],
                              stdout=subprocess.PIPE)
             stdout, _ = p.communicate()
             if stdout:
@@ -942,7 +942,7 @@ class Chroot:
 
     def setup_minimal_chroot(self):
         """Set up a minimal Debian system in a chroot."""
-        logging.debug("Setting up minimal chroot for %s at %s." % 
+        logging.debug("Setting up minimal chroot for %s at %s." %
               (settings.debian_distros[0], self.name))
         prefix = []
         if settings.eatmydata and os.path.isfile('/usr/bin/eatmydata'):
@@ -1031,13 +1031,13 @@ class Chroot:
         """Copy files in 'source_name' to file/dir 'target_name', relative
         to the root of the chroot."""
         target_name = self.relative(target_name)
-        logging.debug("Copying %s to %s" % 
+        logging.debug("Copying %s to %s" %
                       (", ".join(source_names), target_name))
         for source_name in source_names:
             try:
                 shutil.copy(source_name, target_name)
             except IOError, detail:
-                logging.error("Error copying %s to %s: %s" % 
+                logging.error("Error copying %s to %s: %s" %
                       (source_name, target_name, detail))
                 panic()
 
@@ -1050,7 +1050,7 @@ class Chroot:
         if new:
             logging.debug("New installed files on system:\n" + file_list(new, file_owners))
         else:
-            logging.debug("The package did not install any new file.\n")                    
+            logging.debug("The package did not install any new file.\n")
 
         if removed:
             logging.debug("The following files have disappeared:\n" +
@@ -1060,7 +1060,7 @@ class Chroot:
             logging.debug("The following files have been modified:\n" +
                           file_list(modified, file_owners))
         else:
-            logging.debug("The package did not modify any file.\n")     
+            logging.debug("The package did not modify any file.\n")
 
 
     def install_package_files(self, package_files, packages = None):
@@ -1148,7 +1148,7 @@ class Chroot:
         deps_to_install = [name for name, state in deps.iteritems()
                           if state == "install"]
 
-        # Run custom scripts before removing all packages. 
+        # Run custom scripts before removing all packages.
         self.run_scripts("pre_remove")
 
         # First remove all packages (and reinstall missing ones).
@@ -1156,7 +1156,7 @@ class Chroot:
                              nondeps_to_remove + nondeps_to_purge +
                              ["%s+" % x for x in deps_to_install])
 
-        # Run custom scripts after removing all packages. 
+        # Run custom scripts after removing all packages.
         self.run_scripts("post_remove")
 
         if not settings.skip_cronfiles_test:
@@ -1253,7 +1253,7 @@ class Chroot:
         (status, output) = run(["lsof", "-w", "+D", self.name], ignore_errors=True)
         count = len(output.split("\n")) - 1
         if count > 0:
-            logging.error("FAIL: Processes are running inside chroot:\n%s" % 
+            logging.error("FAIL: Processes are running inside chroot:\n%s" %
                           indent_string(output))
             self.terminate_running_processes()
             panic()
@@ -1348,7 +1348,7 @@ class Chroot:
             logging.debug("No broken symlinks as far as we can find.")
 
     def check_if_cronfiles(self, packages):
-        """Check if the packages have cron files under /etc/cron.d and in case positive, 
+        """Check if the packages have cron files under /etc/cron.d and in case positive,
         it returns the list of files. """
 
         vdir = self.relative("var/lib/dpkg/info")
@@ -1368,7 +1368,7 @@ class Chroot:
                         st = os.lstat(self.relative(pathname.strip("/")))
                         mode = st[stat.ST_MODE]
                         # XXX /etc/cron.d/ files are NOT executables
-                        if (mode & stat.S_IEXEC): 
+                        if (mode & stat.S_IEXEC):
                             if not has_cronfiles:
                                 has_cronfiles = True
                             vlist.append(pathname)
@@ -1378,13 +1378,13 @@ class Chroot:
         return has_cronfiles, vlist
 
     def check_output_cronfiles (self, list):
-        """Check if a given list of cronfiles has any output. Executes 
+        """Check if a given list of cronfiles has any output. Executes
         cron file as cron would do (except for SHELL)"""
         failed = False
         for vfile in list:
 
             if not os.path.exists(self.relative(vfile.strip("/"))):
-                continue 
+                continue
 
             (retval, output) = self.run([vfile])
             if output:
@@ -1395,7 +1395,7 @@ class Chroot:
             panic()
 
     def check_if_logrotatefiles(self, packages):
-        """Check if the packages have logrotate files under /etc/logrotate.d and in case positive, 
+        """Check if the packages have logrotate files under /etc/logrotate.d and in case positive,
         it returns the list of files. """
 
         vdir = self.relative("var/lib/dpkg/info")
@@ -1429,13 +1429,13 @@ class Chroot:
         return diff.keys()
 
     def check_output_logrotatefiles (self, list):
-        """Check if a given list of logrotatefiles has any output. Executes 
+        """Check if a given list of logrotatefiles has any output. Executes
         logrotate file as logrotate would do from cron (except for SHELL)"""
         failed = False
         for vfile in list:
 
             if not os.path.exists(self.relative(vfile.strip("/"))):
-                continue 
+                continue
 
             (retval, output) = self.run(['/usr/sbin/logrotate', vfile])
             if output or retval != 0:
@@ -1460,7 +1460,7 @@ class Chroot:
         for vfile in list_scripts:
             if vfile.startswith(step):
                 script = os.path.join("tmp/scripts", vfile)
-                self.run([script]) 
+                self.run([script])
 
 
 class VirtServ(Chroot):
@@ -1675,7 +1675,7 @@ class VirtServ(Chroot):
         finally:
             os.remove(tf)
 
-        return vdict     
+        return vdict
 
     def get_files_owned_by_packages(self):
         tf = self._execute_getoutput(['bash','-ec','''
@@ -1737,8 +1737,8 @@ def objects_are_different(pair1, pair2):
     """Are filesystem objects different based on their meta data?"""
     (m1, target1) = pair1
     (m2, target2) = pair2
-    if (m1.st_mode != m2.st_mode or 
-        m1.st_uid != m2.st_uid or 
+    if (m1.st_mode != m2.st_mode or
+        m1.st_uid != m2.st_uid or
         m1.st_gid != m2.st_gid or
         target1 != target2):
         return True
@@ -1818,7 +1818,7 @@ def file_list(meta_infos, file_owners):
         if key in file_owners:
             vlist.append(" owned by: %s\n" % ", ".join(file_owners[key]))
         else:
-            vlist.append(" not owned\n")        
+            vlist.append(" not owned\n")
 
     return "".join(vlist)
 
@@ -2066,7 +2066,7 @@ def install_purge_test(chroot, chroot_state, package_files, packages):
 
     file_owners = chroot.get_files_owned_by_packages()
 
-    # Remove all packages from the chroot that weren't there initially.    
+    # Remove all packages from the chroot that weren't there initially.
     chroot.restore_selections(chroot_state["selections"], packages)
 
     chroot.check_for_no_processes()
@@ -2142,15 +2142,15 @@ def install_and_upgrade_between_distros(package_files, packages):
     # 8. compare results
     #
     # sounds silly, or?
-    # well, it is is a reasonable default (see below for why), but 
+    # well, it is is a reasonable default (see below for why), but
     #
-    # step 2+3 can be done differently by using --save-end-meta once and 
+    # step 2+3 can be done differently by using --save-end-meta once and
     # then --end-meta for all following runs - until the target distro
-    # changes again... 
-    # 
+    # changes again...
+    #
     # Under normal circumstances the target distro can change anytime, ie. at
     # the next mirror pulse, so unless the target distro is frozen, this is
-    # a reasonable default behaviour for distro upgrade tests, which are not 
+    # a reasonable default behaviour for distro upgrade tests, which are not
     # done by default anyway.
 
     os.environ["PIUPARTS_TEST"] = "distupgrade"
@@ -2343,22 +2343,22 @@ def parse_command_line():
                       help="Add FILENAME to list of filenames to be " +
                            "ignored when comparing changes to chroot.")
 
-    parser.add_option("-I", "--ignore-regex", action="append", 
+    parser.add_option("-I", "--ignore-regex", action="append",
                       metavar="REGEX", default=[],
                       help="Add REGEX to list of Perl compatible regular " +
                            "expressions for filenames to be " +
                            "ignored when comparing changes to chroot.")
 
-    parser.add_option("-k", "--keep-tmpdir", 
+    parser.add_option("-k", "--keep-tmpdir",
                       action="store_true", default=False,
                       help="Don't remove the temporary directory for the " +
                            "chroot when the program ends.")
 
-    parser.add_option("-K", "--keyring", metavar="FILE",  
-                      default = "/usr/share/keyrings/debian-archive-keyring.gpg", 
+    parser.add_option("-K", "--keyring", metavar="FILE",
+                      default = "/usr/share/keyrings/debian-archive-keyring.gpg",
                       help="Use FILE as the keyring to use with debootstrap when creating chroots.")
 
-    parser.add_option("--keep-sources-list", 
+    parser.add_option("--keep-sources-list",
                       action="store_true", default=False,
                       help="Don't modify the chroot's " +
                            "etc/apt/sources.list (only makes sense " +
@@ -2368,7 +2368,7 @@ def parse_command_line():
                       help="Write log file to FILENAME in addition to " +
                            "the standard output.")
 
-    parser.add_option("--list-installed-files", 
+    parser.add_option("--list-installed-files",
                       action="store_true", default=False,
                       help="List files added to the chroot after the " +
                       "installation of the package.")
@@ -2403,12 +2403,12 @@ def parse_command_line():
                       default=False,
                       help="Don't check for broken symlinks.")
 
-    parser.add_option("--no-upgrade-test", 
+    parser.add_option("--no-upgrade-test",
                       action="store_true", default=False,
                       help="Skip testing the upgrade from an existing version " +
                       "in the archive.")
 
-    parser.add_option("--no-install-purge-test", 
+    parser.add_option("--no-install-purge-test",
                       action="store_true", default=False,
                       help="Skip install and purge test.")
 
@@ -2427,7 +2427,7 @@ def parse_command_line():
                       help="Use /var/cache/pbuilder/base.tgz as the base " +
                            "tarball.")
 
-    parser.add_option("--pedantic-purge-test", 
+    parser.add_option("--pedantic-purge-test",
                       action="store_true", default=False,
                       help="Be pedantic when checking if a purged package leaves files behind. If this option is not set, files left in /tmp are ignored.")
 
@@ -2444,19 +2444,19 @@ def parse_command_line():
                       action="store_true",
                       help="test all packages from all changes files together.")
 
-    parser.add_option("--skip-cronfiles-test", 
+    parser.add_option("--skip-cronfiles-test",
                       action="store_true", default=False,
                       help="Skip testing the output from the cron files.")
 
-    parser.add_option("--skip-logrotatefiles-test", 
+    parser.add_option("--skip-logrotatefiles-test",
                       action="store_true", default=False,
                       help="Skip testing the output from the logrotate files.")
 
-    parser.add_option("--skip-minimize", 
+    parser.add_option("--skip-minimize",
                       action="store_true", default=True,
                       help="Skip minimize chroot step. This is the default now.")
 
-    parser.add_option("--minimize", 
+    parser.add_option("--minimize",
                       action="store_true", default=False,
                       help="Minimize chroot with debfoster. This used to be the default until #539142 was fixed.")
 
@@ -2468,7 +2468,7 @@ def parse_command_line():
                       help="Use DIR for temporary storage. Default is " +
                            "$TMPDIR or /tmp.")
 
-    parser.add_option("-v", "--verbose", 
+    parser.add_option("-v", "--verbose",
                       action="store_true", default=False,
                       help="No meaning anymore.")
 
@@ -2566,7 +2566,7 @@ def parse_command_line():
     if opts.tmpdir is not None:
         settings.tmpdir = opts.tmpdir
         if not os.path.isdir(settings.tmpdir):
-            logging.error("Temporary directory is not a directory: %s" % 
+            logging.error("Temporary directory is not a directory: %s" %
                           settings.tmpdir)
             panic()
 
diff --git a/piupartslib/__init__.py b/piupartslib/__init__.py
index 76a001a..4ced81a 100644
--- a/piupartslib/__init__.py
+++ b/piupartslib/__init__.py
@@ -1,17 +1,17 @@
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
diff --git a/piupartslib/conf.py b/piupartslib/conf.py
index d8d75aa..a7be2a3 100644
--- a/piupartslib/conf.py
+++ b/piupartslib/conf.py
@@ -1,17 +1,17 @@
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
diff --git a/piupartslib/dependencyparser.py b/piupartslib/dependencyparser.py
index 4e42268..f559ca8 100644
--- a/piupartslib/dependencyparser.py
+++ b/piupartslib/dependencyparser.py
@@ -1,17 +1,17 @@
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
@@ -125,7 +125,7 @@ class SimpleDependency:
         self.arch = arch
 
     def __repr__(self):
-        return "<DEP: %s, %s, %s, %s>" % (self.name, self.operator, 
+        return "<DEP: %s, %s, %s, %s>" % (self.name, self.operator,
                                           self.version, self.arch)
 
 
@@ -145,7 +145,7 @@ class DependencyParser:
 
         depends-field ::= EMPTY | dependency ("," dependency)*
         dependency ::= possible-dependency ("|" possible-dependency)*
-        possible-dependency ::= package-name version-dependency? 
+        possible-dependency ::= package-name version-dependency?
                                 arch-restriction?
         version-dependency ::= "(" relative-operator version-number ")"
         relative-operator ::= "<<" | "<=" | "=" | ">=" | ">>" | "<" | ">"
@@ -160,7 +160,7 @@ class DependencyParser:
         arch-name ::= alphanumeric alphanumeric*
         EMPTY ::= ""
         integer ::= digit digit*
-        alphanumeric ::= 
+        alphanumeric ::=
             "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" |
             "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" |
             "u" | "v" | "w" | "x" | "y" | "z" | digit
@@ -172,7 +172,7 @@ class DependencyParser:
     White space can occur between any tokens except inside package-name,
     version-number, or arch-name. Some of the headers restrict the syntax
     somewhat, e.g., Provides does not allow version-dependency, but this is
-    not included in the syntax for simplicity. 
+    not included in the syntax for simplicity.
 
     Note: Added "_" to name-char, because some packages (type-handling
     in particular) use Provides: headers with bogus package names.
diff --git a/piupartslib/packagesdb.py b/piupartslib/packagesdb.py
index 4ba2023..fb2bd47 100644
--- a/piupartslib/packagesdb.py
+++ b/piupartslib/packagesdb.py
@@ -1,17 +1,17 @@
 # Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# 
+#
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by the
 # Free Software Foundation; either version 2 of the License, or (at your
 # option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License along with
-# this program; if not, write to the Free Software Foundation, Inc., 
+# this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 
@@ -526,7 +526,7 @@ class PackagesDB:
           # don't have a Source header, so let's try:
           try:
             _source = self._packages[package_name][header]
-            # for binNMU the Source header in Packages files holds the version 
+            # for binNMU the Source header in Packages files holds the version
             # too, so we need to chop it of:
             if " " in _source:
               source, version = _source.split(" ")

-- 
piuparts git repository



More information about the Piuparts-commits mailing list