Message info
To:Holger Levsen From:Backports Debian FTP Masters Subject:piuparts_0.43~bpo60+1_i386.changes is NEW Date:Sun, 18 Mar 2012 14:47:05 +0000

(new) piuparts_0.43~bpo60+1.dsc extra devel
(new) piuparts_0.43~bpo60+1.tar.gz extra devel
(new) piuparts_0.43~bpo60+1_all.deb extra devel
.deb package installation, upgrading, and removal testing tool
piuparts tests that .deb packages (as used by Debian) handle
installation, upgrading, and removal correctly. 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. 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.

piuparts (0.43~bpo60+1) squeeze-backports; urgency=low
* Rebuild for squeeze-backports.
piuparts (0.43) unstable; urgency=low
[ Andreas Beckmann ]
- Add to self.ignored_patterns: /run/.*
- Unset DISPLAY variable before running commands in the chroot.
- Read possibly remaining buffered output after a command terminated.
- Run apt-cache policy on the packages to be installed.
- Simplify keeping the reference chroot state: move tree info, selections
and diversions into a dict, can be extended easily.
- Fix --*end-meta documentation and actually enable these options.
- Cleanup options and settings.
* piupartslib/
- Restrict circular-dependency state to packages on the circle.
- Fix chdir in/out of the slave dir to work with relative paths.
- Reorder the list of known problem analyses and add a few new ones.
- Correctly split + strip comma-separated lists.
- Also consider bugs that 'affects' a package.
- Treat bugs without 'found' version as older than anything.
* Makefile: Support version number substitution in piuparts-*.py, too.
* README.txt: Document piuparts.conf settings used by piatti.git scripts.
[ Holger Levsen ]
* piuparts.1.txt: correctly reverse the description of --save-end-meta
and --end-meta.
- add support for more static pages and add bug_howto.tpl, explaining how
to file meaningful bugs piuparts-analyse understands. This page also
links to the templates used for bug filing.
* make status message more useful by including the
piuparts (0.42) unstable; urgency=low
[ Holger Levsen ]
- add to self.ignored_files: /etc/ (Closes: #638831)
- add to self.ignored_patterns: /var/lib/apt/lists/.*
- apply patch by Gregor Herrmann to fix --minimize. (Closes: #648423)
* Remove Debian.NEWS entry about source in git. (Closes: #640121)
*,, ChangeLog: Expand tabs to spaces.
* Remove whitespaces from whitespace-only lines.
* piuparts-report:
- create maintainer subdirs if they don't exist.
- detect tests being terminated due to excessive output.
* Add git to Build-Depends-Indep: as git describe is used to generate
part of the version string for development builds.
* Add debian/.gitignore
[ Mika Pflüger ]
- Rewrite to use python-debianbts to analyze if bugs are filed already.
- The BTS only tracks source versions, so remove binNMU-part from
package versions when comparing with versions from the BTS.
- Reduce noise in the output by only printing one action/advise per
- Fix extraction of package versions from bug reports. Thanks to
Andreas Beckmann for catching and solving the error.
* debian/control: Add python-apt and python-debianbts to piuparts depends.
[ Scott Schaefer ]
* debian/copyright: Make it compliant with DEP-5.
- Replace deprecated os.popen2 with subprocess.Popen. (Closes: #640646)
- Add some more logging.
- Kill children (hard-coded value, 45 minutes) to ensure test doesn't
run "forever" (Closes: #640647, #387428)
- Kill leftover processes (via SIGTERM, then if that fails, via SIGKILL).
(Closes: #522918)
- Test for incorrect diversion handling: (Closes: #588313)
a) Existing diversions removed/modified, and/or
b) Installed diversions not removed by purge.
* piupartslib/ Modify several functions in PackagesDB class
to use python 'set' type, instead of a list. This permitted replacing
inefficient combination of unique() function and random.shuffle() with
python set.pop() method. Since python prohibits storing non-hashable
object in a set, minor modifications to piuparts-report and to
piuparts-master required. (Closes: #640648)
[ Andreas Beckmann ]
* *.py: Add vim modeline.
- Add unittests for misbehaving symlinks.
- Fix resolving absolute symlinks of intermediate directory components,
i.e. /var/run -> /run while checking /etc/motd -> /var/run/motd.
Solves about 30000 false positives of
'Broken symlinks: /etc/motd -> /var/run/motd'. (Closes: #648784)
- When running commands in the chroot, redirect stdin from /dev/null.
- Stop using Popen.communicate() as it may run out of memory.
- Terminate commands producing more than 2 MB of output. (Closes: #649335)
- Create /etc/dpkg/dpkg.cfg.d/ if missing inside the chroot (e.g. on
lenny). (Closes: #647752)
- Remove logrotate and its dependencies only once.
- Only run 'apt-get update' after updating the sources.list.
- Only run 'apt-get clean' before creating tarballs or saving meta data.
- Do the same checks for running processes and broken symlinks in all
tests. (Closes: #648708)
- Create piupart's apt config in the chroot as /etc/apt.conf.d/piuparts
instead of /etc/apt.conf in order to allow overriding the settings from
custom scripts by just dropping new config bits in e.g.
- Integrate diversion checks with Chroot.check_result().
- Use 'apt-get remove' to remove all packages at once with proper
dependency ordering. (Closes: #648162)
- Purge all packages at once instead of doing it one-by-one.
- Make restore_selections() reinstall missing packages. (Closes: #648707)
- Set more environment variables to let custom scripts know where and
when they are being run: PIUPARTS_TEST, PIUPARTS_PHASE,
(Closes: #589498)
- Add missing post_install_* custom scripts to install_packages_by_name().
(Closes: #628077)
- Remove pre_upgrade_* custom scripts, they can be replaced with
pre_install_* scripts that check for PIUPARTS_PHASE=upgrade.
- Add pre_test_* custom scripts. These are run exactly once at the
beginning of each test (after recording the initial chroot state).
- Allow multiple --scriptsdir options, the contents will be merged.
- Exclude /tmp/scripts when creating a tarball.
- Use --one-file-system when creating a tarball to exclude bindmounts etc.
- Restore base system from temp_tgz instead of running debootstrap again.
(Closes: #648193)
- Do not fail upgrade/distupgrade tests for a set of packages where not
all packages exist in the start distribution. This happens e.g. when
testing .changes files and packages were split/added. Only install the
old packages that actually exist according to 'apt-cache show'.
- Add --extra-old-packages option to intall additional old packages that
are not in the set of new packages to be tested. Useful for testing
upgrades with Conflicts/Replaces relationships, e.g. in package renames
or merges.
- Use consistent variable names for package lists. (Closes: #648177)
- Compute the changes in restore_selections().
- Check for settings.scriptsdir inside run_scripts().
- Consistently use chroot.relative() to build filenames inside the chroot.
* piupartslib/
- Handle 'unknown-preferred-alternative' state correctly.
- Add 'does-not-exist' state for dependency resolution to distinguish this
from 'unknown' state so that the latter only indicates 'unresolvable' or
'not yet resolved'.
- Handle virtual packages separately from real packages.
- Use get_package_state() internally which 'resolves' (purely) virtual
packages by default (can be disabled).
- Add a 'status' command that reports package counts for all states.
- Fix triggering tarball recreation.
- Check tarball age regularily.
- Log tarball creation in *.tgz.log.
- Request and print package counts from master.
- Reload section config every time a section is being run.
- Add precedence attribute to allow prioritizing different sections and to
suspend processing of low priority ones while there are packages waiting
in more important sections.
- state-*.html: Sort package lists by name, display state of all
alternative dependencies and packages providing a virtual dependency.
- source/?/*.html: Sort binary packages by name.
- maintainer/?/*.html: Sort source packages by name.
- Update list of error states to be highlighted.
- Archive logs of packages that were removed from the distribution.
- Speedup generating maintainer summaries.
* Makefile: Use 'git describe' to get an exact stamp for development
[ Dave Steele ]
* make report the number of packages
processed and use this to decide whether a slave should sleep.
(Closes: #649967)
[ Stefano Rivera ]
- Properly install and remove logrotate. (Closes: #638832)
- Use eatmydata by default, add option --no-eatmydata. (This was discussed
in #633033.)
piuparts (0.41) unstable; urgency=low
* piupartslib/ Apply patch by Scott Schaefer to also consider
alternative depends: the algorithm used to select the "best" alternative
1) Prefer first alternative in state "essential-required"
2) If no "essential-required" alternatives, prefer first alternative
in state "successfully-tested"
3) Otherwise, prefer first alternative in state
"waiting-to-be-tested" IF NO REMAINING alternatives are in one of the
"unknown/fail" states
For this two new states have been introduced:
a) "unknown-preferred-alternative": equivalent of "unknown", this defers
calculation of this package's state, since one or more of its
alternative depends are "unknown" (or
"unknown-preferred-alternative"), and no alternative is either
"essential-required" or "successfully-tested". The alternatives will
be re-tested on subsequest pass.
b) "no-dependency-from-alternatives-exists": if none of the alternatives
can be found in the archive.
(Closes: #526045)
- correct a typo from the patch for #523950.
- make_stats_graph: draw the two new states as well.
- point to source code in git instead of svn.
- use proxy settings either from apt configuration or http_proxy
environment variable, the latter overwriting the former (if present)
- Thanks to Scott Schaefer for the patch. (Closes: #632046)
- new option "--no-install-purge-test" to only do upgrade tests
- Thanks to Andreas Beckmann for the patch (Closes: #588482)
- run dpkg with --force-unsafe-io by default and introduce new option
"--dpkg-noforce-unsafe-io" to disable this feature. (Closes: #633033)
Thanks to Scott once more!
- new option: "--fail-on-broken-symlinks". Remove option "--warn-symlinks"
as this is the default now.
* piuparts-slave:
- check if chroot-tgz is older than max-tgz-age (defaulting to 30 days)
and recreate it, if it is. Keep backup and put in back in place when
debootstrapping a new chroot-tgz fails. Retry after min-tgz-retry-delay
seconds. Thanks to Scott Schaefer for the patch. (Closes: #632924)
- document new configuration options max-tgz-age and min-tgz-retry-delay
in README.txt.
- fix bug in piuparts-slave which prevented running a single section by
including section name as command-line argument - thanks again to Scott
and see 632924 too.
* debian/control:
- require python >= 2.6.6-3~, get rid of python-support build-depends.
- add X-Python-Version: pseudo-header
* debian/rules: use dh_python2 instead of python-support to build the
* Makefile: build for python 2.6 and 2.7 instead of 2.5 and 2.6.
* Source code is now stored in git.
git clone git+ssh://
Thanks to Thomas Koch for setting those up and keeping history!
* The configuration and scripts used on have also been
moved to git, the URLs are the same, just s#piuparts#piatti#.
* Add entry about git to NEWS.
* Update Vcs-*-Headers in control to reflect move to git.
piuparts (0.40) unstable; urgency=low
- make "natty" the default Ubuntu distribution.
- add to self.ignored_files:
- /var/log/bootstrap.log
* debian/control: depend on ${python:Depends} instead of just python. Thanks
to Jakub Wilk. (Closes: #614617)
* *.py: do not use Python built-in function names as variable name. Thanks
to Carl Chenet for a first patch and Scott Schaefer for the applied one.
(Closes: #523950)
* Bump Standards-Version to 3.9.2, no changes necessary.
* debian/rules: add empty build-arch and build-indep to appease lintian.
* Makefile: drop workaround for #559305 in lenny.
piuparts (0.39) unstable; urgency=low
[ Holger Levsen ]
* The vintage of 2010 release!
- report packages which failed
- due to broken maintainer scripts,
- due to output from cron after removal,
- due to not enough force being,
- due to a problem with pre-depends,
- due to files having been modified after purge,
- due to files having disappeared after purge and
- due to problems configuring a database.
- only report about (un)owned files and directories and symlink issues in
sid - that's hardcoded as it's not practical to track them anywhere else
anyway. And at least for broken symlinks this will also stay like this
for a long time.
- visual improvements in the output.
- ignore udebs and binaries from other archs too.
- graph is generated using all the available data points.
* piupartslib/
- automatically break circular dependencies when there are only circular
dependencies left, using a configurable list of circular depdencies in
piuparts.conf (Closes: #526046)
The list of circular depends is taken from a script written by Robert
Lemmen available at -
obviously it would be better to merge this into piuparts directly.
Note that the dependency resovler is still buggy, the state
waiting-for-dependency-to-be-tested still contains some packages
with failed depends (due to them being dependent on packages with
circular depends). This bug has no effect other than that (so the state
waiting-to-be-tested is calculated correctly). This bug is also no
- get rid of the longtime unused states "fixed" and "fix-not-yet-tested"
(also in piuparts-master and piuparts-report).
- forget reservations of untestable packages.
- fix crash when going into sleep when idle.
- add support for only doing upgrade tests (without the basic test in the
upgrade target distro).
- honor mirror configuration option also for upgrade-tests.
- also do upgrade tests if the version of a package being tested (the one
in the upgraded distro) is not available in the distro being upgraded
from. (This is a very short test, but a successfully one.)
- make configuration setting "distro" to not default to any distro.
- new option: --log-level to specify the verbosity of piuparts
output. Thanks to Fabrice Coutadeur for the patch! (Closes: #567190)
- new option: --warn-on-leftovers-after-purge to not fail if a package
leaves files behind after purge. (Closes: #566599)
- add to self.ignored_files:
- /var/lib/apt/lists/partial/.delete-me-later
- /var/log/alternatives.log (Closes: #591966)
- /var/log/apt/history.log (Closes: #594964)
- /usr/share/fonts/X11/misc/fonts.alias (Closes: #576321)
- add to self.ignored_patterns:
- /etc/init.d/.depend.*
- /var/mail(/.*)? - this used to be just /var/mail/.*
- /var/lib//update-rc.d(/.*)? (Closes: #605127)
- create temporary DEBIAN directory for the piuparts-depends-dummy package
with 0755 perms regardless of the umask of the calling shell.
(Closes: #573904)
- fix --do-not-verify-signatures option (Closes: #574936) - thanks to
Cleto Martin Angelina for the patch.
- make Chroot.diff_meta_data() special case and ignore files matching
(/etc/rc.\.d/)[SK][0-9]{2}(.*)$ so that piuparts doesn't complain about
initscripts renamed by insserv. Thanks to by Andreas Beckmann for the
patch! (Closes: #586793)
- remove logrotate and depended packages after the test. (Closes: #602409)
This is a fix for the incomplete patch for #566597. Again, this is a
hardcoded list. :-(
- new custom script: pre_remove_ (Closes: #539146)
- set environment variable PIUPARTS_OBJECTS in custom scripts to a space
separated list of packages / changes files being tested.
- do not call apt-get with --no-remove when installing packages.
(Closes: #603453)
- apply patch by Andres Mejia to fix parsing of the --force-confdef option
and also to configure apt to use that option. Thanks, Andres.
(Closes: #605475)
- don't panic if package is not known by apt-get, this probably just means
a package not yet in the archive is being tested. (Closes: #566672)
Thanks to Cleto Martin Angelina for the patch!
- fix parsing of the options --end-meta and --save-end-meta.
- supply help texts for --end-meta and --save-end-meta options, also add
comments to install_and_upgrade_between_distros() to make the code
easier to understand and hopefully improve in future. (Closes: #560050).
- add logging to install_and_upgrade_between_distros() to point people to
read the functions source code if they wonder why the log (for distro
upgrade tests) looks like it looks.
* piuparts.1.txt:
- update the pointer to custom-scripts.txt to point to README.txt, as
those two files have been merged. Thanks to Gregor Hermann for
spotting this. (Closes: #574504)
- indicate that it's possible to check several packages or .changes files
at once.
- update several options descritpions.
* README.txt
- better documentation of custom scripts.
- reformat to achieve consistent width.
* Add ${misc:Depends} to Depends in debian/control.
* Remove versioned dependencies on debootstrap as the version available
in Etch is sufficient. Drop build-depends on dpkg-dev as it's in
* Build-depend on debhelper>=7 and use dh_prep instead of dh_clean -k, bump
compat level to 7.
* Bump Standards-Version to 3.9.1, no changes necessary.
* Remove Ian Jackson from uploaders - thanks for your work, Ian!
* Makefile: support python 2.5 and 2.6 instead of 2.4 and 2.5, adjust
debian/control accordingly.
* debian/preinst: update code snipplet rm_conffile() from
[ Evgeni Golov ]
- Check for remaining logrotate files which produce output after the
package was removed. (Closes: #566597)
[ John Wright ]
* Use debian module when available, else debian_bundle module.
(Closes: #586443)
* Use built-in set type, available since python-2.4.

Override entries for your package:

Announcing to

Your package contains new components which requires manual editing of
the override file. It is ok otherwise, so please be patient. New
packages are usually added to the override file about once a week.

You may have gotten the distribution wrong. You'll get warnings above
if files already exist in other distributions.
exist in other distributions.

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact