piuparts (1.4.4) unstable; urgency=medium [ Alexandre Detiste ] * remove dependency on python3-nose (Closes: #1018437) [ Jochen Sprickerhof ] * Move debootstrap to recommends [ Nicolas Dandrimont ] * Only report /usr-move failures when the end-state is bookworm or older (Closes: #1078598) * Fix go building from a VCS checkout * Makefile: install html files more reliably * Update distro aliases to match the current reality * Update suite configurations on piuparts.debian.org to match [ Gioele Barabucci ] * gitlab-ci/lint.yml: black: Show diff when check fails -- Nicolas Dandrimont Tue, 24 Sep 2024 16:16:51 +0200 piuparts (1.4.3) unstable; urgency=medium [ Nicolas Dandrimont ] * Remove use of deprecated configparser.SafeConfigParser (Closes: #1067938) * Run autopkgtest on all supported Python versions * Add more tar ignore patterns to debian/source/options * d/t/all-python-versions: turn on the CPython dev mode * run(): ensure that fds are properly closed under all circumstances [ Jochen Sprickerhof ] * make piuparts.py executable from git [ Carlos Henrique Lima Melara ] * docs: fix some typos in README.txt (Closes: #1071621) -- Nicolas Dandrimont Tue, 25 Jun 2024 16:07:49 +0200 piuparts (1.4.2) unstable; urgency=medium [ Helmut Grohne ] * also fix /bin/sync diversion for bullseye (Closes: #1068312) [ Nicolas Dandrimont ] * Disable build-path variation from salsa-ci reprotest -- Nicolas Dandrimont Mon, 06 May 2024 22:52:39 +0200 piuparts (1.4.1) unstable; urgency=medium [ Nicolas Dandrimont ] * tests: Update unittest asserts to non-deprecated versions (Closes: #1061749) * gbp: only use the bare version for debian tags [ Helmut Grohne ] * also fix /bin/sync diversion for bookworm -- Nicolas Dandrimont Sat, 23 Mar 2024 10:06:28 +0100 piuparts (1.4) unstable; urgency=medium [ Nicolas Dandrimont ] * Add grub-efi-*-signed to packages that need allow-remove-essential. (Closes: #1062192) * .gitlab-ci: Add reference to new salsaci wrap-and-sort job * *.py: apply newer black formatting * piuparts-from-git-deps: pkg-config is deprecated in favor of pkgconf [ Stefano Rivera ] * Explicitly set the mode on device nodes created by piuparts, overriding umask. (Closes: #1064842) [ Helmut Grohne ] * /bin/sync moved to /usr, duplicate diversion -- Nicolas Dandrimont Fri, 15 Mar 2024 09:59:29 +0100 piuparts (1.3) unstable; urgency=medium [ Helmut Grohne ] * Improvements for running piuparts in unprivileged namespaces: - improve compatibility of mount_proc with unprivileged namespaces. - make --bindmount recursive. - allow using --bindmount with things that are not directories. - provide a basic /dev tree even in unprivileged namespaces. * Allow using tarballs compressed with non-gzip. [ Nicolas Dandrimont ] * Codebase quality improvements: - Introduce Salsa CI pipeline. - Run black and isort on the codebase, introduce basic mypy config. - Make the codebase flake8-clean. * Remove dependency on python3-six (thanks to Alexandre Detiste for the suggestion and initial patch). * Pass the same environment variables to docker run as are passed to other chroots (thanks to Richard Davis for the suggestion and initial patch). [ Philipp Hahn ] * Improvements to the docker runner: - Get container id using --cidfile in docker run. - Use `docker inspect` to get the docker overlay path directly. - Improve log output. -- Nicolas Dandrimont Sat, 13 Jan 2024 14:31:20 +0100 piuparts (1.2) unstable; urgency=medium [ David Steele ] * Doc - don't include oldoldstable in global summary [ Cyril Brulebois ] * piuparts(1): fix syntax for long options. * piuparts(1): fix syntax for bullet lists. [ Nicolas Dandrimont ] * piuparts(1): fix a lot of ReStructuredText markup issues * config: bookworm has been released, trixie is now testing * news: Add news for bookworm release * Default to merged-/usr chroots (Closes: #1054898) * p.conf: the merged-/usr file move moratorium has been repealed * p.conf: add --no-merged-usr to config for archived suites * p.conf: don't schedule jobs for the sid-merged-usr suite * p.conf: clean up the sid-merged-usr tarball * custom-scripts: usrmerge and usr-is-merged should be testable now * p.conf: Don't reschedule tests for archived suites * p.conf: clean up tarball jobs for archived suites * p.conf: set max-reserved to 0 for archived suites * news: fix date for bookworm news item * news: add item for merging test chroots * d/source: Update lintian overrides * d/control: Update to dh compat level 13 [ Evgeni Golov ] * explicitly state that piuparts needs direct access to docker storage -- Nicolas Dandrimont Sat, 28 Oct 2023 23:17:21 +0200 piuparts (1.1.7) unstable; urgency=medium [ Holger Levsen ] * piuparts.py, tests and docs: handle new "non-free-firmware" section in Debian. Closes: #1028661. * d/control: - remove version constraints on the (build-)depends on python3-debianbts, debootstrap amd debsums as they are met since (at least) buster. - fix cute-field warning, thanks lintian. - bump standards version to 4.6.2, no changes needed. * Add debian/source/lintian-overrides to override a bunch of very-long-line- length-in-source-file warnings. * d/piuparts.lintian-overrides: add debian-news-entry-has-unknown-version 0.45 due to trimmed d/changelog in binary packages. * Drop unused d./piuparts-(master|slave).lintian-overrides. [ Nicolas Dandrimont ] * Makefile: use dpkg-parsechangelog -S instead of sed. -- Holger Levsen Wed, 18 Jan 2023 22:45:04 +0100 piuparts (1.1.6) unstable; urgency=medium [ David Steele ] * Remove oldold*stable dists from json summary. [ Holger Levsen ] * custom-scripts/scripts/pre_test_root_password: fix grammar in comment. [ Luca Boccassi ] * piuparts: detect files moving between / and /usr on upgrade. * piuparts: detect files moving between / and /usr on dist-upgrade. * p.conf: enable --warn-on-usr-move for bullseye/bookworm. * custom_scripts: ensure usr-is-merged/usrmerge does not fail the migration test. [ David Steele ] * Add Stable Release tasks to README_pejacevic.txt. [ Nicolas Dandrimont ] * piuparts-slave: run isort. * piuparts-slave: replace pipes.quote with shlex.quote. * piuparts.py: run isort. * piuparts.py: replace pipes.quote with shlex.quote. * test_piuparts: replace mox3 with unittest.mock (Closes: #1028453) * Migrate lintian overrides to pointed hints. * Simplify docs install in Makefile. * Use sphinxdoc dh plugin. -- Nicolas Dandrimont Wed, 11 Jan 2023 13:31:41 +0100 piuparts (1.1.5) unstable; urgency=medium [ Nicolas Dandrimont ] * pejacevic: update enabled suites for bullseye as stable, bookworm as testing. * Add news for the bullseye update. * Fix perjacevic typo in docs. [ David Steele ] * Remove oldstable results from summary.json. [ Athos Ribeiro ] * d/rules: set GO111MODULE to auto to maintain pre Go 1.16 behavior. Closes: #991970. (MR: debian/piuparts!35) -- Holger Levsen Thu, 14 Oct 2021 15:23:26 +0200 piuparts (1.1.4) unstable; urgency=medium [ David Steele ] * Make a valid pkgsummary entry for an "invalid" pkg. * Remove Python2 support from pkgsummary. * Reformat pkgsummary. [ Andreas Beckmann ] * piuparts.conf, distros.conf: - Update for bullseye release. - Create bookworm tarballs. - Rename stretch-next to stretch-lts. * docs/README_server.txt, docs/piuparts/piuparts.1.txt, piuparts.py: Update examples for bullseye being stable and bookworm the new testing. * piuparts-slave.postinst: Do not fail if no sshd is available on localhost:22. * scripts/pre_distupgrade_zz_database-server: bullseye/sid has postgresql-13 and mariadb-10.5. (Closes: #988704) * Add myself to Uploaders. -- Andreas Beckmann Tue, 03 Aug 2021 13:18:44 +0200 piuparts (1.1.3) unstable; urgency=medium [ Michael Prokop ] * p: new option --update-retries to re-run apt-get update. (MR: debian/piuparts!34) [ Holger Levsen ] * d/control: - add adequate and pkg-config to piuparts-slave-from-git-deps' depends. Closes: #893022. - add myself back to uploaders. * d/copyright: update my copyright years. [ Debian Janitor ] * Upgrade to newer source format 3.0 (native). -- Holger Levsen Fri, 26 Feb 2021 18:51:48 +0100 piuparts (1.1.2) unstable; urgency=medium * Team upload. [ Nis Martensen ] * piuparts.py: - prevent KeyError in diff_meta_data. (Closes: #968842) - do not crash on non-utf-8 command output. * piuparts-analyze: unbreak sorting of version lists. * autopkgtest: add a must-fail test. * d/p-[ms].lintian-overrides: update to python3/ [ Nicolas Dandrimont ] * Add exemption for /var/lib/dpkg/cmethopt. (Closes: #953756) * piuparts-analyze: - print full exceptions when failing. - fetch all bugs in bulk instead of package by package. - only wait for 60 seconds when a given section is busy. * Add myself to uploaders. * d/rules: Add workaround for dh-dwz bug #933541. * Set Description last when generating a dummy package. * Start piuparts-slave automatically after reboots again. * Add piu-slave-conova-01. * Add news entry for piu-slave-conova-01. * Move piu-slave-ubc-01 to deb.d.o. [ Ansgar ] * piuparts-report.py: fix link to states.png. [ Stuart Prescott ] * Add timeout when fetching packages files. [ Julien Cristau ] * Make the summary generation atomic. [ Holger Levsen ] * Bump standards version to 4.5.1, no changes needed. [ Debian Janitor ] * Fix day-of-week for changelog entry 0.16-1. -- Holger Levsen Tue, 19 Jan 2021 16:17:25 +0100 piuparts (1.1.1) unstable; urgency=medium * Team upload to unstuck python-debianbts migration. [ Nis Martensen ] * autopkgtest: replace broken stubs with actual tests. * Makefile: delete __pycache__ dirs in make clean. * piupartslib/dwke: do not error out on non-utf8 logfiles. -- Holger Levsen Tue, 14 Jan 2020 13:48:49 +0100 piuparts (1.1.0) unstable; urgency=medium * Team upload. [ Herbert Parentes Fortes Neto ] * piuparts.py: use Popen with universal_newlines=True. Py2, Py3 compatible. * New mail template: add bug-templates/obsolete_conffiles.mail. [ Thomas Goirand ] * Switch to package to Python 3: - Replaced python- with python3- in debian/control. - Removed all python2 (>= 2.7) by a ${python3:Depends}. - Replaced python2 by python3 in debian/rules. - Replaced dh_python2 stuff by dh_python3 in debian/rules. - Patched piupartslib/conf.py, piupartslib/dependencyparser.py, piupartslib/packagesdb.py, piupartslib/pkgsummary.py, tests/unittests.py so that they are Python 3 compatible. - Removed python-lzma (build-)depends as it's in standard in Py 3. - Add python3-six as (build-)depends. - Fix Makefile to use python3 and not python2. - d/piuparts-common.install: switch to python 3. - d/rules: remove all __pycache__ folder before proceeding to install. - Add --shebang=/usr/bin/python3 when calling dh_python3. - Do not use -N piuparts-master -N piuparts-slave when calling dh_python3 for the 2nd time, so that it correctly adds the interpreter as depends. - Lintian overrides "python-script-but-no-python-dep": that's ok, because piuparts-common already has the dependency. [ Bastian Venthur ] * piuparts-analyze.py: updates for python-debianbts 2.10.0 deprecating some methodcalls, update depends in d/control accordingly. Closes: #919170. [ Nis Martensen ] * piuparts, piuparts-master-backend, piuparts-report, detect_well_known_errors, piupartslib/(dependencyparser|packagesdb): several fixes and improvements related to porting to python3. [ James Clarke ] * piuparts: Fix diff_meta_data reporting every file as new and removed. [ Mattia Rizzolo ] * piuparts-slave.py: port to python3. [ David Prévot ] * Use the same favicon as the one from www.d.o. [ Holger Levsen ] * Bump version number to 1.1.x due to the switch to python3. * piuparts.conf-template.pejacevic: - also test bullseye and bullseye-rcmd. Closes: #933061. - increase precedence values for oldstable and older. * docs/README_server.txt, docs/piuparts/piuparts.1.txt and piuparts.py: update examples for buster being stable and bullseye being the new testing. * Use /usr/bin/python3 everywhere. Closes: #937293. * d/control: - bump standards version to 4.4.1, no changes needed. - bump debhelper-compat to 12. * d/tests: Add simple smoke-test. * htdocs/news.tpl: - mention new suites bullseye and bullseye-rcmd being tested. - mention piuparts.debian.org is running the python3 branch. - add farewell note. * instances/Makefile: set default mirror to deb.debian.org. * d/rules: set GOCACHE to a safely writable directory during build as the cache is mandatory with Go 1.12. * d/control: - bump standards version to 4.4.1, no changes needed. - bump debhelper-compat to 12. - remove myself from uploaders. It was fun! Policy is your friend. Trust the Policy. Love the Policy. Obey the Policy. * instances/*, docs/README_pejacevic.txt and htdocs/index: stop mentioning piu-slave-bm-a.debian.org. -- Holger Levsen Wed, 08 Jan 2020 20:50:42 +0100 piuparts (1.0.1) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.conf, distros.conf: Update for buster release. * piuparts.py: - Add '--max-command-output-size' option to allow overriding the default of 8 MB for debugging runs. - Run pre_remove scripts before computing packages to be removed. - Fix spurious failure to remove packages with names ending with '+'. * piupartslib/packagesdb.py: - Remove stale .kpr files after receiving new logs. * piuparts-slave.py: - Generate separate tarball names for --merged-usr chroots. - Re-exec on SIGUSR1, picking up updated code and new config sections. * master-bin/detect_piuparts_issues: - Clean up stale temporary and empty files. * master-bin/rotate_master_logs: Delete master logs older than 90 days. * slave-bin/slave_reexec: New, send SIGUSR1 to all running slaves. * custom-scripts: Add and update several exceptions. * piuparts.conf.anbe: Add some more example sections. [ Holger Levsen ] * generate_daily_report: improve statistics. -- Holger Levsen Tue, 18 Jun 2019 14:48:59 +0200 piuparts (1.0.0) unstable; urgency=medium [ David Steele ] * piuparts-reports.py: Revert "Don't add results from outdated binaries to summary.json" from 0.94. The reverted commit is 62a6b3c438f42480ce3a08996ed4994de1561591. The patch was added to avoid incorporating summary.json reporting results for binary packages which are no longer part of the source package. It stopped Piuparts from blocking the source package from testing migration. It has a bug related to "upgrade test" sections, which cause a large number of packages to incorrectly be reported in the "waiting" state. [ Andreas Beckmann ] * piuparts.py: - Add '--merged-usr' support when using debootstrap to create the chroot. - Add '--distupgrade-to-testdebs-from DIR' as a shorthand for '--bindmount DIR --testdebs-repo DIR --distupgrade-to-testdebs'. * distros.conf: - wheezy* has been archived/removed. - jessie* has been partially archived/removed. - Add buster-backports. - Add bullseye-proposed-updates. * piuparts.conf: - Add section [sid-merged-usr], using --merged-usr. (Closes: #848968) - Use --warn-on-debsums-errors for tests ending in buster. - Rename [stretch2proposed] to [stretch2next] and [buster2proposed] to [buster2next]. * piupartslib/packagesdb.py: - Keep recycled pass logs while waiting for new test results, continuing to show them as "successfully-tested" instead of "waiting-to-be-tested". - Add (hardcoded) list of missing dependencies that resolve to "ignore-does-not-exist". Used for packages to be skipped via "is_installable_*" scripts to exclude them from "dependency-does-not-exist" state. * piuparts-slave.py: - New option "slave-flush-interval" to flush logs more frequently to the master. Set to 30 minutes. - New option "chroot-meta-directory" to share reference target chroot metadata between slave instances. * piuparts-report.py: - Omit states with 0 packages from section summaries. * scripts/{post_chroot_unpack,pre_distupgrade}_allow_unauthenticated: - Disable Check-Valid-Until for wheezy/updates and jessie-backports. * scripts/post_distupgrade_exceptions: - Handle /var/lib/pam/seen stretch -> buster upgrade by running pam-auth-update if needed. Workaround for #920760. * scripts/pre_remove_40_find_unowned_lib_links: - Handle --merged-usr environments. * master-bin/reschedule_piuparts_tests: Do not act on 'bugged/*.log' and 'affected/*.log' by default. Add --bugged, --affected flags. [ Holger Levsen ] * Declare this release to be version 1.0.0, finally. May the force be with you. * htdocs/news.tpl: - add news about sid-merged-usr being tested. - add news about the 1.0.0 release. * piuparts_slave_join.8.txt: update revdate to date of last change. -- Holger Levsen Sat, 04 May 2019 21:37:32 +0200 piuparts (0.98) unstable; urgency=medium [ Holger Levsen ] * piuparts-reports.py: add link to states graph for each suite. * instances/piuparts.conf-template.pejacevic: increase sid-nodoc's precedence. * Refactor reschedule_piuparts_tests to use new global configuration variable 'testing-suite'. * generate_daily_report: show failures in sid, $TESTING and testing2sid at the top of the report. * master-bin/prepare_backup: ignore empty submissions.txt for $TESTING-pu and $TESTING-security. * Update TODO for bullseye. [ Andreas Beckmann ] * piuparts.py: - If packages were downgraded to restore the reference chroot state reinstall the downgraded-to version again to recover potentially lost files in case of bad interactions of Breaks/Replaces with downgrading. * distros.conf: Add support for buster partial distros. * piuparts.conf: - Use --warn-on-others for [sid-strict] only. - Add sections [buster-security], [buster-pu] and [buster2proposed]. - Add sections [stretch2Xbuster] and [stretch2Xbuster-rcmd]. - Add section [sid-broken-symlinks], failing on broken symlinks * piuparts-slave.py: - Catch IOError while creating tarballs, will be retried later. * scripts/is_testable_uninstallable: - Refactor handling of known uninstallable packages. * scripts-multi-distro-upgrade/: New custom scripts for distupgrade tests spanning a series of distros. * Add metapackages piuparts-{master,slave}-from-git-deps to ease running piuparts-master and piuparts-slave instances from git. -- Holger Levsen Fri, 01 Mar 2019 11:27:47 +0100 piuparts (0.97) unstable; urgency=medium [ Andreas Beckmann ] * Ignore broken /var/lib/mender symlink. (Closes: #915680) * scripts/pre_distupgrade_zz_database-server: Also act on dist-upgrades within a release, e.g. stable -> stable-proposed-updates. * piuparts-slave.py: - Support prepending a setarch command to the piuparts invocation. * piuparts-report.py: - Report [cruft] in logfile lists. [ David Steele ] * instances/piuparts.conf-template.pejacevic: - report results of stable2sid to DDPO. - swap stable2sid and stable22sid priorities, to promote the one reported to DDPO. [ Holger Levsen ] * slave_bin: on stop, show what's keeping the slaves busy, to identify packages with a very long installation time. * Makefile: include @sbindir@ in placeholder_substitution. * instances/piuparts.conf-template.pejacevic: lower priorities of oldstable suites. [ Herbert Fortes ] * piuparts.py, piuparts-slave.py, piupartslib/pkgsummary.py and piuparts-analyze.py: add '()' to print. Py2 and Py3 compatible. * piupartslib/dwke.py: - class Problem: - Class attr instead of instance attr Save some memory - get_file_dict function: - dictionary comprehension. "More readable and often faster at the same time". - create_problem_list function: - list.sort() instead of sorted(list). sorted() returns a *new* sorted list. This is not necessary here. list.sort() sorts the list in place. Save some memory - make_kprs function: do not concat str, simplify 'if' statement. -- Holger Levsen Mon, 11 Feb 2019 12:30:10 +0100 piuparts (0.96) unstable; urgency=medium [ Andreas Beckmann ] * bug-templates: Raise severity of "fails to purge" errors to serious. (see #918379) * distros.conf: Add jessie-lts as a full distro. * piuparts.conf: - Use jessie-lts as upgrade target and rename section [jessie2proposed] => [jessie2lts] - Add sections [wheezy2jessie-lts] and [jessie-lts2stretch]. - [wheezy2bpo2jessie]: Use jessie-lts as final upgrade target. - Disable sections [wheezy-pu], [jessie-pu]: not used for lts releases. * scripts/post_distupgrade_exceptions: - Handle /etc/ca-certificates.conf stretch -> buster upgrade by normalizing the file to match fresh installations. (Closes: #889852) * scripts-broken-symlinks: Unbreak more symlinks. [ Holger Levsen ] * htdocs/index.tpl: stop referring people to the #debian-qa IRC channel, we really prefer mail nowadays. * instances/piuparts.conf-template.pejacevic: - include sid-strict into json outputs. - improve sid-strict description. Closes: #918379 * master-bin/detect_piuparts_issues: ignore files which vanish during run. * Bump standards version to 4.3.0, no changes needed. * d/copyright: update years. -- Holger Levsen Sun, 13 Jan 2019 16:56:06 +0100 piuparts (0.95) unstable; urgency=medium [ Holger Levsen ] * piuparts.py: add /var/lib/debian-security-support/ to self.ignored_files. (Closes: #749317) * Reduce number of mails per day, from 34 down to 1. (Closes: #912591) - lib/write_log.sh: new helper to publish logs in htdocs/logs. - master-bin/master_shell_runner: new script to run python scripts to redirect logs to htdocs/logs. - master-bin/generate_daily_report: - redirect logs of called scripts to htdocs/logs. - include listing of htdocs/logs/$TODAY into daily report. - publish dailyreport.txt in htdocs/logs/$TODAY instead of htdocs/. - master-bin/detect_archive_issues, detect_piuparts_issues, detect_network_issues, reschedule_oldest_logs, rotate_master_logs, report_untestable_packages and report_stale_reserved_packages: redirect logs to htdocs/logs. - conf/crontab-master.in: run detect_well_known_errors, piuparts-report and piuparts-analyze through the new master_shell_runner script. - master-bin/rotate_master_logs: compress htdocs/logs older than a week. - piuparts-report.py: add navigation link to https://piuparts.d.o/logs/ - htdocs/news.tpl: explain the result of these changes. * d/control: use canonical URL for Vcs-Git, thanks lintian. * Add d/piuparts.lintian-overrides to override uses-dpkg-database-directly warnings, this cannot be avoided without breaking compatibility with ancient releases. * bug-templates/logrotate_exits_with_error_after_package_removal: clarify possibles causes of this problem as well as the solution. [ Andreas Beckmann ] * Clarify errors from installing objects over existing symlinks. * bug-templates: Do not mention ${misc:Pre-Depends} as symlink_to_dir/dir_to_symlink are supported by dpkg in oldstable. -- Holger Levsen Sun, 09 Dec 2018 22:27:41 +0100 piuparts (0.94) unstable; urgency=medium [ Holger Levsen ] * master-bin/detect_well_known_errors.py: suppress output if nothing new is found in a section, or section is busy or has been recently processed. * master-bin/generate_daily_report: include number of failures in daily mail. * slave-bin/detect_slave_problems: increase amount of time (from 30 to 60m) a slave has to be inactive before complaining. [ Andreas Beckmann ] * piuparts.py: - Logrotate files can only be placed directly in /etc/logrotate.d/. * scripts/post_distupgrade_exceptions: - Handle /etc/nsswitch.conf stretch -> buster upgrade if modifications from libnss-myhostname and friends are present. [ Mathieu Parent ] * piuparts.py: Use mknod instead of touch to create missing /dev/ptmx mountpoint, working around findutils bug #912180 (Closes: #911334) [ Ivo De Decker ] * piuparts-reports.py: Don't add results from outdated binaries to summary.json. -- Holger Levsen Thu, 08 Nov 2018 12:09:57 +0100 piuparts (0.93) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Report the package that owns a broken symlink. - --allow-database now also enables firebird3.0. * piuparts.conf: Disable rescheduling tests that end in wheezy. * piuparts.conf.anbe: Add some more example sections. * piupartslib/packagesdb.py: - Add methods Package.source(), Package.source_version(). - Remove method PackagesDB.get_source(). * piuparts-report.py: - Postpone deletion of old logs after the html pages possibly referencing them have been updated, avoiding error 404 while processing a section. - Generate missing/outdated .kpr files. - Simplify known problem report generation. - Mark logs of packages built from an outdated source version as [cruft]. * scripts/{post_chroot_unpack,pre_distupgrade}_allow_unauthenticated: New scripts to handle installation from archived releases with expired signing keys (lenny, squeeze). Drop the --no-check-valid-until from *.conf since that is active for all steps in a distupgrade test while the new scripts only enable it for the distros that actually need it. * scripts/post_setup_forbid_home: Use dpkg-divert --no-rename (dpkg 1.19.1). * scripts/pre_distupgrade_zz_database-server: sid/buster has postgresql 11. * scripts/post_distupgrade_base_cleanup: Remove libcryptsetup4, libprocps6 from the buster reference chroot. * Overhaul some exceptions. * Add bug template for logrotate errors after package removal. [ Holger Levsen ] * piuparts-report.py: - Add new page: overview.html - Split index.html into about (index.html) and news.html. - Shuffle some entries on index.html, explain that piuparts.debian.org exists since 2005 (even though that FQDN is younger). - Move suite "by uploaders" and "by source packages" links further up in navigation menu. Improve structure and headings in navigation menu. - Link mail templates for filings from navigation menu. - Drop references to "PTS" and use "tracker.d.o" instead. - Add link to piuparts source package pages from known problem pages. - Minor cleanups. * htdocs/bug_howto.tpl: some improvements, it's been some years. * htdocs/news.tpl: confirm #582630 has been fixed. * Use the new debhelper-compat(=11) notation and drop d/compat. * CONTRIBUTING: explain never to directly push to the develop nor master branch. Explain to always include a debian/changelog entry with patches. Explain to always test patches and to explain that testing has happened. -- Holger Levsen Sun, 21 Oct 2018 13:24:09 +0200 piuparts (0.92) unstable; urgency=medium [ Simon McVittie ] * piuparts.py: - Add to ignored_files: + /var/lib/dpkg/lock-frontend (Closes: #909182) [ Holger Levsen ] * Update several URLs pointing to https://www.debian.org/doc/debian-policy to match the new URLs since debian-policy 4.1.0. * instances/piuparts.conf-template.pejacevic: reschedule already tested packages in sid more often: set reschedule-old-count = 666 and reschedule-old-days = 66. * Update TODO. -- Holger Levsen Sat, 22 Sep 2018 15:29:49 +0200 piuparts (0.91) unstable; urgency=medium * Don't use --skip-logrotatefiles-test when testing sid and buster, see #582630. (Closes: #604807) Keep it for stretch, jessie, wheezy, squeeze and lenny based tests. * piuparts.py: - Add to ignored_files: + /var/lib/sreview (Closes: #905500) - Add alias '--ignore-regexp' for '--ignore-regex' as the former was documented since 2005 while the latter was working since then. Thanks to Nicolas Braud-Santoni for reporting. (Closes: #906683) * Bump standards version to 4.2.1, no changes needed. -- Holger Levsen Fri, 07 Sep 2018 19:35:35 +0200 piuparts (0.90) unstable; urgency=medium [ Michael Stapelberg ] * debiman-piuparts-distill: also consider --install, fixes https://github.com/Debian/debiman/issues/106 [ Holger Levsen ] * Bump standards version to 4.2.0, no changes needed. -- Holger Levsen Mon, 13 Aug 2018 13:37:03 +0200 piuparts (0.89) unstable; urgency=medium * scripts/pre_install_exceptions: force cleanup of sympa's spool directories. (Closes: #673972) * d/control: - move Built-Using: to piuparts-master binary package. - add Xs-Go-Import-Path: header. -- Holger Levsen Tue, 12 Jun 2018 14:44:37 +0000 piuparts (0.88) unstable; urgency=medium * Recycle failed packages in sid after 2 days and force rescheduling them 2 days later. * d/control: - shorten Vcs: headers. - drop versioned Pre-Depends on dpkg which is even satisfied in oldoldstable. - drop Breaks and Replaces on versions of piuparts which are older than oldoldstable. - add "Built-Using: ${misc:Built-Using}" which is needed because we ship golang binaries, thanks lintian. -- Holger Levsen Fri, 08 Jun 2018 13:17:44 +0000 piuparts (0.87) unstable; urgency=medium [ Philipp Hahn ] * piuparts.py: use `apt-cache show --no-all-versions` to prevent generating a "piuparts-depends-dummy" package with multiple dependencies on the same package with different versions. (Closes: #898606) [ Holger Levsen ] * Update all occurrences of piuparts-devel@lists.alioth.debian.org with piuparts-devel@alioth-lists.debian.net. * Drop X-Python-Version header from debian/control. -- Holger Levsen Sat, 02 Jun 2018 11:36:36 +0000 piuparts (0.86) unstable; urgency=medium * debian/control: switch packaging to salsa.debian.org. Thanks to the alioth admins for providing such a nice service so long! * Update several occurrences of anonscm.debian.org and git.debian.org with salsa.debian.org URLs. * index.tpl: add news entry about the salsa migration. * debian/copyright: update years of my contributions. -- Holger Levsen Sat, 28 Apr 2018 14:57:34 -0300 piuparts (0.85) unstable; urgency=medium [ Agustin Henze ] * piuparts.py: - Add docker support, new param is introduced `--docker-image`. (Closes: #893731) - Deprecate --keep-tmpdir in favor of --keep-env (Closes: #894232) - Create ${ENV}/dev/ptmx path if it doesn't exist (Closes: #895380) - Create ${ENV}/dev/null if it doesn't exist ASAP (Closes: #895379) * Add `docker.io` as suggested package. * Reworded documentation for `--keep-env` and `--schroot` parameters. [ Holger Levsen ] * dwke.py: change logging to make relevant information more visible. * detect_*_issues.in: improve output. * report_untestable_packages.in: improve output. * piuparts.1.txt: improve wording for docker related changes and add explaination about the limitations of docker support. * Bump standards version to 4.1.4, no changes needed. -- Holger Levsen Sat, 14 Apr 2018 17:39:13 -0300 piuparts (0.84) unstable; urgency=medium * debian/control: - Add "Rules-Requires-Root: no" to support building as non-root. (I've also confirmed that the build output is bit by bit identical with and without this.) - Bump standards version to 4.1.3, no changes needed. * piuparts-report.py: credit Andreas properly. * Bump debian/compat to 11 and build-depend on debhelper >= 11~. -- Holger Levsen Fri, 16 Feb 2018 12:34:20 +0000 piuparts (0.83) unstable; urgency=medium [ Andreas Beckmann ] * distros.conf: - Add experimental-debug. * piuparts.conf.anbe: Add some more example sections. * piupartslib/packagesdb.py: - Add new package data accessors name(), version(), test_versions(). - Use test_versions() in all places referring to a piuparts test. - Set test_versions while loading versions from the final target distro. - Use the actual package versions for resolving the "outdated" state. * piuparts-analyze.py: - Merge report_newly_bugged_packages and process all sections. * piuparts-report.py, detect_well_known_errors.py, piuparts-analyze.py: - Use global locks to allow only one running instance of each script. - Acquire section locks to prevent concurrent processing of a section, including piuparts-master access. - Postpone busy sections and retry them later. - Run as three separate cronjobs. * conf/crontab-master: - Run detect_well_known_errors every three hours to avoid accumulating a large backlog of new logfiles. - Run piuparts-analyze twice per day. - Try piuparts-report every three hours s.t. we start 2-3 runs per day even with running times above 8-12 hours. - Run detect_{piuparts,network}_issues a short time before trying piuparts-report to exclude (most of) these logfiles from the report. * master-bin/report_newly_bugged_packages: Remove, merged into piuparts-analyze. * scripts/pre_distupgrade_zz_database-server: wheezy->jessie: Restart postgresql before upgrading the cluster, working around #882409. * Update policy references, the permalinks changed with the new toolchain. * Add bug template for failing to reinstall a package. * Adjust known_problems patterns for dpkg 1.19 message changes. [ Holger Levsen ] * dwke.py/-analyze.py/-report.py: quietly exit if another process is still running. * master-bin/detect_well_known_errors.py: compress output. * Bump standards version to 4.1.2, no changes needed. -- Holger Levsen Fri, 15 Dec 2017 11:12:13 +0000 piuparts (0.82) unstable; urgency=medium * Move xmlto from Build-Depends-Indep to Build-Depends. -- Holger Levsen Sat, 07 Oct 2017 17:30:19 +0200 piuparts (0.81) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /var/log/tallylog (Closes: #877592) - Run post_chroot_unpack scripts before initial apt-get update. * piuparts-analyze.py: - Add PiupartsBTS, a caching wrapper around debianbts. * General python code and style cleanup. Consistently use 'with open(...) as ...:' for scoped open files. * scripts/{pre,post}_test_exceptions: Add exception to prevent testing corekeeper from changing the core file settings in the running kernel. * scripts/pre_distupgrade_zz_database-server: sid/buster has postgresql 10. * Separate scripts-lenny/ from scripts-squeeze/. * scripts-squeeze/post_{setup,distupgrade}_squeeze-fake-essential: - Treat install-info as fake-essential for all tests ending in squeeze. * scripts-broken-symlinks/post_install_extras_unbreak_symlinks: Unbreak more symlinks. (Closes: #857151) * master-bin/detect_piuparts_issues: Detect another way of 'apt-cache show' failing. (Closes: #877417) * master-bin/distill_alternatives_log: Parse piuparts.conf to find the sections that use scripts-log-alternatives. * master-bin/generate_daily_report: Most parts are now separate cronjobs. * Add bug template for stable -> sid file overwrite errors. * Use copyright notices without FSF street address. [ Simon McVittie ] * Consider the /usr merge to be acceptable variation. Files that the dpkg database considers to be in /bin, /sbin, /lib/**, /lib*/** are now allowed to be physically in /usr/bin, etc. due to symlinks in the root directory, as created by usrmerge or debootstrap --merged-usr. (Closes: #860433) [ Holger Levsen ] * Fix syntax errors in git snapshot running on piuparts.debian.org, thanks to Boud Roukema and Philipp Huebner for the reports. (Closes: #875605, #875664) * Drop code to support using autopkgtest as a test backend. This code was merged in 2008 from Ubuntu, but it's unclear (and unlikely) that it still works. Also it never has really been supported. (See #815084) * Bump standards version to 4.1.1, no changes needed. * Update TODO. [ Michael Stapelberg ] * piuparts-distill: correctly handle errors. -- Holger Levsen Thu, 05 Oct 2017 15:56:25 +0200 piuparts (0.80) unstable; urgency=medium [ Michael Stapelberg ] * debiman-piuparts-distill: - increase maximum token size. - bugfix: wait until all results are collected. - don’t print all results. * distill_alternatives_log: also process buster. [ Holger Levsen ] * Move asciidoc to from Build-Depends-Indep to Build-Depends. (Newly needed because d697f2991 changed piuparts-master to an arch:any package.) Thanks to Adrian Bunk. (Closes: #873825) -- Holger Levsen Thu, 31 Aug 2017 17:38:11 +0200 piuparts (0.79) unstable; urgency=medium [ Holger Levsen ] * slave-run: properly delete all screenlogs from previous runs. * Bump standards version to 4.1.0, change priority from extra to optional. * Depend on debhelper >= 10.2.5~ and bump debian/compat to 10. [ Andreas Beckmann ] * piuparts.py: - Do not ignore errors while purging packages. - Add post_test_* custom scripts. These are run exactly once at the end of each test (before comparing with the reference chroot state). - is_testable_* custom scripts can use return value '2' to make a test fail without actually installing the package. Use for (unfixable) packages that would fail anyway, but are resource hogs or otherwise break piuparts. - Silence diff_meta_data() for "others" for --warn-on-others. - Store the initial package selections in the --save-end-meta meta-data and ignore meta-data from --end-meta if these selections don't match, e.g. due to different fake-essential package sets. - Let debsums always ignore obsolete conffiles. - Run debootstrap with --no-merged-usr. * distros.conf: - Add wheezy-lts as a full distro. * piuparts.conf: - Use relative expiration ages. - Use wheezy-lts as upgrade target and rename sections: + [wheezy2proposed] => [wheezy2lts] + [squeeze2wheezy-proposed] => [squeeze2wheezy-lts] - [squeeze2bpo2wheezy]: Use wheezy-lts as final upgrade target. * piuparts.conf.anbe: Add some more example sections. * Move some exceptions to scripts/{pre,post}_test_exceptions. * scripts/post_distupgrade_base_cleanup: Remove pinentry-curses from the stretch (--install-recommends) reference chroot. * scripts/is_testable_uninstallable: - squeeze: Skip and fail install of mini-buildd-{bld,rep}. - jessie->stretch: Skip distupgrade of arden:i386. * scripts/pre_distupgrade_zz_database-server: Improve some upgrade paths. * scripts/post_purge_exceptions: - Restore /usr/lib/sasl2/ disappearing on some jessie->stretch upgrades. * Add/update exceptions for some ancient packages. * master-bin/reschedule_oldest_logs: Expiration age values starting with "+" are relative to the rescheduling age. * master-bin/detect_network_issues: Detect appstream metadata errors. * master-bin/rotate_master_logs: New daily cronjob to rotate and compress (with one day of delay) master logfiles larger than 1 MB. * slave_run: Ensure screen is run with SHELL=/bin/bash. * Makefile: Split build and install targets between master and slave. * Bump debsums dependency to (>= 2.2.2~) for --ignore-obsolete. * Depend on mount, no longer essential. [ Michael Stapelberg ] * helpers/debiman-piuparts-distill: New helper for parsing the output generated from scripts-log-alternatives. (Closes: #863089) * master-bin/distill_alternatives_log: Run debiman-piuparts-distill on the sections that use scripts-log-alternatives. Runs as a daily cronjob. -- Holger Levsen Wed, 30 Aug 2017 15:31:34 +0200 piuparts (0.78) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Refactor internal handling of reference chroot state. - Do not run custom scripts before/after installing fake essential packages. - Only warn on broken symlinks found between installing the dependencies of the package to be tested and installing the package itself. - Keep track of md5sums of the list of available packages in the chroot to recognize mirror pushes during distupgrade tests and outdated --end-meta meta-data. - Mount a new devpts instance on /dev/pts and /dev/ptmx inside the chroot for better pty separation from the host. Mount the current tty onto /dev/console in the chroot. Inspired by pbuilder. - Arguments to the --ignore/--ignore-regexp options (and internal ignored_files/ignored_patterns settings) that are prefixed with a ':' will verbosely log the ignored files if matched. - New option --upgrade-before-dist-upgrade for 2-stage upgrades: 'apt-get upgrade && apt-get dist-upgrade'. - Do not ignore errors while removing packages. - Run panic handlers before aborting due to an unhandled exception. * piuparts.conf: - Use more aliases for mapping between releases and codenames to reduce the amount of changes needed on "moving targets" (like stable22sid) after a stable Debian release. - Set keyring for archived distros to debian-archive-removed-keys.gpg. - Add new suites: [jessie2Xstretch], [jessie2Xstretch-rcmd] for testing two-stage upgrades (apt-get update && apt-get dist-upgrade) from jessie to stretch (without and with --install-recommends). - Enable [stretch2proposed]. (Closes: #864933) - Use --warn-on-debsums-errors for tests ending in stretch. - Rotate aliases for testing=buster and stable=stretch. - Add new suites: [buster], [buster-rcmd], [stretch2buster], [stretch2buster-rcmd] for testing buster. - Add new suites: [stretch2bpo], [stretch2bpo2buster] for testing stretch-backports. - New (per-section) conffile setting: 'exclude-known-problems' can be set to a list of known problem iconffile names that should *not* be used for this section. * piuparts.conf.anbe: Add some more example sections. * distros.conf: Add support for buster-debug, buster-proposed-updates. * piupartslib/packagesdb.py: - Add new state "outdated" to ignore packages if a dependency distro already has a newer version. (Closes: #856846) - Resolve packages in "outdated" state after dependency databases are initialized. * piuparts-slave.py: - Run piuparts on dummy package "TARBALL" (but skip tests) to create tarballs. - Add "chroot-meta-auto" config option to automatically maintain cached target chroot meta data (using --end-meta and --save-end-meta) for distupgrade tests instead of generating it on-the-fly. - Flush pending logfiles upon startup. * piuparts-analyze.py: - Process newest logfiles first, in case of timeouts. - Drop report_packages_with_many_logs(), obsoleted by archiving old logs. - Remove support for magic "$DISTRO/None" versions. * piuparts-report.py: - Plot all states in the graphs. - Support new states in plots (varying number of columns in counts.txt). - Reorder stacking in the bts_stats plot. - Defer rewriting unmodified maintainer and source summaries, refresh them once per month. * custom-scripts: Check for dummy package "TARBALL" to detect tarball creation phase. * scripts/is_testable_uninstallable: - Add exceptions to skip distupgrades of many buggy ancient packages. (Closes: #688250, #696081) * scripts/post_setup_dummy_users: Skip regular users when testing dpsyco*. * scripts/pre_distupgrade_exceptions: - Disable APT::Immediate-Configure on some squeeze->wheezy upgrade paths. - Add exceptions for old buggy packages. * scripts/post_{setup,distupgrade}_zz_backports: Avoid downgrading systemd/udev from jessie-backports to jessie during removal phase. (Closes: #856845) * scripts/post_distupgrade_exceptions: Add stretch->buster workarounds: - Remove empty unowned /etc/dbus-1/, /etc/dbus-1/system.d/. - Change permissions from 0755 to 0700 on /var/lib/polkit-1/. * scripts-broken-symlinks/post_install_extras_unbreak_symlinks: New script for "fixing" some broken symlinks (e.g. by installing selected suggested packages) in tests using --fail-on-broken-symlinks. * scripts-debug-triggers/: New scripts for enabling dpkg trigger debugging. * conf/crontab-*: Set PATH and run scripts without absolute path. * master-bin/detect_archive_issues: - Look at failed logs older than 24 hours (48 hours previously). - Mark logfiles for immediate recycling upon first appearance. - Run twice per day, moving new logs to untestable within 24-36 hours. * master-bin/detect_network_issues: - Report the issues found in each logfile. - Detect alternate wording of gpg verification error. - Detect master and slave disagreement on the "current" version of a package due to using different mirrors and ongoing mirror push. * master-bin/detect_piuparts_issues: - Report the issues found in each logfile. - Recognize more problems caused by a full filesystem. - Recognize more failures when connecting to databases. * master-bin/detect_well_known_errors: Ignore known_problems conffiles listed in 'exclude-known-problems' in piuparts.conf. * Add known_problems/trigger_cycle_error.conf to report trigger cycles and other trigger problems. * Add bug templates for failing to upgrade from stretch to buster. * Update bug templates for long grown upgrades ending in buster. [ Holger Levsen ] * update TODO. Work on buster has begun. \o/ * generate_daily_report.in: only add runtime to external script output if not already included. * master-bin/report_untestable_packages.in: - also report runtime. - only act on sections with precedence < 100. * master-bin/detect_network_issues.in: - dynamically report detected issues. - move check for outdated reference chroot to detect_piuparts_issues. * master-bin/detect_piuparts_issues.in: - dynamically report detected issues. * instances/piuparts.conf-template.pejacevic: - Add new suites to be tested: - stable2sid, upgrading stretch -> sid (skipping testing/buster) to find possible upgrade problems before a package migrates to testing - stable22sid, upgrading stretch -> buster -> sid - oldstable222sid, upgrading from jessie -> stretch -> buster -> sid (Closes: #859620) - Adjust precedences for most of the tested suites, set precedence to 100 for suites which don't change anymore. - Set idle-sleep to 3600 seconds, the results pages are only updated twice a day anyway. * Update README_server.txt. * htdocs/index.tpl: announce new suites. -- Holger Levsen Mon, 31 Jul 2017 13:32:50 -0400 piuparts (0.77) unstable; urgency=medium [ Andreas Beckmann ] * distros.conf: - Add aliases for oldstable and oldoldstable. - Update aliases for stretch being released as stable. * piuparts.py: - Add to ignored_files: + /etc/rc.local + /etc/X11/Xwrapper.config (Closes: #859929) + /var/lib/apt/daily_lock * piuparts-analyze.py: - Do not ignore Ctrl-C. * scripts/post_distupgrade_base_cleanup: Remove (transitional) sysvinit from stretch. (Closes: #860819) * scripts/pre_distupgrade_zz_database-server: Do not migrate manually from mysql-server to default-mysql-server (aka mariadb-server), there is now a transitional mysql-server package in stretch. [ Holger Levsen ] * piuparts-report.py: - update navigation to point to piuparts.conf-template.pejacevic. -- Holger Levsen Sat, 03 Jun 2017 23:08:19 +0200 piuparts (0.76) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /usr/share/texmf/ls-R - Remove from ignored_files: - /usr/share/keyrings/debian-archive-removed-keys.gpg~ - Do not require --scriptsdir for proper operation. (Closes: #855038) - Make install_over_symlink tests fail by default, add --warn-on-install-over-symlink option to demote this to a warning. - Add --install-suggests option. - Fall back to generating the reference chroot state on-the-fly if the --end-meta file is missing. - Make logged command lines shell-safe with pipes.quote(). * piuparts.conf: - Use --warn-on-install-over-symlink for tests ending before stretch. - Enable scripts-log-alternatives for [sid] and [stretch]. (See: #850917) - Add new suite: oldstable22testing, upgrading wheezy -> jessie -> stretch. * piuparts.conf.anbe: Add some more example sections. * distros.conf: Add support for sid-debug, stretch-debug. * piuparts-slave.py: - Replace literal ESC (0x1b) chars with string '[ESC]' for easier copy+paste from logfiles. - Make logged command lines shell-safe with pipes.quote(). * piuparts-analyze.py: - Also process untestable/*.log. * instances/*: Generate the config files piuparts.conf.pejacevic, piuparts.conf.piu-slave-bm-a, piuparts.conf.piu-slave-ubc-01 (new) and piuparts.conf.piu-slave-1und1-01 (unused) from a common template to keep the settings in sync, since they should only differ in mirror and arch. * Clean up leftover /etc/piuparts/scripts/post_setup_experimental. (Closes: #854317) * scripts/post_setup_minimize: - Exclude gcc-4.8-base from jessie chroot. * scripts/pre_install_database-server: Add/fix some database requirements. * scripts/pre_distupgrade_zz_database-server: Switch from mysql-server to default-mysql-server (aka mariadb-server) for selected packages on upgrades to stretch, otherwise they will lose their database server. Try 'dpkg --configure --pending' after failed upgrades in case the database server was started too late - after a client tried to access it. * scripts/pre_remove_40_find_missing_md5sums: Correctly escape backslashes in filenames. * scripts/pre_remove_exceptions: Handle removal of more packages pulling in 'init'. * Add/update exceptions for ancient packages in scripts/is_testable_uninstallable, scripts/pre_install_exceptions, and scripts/post_distupgrade_exceptions. * master-bin/detect_piuparts_issues: Recognize more cases of full disks. * master-bin/detect_network_issues: Recognize unauthenticated packages. * Add known_problems/problems_and_no_force_issue.conf to recognize non-fatal failures when attempting to remove essential packages. * Add bug template for failing to upgrade from testing to sid. * Add bug template for shipping broken symlinks. [ Holger Levsen ] * piuparts.py: - Apply patch from Maxime Lareo to allow usage of --keep-sources-list without --basetgz. (Closes: #841157) - Add to ignored_patterns: + /srv/.* (Closes: #848186) - Add my copyright note according to git blame. * Add python (>= 2.7) to the depends of piuparts-master and piuparts-slave as dh-python has been changed to only add python depends if it finds python code in PATH. Thanks lintian. * Replace httpredir.debian.org with deb.debian.org everywhere: with deb.d.o apt will use SRV records to go directly to the mirror, with httpredir.d.o there will be http redirects for every file. * slave_run: Fix bug which prevented a different number of slaves to be started than defined in the configuration. Also add a check to ensure that this optional argument is an integer and within the defined maximum number of slaves. * slave_stop: New script to stop all piuparts-slaves on a host. * slave_stop.8: Add new manpage for this new script, also update slave_run.8 to mention slave_stop.8. * Update README_pejacevic.txt and README_server.txt. * Drop instances/piuparts.conf.lamarr and …/piuparts.conf.goldwasser. * htdocs/index.tpl: - Announce 2nd piuparts-slave, explain this is a three host setup now, mention that pejacevic is a four core system and other news. - Make "contribute" a link. * archive_old_logs: use xargs -P $NUM_CPU and -n 1 to compress old logs in parallel. * update-piuparts-(master|slave)-setup: touch $PIUPARTS_TMPDIR/.nobackup to exclude it from backups made by DSA. * conf/crontab-master.in: run piuparts-report twice a day instead of trying four times a day, which hasn't worked out for a long time. * generate_daily_report.in: measure runtime of this script and the scripts started by it. * detect_(network|piuparts|archive)_issues.in: measure runtimes too. * reschedule_oldest_logs.in: measure runtime. [ Michael Stapelberg ] * Add support for logging update-alternatives calls using optional custom-scripts/scripts-log-alternatives/ (Closes: #850917) -- Holger Levsen Sun, 12 Mar 2017 17:55:07 +0100 piuparts (0.75) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/network/ + /etc/php/7.0/ and selected subdirs + /var/lib/apache2/ - Run panic handlers in reverse order. - Add --shell-on-error option to simplify debugging of piuparts failures. Starts an interactive shell in the chroot if an error occurred. - Unmount /proc/sys/fs/binfmt_misc only if mounted. - Query the apt version in the chroot. (Closes: #851517) - Use apt_pkg.version_compare(). * piuparts.conf: - Add new suite: stretch-rcmd (test with --install-recommends). - Add new suite: jessie2stretch-rcmd (test with --install-recommends). - Add new suite: stretch-security. - Add new suite: stretch-pu (test packages in stretch-proposed-updates). - Add new suite: stretch2proposed. - Reduce delay before rescheduling untestable packages. * piuparts-analyze.py: - Adjust debianbts syntax to be compatible with both jessie and stretch. - Improve exception handling. * Handle more database setup issues. * Add/adjust some exceptions for ancient packages. * scripts/pre_install_extras: Add examples how to preseed license acceptance for non-free and downloader packages. * scripts/pre_distupgrade_zz_database-server: Run pg_upgradecluster during dist-upgrades. * scripts/post_distupgrade_hack_debsums: Limit to squeeze->wheezy and merge into scripts/post_distupgrade_exceptions. * scripts/{pre,post}_remove_exceptions: Support removal of essential packages with apt-get from stretch onwards. * known_problems/piuparts-depends-dummy_error.conf: Recognize the failure from 'apt-get install piuparts-depends-dummy.deb'. * known_problems/problems_and_no_force_error.conf: Recognize the apt 1.1 message on attempted removal of essential packages. * master-bin/detect_piuparts_issues: Recognize more cases of full disks. -- Holger Levsen Wed, 25 Jan 2017 13:19:30 +0100 piuparts (0.74) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/modprobe.d/ - Add new class of is_testable_* custom scripts: A return value of '1' makes the test succeed without actually installing the package. Use for packages that cannot be tested with piuparts by design or are broken in an unfixable way. (Closes: #682739) - Ensure /etc/resolv.conf in the chroot has permissions 0644 to match a possible recreation of that file by resolvconf. (Closes: #660350) - Increase output limit to 8 MB. (Closes: #794331) - Increase single command time limit to 60 minutes. * piuparts.conf: - New section [sid-strict], testing with --install-remove-install and failing on leftover files. (Closes: #604406) - Only warn on leftover files for [sid] and use the same settings for both [sid] and [stretch], since these are now used by britney to block testing migration in case of regressions. * piuparts.conf.anbe: Add some more example sections. * piuparts-slave.py: - Increase test timeout to 90 minutes. * piuparts-analyze.py: - Also consider bugs filed against source packages. * piuparts-reports.py: - Mark arch:all packages with an :all suffix in package lists. - Report skipped tests. * Makefile: Add check-whitespace target looking for trailing whitespace etc. * scripts/pre_install_database-server: Use default-mysql-* from stretch onwards. * scripts/post-{install,purge}-exceptions: Wait for dkms progress indicator to terminate. * scripts/post_distupgrade_exceptions: Work around some jessie->stretch issues. * scripts/is_testable_uninstallable: New custom script to exclude some uninstallable (or similarly broken) packages from being tested. * scripts/post_setup_minimize: New custom script to minimize chroots. - Remove tzdata and lsb-base from sid and stretch. * scripts/post_setup_dummy_users: New custom script to create dummy groups and users that block ids that are likely being used by the host system. * scripts/post_{setup,distupgrade}_experimental: Removed, obsolete since restoring the initial package selection supports downgrades (0.64). * custom-scripts/scripts-debug-{remove,purge}/: Improved debugging of maintainer scripts during package removal. * Overhaul some more custom scripts. * known_problems/debsums_mismatch_*.conf: Report missing symlinks and directories. * known_problems/needs_rebuild_issue.conf: Report "called emacs-package-install as a new-style add-on, but has no compat file" * known_problems/test_was_skipped_issue.conf: New known problem for skipped tests. * master-bin/detect_network_issues: Detect "E: The repository '.*' does no longer have a Release file." * master-bin/detect_piuparts_issues: Detect 'invoke-rc.d: initscript mysql, action "restart" failed.' * master-bin/reschedule_piuparts_tests: New experimental helper script for rescheduling piuparts tests based on detected known problems. [ Holger Levsen ] * Apply patch by Antonio Ospite to workaround #847788 by force-unmounting /proc/sys/fs/binfmt_misc - some java packages trigger update-binfmts, which mounts /proc/sys/fs/binfmt_misc but never unmounts it. (Closes: #704037) - Thanks Antonio! * Add build-depends to dh-python, thanks lintian. * Bump copyright years. [ Sean Whitton ] * piuparts.py: use `apt-get install ./foo.deb` instead of `dpkg -i ./foo.deb && apt-get install -yf` for more reliable dependency resolution. (Closes: #825487) -- Holger Levsen Sun, 15 Jan 2017 11:59:00 +0100 piuparts (0.73) unstable; urgency=medium * Add new option, --hard-link, and do *not* use it by default. (Closes: #841025) -- Holger Levsen Tue, 06 Dec 2016 18:14:19 +0100 piuparts (0.72) unstable; urgency=medium [ Holger Levsen ] * instances/piuparts.conf.pejacevic: test jessie2bpo and jessie2bpo2stretch. * piuparts.py: - Fix devpts mounting to use the correct gid=5,mode=620 mount options. Patch taken from Adam Conrad. (Closes: #829146) - explain (as a code comment) why /root/.rnd shouldn't be ignored. (Closes: #750099) - Add /var/log/apt/eipp.log.xz to ignored files. (Closes: #830527) * custom-scripts/scripts/pre_remove_exceptions: force removal of usrmerge package. (Closes: #798374) [ Stefano Rivera ] * Don't test the current Debian release status, tracking that is distro-info-data's problem. (Closes: #827411) -- Holger Levsen Wed, 03 Aug 2016 11:24:56 +0200 piuparts (0.71) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Define namedtuple FileInfo globally s.t. it can be pickled. - New option --no-check-valid-until to set apt option Acquire::Check-Valid-Until=false for testing archived releases. - Clear all locale settings from the environment before running commands in the chroot. * piuparts.conf: - Use --no-check-valid-until for squeeze. - New section [wheezy-security] (also used by wheezy LTS). - New section [jessie-security]. * distros.conf: squeeze-* has been archived/removed. * piuparts-analyze.py: - Skip logfile on HTTPError while querying the BTS. * piuparts-reports.py: - Skip section on HTTPError while downloading Packages. * post_setup_forbid_home: Adjust for basefiles now shipping /home/ * Add/adjust some exceptions. [ Holger Levsen ] * Bump standards version to 3.9.8, no changes needed. -- Holger Levsen Thu, 05 May 2016 14:03:30 +0200 piuparts (0.70) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/sysctl.d/99-sysctl.conf (dangling symlink to ../sysctl.conf) + /var/log/btmp - Canonicalize mountpoint inside the chroot to avoid mounting over symlinks and possibly outside the chroot. - --install-remove-install runs 'apt-get install --reinstall $pkg', too. * post_distupgrade_base_cleanup: Remove libprocps3 in stretch. * pre_remove_40_find_unowned_lib_links: Handle another mpi alternative. * Add bug template for maintainer scripts incorrectly complaining about being called with unknown arguments. [ Holger Levsen ] * conf/distros.conf and instances/piuparts.conf.pejacevic: move squeeze to archive.debian.org, stop testing squeeze only suites - but keep testing upgrades to wheezy suites. * Fix typo in piuparts_slave_join.8.txt, thanks lintian. -- Holger Levsen Tue, 08 Mar 2016 13:00:22 +0100 piuparts (0.69) unstable; urgency=medium * piuparts.py: add to ignored_files: - /var/lib/pkcs11proxyd/ (Closes: #810703) * piuparts.1.txt: Fix typos, thanks to Дилян Палаузов and lintian. * debian/control: - Bump standards version to 3.9.7, no changes needed. - Use more secure https URL for Vcs-Git: header, thanks lintian. - Use /git/ not /cgit/ in Vcs-* headers. * debian/copyright: bump years for my contributions to 2016. -- Holger Levsen Sat, 13 Feb 2016 12:46:10 +0100 piuparts (0.68) unstable; urgency=medium * Dedicated to the memory of Ian Murdock. Thank you very much for starting and shaping Debian, Ian! The world would be very different today without your work and you will never be forgotten. [ Andreas Beckmann ] * piuparts.py: - Simplify mounting/unmounting into the chroot. - Mount a 64 MB tmpfs onto /dev/shm in the chroot. (Closes: #793487) [ Sven Haardiek ] * Add option "--single-packages" to test every package specified via path or package name individually. (Closes: #810237) [ Michael Prokop ] * piuparts.py: - Execute dist-upgrade also when using --existing-chroot option. (Closes: #798266) -- Holger Levsen Tue, 02 Feb 2016 10:33:40 +0100 piuparts (0.67) unstable; urgency=medium [ Holger Levsen ] * Add wheezy-pu to the suites being tested. (Closes: #800094) [ Andreas Beckmann ] * piuparts.py: - Ensure /etc/mtab exists in the chroot. - Record and compare file owner and group names instead of uid/gid. * Add support for adequate tag ldd-failure. (Closes: #793108) * scripts/post_distupgrade_exceptions: - Fix the /etc/nsswitch.conf wheezy -> jessie upgrade handling. * Update custom scripts handling databases. * Add bug template for wheezy -> jessie -> stretch upgrades. -- Holger Levsen Sat, 17 Oct 2015 16:32:06 +0200 piuparts (0.66) unstable; urgency=medium * Add python-lzma to build-depends, as the tests need it now. -- Holger Levsen Wed, 26 Aug 2015 00:59:42 +0200 piuparts (0.65) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Create sources.list entries for --testdebs-repo with '[ trusted=yes ]' to avoid needing --do-not-verify-signatures which would act globally. - Add --fake-essential-packages option to include packages in the base chroot that are not removed after the test. These are available during purge and for checking against mistreatment. - Increase permitted command output volume from 3 MB to 4 MB (for daptup). - Only ignore 'dpkg -i' failures that can be fixed by 'apt-get -f install'. (Closes: #794628) - Set Architecture of piuparts-depends-dummy to match the package to be tested. * piuparts.conf.anbe: Add some more example sections. * piupartslib/packagesdb.py: - Put package in 'dependency-does-not-exist' state if a pass/ log exists but a dependency has been removed from the archive since then. - Prepare improvements for handling foreign arch dependencies. * piupartslib/open_packages_url(): Support xz-compressed and uncompressed Packages files. * piuparts-master-backend.py: - Catch URLError, log it and abort without backtrace. * piuparts-common: Add Depends: python-lzma. * scripts/pre_remove_40_find_unowned_lib_links: Ignore some symlinks caused by mpi-default-dev and libglide2/libglide3. * Add/adjust some exceptions for ancient packages. -- Holger Levsen Tue, 25 Aug 2015 08:23:51 +0000 piuparts (0.64) unstable; urgency=medium [ Holger Levsen ] * Add FancyIndexing to piuparts-master.conf and enable apache syntax highlighting in vim. (Thanks DSA!) * Use httpredir.debian.org instead of http.debian.net. (Closes: #783617) * Add support for adequate tag missing-pkgconfig-dependency. (Closes: #783528) * Use revdate: in the asciidoc headers of manpages instead of DATE in the body to achieve reproducible builds and set the revdate: to the last modification date of each manpage. [ Andreas Beckmann ] * piuparts.py: - Use 'dpkg-query -W' instead of 'dpkg --get-selections' to record architecture and version information for installed packages, too. - Restore the selections to the package versions from the reference chroot in scenarios like sid+experimental where more than one version could be available. Use --force-yes since this may involve downgrades. * piuparts.conf: - New global setting: basetgz-sections, used by piuparts-slave only. - Switch to separate tarball sections. * piuparts-slave.py: - Add support for special sections that only create/refresh reference basetgz tarballs without testing packages. The basetgz can be shared between multiple sections without being affected by their flags. -- Holger Levsen Fri, 12 Jun 2015 13:42:52 +0200 piuparts (0.63) unstable; urgency=medium [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/clamav/ + /etc/lighttpd/ + /etc/lighttpd/conf-available/ - Increase verbosity when reporting things installed over directory symlinks: report all symlinks and their targets. - Reinstall base system packages missing upon removal with --no-install-recommends. - Mount /dev/pts into the chroot. Wanted by recent apt. - Fix usage of schroot with chroot names without ':'. (Closes: #773874) - Resolve distro aliases before setting PIUPARTS_DISTRIBUTION. - Fix running debootstrap if --do-not-verify-signatures is given. (Closes: #781673) * piuparts.conf: - Enable --warn-on-debsums-errors for all jessie tests. - Add new suite: jessie-pu (test only packages in jessie-proposed-updates). - Add new suite: jessie-rcmd (test with --install-recommends). - Add new suite: wheezy2jessie-rcmd (test with --install-recommends). - Add new suite: stretch. - Add new suite: jessie2stretch. * piuparts.conf.anbe: Add many more example sections. * distros.conf: Reactivate 'testing' and 'stable' aliases. * piupartslib/packagesdb.py: - Consider logfile age in addition to the time waiting for recycling. * piuparts-slave.py: - Handle Ctrl-C while downloading Packages files and flush/unreserve, too. - Catch another exception that may happen while talking to the master. * detect_archive_issues: Move archive_issues.txt from htdocs/ to master/. * detect_piuparts_issues: Detect transient apt-cache failures. * generate_daily_report: Remove obsolete .html files (e.g. summaries for removed source packages or obsolete maintainer addresses) after 30 days. * reschedule_oldest_logs: - Fix gradual oldest-first recycling if nearly all logs are candidates. - Recycle/expire pass/ logs only if the section is (recycle-)idle. * scripts-apt-first/pre_distupgrade_zz_apt_first: New custom script for upgrading apt first and having the new apt perform the remaining upgrade. * scripts-sysvinit/pre_distupgrade_zz_sysvinit: New custom script for doing wheezy->jessie upgrade tests while keeping sysvinit as init if possible. * scripts/pre_remove_40_find_unowned_lib_links: Ignore /lib/ld-lsb.so.[123] links created by lsb-core. * scripts-no-usr-share-doc: Add exception for localepurge. * post_distupgrade_base_cleanup: New custom script for generalized libdbX.Y exceptions. * Update exceptions for squeeze-lts. * Add/update exceptions for many packages. * Add/update some bug templates. * known_problems/{initdscript_lsb_header_issue,insserv_error}.conf: Report "service.*already provided", too. [ Holger Levsen ] * piuparts.conf.pejacevic: add new suite: jessie2proposed. * piuparts.conf.piu-slave-1und1-01: merge changes from pejacevic config but replace amd64 with i386. * crontab-master.in: update webpages every six hours. * piuparts-reports.py: - Link to the new "Debian Package Tracker" (tracker.debian.org) instead to the old "Package Tracker System" (PTS). - Switch links to lintian.debian.org to https. * crontab-slave.in: try to start slave every hour to make sure it's always running. * Use "autopep8 --max-line-length=160" to re-format all .py files, then also use "-a" on a 2nd run. * test_config.py: update for Jessie being stable and Stretch being the new testing suite. * debian/copyright: Remove space from W3C FreeUse licence name, thanks lintian. * Update piuparts.py, piuparts.1.txt and README_server.txt due to the fact that jessie is the new stable and testing is stretch now. -- Holger Levsen Mon, 27 Apr 2015 16:46:29 +0200 piuparts (0.62) unstable; urgency=medium * Default to http://http.debian.net/debian instead of the deprecated http://cdn.debian.net service as default mirror. (Closes: #774471) -- Holger Levsen Tue, 06 Jan 2015 10:36:39 +0100 piuparts (0.61) unstable; urgency=medium [ Michael Prokop ] * Support new scripts directive 'post_chroot_unpack', useful for adding apt-keys for custom apt repositories. (Closes: #767485) * Add custom-scripts/scripts-unused-examples/post_chroot_unpack_key_setup. [ Holger Levsen ] * piuparts.py: Add "/var/cache/apt/archives/partial/" to ignored_files. (Closes: #767489) * piuparts.py and piuparts-report: Detect four more (in)adequate issues: - broken-binfmt-detector - broken-binfmt-interpreter - missing-alternative - program-name-collision (Closes: #767499) * distros.conf: Remove unneeded URI for squeeze-lts, it just uses the default repository. * instances/pejacevic+slaves: Do not reschedule passed squeeze logs anymore. [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/modules-load.d/modules.conf (dangling symlink to ../modules) - Place an up-to-date copy of the host's /etc/resolv.conf (with comments stripped and whitespace normalized) in the chroot. * piuparts.conf: - Add flags-start-jessie, flags-end-jessie global variables. - Use --scriptsdir .../scripts-jessie for tests ending in jessie. - Enable --warn-on-debsums-errors for wheezy2jessie upgrades. * piuparts.conf.anbe: Add many more example sections. * distros.conf: - Add *updates, *backports, *proposed for jessie. - Switch 'testing' alias to 'stretch', but deactivate it for stable. - Add 'stable' alias pointing to 'jessie', deactivated as well. * piupartslib/dwke.py: - Fix parsing of known_problems/*.conf that have EXCLUDE_PATTERN. * piuparts-slave.py: - Avoid a busy loop by suspending a section for 5 minutes if basetgz creation is in progress or failed. * Add "AddDefaultCharset utf-8" to the apache2 configuration snipplet example, so that logfiles are displayed as UTF-8. * master-bin/detect_piuparts_issues: Another partial write error from tar. * pre_install_foreign_architecture: New script to enable foreign architectures for testing cross toolchain packages. * pre_remove_40_find_unowned_lib_links, unowned_lib_symlink_*.conf: New script and reports for unowned symlinks in [/usr]/lib[/]. * post_distupgrade_exceptions: Handle libdb5.1 removal in jessie. * scripts-jessie/post_setup_jessie-fake-essential: New custom script. - Make ucf fake-essential. (ucf may be used unconditionally during purge.) - Make init-system-helpers fake-essential. (Systemd service link cleanup.) * Rework the file-rc/sysvinit/upstart/systemd specific exceptions. * Remove debugging output for resolvconf. * Update custom scripts handling databases, experimental, ... and some more. * Update bug templates. -- Holger Levsen Wed, 03 Dec 2014 19:55:26 +0100 piuparts (0.60) unstable; urgency=medium [ Leo Iannacone ] * piuparts.py: when using the --existing-chroot option, instead of copying files, use hard links if the original chroot and destination directory are on the same device. (Closes: #754878) [ Iain Lane ] * Use python-distro-info to get the Debian and Ubuntu devel releases. * tests: Remove the Ubuntu devel release test. [ Holger Levsen ] * Update README_server.txt and README_pejacevic.txt after setting up a piuparts master/slave system from packages myself. * Drop conf/piuparts-master.sudoers from debian/piuparts-master.examples and include all commands piupartss needs to run as root in conf/piuparts-slave.sudoers. * Update instances/piuparts.conf* to match what is in use for piuparts.debian.org today. Add two new systems, goldwasser and lamarr, as examples taken from piuparts development. * Add "AddType text/plain .log" to the apache2 configuration snipplet example, so that logfiles are displayed in the browser. * Bump standards version to 3.9.6, no changes needed. * Replace all occurrences of old gitweb Alioth URLs with cgit ones. -- Holger Levsen Sun, 26 Oct 2014 20:07:24 +0100 piuparts (0.59) unstable; urgency=low [ Holger Levsen ] * piuparts.py: - mount selinuxfs read-only and on new location when possible. Thanks to Laurent Bigonville for the patch! (Closes: #682068) - Add to ignored_files: + /etc/sub{g,u}id[-] introduced by shadow 1:4.2-1. * piuparts-report.py: - create https URLs in source_summary_url(). This should probably be made configurable. - fix log directory creation. (Closes: #746722) - fix spelling of "ditto". (Closes: #746724) - create graph of rc and non-rc bugs filed (and fixed) since the beginning of piuparts testing and display it on piuparts.d.o welcome page. - move counts.txt from htdocs to master directory. * master-bin/gather_bts_stats: differate between rc and non-rc bugs. * Makefile: - Don't install crontabs and sudoers file anymore, except when installing from git. - Also cleanup python bytecode from tests. * Packaging: - install cron files for piupartsm and piupartss users in /usr/share/doc/piuparts-(master|slave)/examples/ (Closes: #746721) - split sudoers.d into master and slave and provide them in /examples/ too. - install piuparts.conf.sample in /usr/share/doc/piuparts-master/examples/ - install slave_run and slave_join in /usr/bin/ (Closes: #746718) - piuparts-slave.postinst: do not attempt to add the slave user's ssh public key to the master user's authorized key. The slave package should maybe recommend the master package, but definitly not pre-depend on it, which would be a requirement to make this work. So document this instead. * Updates various pieces of documentation, rename README_1st to README. Explicitly state what will break when using cdebootstrap with pbuilder. (Closes: #709348) * Update various custom-scripts (usually to workaround problems in other packages). * Switch all links to bugs.debian.org, www.debian.org, wiki.debian.org, packages.debian.org, anonscm.debian.org and lists.debian.org, db.debian.org, qa.debian.org, lists.alioth.debian.org and udd.debian.org to https. [ David Steele ] * dependencyparser.py - Be more lenient about the multi-arch modifiers accepted and stripped by the parser. * piuparts-report.py: - Fix indentation of generate_global_summary() - Refactor sections_by_precedence() out of generate_global_summary(). - Restore (a copy of) the counts.txt file to the web view, in
/counts.txt. - Also add a link to counts.txt to the section page. * Remove oldstable distribution results from the JSON summary. - Also remove stable distribution results. -- Holger Levsen Mon, 14 Jul 2014 13:14:19 +0000 piuparts (0.58) unstable; urgency=low [ Holger Levsen ] * debian/copyright: update years. * piuparts.py: - ignore multiarch definition in_default_debian_mirrors() (Closes: #711370) - Add to ignored_files: + /etc/machine-id (Closes: #619244) * custom-scripts: add debugging output for resolvconf. (See #660350) * Adapt and rename conf/piuparts.apache to piuparts-master.conf as per apache2.4 transition. (Closes: #712384) * piuparts.1.txt: explain that --do-not-verify-signatures also causes APT::Get::AllowUnauthenticated to be set accordingly in the chroots. * Switch ubuntu default to 'trusty'. (Closes: #744848). Then switch it to 'utopic'... * piuparts-report: Add link to ci.debian.net to navigation menu. * Replace http://piuparts.debian.org with https everywhere. Thanks to DSA for all their support running piuparts.debian.org and for everything else! [ Andreas Beckmann ] * piupartslib/packagesdb.py: - Add missing PackagesDB.get_version(package_name) method, needed by piuparts-report. - Add PackagesDB.get_source(package_name) method, for easy lookup of source package names. * piuparts-report.py: - Improve integration of known problem reports generation. * master-bin/detect_well_known_errors.py: - Classify unclassified failures as unclassified_failures.conf. [ David Steele ] * piuparts-report.py: Store test summary.json output at the section and global level, using a new piupartslib/pksummary.py module. The new Config.get_std_distro() provides a standard default distro name for summaries. (Closes: #740386) * Add python-distro-info to piuparts-common's depends and to build-depends as it's used in the tests too. -- Holger Levsen Thu, 01 May 2014 00:23:42 +0200 piuparts (0.57) unstable; urgency=low [ Ivo De Decker ] * piuparts-report.py: Use source version from final_distro. (Closes: #733900) [ Matthias Schmitz ] * Rearrange old unittests.py, use nosetests instead: - Move unittests.py to tests/ subdirectory, - Split out dependencyparser test to an extra file, - Add configuration for nosetests, - Use nosetests in Makefile target "check". * piuparts.py: - Add unittest for DefaultsFactory / Defaults. - Use pymox to mock the piuparts.guess_flavor() function as it would run lsb_release in a subprocess. - Move broken_symlink unittest out of piuparts.py into tests/test_piuparts.py so nosetests can run this test and detect coverage. * Add tests/README documenting the naming of the test classes and functions. * Re-enable unittests during package build - Don't create coverage report during pkg build. - Add to Build-Depends: python-debian, python-apt, python-nose, python-debianbts, python-yaml, and python-mox3. [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/group.org + /etc/passwd.org + /etc/shadow.org - Create piuparts-depends-dummy.deb with gzip compression for installability with older dpkg versions. - Exclude virtual packages provided by the real package (but not the dummy package) from the Conflicts of piuparts-depends-dummy.deb. - Check the status of the packages after installing the supplied .debs. Based on an initial patch by Julien Cristau. (Closes: #718544, #736743) * piupartslib/packagesdb.py: - load_alternate_versions_from_packages_urls(): New method to load alternate version numbers from a different set of URLs (e.g. final_distro). - get_best_package_state(): New method that considers successfully tested providers of a virtual package if the real package of the same name failed. Used for dependency resolution. - No longer special-case packages as essential-required and test them like normal packages (no-op test plus adequate run). (Closes: #735907) - Improve ordering of packages to be tested/recycled. * piupartslib/dwke.py: - Factored out classes Problem and FailureManager and some helpers from detect_well_known_errors.py * piuparts-master-backend.py: - Improve master.log verbosity. * piuparts-report.py: - Mark essential-required as obsolete and hide it. - Integrate the reporting part from detect_well_known_errors.py. - Archive outdated logs even if the current version is untested. * master-bin/detect_well_known_errors.py: - Only update .kpr files, the reporting part was integrated into piuparts-report. * scripts/post_{setup,distupgrade}_force-unsafe-io: New custom script to automatically enable dpkg --force-unsafe-io once that is supported. Also divert /bin/sync and replace it with a link to /bin/true. Syncing a throwaway chroot is useless, but affects on the host's performance. * scripts/pre_install_extras: New custom script to install a linux-headers package before testing a *-dkms package, s.t. dkms tries to build a kernel module. * known_problems/module_build_error_issue.conf: New known problem for dkms module build failures. * known_problems/piuparts-depends-dummy_{error,issue}.conf: New known problem for failing to install and fixup piuparts-depends-dummy.deb. * Add more piuparts exceptions. * Handle lib32nss-mdns like ia32-libs[-gtk]. [ Holger Levsen ] * piuparts.py: - Report adequate version used. -- Holger Levsen Fri, 14 Feb 2014 13:37:23 +0100 piuparts (0.56) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /etc/apt/apt.conf.d/01autoremove-kernels - Use temporary files while creating basetgz and rename afterwards. - Remove the package to be tested separately before removing its Depends and Recommends. - --allow-database now also enables firebird2.5-super. * piuparts.conf: - New per-section settings: + components * piupartslib/__init__.py: - open_packages_url(): Try Packages.gz if Packages.bz2 is not available. (Closes: #711157) - Add new class DecompressedStream. - open_packages_url(): Use DecompressedStream to transparently decompress a Packages.{bz2,gz} file while downloading and reading the content without requiring to store the complete file (compressed and/or decompressed) in memory. * piupartslib/packagesdb.py: - PackagesFile: Allow restricting to a set of package names. * piuparts-slave.py: - Use locking to prevent concurrent basetgz creation. (Closes: #708287) - Use the "components" setting to restrict the archive areas being used in the generated sources.list. - Reduce memory footprint by discarding unneeded Packages file parts. * piuparts-report.py: - Report URLs of all Packages files used for a section. - Avoid reporting duplicate dependencies after stripping versioning. - Fix some invalid HTML constructs. - Sort maintainer summary by state: failing packages on top. * Improve exception handling. * known_problems: Upgrade adequate issue 'missing-copyright-file' from boring to normal and make pre_remove_50_find_missing_copyright no longer generate fatal errors. * Add support for new adequate tags missing-symbol-version-information and symbol-size-mismatch. * reschedule_oldest_logs: Report number of logfiles in recycle/. * Add more piuparts exceptions to work around various failures in multiple packages. Add a known_problem report for packages using exceptions. * bug-templates: Recommend to use the new dpkg-maintscript-helper commands dir_to_symlink/symlink_to_dir that were added in dpkg 1.17.2. (Closes: #720185) [ Holger Levsen ] * piuparts-report.py: use descriptive link targets for (in)adequate issues instead of mere tag names, thanks to Jakub Wilk for the wordings. * Bump standards version to 3.9.5, no changes needed. * Bump compat level to 9, thus build-depend on debhelper > 9.20120909~. -- Holger Levsen Mon, 16 Dec 2013 12:59:14 +0100 piuparts (0.55) unstable; urgency=low [ Ivo De Decker ] * piuparts-report.py: Add sources.yaml and section.yaml exports. [ Holger Levsen ] * Add file CONTRIBUTING, thanks to Vincent McIntyre for it! (Closes: #721348) * piuparts-report: Add "contact us" link. * piuparts.py: Explain at the very beginning of the generated log that contact information is part of the FAQ. [ Andreas Beckmann ] * Add bug templates for wheezy. * scripts-leftovers: Improve cleanup in /var/lib/systemd with fake-essential init-system-helpers. (Closes: #719869) -- Holger Levsen Thu, 03 Oct 2013 15:31:38 +0200 piuparts (0.54) unstable; urgency=low [ Holger Levsen ] * known_problems: fix some adequate patterns. * piuparts-master: recommend apache2 | httpd. * README_server.txt: be more verbose about configuring sudo. (Closes: #711155) * piuparts.py and piuparts-reports.py: add "incompatible-licenses" (detected since adequate 0.7) and "ldd" to inadequate_tags and known_problems. [ David Steele ] * piupartslib/packagesdb.py - The dependency calculation for rdeps is reworked to match that used elsewhere, to allow package reserve() to drive waiting-for-dep to drive to 0 more quickly. (Closes: #705977) - Reworked rdep metrics (block_count, rrdep_count, waiting_count) to calculate on-demand. Access methods are moved from Package to PackagesDB. - Add a metric for the worst-case reverse-dependency chain length. - Weight the reserved packages returned by this additional factor. [ Andreas Beckmann ] * piuparts.py: add to ignored_files: /etc/hosts -- Holger Levsen Tue, 30 Jul 2013 11:05:32 +0200 piuparts (0.53) unstable; urgency=low [ Andreas Beckmann ] * *.py: Reindent and reformat, slowly moving towards PEP 8 style. * piuparts.py: - Do not run adequate checks on possibly disappearing packages. - Add --allow-database option that enables starting MySQL and PostgreSQL database servers in the chroot. (Closes: #662633) - Relax the check for running processes if --allow-database is given. * distros.conf: - Add "candidates" key to merge multiple Packages files into one virtual distro. - Define wheezy-proposed and squeeze-proposed. * piupartslib/conf.py: - Add get_{packages,sources}_urls() that resolve "candidates". * piupartslib/packagesdb.py: - Add load_packages_urls() methods. * piuparts-{master-backend,slave,report}.py: - Switch to load_*_urls(get_*_urls()) for loading Packages/Sources files, adding support for arbitrarily composed virtual distros. * Makefile: - Stop installing python modules in $libdir/python2.6/dist-packages. * debian/control: - Bump Build-Depends: python (>= 2.7). - piuparts-slave: Add Depends: sudo. (Closes: #710350) * New known problem: Packages with missing or incomplete .md5sums files. * piuparts-master.deb: Ship some piuparts.conf examples. * detect_piuparts_issues: Detect problems starting MySQL or PostgreSQL. * pre_install_database-server: New script to install a database server for packages that require one during postinst but only recommend or suggest (or maybe not even this) the server package to allow for remote db servers. * pre_distupgrade_zz_database-server: New script to upgrade (running) database servers before all other packages. This ensures the database server is running again before the dependent packages (that may declare 'insufficient' dependencies on a 'local' database server) are upgraded. [ David Steele ] * Update python Requires to 2.7 (for argparse) * Edit piuparts_slave_* man pages for more information and format. * Specify the manpage doctype for AsciiDoc man sources. [ Holger Levsen ] * piuparts.1.txt, README.txt and README_pejacevic.txt: proof-read and cleaned up. * Move master-slave related documentation from README.txt to README_server.txt and leave a pointer in the former. * Rename README.txt to README_1st.txt. * piuparts-master.deb: - Ship README_server.txt. - Recommend devscripts and libsoap-lite-perl (for gather_bts_stats). * piuparts-report.py: Add a link to README_server.html. * master-bin/gather_bts_stats: write bts_stats.txt to master-directory. * conf/crontab-master: run gather_bts_stats daily. * master-bin/prepare_backup: backup bts_stats.txt and do not backup sources.txt. * piuparts.py: categorize adequate results using inadequate_tags, boring_tags, ignored_tags and unknown. Show adequate exit code if non-zero. * Add known_problems/*inadequate*.conf for all adequate tags we care about. * htdocs/index.tpl: Improve description about piuparts.debian.org. (Closes: #700848) [ Andrew Starr-Bochicchio ] * piuparts.py: - Move default keyring to distro defaults. (Closes: #710346) - When distro defaults are explicitly specified, use the distro default mirrors (Closes: #710347). -- Holger Levsen Sun, 09 Jun 2013 12:57:52 +0200 piuparts (0.52) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - Really disable PDiffs. (Closes: #708241) * piuparts-master.in: - Use timeout to prevent master from getting stuck. (Closes: #701618) * piuparts-slave.py: - Report upgrade tests involving downgrades as untestable. - Always pass --arch to piuparts. * piuparts-analyze.py: - Consider archived bugs, too. (Closes: #669966) * piuparts-report.py: - Switch from python-rpy to python-rpy2. (Closes: #705975) - rpy2: Use a noninteractive grDevice. * Makefile: - Switch default target from 'install' to 'build'. * scripts-no-usr-share-doc/post_setup_disable_usr_share_doc: New custom script to instruct dpkg to skip installing most files in /usr/share/doc. This catches maintainer scripts relying on /usr/share/doc content. * New bug template: postinst_uses_usr_share_doc. * piuparts-master.deb: - Switch Depends: python-rpy to Depends: python-rpy2. [ Holger Levsen ] * piuparts.py: - Run adequate (if installed) after installation test. New options --no-adequate and --fail-if-inadequate. (Closes: #703902) - Workaround #709372 and ignore broken symlinks found by adequate. - Do not print a "Guessed: debian" line on every run. It's the default anyway. (Closes: #703058) * piuparts-report: - Add templates for known_problems/inadequate_issue and inadequate_error. - Add link to the piuparts source at the top of the navigation menu on the left. - Add links to Debian QA group and jenkins.debian.net at the bottom of that navigation menu. * debian/control: Add adequate to piuparts' recommends. * piuparts-slave.postrm: Also remove /var/cache/piuparts/tmp on purge. * conf/crontab-master: Run generate_daily_report twice a day. * piuparts-slave.deb: Add piuparts_slave_run.8 and piuparts_slave_join.8 manpages. -- Holger Levsen Mon, 27 May 2013 18:10:43 +0200 piuparts (0.51) unstable; urgency=low [ Andreas Beckmann ] * Mark all python code as utf-8 encoded. * piuparts.py: - In install-purge tests support installing extra packages before the package to be tested via --extra-old-packages. - Add --arch option to run the test for the requested instead of the default architecture. - Disable using PDiffs in order to save CPU instead of bandwidth to a local mirror/proxy. (Closes: #708241) * piuparts.conf: - New global settings: + slave-count - Use installation-dependent defaults for known-problem-directory. * distros.conf: - Update backports setup after integration into the regular archive. - Enable stable security updates when installing stable backports. - Set testing = jessie and add jessie-proposed-updates. * piupartslib/conf.py: - Raise MissingSection if the requested section is not in piuparts.conf. - Improve handling of virtual distros. * piupartslib/packagesdb.py: - get_package(): Add flag resolve_virtual, disabled by default. * Rename piuparts-master.py to piuparts-master-backend.py * piuparts-master: New. - Wrapper shell script to simplify calling the master from the slave. - Get the 'master-directory' from piuparts.conf and chdir there. - Get the (global) 'log-file' from piuparts.conf and handle the error logging. No longer uses the section specific logfile name for errors. * Allow the master-command to be set in ~piupartsm/.ssh/authorized_keys to restrict ssh keys to only run piuparts-master. * piuparts-master-backend.py: - Raise CommandSyntaxError on unknown commands. - Add "section" command: + Make section selection part of the master-slave protocol. + Allow switching sections without reconnecting. + No longer accept section argument on the command line. + Switch the logfile after switching sections. * piuparts-slave.py: - Fix parsing 'idle' return value from master. - Let the piuparts-master (wrapper script) handle chdir and error logging. - Skip sections that don't exist in piuparts.conf and continue to run. - Pass the section to piuparts-master via the new "section" command instead of using a command line argument. - Keep the connection to the master open while switching sections. This reduces the number of ssh connections attempted while checking idle sections. Close the connection before processing packages, before going to sleep, and after communication errors. - Support empty master-command if the command is set in master's .ssh/authorized_keys file. - Change default basetgz name to {DISTRO}_{ARCH}.tar.gz. * piuparts-report.py: - Skip sections that don't exist in piuparts.conf. - "Missing" binary packages don't influence the overall test result of a source package. These are either udebs or for other architectures. (Closes: #699160) - Report the correct version for binary packages. * archive_old_logs: - Compress the archived logs. * detect_well_known_errors: - Skip sections that don't exist in piuparts.conf. * piuparts-master.deb: - Add Depends: xz-utils. * piuparts-slave.deb: - Restrict the ssh key added to master's authorized_keys to only run piuparts-master. * slave_run: Support starting multiple concurrent slaves. (Closes: #678725) * Update and add new exceptions for buggy packages. * scripts-wheezy/post_setup_wheezy-fake-essential: New custom script to suppress some purge failures in wheezy. * post_{setup,distupgrade}_squeeze-backports: New custom scripts to improve support for squeeze-backports. * New known problem: Database setup failure (issue). [ David Steele ] * detect_well_known_errors: - Replace the bash script with an equivalent Python script. - Sort known error and issue packages by reverse dependency count, separating 'fail' from everything else. (Closes: #698526) - Add a PTS link to issue and error summary entries. - Replace the known_problem COMMAND with PATTERN and EXCLUDE_PATTERN, and replace grep shell calls with python re modules calls, for a 10x speedup. - Validate field names, and only use valid known problem conf files. - Minor HTML syntax fix. - Minor template integration. [ Holger Levsen ] * piuparts.py: - Add to ignored_files: + /var/log/fontconfig.log (Closes: #703810) - Thanks to Hideki Yamane. - switch default Ubuntu distribution to "saucy". * Bump Standards-Version to 3.9.4. * Use /srv/piuparts.debian.org/ on piatti.debian.org as per DSA policy. * Provide instance configuration for pejacevic.d.o and piu-slave-bm-a.d.o. * Move README_piatti.txt and README_pejacevic.txt and update accordingly. * Provide two new helper scripts for running from git: update-piuparts-master-setup and update-piuparts-slave-setup, drop update-piuparts-setup. * Drop instances/forward.* files. * slave-bin/slave_run: - Run slave_cleanup before starting the slave. * slave-bin/detect_slave_problems: remove check limiting this script to be run on piatti only. * master-bin/prepare_backup: also backup sources.txt. -- Holger Levsen Wed, 15 May 2013 11:31:31 +0200 piuparts (0.50) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files: + /var/lib/dpkg/arch + /usr/lib/python2.[67]/dist-packages/python-support.pth broken symlinks caused by python-support (see #635493 and #385775, thanks David Steele) - Call dpkg-deb with --nocheck to allow bad version numbers. - Pass unqualified package names to apt-cache show for lenny support. - Support plain URLs or local paths as --testdebs-repo argument and prepend/append "deb", "file://", and "./" as needed. - Improve the "dirname part contains a symlink" test and report overwritten files owned by other packages as failures. - Add --proxy=URL option. - piuparts.deb: Add Depends: piuparts-common for using distros.conf and piupartslib. - Use distros.conf to generate mirror configuration. This enables more complex scenarios involving partial distributions and dist-upgrades. - Use apt-get -t if set in distros.conf. * piuparts.conf: - New global settings: + proxy + slave-directory + known-problem-directory (for known_problem definitions) + backup-directory (for the master script prepare_backup) + PYTHONPATH (to find the python modules in non-default path setups) + slave-load-max - New per-section settings: + depends-sections + basetgz-directory - Obsolete settings: upgrade-test-chroot-tgz. - Setting tmpdir is now mandatory for master/slave operation. * distros.conf: - New configuration file to describe full distributions (e.g. sid, squeeze) and partial distributions (e.g. squeeze/security, squeeze-backports, experimental) along with their dependencies (e.g. base distribution) and non-default mirrors. (Closes: #699028) - Allows setting a target-release (for apt-get -t ...). (Closes: #687995) - Shipped in package piuparts-common. * piupartslib/conf.py: - Add methods: get_distros(), get_start_distro(). - Add class DistroConfig for reading distros.conf. * piupartslib/packagesdb.py: - Add Package.waiting_count() and friends, populated in calc_rrdep_count. - Optimize reserve() and skip unavailable candidates. - Add method: set_dependency_databases(). - Lookup missing packages, states, ... in the dependency_databases. * piuparts-master.py: - Sort packages to be tested by importance, i.e. descending waiting_count. - Use piuparts.conf global proxy setting as http_proxy. - Use distros.conf to compute URLs. - Load depends-sections for package lookup in partial distros. * piuparts-slave.py: - Tarball recreation can be disabled by setting max-tgz-age to 0. - Relax package existence checks to allow distupgrading to backports. - Fix SIGHUP handling while recycling. - Flush and unreserve all sections on interrupt. - Add support for running piuparts under /usr/bin/timeout. - Check system load frequently and enter sleep mode if threshold (piuparts.conf global setting slave-load-max) is exceeded. Operation will be resumed after load drops below 'slave-load-max - 1.0'. Disabled by default. - Use piuparts.conf global proxy setting as http_proxy and pass it to piuparts via --proxy. - Use distros.conf to compute URLs. - Use the upgrade-test-distros setting to select between install/purge test (if unset) and dist-upgrade test (if there are at least 2 distros). Drop support for running both tests for a section. * piuparts-analyze.py: - Add support for magic "$DISTRO/None" versions. * piuparts-report.py: - Call r.dev_off() after generating a plot. (Closes: #657799) - Use piuparts.conf global proxy setting as http_proxy. - Use distros.conf to compute URLs. - Generate/prepend/append a default description. - Load depends-sections for package lookup in partial distros. * Makefile: - Add DESTDIR support. - Overhaul. Add dependencies between build and install targets. - Add support for placeholder substitution in scripts and config. - Perform syntax check on *.py before installation. * debian/rules: Set 'prefix' and 'DESTDIR' for build and install. * lib/read_config.sh: Factored out the piuparts.conf reading function that is used by all master/slave shell scripts. Shipped in piuparts.common. - Add support for RFC822 line continuation (wrap + indent) and comments. * master-bin/slave-bin: Switch to sourcing read_config.sh. * conf/crontab*: Substitute @sharedir@ at build time. * known_problems: Install to @sharedir@/piuparts/known_problems/. * Replace all remaining references to $HOME/bin and ~/bin with @sharedir@. * prepare_backup: - Get paths from piuparts.conf. - Prepare a copy of submissions.txt, too. * master-bin/slave-bin: Use PYTHONPATH from piuparts.conf. * piuparts-slave.deb: - Use /var/cache/piuparts/tmp as tmpdir. - Use /var/cache/piuparts/basetgz as basetgz-directory. - Populate ~piupartss/.ssh/known_hosts with localhost's hostkey. - Restrict the ssh key added to master's authorized_keys to only run piuparts-master. * slave_{run,join}: Rename the screen session to "piuparts_slave_screen". * slave_cleanup: Use pgrep to find running piuparts-slave processes. * slave_{run,join}: Use screen -ls to find running screen sessions. * slave_join: Use 'script /dev/null' hack if needed to get a writable tty. This avoids running the piuparts-slave screen session as root. * slave_run: Get paths etc. from piuparts.conf. * slave_run: Ensure the tmpdir exists, this could be on tmpfs. * detect_leftover_processes: Move statefile to slave-directory. * detect_stale_mounts: Merge into detect_tmp_cruft. * detect_tmp_cruft: Move to slave-bin and run from slave crontab. * detect_slave_problems: - Move to slave-bin and run from slave crontab. - Use idle-sleep setting from piuparts.conf. - Move statefile to slave-directory. * master: Get rid of the monitor-slave directory. * pre_install_exceptions: Handle bootcd-ia64 installation in squeeze. * post_distupgrade_exceptions: Handle libdb4.8 removal in wheezy. * pre_remove_50_find_bad_permissions: Add some exceptions. * pre_remove_50_find_missing_copyright: Add some exceptions. * post_{setup,distupgrade}_experimental: New custom scripts to improve support for experimental. * Add several exceptions for lenny and lenny2squeeze tests. * New script to enable Debug::pkgPackageManager during upgrades: scripts-debug-packagemanager/pre_distupgrade_debug_packagemanager * New known problem: Packages that need to be rebuild or updated for newer tools, e.g. due to obsolete install-info or tex-common usage. * New bug template: unhandled_symlink_to_directory_conversion. * New bug template: installs_over_existing_symlink. [ Holger Levsen ] * Mention http://piuparts.debian.org in README.txt prominently. * Mention github clone in htdocs/index.tpl. [ David Steele ] * Replace the Tango icon symlinks with copies. * Make the Tango weather icons required for master. -- Holger Levsen Fri, 15 Mar 2013 15:36:12 -0700 piuparts (0.49) unstable; urgency=low [ Andreas Beckmann ] * Add support for dist-upgrade tests of "disappearing" packages: - master/report: Get candidate packages from distro in the "distro" setting in piuparts.conf and (target) versions to test from last distro entry in "upgrade-test-distros". In case a package no longer exists, use a pseudo-version "None". (Closes: #656438) - slave: Support pseudo-version "None". - piuparts: Do not try to install unavailable packages after dist-upgrade. * piuparts.py: - Run custom scripts only once if dependencies are installed via a metapackage. - Rename --no-debsums option to --warn-on-debsums-errors. - Add --extra-repo= option for adding extra package sources, e.g. backports, security or local repositories. The argument must be a valid line (including whitespace) that is added to sources.list verbatim. The option may be repeated to add more lines. - Qualify to the package names extracted from .debs with the version. - Add --testdebs-repo= option. Provide the package(s) to be tested (and additional dependencies that are not yet in the archive) in a repository to enable dependency resolution with apt-get. Use for complex install and upgrade scenarios. (Closes: #676694) - Add --distupgrade-to-testdebs option. During distupgrade tests override packages from the target distro with the packages from the testdebs repository. This allows doing distupgrade tests before uploading. - Enable upgrade tests if both --apt and --testdebs-repo are given. * piupartslib/conf.py: - Add get_final_distro() method. - Add optional distro argument to get_mirror() method. * piupartslib/packagesdb.py: - Speed up LogDB by fetching existing files with os.listdir(). * piuparts-slave.py: - Disable X forwarding while connecting to master. - Move checks for package existence to test_package(). * piuparts-analyze.py: - Sort bugs and try the newest bug first. * piuparts-report.py: - Fix URLs to piatti's config. - Hardlink the logfiles to the htdocs tree (with copy as fallback). * post_setup_squeeze-fake-essential: Restrict fake-essential install-info to the 4 packages that actually need this. * New custom script: pre_remove_40_find_obsolete_conffiles, report obsolete conffiles after package upgrades. Suggested by Michael Biebl. * pre_remove_50_find_missing_copyright: Skip check for packages that are not installed or have only config files remaining. * post_remove_cleanup: Cleanup dovecot certificates. * Add support for installing and upgrading to the multiarch ia32-libs* in wheezy/sid on amd64. (Closes: #679780) * Merge known problem analyses excessive_output and runtime_exceeded into new known problem resource_violation. * New known problem: Leaving obsolete conffiles after upgrade. * New known problem: Modifying conffiles or other shipped files (issue). * New bug template: partial-upgrade-file-overwrite. [ Holger Levsen ] * README.txt: - reformat with shorter line lengths (Closes: #603873). - fix some typos. -- Holger Levsen Sat, 12 Jan 2013 12:12:45 +0100 piuparts (0.48) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - Ignore *.dpkg-* conffile backups found in --scriptsdir directories. - Report attributes (for reference and current file) in case of file modification. - Report paths of installed files that contain symlinks (for better debugging of the problems caused by such a setup). ( test $(dirname $x) != $(readlink -f $(dirname $x)) ) - Add debsums, processes, and broken-symlinks check after the first purge in --install-purge-install mode. - Add --install-recommends option, disabled by default. - Mark temporary directories with a .piuparts.tmpdir file. - Use rm -rf --one-file-system to delete chroots. * piuparts.conf: - New per section settings: expire-old-days, expire-fail-days (defaulting to 0 which means expiration is disabled). - Split and rename piuparts-cmd into piuparts-command ([global] setting that should include all common flags) and piuparts-flags (for additional section-specific flags). - Rename the tempdir setting to tmpdir, this will be used for the --tmpdir argument of piuparts, too. * piuparts-master.py: - Enable recycling before initializing the real package db. - Enable logging by default and set default log-file to $SECTION/master.log. Use "/dev/null" to disable logging. * piuparts-slave.py: - Retry sections with higher precedence more often. - Construct the piuparts command line from the new config options piuparts-command, piuparts-flags, and tmpdir. * piuparts-report.py: - Don't hardcode section names, always show all known_problem reports. * detect_piuparts_issues: Catch the chroot running out of space. * reschedule_oldest_logs: Implement logfile expiration. Delete logfiles that are marked for recycling and are older than expire-{old,fail}-days. These packages have not been retested because of some dependency problem making the package currently untestable. Deleting the log will cause the package to be moved to dependency-failed-testing or similar state. expire-*-days needs to be greater than reschedule-*-days to enable this. * slave_cleanup: Only remove directories containing a .piuparts.tmpdir file. * New bug template: copyright_file_missing_after_upgrade. * New known problem: Installing something over existing symlinks. -- Holger Levsen Fri, 30 Nov 2012 12:12:09 +0100 piuparts (0.47) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files/ignored_patterns: + /var/log/dbconfig-common/dbc.log - Print a final message before terminating in the panic() handler. - Add support for running debsums before package removal, enabled by default. May be disabled via --no-debsums. (Closes: #687538) - Add debsums as dependency. * piuparts-slave.py: - Detect incomplete piuparts output and ensure such tests fail. * piuparts-report.py: - Rewrite find_files_with_suffix(), handle disappearing files. * New custom script pre_remove_50_find_missing_copyright: check for missing /usr/share/doc/$package/copyright files. (Closes: #683685) * Rename custom script post_install_find_bad_permissions to pre_remove_50_find_bad_permissions to avoid early failures during upgrade tests that may be fixed in a later version. * Remove post_purge_dbconfig_cleanup custom script. * reschedule_oldest_logs: Refactored. - Fix duplicate variable name usage that sometimes prevented recycling. - Support a [global] auto-reschedule=no setting. * detect_well_known_errors: Unclassified logs may still be bugged. * detect_piuparts_issues: Detect incomplete logfiles. * New bug template: modifies_conffiles. * New known problem: Modifying conffiles or other shipped files. * New custom script post_distupgrade_hack_debsums to work around #687611 which makes all debsum checks fail due to modification of /usr/share/keyrings/debian-archive-removed-keys.gpg during upgrades. -- Holger Levsen Fri, 28 Sep 2012 13:24:47 +0200 piuparts (0.46) unstable; urgency=low [ Holger Levsen ] * piuparts-report: drop in-code index.tpl stub. * slave-join: fix bug preventing detection that the slave is not running. * piuparts: call schroot with session: argument, thanks to Stephan Sürken for the patch. (Closes: #686360) [ Andreas Beckmann ] * piuparts.py: - Add to ignored_files/ignored_patterns: + /var/lib/cdebconf/{questions,templates}.dat-old + /var/lib/onioncat/ + /var/lib/vmm/(./.*)? (Closes: #682184) - Fix some leftover files and directories getting incorrectly accounted to the package being tested instead of the dependencies in --warn-on-others mode. - Implement --install-purge-install option: test purging with all dependencies still installed; re-install after purge. - Install the dependencies and snapshot the chroot before the --install-purge-install test. Check that the chroot after purge matches the snapshot. (Closes: #668713) * piupartslib/dependencyparser.py: - Package names may now have a ":any" qualification in some cases. Extend the parser to recognize and discard this suffix. * piupartslib/packagesdb.py: - Implement logfile recycling mode that avoids getting a large backlog of untested packages due to uncoordinated log deletion. Delay log deletion and give preference to packages (or versions) that have not yet been tested. (Closes: #670150) + logfiles to be recycled should be hardlinked from pass/, fail/, ... to recycle/ + recycling can be enabled if recycle/ is not empty + treat packages with logfile in recycle/ as initially "unknown" and compute state ("waiting[-for-dependency]-to-be-tested") + delete old logfile while reserving such a package * piuparts-master.py: - Accept and discard duplicate log submissions, preventing the slave from retrying infinitely. - Delay loading the Packages file which is only needed for "status" and "reserve" commands, but not for submitting logs. - Add "recycle" command to enter logfile recycling mode (needs to be issued before "status" or "reserve"). - Remember idle state by creating stamp files. - Add "idle" command to check a remembered idle status before trying to "reserve" packages (avoid package state computation). Idle status (i.e. no packages available for "reserve") will be remembered for an hour, but any log modification (submission, deletion, marking for recycling) will clear the idle status. * piuparts-slave.py: - Fix stopping the currently running test (Ctrl-C Ctrl-C). - Handle master communication exceptions while sending logs or reserving packages: skip the section but keep the slave running. - Flush finished logs from sections that have processing postponed due to precedence settings. - Skip connection to master if we have reserved but no submittable logs. - Submit finished logs after completing all reserved logs in a section. - Send finished logs to master if interrupted with a single Ctrl-C. - Try to unreserve all reserved logs after interrupt. - Add SIGHUP handler that triggers flushing finished logs. Flushing (all sections) will be done after the current test has finished. - Enter logfile recycling mode if no section has packages left for regular processing. Recycle logfiles until a section becomes available for regular processing. If no logfiles could be recycled, retry after an hour. - Issue "idle" command before "reserve" and skip status computation and reserving if master is idle. * Simplify running piuparts from GIT. * Reorganize layout in the GIT repository to reduce path nesting and length. * Makefile: - Separate build and install targets. - Adjust for new layout, cleanup, simplify. * conf/piuparts.apache: Set DefaultType text/plain (for the logfiles). * reschedule_oldest_logs: Hardlink old logfiles to recycle/ instead of deleting them. Cleanup obsolete rescheduling requests. * New helper script: master-bin/reclassify_bugged. * New custom script post_setup_forbid_home: replace /home with a file to prevent creating home directories there. (Closes: #677332) * New custom script post_install_find_bad_permissions: look for world writable directories without sticky bit set. -- Holger Levsen Mon, 03 Sep 2012 15:28:04 +0200 piuparts (0.45) unstable; urgency=low [ Holger Levsen ] * Merge piatti.git into piuparts.git, so that piatti.git has become obsolete now. Update documentation accordingly. * Further split packaging into piuparts-master, piuparts-slave and piuparts-common binary packages (Closes: #585861) and cleanup dependencies. * Update piuparts.NEWS about master+slave packages. * Switch to debhelper8 packaging. * debian/copyright: use versioned URI of the machine-readable copyright file, thanks lintian. * Move /etc/sudoers.d/piuparts to piuparts-slave package. * piuparts-master: depend on tango-icon-theme and drop sunny.png and weather-severe-alert.png and use links instead. * Reviewed and merged/cherry-picked all of the following changes. [ David Steele ] * Remove debian/postinst as it was only dealing with lenny time area configuration files. * Added server configuration files for apache, sudo, and cron. * Use dh_install, in preparation for multiple package build. * Added packaging to create the piuparts-server package out of the old piatti directory tree (Closes: #652934). - Create and configure piupartss and piupartsm users. - Coordinate ssh keys between master and slave users. - Create working directory tree for each under /var/lib/piuparts * packagesdb.py: - Calculate recursive reverse dependency count, and store in PackagesDB. - Calculate the count of packages being blocked by a failed package. * piuparts-report.py: - Release Section object when section processing is complete. (Closes: #673919) - Display reverse dependency counts and block counts to failure summaries. - Sort the failed-testing and cannot-be-tested summaries by block count. (Closes: #674498) - Replace O(n^2) search in remove_old_logs() with a hash piuparts-report run time improved 20% on mature environment. - Another search fix in create_package_summaries (find_links_to_logs) yielding a 10x speedup for piuparts-report runs. (Closes: #674672) - Cleanup/wrap some long source lines. - Cleanup/wrap some long html lines. - Allow the html root to be changed from / (piuparts.conf: e.g. [global] doc-root = /piuparts/). [ Andreas Beckmann ] * piuparts.py: - Implement --install-remove-install option to test installation in config-files-remaining state. (Closes: #359154) - Report leftover symlinks with target. - Report leftover directories with a trailing slash. - Allow ignore entries to specifically match directories. - Ignore patterns need to match the full filename, not a substring. - Cleanup and regroup ignore lists. + Remove many obsolete entries not needed for squeeze or later. + Group ignore entries into piuparts state, system state, package management, logfiles, home directories, application data, and HACKS. - Add to ignored_files/ignored_patterns: + Default system logfiles as created by syslogd in /var/log/ + Common empty directories in /etc not removed due to dpkg bug #316521 + cdebconf status files + /boot/grub/ + /etc/X11/default-display-manager + /etc/aliases.db + /etc/apt/trusted.gpg.d/.*.gpg~ + /etc/network/interfaces + /etc/news/whoami + /usr/share/keyrings/debian-archive-removed-keys.gpg~ + /var/crash/ + /var/lib/citadel/(data/.*)? + /var/lib/gozerbot/ + /var/lib/nagios/ (Closes: #668756) + /var/lib/openvswitch/(pki/.*)? + /var/spool/powerdns/ (Closes: #531134, #531135) - Implement a timeout for commands being run in the chroot. - Set time limit to 30 minutes per command. (Closes: #654423) - Terminate all processes running inside the chroot before removing the chroot; also in case piuparts aborts due to an error. - Continue killing running processes as long as new processes get spawned in the chroot. - Perform chroot cleanup after receiving Ctrl-C/SIGINT, too. - Let Chroot register/de-register the cleanup panic handler. - Remove temp_tgz on error exit. - Remove metapackage build directory on error exit. (Closes: #663702) - Don't remove eatmydata when minimizing a chroot. (Closes: #658962) - Add support for version-qualified package arguments (--apt foo=1.2-3). - Switch fallback mirror to http://cdn.debian.net/debian. * piuparts.conf: - Defaults for all [section] settings can be set in the [global] section. - Change master-command to not include the section name so that it can be set in the [global] section. The section name will be given as an argument to this command. - Make doc-root default to "/". - New per section key: area (set to one of main, contrib, non-free). - New defaults: mirror=http://cdn.debian.net/debian, area=main. - Compute URLs from mirror, distro, area, arch. - Removed deprecated keys: known_circular_depends, packages-url, sources-url. * master/db/report: Add a new category /affected/ for failed logs where the bug is in a dependency, but only exposed by the package being tested. - In the BTS these are reported as (Closes: #657740) Package: buggy-package Version: buggy-version Affects: package-under-test Found: package-under-test/tested-version - Reschedule /affected/ logs like /fail/ logs. * piupartslib/conf.py: - Add support for getting default values from a special section. - Add methods to get mirror, distro, area, arch from config file or defaults. - Add methods to compute URLs to Packages and Sources files. * piupartslib/packagesdb.py: - Do not consider a package as "untestable" if untestable/ contains a logfile from an obsolete version of that package. - Simplify handling of package and dependency states. - Do not inherit 'dependency-does-not-exist' state (which may be fixed in the package) but propagate it to 'dependency-cannot-be-tested'. - Remove 'no-dependency-from-alternatives-exists' state and use 'dependency-does-not-exist' instead. - Remove 'unknown-preferred-alternative' state as it interferes with circular dependencies involving alternatives and virtual packages. - Fix state resolution of package dependencies containing alternatives, virtual packages and circular dependencies. - Remove 'circular-dependency' state. - Stop using static known_circular_depends. - Compute dependency cycles and test packages on such cycles if all non-circular dependencies are satisfied. - Consider any combination of two error states for the blocking count. - Always run create_subdirs() during initialization. * piuparts-master.py: - Remove known_circular_depends handling. - Reduce logfile verboseness: do not include received logs. - Always chdir to master_directory, do not rely on being run from there. - Record timestamps of submitted logs in submissions.txt. * piuparts-slave.py: - Randomize waiting time (between 60 and 180 seconds) if master is busy. - Sleep until the next section can be tried, but at least 1 minute. - Simplify and merge Section.setup() into Section.__init__(). - Generate master command: use global setting and append section. - Test the 'dpkg' package for creating/updating a base_tgz. - Don't update the tarball for disabled sections. - Rewrite starting piuparts. - Rewrite stopping piuparts for more reliable cleanup. - Introduce Ctrl-C/SIGINT handling: press Ctrl-C once to exit after the current piuparts test has finished, press Ctrl-C again to cleanly terminate the currently running test, press Ctrl-C again to abort any ongoing cleanup. - Pass a version qualified package name (foo=1.2-3) to piuparts to ensure the correct package version gets tested. - Increase verboseness for untestable packages. - Remove idle.stamp functionality. * piuparts-report.py: - Remove known_circular_depends handling. - Exclude obsolete states from generated report. - Establish packagesdb working directory in Section. - Handle logs in /affected/ directories. - detect_well_known_errors: Add bug links if bugs are known. - New known problem: "packages have been kept back". - Report rdeps and blocking counts in all error state reports. - Fix another race with logfiles disappearing while copying. * piuparts-analyze.py: - Don't report further bugs/versions if we found a match. - Classify logs with bugs filed into /bugged/ or /affected/. - Write .bug files with links to the BTS. * detect_archive_issues: Only consider logs older than one day for marking as "untestable" to allow piuparts-analyze to handle the log first. * Replace all references to lenny and squeeze with squeeze and wheezy. * Add/update several bug reporting templates. * Add custom scripts to aid debugging common problems in maintainer scripts. * Add custom script for squeeze to ensure adduser, ucf, and install-info are not purged. * Add custom scripts to enable/perform additional cleanup procedures to reduce the "FAIL: Package purging left files on system" errors if --warn-on-leftovers-after-purge is not used. (Closes: #668752) * Ship custom scripts in the piuparts package. * Comment sudoers and crontabs shipped in the master/slave packages, requiring explicit editing after installation to activate them. * Bump debhelper and dpkg dependencies for using dpkg-maintscript-helper. * Remove obsolete /etc/piuparts/piuparts.conf from old piuparts package. * Ship /etc/piuparts/piuparts.conf in the piuparts-slave package. * Create missing home directories if the piupartsm/piupartss users remain from a previously purged installation. [ Leo Iannacone ] * piuparts.py: add --existing-chroot option, specify a directory as source for the chroot, instead of building a new one with debootstrap or decompressing an archived one. (Closes: #658044) [ Mika Pflüger ] * piuparts.py: Remove obsolete functions shellquote, apt_get_knows, and append_to_file. [ Mehdi Abaakouk ] * piuparts.py: Add support for schroot. (Closes: #530733) -- Holger Levsen Thu, 21 Jun 2012 22:17:26 +0200 piuparts (0.44) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - Add to self.ignored_patterns: /var/lib/ucf/.* - Increase output limit to 3 MB (for dist-upgrading daptup). - Do not miss Pre-Depends in --warn-on-others mode. - Remove packages and reinstall missing ones in one apt-get call. - Run 'apt-get dist-upgrade' (instead of upgrade) during chroot setup. * piupartslib/packagesdb.py: - Only consider the newest version of a package as test candidate. (Packages files may contain more than version of the same package.) * piuparts-master.py: - Implement simple section locking to allow concurrent master instances but allow only one instance per section. * piuparts-slave.py: - Do not leak the logfile file descriptor to piuparts. - Skip disabled sections (max-reserved = 0). - Do not abort if connection to master failed, just skip the section. - Do not abort if Packages file cannot be fetched, just skip the section. - Implement simple section locking to allow concurrent slave instances. - Sections wait before retry 15 minutes after error and one hour if idle. - Create idle.stamp files to remember idle sections for one hour and notify concurrent slaves about idle state. - Skip misconfigured sections that have neither 'distro' nor 'upgrade-test-distros' in their config. (Closes: #668863) * piuparts-report.py: - Add link to the list of untestable logs. - Add more known problem reports: forgotten alternatives, warnings in passed logs: leftover files and failed maintainer scripts. - Do not abort if logfiles disappear during copying. * Makefile: Install documentation with mode 0644 instead of 0755. [ Holger Levsen ] * piuparts-report: don't create output for disabled sections. (Bye bye Lenny!) * Bump Standards-Version to 3.9.3, no changes necessary. -- Holger Levsen Thu, 17 May 2012 14:36:53 +0200 piuparts (0.43) unstable; urgency=low [ Andreas Beckmann ] * piuparts.py: - 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/packagesdb.py: - Restrict circular-dependency state to packages on the circle. * piuparts-slave.py: - Fix chdir in/out of the slave dir to work with relative paths. * piuparts-report.py: - Reorder the list of known problem analyses and add a few new ones. - Correctly split + strip comma-separated lists. * piuparts-analyze.py: - 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. * piuparts-report.py: - add support for more static pages and add bug_howto.tpl, explaining how to file meaningful bugs piuparts-analyze understands. This page also links to the templates used for bug filing. * piuparts-slave.py: make status message more useful by including the section. -- Holger Levsen Sun, 22 Jan 2012 13:03:59 +0100 piuparts (0.42) unstable; urgency=low [ Holger Levsen ] * piuparts.py: - add to self.ignored_files: /etc/blkid.tab (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) * piuparts.py, piuparts-report.py, 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 ] * piuparts-analyze.py: - 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 package. - 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. * piuparts-slave.py: - 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) * piuparty.py: - 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/packagesdb.py: 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. * piuparts.py: - 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. /etc/apt/apt.conf.d/piuparts-foobar. - 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, PIUPARTS_DISTRIBUTION{,_PREV,_NEXT}. See the README for details. (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/packagesdb.py: - 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). * piuparts-master.py: - Add a 'status' command that reports package counts for all states. * piuparts-slave.py: - 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. * piuparts-report.py: - 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 versions. [ Dave Steele ] * piuparts-slave.py: make Section.run() report the number of packages processed and use this to decide whether a slave should sleep. (Closes: #649967) [ Stefano Rivera ] * piuparts.py: - Properly install and remove logrotate. (Closes: #638832) - Use eatmydata by default, add option --no-eatmydata. (This was discussed in #633033.) -- Holger Levsen Fri, 23 Dec 2011 10:51:28 +0100 piuparts (0.41) unstable; urgency=low * piupartslib/packagesdb.py: Apply patch by Scott Schaefer to also consider alternative depends: the algorithm used to select the "best" alternative is: 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) * piuparts-report.py: - 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. * piuparts.py: - 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 package * Makefile: build for python 2.6 and 2.7 instead of 2.5 and 2.6. * Source code is now stored in git. https://anonscm.debian.org/gitweb/?p=piuparts/piuparts.git git clone git+ssh://git.debian.org/git/piuparts/piuparts.git Thanks to Thomas Koch for setting those up and keeping history! * The configuration and scripts used on piatti.debian.org 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. -- Holger Levsen Wed, 24 Aug 2011 13:47:07 +0200 piuparts (0.40) unstable; urgency=low * piuparts.py: - 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. -- Holger Levsen Sat, 25 Jun 2011 21:20:31 +0000 piuparts (0.39) unstable; urgency=low [ Holger Levsen ] * The vintage of 2010 release! * piuparts-report.py: - 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/packagesdb.py: - 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 http://debian.semistable.com/debgraph.out.html - 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 regression. - 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. * piuparts-slave.py: - 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. * piuparts.py: - 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-essential. * 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 https://wiki.debian.org/DpkgConffileHandling [ Evgeni Golov ] * piuparts.py: - 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. -- Holger Levsen Tue, 04 Jan 2011 14:12:30 +0100 piuparts (0.38) unstable; urgency=low * piuparts.py: - 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) - 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 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. (This is the old default behaviour. In future versions the --minimize option might be removed again.) - Add two new options: --keyring to specify the keyring to use with debootstrap (defaults to /usr/share/keyrings/debian-archive-keyring.gpg) and --do-not-verify-signatures to not use --keyring with debootstrap. (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 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, which lets dpkg always choose the default action when a modified conffile is found. This options will make piuparts ignore errors it was designed to report and therefore should only be used to hide problems in dependent packages. (Closes: #466118) - Add another type of custom-scripts, post_setup_, which are executed after the chroot was setup. (Closes: #466043) - 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 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. * Update debian/NEWS. * Replace all references to sarge and etch with ones to lenny and squeeze. -- Holger Levsen 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. (Closes: #547439) * piuparts.py: - added to self.ignored_patterns: - /var/cache/man(/.*)? (Closes: #550953) - /var/lib/insserv/run.*.log - /var/lib/mercurial-server(/.*)? - removed from self.ignored_files: - /var/cache/man/index.db * fix typo in -i option in manpage (Closes: #555202), thanks to James Vega for spotting it. * Make "lucid" the default Ubuntu distribution (Closes: #559047), thanks to Krzysztof Klimonda. * fix FTBFS by adding "-r /etc/asciidoc" to the a2x call in Makefile, thanks to Michael Vogt. (Closes: #559299) -- Holger Levsen Thu, 03 Dec 2009 13:25:43 +0000 piuparts (0.36) unstable; urgency=low [ Holger Levsen ] * The "For me. For you. For everybody." release. * 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. * piuparts.py: - 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/trustdb.gpg and other backup files) - added to self.ignored_patterns: - /var/lib/dpkg/triggers/* - /var/lib/ldap(/.*)? (see #527898) - /var/backups/.* - modified self.ignored_patters: - ignore everything in /tmp, not just in /tmp/scripts (see #528266) - 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. - 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. - add "FAIL: " to logging output for seven more failure types, so that it becomes easier to group failure causes. - allow piuparts to be stopped with control-C. Thanks to Carl Chenet for the patch. (Closes: #523958) - 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 package is of priority "required", and not whether it's "Essential". - 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 Version and the Source package name in one line. - 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-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 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 without changelog entry. * piuparts-report.py: - support sections in configuration file. - support looping trough multiple sections in piuparts.conf via new config 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.) - introduce new setting "sources-url" for piuparts.conf. - generate sources.txt (per section) with a summary status per source package (for the PTS to display a source packages piuparts state) - generate html status pages for all source packages (to link from the PTS) with links to state explaination and available logfiles, handle udebs. - 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 installed) - thanks to Thomas Viehmann and Dirk Eddelbüttel for inspiration and support. - 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. (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 svn/piuparts/piatti/home/piupartsm/bin/detect_well_known_errors * Always use alphabetic time zone abbreviation in timestamps. * 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: - 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 - remove build-dependencies on docbook2x and docbook-xml. - suggest python-rpy and gs to improve piuparts-report output. - set Homepage: to http://piuparts.debian.org - remove Lucas Nussbaum, Ana Guerrero, John Wright and Bill Allombert from uploaders - thanks for your work! - Replace Ians email address with one that doesn't give an errorcode when 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 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. [ Lars Wirzenius ] * Removed Lars Wirzenius as uploader. -- Holger Levsen Tue, 08 Sep 2009 14:35:42 +0200 piuparts (0.35) unstable; urgency=medium * Fix recursive failure which occured when selinux-utils was installed but not enabled. Thanks to Peter De Wachter for the patch. (Closes: #519017) * Output path to temp directory if -k is used. (Closes: #466112) -- Holger Levsen Tue, 10 Mar 2009 00:43:22 +0100 piuparts (0.34) unstable; urgency=low [ Holger Levsen ] * Mount /selinux on systems where selinux is enabled. Thanks to Filippo Giunchedi for the patch! (CLoses: 507171) * Remove wrong advice in debian/copyright which irritated lintian. [ Filippo Giunchedi ] * Check for any output when running cron files in addition to exit code -- Holger Levsen Fri, 27 Feb 2009 12:34:31 +0100 piuparts (0.33) unstable; urgency=low * Added --bindmount option, thanks to Aníbal Monsalve Salaza for the patch. (Closes: #496186) -- Holger Levsen Sat, 08 Nov 2008 17:07:22 +0000 piuparts (0.32) unstable; urgency=low [ John Wright ] * Fix a typo in how-to-use-piuparts.txt. [ Holger Levsen ] * Replace all references to sarge and etch with etch and lenny. (Closes: #466111) * 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. -- Holger Levsen Fri, 17 Oct 2008 10:28:14 +0000 piuparts (0.31) unstable; urgency=low [ Lars Wirzenius ] * piuparts.docbook: Added a few words of description of the tarball that -b expects. (Closes: 466048) [ Lucas Nussbaum ] * Added a --debfoster-options option, to allow the user to override debfoster's default options and test with more packages installed in the chroot. (Closes: #458922) * Mention piuparts -s in in how-to-use-piuparts.txt. * Finally fixes the check for broken symlinks. Thanks go to Tobias Grimm for the patch. (Closes: #468157, 478587) * Ignore /var/cache/ldconfig/aux-cache. * Added myself to uploaders. * Keep /proc mounted. Switch to calling tar directly in pack_into_tgz(). Minor refactorings. Thanks go to Tobias Grimm for the patch. (Closes: #478577) * Move piuparts to priority: extra, since it depends on debootstrap which is extra. (Closes: #477634) [ Luk Claes ] * Added -w to lsof call to suppress warnings. (Closes: #466102). [ Holger Levsen ] * Add a copyright statement to debian/copyright. * Add support for post_upgrade custom script. * Minor fixes in how-to-use-piuparts.txt. * piuparts.docbook: Correct the path to dtd, it's /usr/share/xml/docbook/schema/dtd/4.1.2/docbookx.dtd and add a build-dependency for docbook-xml -- Holger Levsen Sun, 11 May 2008 22:17:52 +0200 piuparts (0.30) unstable; urgency=low * piuparts.py: - Implement Chroot.create_temp_tgz_file() (since it's used in the VirtServ subclass) - Fix a typo -- chroot.create_temp_tgz() was being called instead of chroot.create_temp_tgz_file() (Closes: #465416) -- John Wright Thu, 14 Feb 2008 20:32:35 -0700 piuparts (0.29) unstable; urgency=low [ Ana Beatriz Guerrero Lopez ] * Updated uploaders, remove Amaya and Alastair. [ Lars Wirzenius ] * piuparts.py: Call "apt-get update" before calling Chroot.minimize, so that we can find the debfoster package on Ubuntu. * debian/control: Fixed "Uploaders:" to have my preferred e-mail address (liw@iki.fi) instead of my Debian one. * piuparts.py: Added -D option to set Debian flavor, plus two sets of default settings depending on the flavor, one for Debian itself, and another for Ubuntu. The settings choose default mirror and distribution set (sid vs gutsy). This will allow an Ubuntu version of the package to set defaults at package building time. * piuparts.py: Report target of broken symlink correctly, instead of saying "True". * piuparts.py: Use lsb-release to guess the Debian flavor. * debian/control: Added dependency on lsb-release. * piuparts-master.py: Make the master write summary of total pass/fail packages, plus status per binary package. This is for having the Debian PTS and the Ubuntu developer weather report show summaries of piuparts results. * integraged changes from Ubuntu by Ian Jackson to support autopkgtest. * wrapped long lines in debian/control. [ Holger Levsen ] * Added myself to uploaders. * Added Homepage: header to debian/control and changed the homepage to be https://wiki.debian.org/piuparts. * Use Vcs-* headers in debian/control instead of XS-Vcs-*. * Bumped policy version to 3.7.3. * Updated download location in debian/copyright. [ John Wright ] * Change the --warn-on-others implementation to create a dummy metapackage with the needed dependencies and install it in the chroot, rather than using "apt-get install package package-". The previous implementation had issues when the package was already installed (and especially if the package had essential packages in its reverse dependencies). This has the pleasant side-effect of making --warn-on-others work both with and without --apt. (Closes: #458929) * Fix a bug in check_for_broken_symlinks(): the targets for the broken symlinks (used for logging) were being read from files on the real root filesystem, rather than in the chroot. -- Lars Wirzenius Fri, 01 Feb 2008 16:38:38 +0200 piuparts (0.28) unstable; urgency=low * Fix an UnboundLocalError introduced in the --warn-on-others fix that would occur if run without the --apt option. (Closes: #443641) -- John Wright Sat, 22 Sep 2007 23:32:17 -0600 piuparts (0.27) unstable; urgency=low * Add support for testing multiple distributions and architectures to piuparts-master.py and piuparts-slave.py. Please see the README file, piuparts-master.conf.sample and piuparts-slave.conf.sample for more details. (Closes: #349365) * Fix the --warn-on-others option. Now, dependencies are installed before the packages we wish to test, and an inventory is taken then, so that we can know which errors were caused by the packages explicitly specified on the command-line. Currently, this requires --apt, and doesn't work quite as advertised if there are circular dependencies with the packages you wish to test (see the man page for more details). (Closes: #440310) * debian/control: - Update my email address in the Uploaders field -- John Wright Sun, 16 Sep 2007 22:28:14 -0600 piuparts (0.26) unstable; urgency=low * Update list of ignored files. (Closes: #439592) * In the cron test, not executable files are not run. (Closes: #440141) -- Ana Beatriz Guerrero Lopez Fri, 31 Aug 2007 15:44:36 +0200 piuparts (0.25) unstable; urgency=low * Add the option to run custom scripts inside the piuparts chroot. Scripts are stored in a directory and give it as argument with the option --scriptsdir=/dir/with/the/scripts This feature is still experimental :) * Add custom-scripts.txt with information about the custom scripts. -- Ana Beatriz Guerrero Lopez Tue, 28 Aug 2007 14:39:32 +0200 piuparts (0.24) unstable; urgency=low * Add /var/lib/apt/extended_states to ignored_files. Thanks Anibal! (Closes: #434980) * Add quick howto about how to use piuparts under docs. * Add test that checks the output from the cron files left in the system after removing a package. This includes the option --skip-cronfiles-test, to allow skipping this test. -- Ana Beatriz Guerrero Lopez Mon, 20 Aug 2007 10:27:29 +0200 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 to the chroot after the package's installation. (Closes: #431821) * Add option --no-upgrade-test, that allows skip testing upgrade from an existing version in the archive. (Closes: #349933) -- Ana Beatriz Guerrero Lopez Tue, 10 Jul 2007 19:47:21 +0200 piuparts (0.22) unstable; urgency=low [ John Wright ] * debian/control: - Add XS-Vcs-Svn and XS-Vcs-Browser fields [ Ana Beatriz Guerrero Lopez ] * Rename piuparts.py.in back to piuparts.py. * 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. (Closes: #431248) * Drop support for python 2.3 and add support for python 2.5. * debian/rules: - Remove execution of checkversion in package build, not longer needed. * debian/control: - Add myself to uploaders. - Add (future) piuparts website. -- Ana Beatriz Guerrero Lopez Wed, 04 Jul 2007 21:03:44 +0200 piuparts (0.21) unstable; urgency=low * Convert to Debian-native packaging style. From now on, changes to piuparts will be tracked here. (Closes: #389610) * Makefile: - Give docbook2x-man a --encoding=utf-8 argument. It was failing to build. - Generate piuparts.py from piuparts.py.in, filling in the VERSION variable with the version from debian/changelog * debian/control: - Fix the name of the maintainer (we're the "piuparts developers team", not Lustre) - Correct my email address in the uploaders field - Add Build-Depends on m4 * piuparts.py.in: - Don't call shellquote() on arguments, since we're not using the shell. (Closes: #386839) - Add a --warn-on-others option. See the man page for details. * piuparts.docbook: - Document the --warn-on-others option. -- John Wright Thu, 21 Jun 2007 00:27:22 +0100 piuparts (0.20-3) unstable; urgency=low * New Maintainer(s): piuparts team. Closes: #390754. -- Alastair McKinstry Mon, 23 Oct 2006 16:02:19 +0100 piuparts (0.20-2) unstable; urgency=low * Orphaning. -- Lars Wirzenius Mon, 2 Oct 2006 23:43:00 +0300 piuparts (0.20-1) unstable; urgency=low * New upstream version. Fixed Debian bugs: - Symlink correctness checking was broken when symlinks pointed at symlinks. (Closes: #387796) - fails if a deb filename contains a "strange" char. (Closes: #386839) -- Lars Wirzenius Fri, 22 Sep 2006 12:58:24 +0300 piuparts (0.19-1) unstable; urgency=low * New upstream version. No Debian bugs fixed. -- Lars Wirzenius Fri, 8 Sep 2006 20:28:31 +0300 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 files. -- Lars Wirzenius Thu, 7 Sep 2006 20:42:03 +0300 piuparts (0.17-1) unstable; urgency=low * debian/control: Added dependency on lsof, since that is now used to check that there are no processes running inside the chroot. * New upstream version, fixes the following open bugs in Debian: - missing words in piuparts(1) (Closes: 362551) - default ignore pattern for papercut files added (Closes: #355401) -- Lars Wirzenius Sun, 25 Jun 2006 19:35:19 +0300 piuparts (0.16-1) unstable; urgency=low * 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) - It would be nice if the chroot were updated before the snapshot (Closes: #356678) * debian/control: Made the dependency on debootstrap be versioned. Closes: #355875. -- Lars Wirzenius Wed, 22 Mar 2006 22:40:00 +0200 piuparts (0.15-1) unstable; urgency=low * New upstream version. Includes fixes for Debian bugs: - "Specify packages to use for testing" (Closes: #354811) - "Misleading documentation of -v" (Closes: #352941) -- Lars Wirzenius Wed, 01 Mar 2006 20:53:00 +0200 piuparts (0.14-1) unstable; urgency=low * New upstream version. Includes fix for: - "piuparts should flag as an error a failed installation of a dependency" (Closes: #343324) -- Lars Wirzenius Sun, 18 Dec 2005 23:22:00 +0200 piuparts (0.13-1) unstable; urgency=low * New upstream version. * debian/changelog: Minor tweaking to the description. -- Lars Wirzenius Sat, 12 Nov 2005 00:53:04 +0200 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 feature). Closes: #330749. -- Lars Wirzenius Mon, 17 Oct 2005 21:03:12 +0300 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. Closes: #326705. -- Lars Wirzenius Fri, 14 Oct 2005 01:16:25 +0300 piuparts (0.10-1) unstable; urgency=low * New upstream version. -- Lars Wirzenius Thu, 15 Sep 2005 23:31:30 +0300 piuparts (0.9-1) unstable; urgency=low * New upstream version, fixes bugs reported against Debian: - Upstream version number in Debian package and in upstream sources now match. Closes: #326058. - Files reported by piuparts are now associated with their packages, when possible. Closes: #324248. * debian/rules: Added "checkversion" target to make sure we no longer do stupid things like #326058, at least in the Debian package. -- Lars Wirzenius Fri, 09 Sep 2005 00:34:36 +0300 piuparts (0.8-1) unstable; urgency=low * New upstream version, fixes bugs: - Example in manual page now works (Closes: #319990) - Temporary directories are now removed on failure (Closes: #323653) - Parsing /etc/apt/sources.list now better (Closes: #319989) - Temporary directorys are now put in $TMPDIR or /etc (Closes: #322440) * debian/control: Added build-depends on docbook2x. Closes: #318693 * debian/changelog: Added note about upstream source repository. -- Lars Wirzenius Mon, 29 Aug 2005 23:03:32 +0300 piuparts (0.7-1) unstable; urgency=low * New upstream version. * This is the first package that will be uploaded to the Debian archive. -- Lars Wirzenius Fri, 15 Jul 2005 13:09:00 +0300 piuparts (0.6-1) unstable; urgency=low * First release of the Debian package. -- Lars Wirzenius Tue, 5 Jul 2005 20:08:00 +0300