piuparts (0.62+deb8u1) stable; urgency=medium [ Stefano Rivera ] * Don't test the current Debian release status, tracking that is distro-info-data's problem. (Closes: #827411) -- Holger Levsen Fri, 02 Sep 2016 20:23:20 +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-analyse 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 Fri, 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