piuparts (0.84) unstable; urgency=medium

  * debian/control:
    - Add "Rules-Requires-Root: no" to support building as non-root.
      (I've also confirmed that the build output is bit by bit identical with
      and without this.)
    - Bump standards version to 4.1.3, no changes needed.
  * piuparts-report.py: credit Andreas properly.
  * Bump debian/compat to 11 and build-depend on debhelper >= 11~.

 -- Holger Levsen <holger@debian.org>  Fri, 16 Feb 2018 12:34:20 +0000

piuparts (0.83) unstable; urgency=medium

  [ Andreas Beckmann ]
  * distros.conf:
    - Add experimental-debug.
  * piuparts.conf.anbe: Add some more example sections.
  * piupartslib/packagesdb.py:
    - Add new package data accessors name(), version(), test_versions().
    - Use test_versions() in all places referring to a piuparts test.
    - Set test_versions while loading versions from the final target distro.
    - Use the actual package versions for resolving the "outdated" state.
  * piuparts-analyze.py:
    - Merge report_newly_bugged_packages and process all sections.
  * piuparts-report.py, detect_well_known_errors.py, piuparts-analyze.py:
    - Use global locks to allow only one running instance of each script.
    - Acquire section locks to prevent concurrent processing of a section,
      including piuparts-master access.
    - Postpone busy sections and retry them later.
    - Run as three separate cronjobs.
  * conf/crontab-master:
    - Run detect_well_known_errors every three hours to avoid accumulating a
      large backlog of new logfiles.
    - Run piuparts-analyze twice per day.
    - Try piuparts-report every three hours s.t. we start 2-3 runs per day
      even with running times above 8-12 hours.
    - Run detect_{piuparts,network}_issues a short time before trying
      piuparts-report to exclude (most of) these logfiles from the report.
  * master-bin/report_newly_bugged_packages: Remove, merged into
    piuparts-analyze.
  * scripts/pre_distupgrade_zz_database-server: wheezy->jessie: Restart
    postgresql before upgrading the cluster, working around #882409.
  * Update policy references, the permalinks changed with the new toolchain.
  * Add bug template for failing to reinstall a package.
  * Adjust known_problems patterns for dpkg 1.19 message changes.

  [ Holger Levsen ]
  * dwke.py/-analyze.py/-report.py: quietly exit if another process is still
    running.
  * master-bin/detect_well_known_errors.py: compress output.
  * Bump standards version to 4.1.2, no changes needed.

 -- Holger Levsen <holger@debian.org>  Fri, 15 Dec 2017 11:12:13 +0000

piuparts (0.82) unstable; urgency=medium

  * Move xmlto from Build-Depends-Indep to Build-Depends.

 -- Holger Levsen <holger@debian.org>  Sat, 07 Oct 2017 17:30:19 +0200

piuparts (0.81) unstable; urgency=medium

  [ Andreas Beckmann ]
  * piuparts.py:
    - Add to ignored_files:
      + /var/log/tallylog  (Closes: #877592)
    - Run post_chroot_unpack scripts before initial apt-get update.
  * piuparts-analyze.py:
    - Add PiupartsBTS, a caching wrapper around debianbts.
  * General python code and style cleanup.
    Consistently use 'with open(...) as ...:' for scoped open files.
  * scripts/{pre,post}_test_exceptions: Add exception to prevent testing
    corekeeper from changing the core file settings in the running kernel.
  * scripts/pre_distupgrade_zz_database-server: sid/buster has postgresql 10.
  * Separate scripts-lenny/ from scripts-squeeze/.
  * scripts-squeeze/post_{setup,distupgrade}_squeeze-fake-essential:
    - Treat install-info as fake-essential for all tests ending in squeeze.
  * scripts-broken-symlinks/post_install_extras_unbreak_symlinks: Unbreak more
    symlinks.  (Closes: #857151)
  * master-bin/detect_piuparts_issues: Detect another way of 'apt-cache show'
    failing.  (Closes: #877417)
  * master-bin/distill_alternatives_log: Parse piuparts.conf to find the
    sections that use scripts-log-alternatives.
  * master-bin/generate_daily_report: Most parts are now separate cronjobs.
  * Add bug template for stable -> sid file overwrite errors.
  * Use copyright notices without FSF street address.

  [ Simon McVittie ]
  * Consider the /usr merge to be acceptable variation. Files that the
    dpkg database considers to be in /bin, /sbin, /lib/**, /lib*/**
    are now allowed to be physically in /usr/bin, etc. due to symlinks in
    the root directory, as created by usrmerge or debootstrap --merged-usr.
    (Closes: #860433)

  [ Holger Levsen ]
  * Fix syntax errors in git snapshot running on piuparts.debian.org, thanks
    to Boud Roukema and Philipp Huebner for the reports.
    (Closes: #875605, #875664)
  * Drop code to support using autopkgtest as a test backend. This code was
    merged in 2008 from Ubuntu, but it's unclear (and unlikely) that it still
    works. Also it never has really been supported. (See #815084)
  * Bump standards version to 4.1.1, no changes needed.
  * Update TODO.

  [ Michael Stapelberg ]
  * piuparts-distill: correctly handle errors.

 -- Holger Levsen <holger@debian.org>  Thu, 05 Oct 2017 15:56:25 +0200

piuparts (0.80) unstable; urgency=medium

  [ Michael Stapelberg ]
  * debiman-piuparts-distill:
    - increase maximum token size.
    - bugfix: wait until all results are collected.
    - don’t print all results.
  * distill_alternatives_log: also process buster.

  [ Holger Levsen ]
  * Move asciidoc to from Build-Depends-Indep to Build-Depends. (Newly needed
    because d697f2991 changed piuparts-master to an arch:any package.) Thanks
    to Adrian Bunk. (Closes: #873825)

 -- Holger Levsen <holger@debian.org>  Thu, 31 Aug 2017 17:38:11 +0200

piuparts (0.79) unstable; urgency=medium

  [ Holger Levsen ]
  * slave-run: properly delete all screenlogs from previous runs.
  * Bump standards version to 4.1.0, change priority from extra to optional.
  * Depend on debhelper >= 10.2.5~ and bump debian/compat to 10.

  [ Andreas Beckmann ]
  * piuparts.py:
    - Do not ignore errors while purging packages.
    - Add post_test_* custom scripts. These are run exactly once at the end
      of each test (before comparing with the reference chroot state).
    - is_testable_* custom scripts can use return value '2' to make a test
      fail without actually installing the package. Use for (unfixable)
      packages that would fail anyway, but are resource hogs or otherwise
      break piuparts.
    - Silence diff_meta_data() for "others" for --warn-on-others.
    - Store the initial package selections in the --save-end-meta meta-data
      and ignore meta-data from --end-meta if these selections don't match,
      e.g. due to different fake-essential package sets.
    - Let debsums always ignore obsolete conffiles.
    - Run debootstrap with --no-merged-usr.
  * distros.conf:
    - Add wheezy-lts as a full distro.
  * piuparts.conf:
    - Use relative expiration ages.
    - Use wheezy-lts as upgrade target and rename sections:
      + [wheezy2proposed] => [wheezy2lts]
      + [squeeze2wheezy-proposed] => [squeeze2wheezy-lts]
    - [squeeze2bpo2wheezy]: Use wheezy-lts as final upgrade target.
  * piuparts.conf.anbe: Add some more example sections.
  * Move some exceptions to scripts/{pre,post}_test_exceptions.
  * scripts/post_distupgrade_base_cleanup: Remove pinentry-curses from the
    stretch (--install-recommends) reference chroot.
  * scripts/is_testable_uninstallable:
    - squeeze: Skip and fail install of mini-buildd-{bld,rep}.
    - jessie->stretch: Skip distupgrade of arden:i386.
  * scripts/pre_distupgrade_zz_database-server: Improve some upgrade paths.
  * scripts/post_purge_exceptions:
    - Restore /usr/lib/sasl2/ disappearing on some jessie->stretch upgrades.
  * Add/update exceptions for some ancient packages.
  * master-bin/reschedule_oldest_logs: Expiration age values starting with "+"
    are relative to the rescheduling age.
  * master-bin/detect_network_issues: Detect appstream metadata errors.
  * master-bin/rotate_master_logs: New daily cronjob to rotate and compress
    (with one day of delay) master logfiles larger than 1 MB.
  * slave_run: Ensure screen is run with SHELL=/bin/bash.
  * Makefile: Split build and install targets between master and slave.
  * Bump debsums dependency to (>= 2.2.2~) for --ignore-obsolete.
  * Depend on mount, no longer essential.

  [ Michael Stapelberg ]
  * helpers/debiman-piuparts-distill: New helper for parsing the output
    generated from scripts-log-alternatives.  (Closes: #863089)
  * master-bin/distill_alternatives_log: Run debiman-piuparts-distill on the
    sections that use scripts-log-alternatives. Runs as a daily cronjob.

 -- Holger Levsen <holger@debian.org>  Wed, 30 Aug 2017 15:31:34 +0200

piuparts (0.78) unstable; urgency=medium

  [ Andreas Beckmann ]
  * piuparts.py:
    - Refactor internal handling of reference chroot state.
    - Do not run custom scripts before/after installing fake essential
      packages.
    - Only warn on broken symlinks found between installing the dependencies
      of the package to be tested and installing the package itself.
    - Keep track of md5sums of the list of available packages in the chroot
      to recognize mirror pushes during distupgrade tests and outdated
      --end-meta meta-data.
    - Mount a new devpts instance on /dev/pts and /dev/ptmx inside the chroot
      for better pty separation from the host. Mount the current tty onto
      /dev/console in the chroot. Inspired by pbuilder.
    - Arguments to the --ignore/--ignore-regexp options (and internal
      ignored_files/ignored_patterns settings) that are prefixed with a ':'
      will verbosely log the ignored files if matched.
    - New option --upgrade-before-dist-upgrade for 2-stage upgrades:
      'apt-get upgrade && apt-get dist-upgrade'.
    - Do not ignore errors while removing packages.
    - Run panic handlers before aborting due to an unhandled exception.
  * piuparts.conf:
    - Use more aliases for mapping between releases and codenames to reduce
      the amount of changes needed on "moving targets" (like stable22sid)
      after a stable Debian release.
    - Set keyring for archived distros to debian-archive-removed-keys.gpg.
    - Add new suites: [jessie2Xstretch], [jessie2Xstretch-rcmd] for testing
      two-stage upgrades (apt-get update && apt-get dist-upgrade) from jessie
      to stretch (without and with --install-recommends).
    - Enable [stretch2proposed].  (Closes: #864933)
    - Use --warn-on-debsums-errors for tests ending in stretch.
    - Rotate aliases for testing=buster and stable=stretch.
    - Add new suites: [buster], [buster-rcmd], [stretch2buster],
      [stretch2buster-rcmd] for testing buster.
    - Add new suites: [stretch2bpo], [stretch2bpo2buster] for testing
      stretch-backports.
    - New (per-section) conffile setting: 'exclude-known-problems' can be set
      to a list of known problem iconffile names that should *not* be used for
      this section.
  * piuparts.conf.anbe: Add some more example sections.
  * distros.conf: Add support for buster-debug, buster-proposed-updates.
  * piupartslib/packagesdb.py:
    - Add new state "outdated" to ignore packages if a dependency distro
      already has a newer version.  (Closes: #856846)
    - Resolve packages in "outdated" state after dependency databases are
      initialized.
  * piuparts-slave.py:
    - Run piuparts on dummy package "TARBALL" (but skip tests) to create
      tarballs.
    - Add "chroot-meta-auto" config option to automatically maintain cached
      target chroot meta data (using --end-meta and --save-end-meta) for
      distupgrade tests instead of generating it on-the-fly.
    - Flush pending logfiles upon startup.
  * piuparts-analyze.py:
    - Process newest logfiles first, in case of timeouts.
    - Drop report_packages_with_many_logs(), obsoleted by archiving old logs.
    - Remove support for magic "$DISTRO/None" versions.
  * piuparts-report.py:
    - Plot all states in the graphs.
    - Support new states in plots (varying number of columns in counts.txt).
    - Reorder stacking in the bts_stats plot.
    - Defer rewriting unmodified maintainer and source summaries, refresh them
      once per month.
  * custom-scripts: Check for dummy package "TARBALL" to detect tarball
    creation phase.
  * scripts/is_testable_uninstallable:
    - Add exceptions to skip distupgrades of many buggy ancient packages.
      (Closes: #688250, #696081)
  * scripts/post_setup_dummy_users: Skip regular users when testing dpsyco*.
  * scripts/pre_distupgrade_exceptions:
    - Disable APT::Immediate-Configure on some squeeze->wheezy upgrade paths.
    - Add exceptions for old buggy packages.
  * scripts/post_{setup,distupgrade}_zz_backports: Avoid downgrading
    systemd/udev from jessie-backports to jessie during removal phase.
    (Closes: #856845)
  * scripts/post_distupgrade_exceptions: Add stretch->buster workarounds:
    - Remove empty unowned /etc/dbus-1/, /etc/dbus-1/system.d/.
    - Change permissions from 0755 to 0700 on /var/lib/polkit-1/.
  * scripts-broken-symlinks/post_install_extras_unbreak_symlinks: New script
    for "fixing" some broken symlinks (e.g. by installing selected suggested
    packages) in tests using --fail-on-broken-symlinks.
  * scripts-debug-triggers/: New scripts for enabling dpkg trigger debugging.
  * conf/crontab-*: Set PATH and run scripts without absolute path.
  * master-bin/detect_archive_issues:
    - Look at failed logs older than 24 hours (48 hours previously).
    - Mark logfiles for immediate recycling upon first appearance.
    - Run twice per day, moving new logs to untestable within 24-36 hours.
  * master-bin/detect_network_issues:
    - Report the issues found in each logfile.
    - Detect alternate wording of gpg verification error.
    - Detect master and slave disagreement on the "current" version of a
      package due to using different mirrors and ongoing mirror push.
  * master-bin/detect_piuparts_issues:
    - Report the issues found in each logfile.
    - Recognize more problems caused by a full filesystem.
    - Recognize more failures when connecting to databases.
  * master-bin/detect_well_known_errors: Ignore known_problems conffiles
    listed in 'exclude-known-problems' in piuparts.conf.
  * Add known_problems/trigger_cycle_error.conf to report trigger cycles and
    other trigger problems.
  * Add bug templates for failing to upgrade from stretch to buster.
  * Update bug templates for long grown upgrades ending in buster.

  [ Holger Levsen ]
  * update TODO. Work on buster has begun. o/
  * generate_daily_report.in: only add runtime to external script output if
    not already included.
  * master-bin/report_untestable_packages.in:
    - also report runtime.
    - only act on sections with precedence < 100.
  * master-bin/detect_network_issues.in:
    - dynamically report detected issues.
    - move check for outdated reference chroot to detect_piuparts_issues.
  * master-bin/detect_piuparts_issues.in:
    - dynamically report detected issues.
  * instances/piuparts.conf-template.pejacevic:
    - Add new suites to be tested:
      - stable2sid, upgrading stretch -> sid (skipping testing/buster) to find
        possible upgrade problems before a package migrates to testing
      - stable22sid, upgrading stretch -> buster -> sid
      - oldstable222sid, upgrading from jessie -> stretch -> buster -> sid
        (Closes: #859620)
    - Adjust precedences for most of the tested suites, set precedence to 100
      for suites which don't change anymore.
    - Set idle-sleep to 3600 seconds, the results pages are only updated twice
      a day anyway.
  * Update README_server.txt.
  * htdocs/index.tpl: announce new suites.

 -- Holger Levsen <holger@debian.org>  Mon, 31 Jul 2017 13:32:50 -0400

piuparts (0.77) unstable; urgency=medium

  [ Andreas Beckmann ]
  * distros.conf:
    - Add aliases for oldstable and oldoldstable.
    - Update aliases for stretch being released as stable.
  * piuparts.py:
    - Add to ignored_files:
      + /etc/rc.local
      + /etc/X11/Xwrapper.config  (Closes: #859929)
      + /var/lib/apt/daily_lock
  * piuparts-analyze.py:
    - Do not ignore Ctrl-C.
  * scripts/post_distupgrade_base_cleanup: Remove (transitional) sysvinit from
    stretch.  (Closes: #860819)
  * scripts/pre_distupgrade_zz_database-server: Do not migrate manually from
    mysql-server to default-mysql-server (aka mariadb-server), there is now a
    transitional mysql-server package in stretch.

  [ Holger Levsen ]
  * piuparts-report.py:
    - update navigation to point to piuparts.conf-template.pejacevic.

 -- Holger Levsen <holger@debian.org>  Sat, 03 Jun 2017 23:08:19 +0200

piuparts (0.76) unstable; urgency=medium

  [ Andreas Beckmann ]
  * piuparts.py:
    - Add to ignored_files:
      + /usr/share/texmf/ls-R
    - Remove from ignored_files:
      - /usr/share/keyrings/debian-archive-removed-keys.gpg~
    - Do not require --scriptsdir for proper operation.  (Closes: #855038)
    - Make install_over_symlink tests fail by default, add
      --warn-on-install-over-symlink option to demote this to a warning.
    - Add --install-suggests option.
    - Fall back to generating the reference chroot state on-the-fly if the
      --end-meta file is missing.
    - Make logged command lines shell-safe with pipes.quote().
  * piuparts.conf:
    - Use --warn-on-install-over-symlink for tests ending before stretch.
    - Enable scripts-log-alternatives for [sid] and [stretch].  (See: #850917)
    - Add new suite: oldstable22testing, upgrading wheezy -> jessie -> stretch.
  * piuparts.conf.anbe: Add some more example sections.
  * distros.conf: Add support for sid-debug, stretch-debug.
  * piuparts-slave.py:
    - Replace literal ESC (0x1b) chars with string '[ESC]' for easier
      copy+paste from logfiles.
    - Make logged command lines shell-safe with pipes.quote().
  * piuparts-analyze.py:
    - Also process untestable/*.log.
  * instances/*: Generate the config files piuparts.conf.pejacevic,
    piuparts.conf.piu-slave-bm-a, piuparts.conf.piu-slave-ubc-01 (new) and
    piuparts.conf.piu-slave-1und1-01 (unused) from a common template to keep
    the settings in sync, since they should only differ in mirror and arch.
  * Clean up leftover /etc/piuparts/scripts/post_setup_experimental.
    (Closes: #854317)
  * scripts/post_setup_minimize:
    - Exclude gcc-4.8-base from jessie chroot.
  * scripts/pre_install_database-server: Add/fix some database requirements.
  * scripts/pre_distupgrade_zz_database-server: Switch from mysql-server to
    default-mysql-server (aka mariadb-server) for selected packages on
    upgrades to stretch, otherwise they will lose their database server.
    Try 'dpkg --configure --pending' after failed upgrades in case the
    database server was started too late - after a client tried to access it.
  * scripts/pre_remove_40_find_missing_md5sums: Correctly escape backslashes
    in filenames.
  * scripts/pre_remove_exceptions: Handle removal of more packages pulling in
    'init'.
  * Add/update exceptions for ancient packages in
    scripts/is_testable_uninstallable, scripts/pre_install_exceptions, and
    scripts/post_distupgrade_exceptions.
  * master-bin/detect_piuparts_issues: Recognize more cases of full disks.
  * master-bin/detect_network_issues: Recognize unauthenticated packages.
  * Add known_problems/problems_and_no_force_issue.conf to recognize non-fatal
    failures when attempting to remove essential packages.
  * Add bug template for failing to upgrade from testing to sid.
  * Add bug template for shipping broken symlinks.

  [ Holger Levsen ]
  * piuparts.py:
    - Apply patch from Maxime Lareo to allow usage of --keep-sources-list
      without --basetgz. (Closes: #841157)
    - Add to ignored_patterns:
      + /srv/.* (Closes: #848186)
    - Add my copyright note according to git blame.
  * Add python (>= 2.7) to the depends of piuparts-master and piuparts-slave
    as dh-python has been changed to only add python depends if it finds
    python code in PATH. Thanks lintian.
  * Replace httpredir.debian.org with deb.debian.org everywhere: with deb.d.o
    apt will use SRV records to go directly to the mirror, with httpredir.d.o
    there will be http redirects for every file.
  * slave_run: Fix bug which prevented a different number of slaves to be
    started than defined in the configuration. Also add a check to ensure that
    this optional argument is an integer and within the defined maximum number
    of slaves.
  * slave_stop: New script to stop all piuparts-slaves on a host.
  * slave_stop.8: Add new manpage for this new script, also update slave_run.8
    to mention slave_stop.8.
  * Update README_pejacevic.txt and README_server.txt.
  * Drop instances/piuparts.conf.lamarr and …/piuparts.conf.goldwasser.
  * htdocs/index.tpl:
    - Announce 2nd piuparts-slave, explain this is a three host setup now,
      mention that pejacevic is a four core system and other news.
    - Make "contribute" a link.
  * archive_old_logs: use xargs -P $NUM_CPU and -n 1 to compress old logs in
    parallel.
  * update-piuparts-(master|slave)-setup: touch $PIUPARTS_TMPDIR/.nobackup to
    exclude it from backups made by DSA.
  * conf/crontab-master.in: run piuparts-report twice a day instead of trying
    four times a day, which hasn't worked out for a long time.
  * generate_daily_report.in: measure runtime of this script and the scripts
    started by it.
  * detect_(network|piuparts|archive)_issues.in: measure runtimes too.
  * reschedule_oldest_logs.in: measure runtime.

  [ Michael Stapelberg ]
  * Add support for logging update-alternatives calls using optional
    custom-scripts/scripts-log-alternatives/  (Closes: #850917)

 -- Holger Levsen <holger@debian.org>  Sun, 12 Mar 2017 17:55:07 +0100

piuparts (0.75) unstable; urgency=medium

  [ Andreas Beckmann ]
  * piuparts.py:
    - Add to ignored_files:
      + /etc/network/
      + /etc/php/7.0/ and selected subdirs
      + /var/lib/apache2/
    - Run panic handlers in reverse order.
    - Add --shell-on-error option to simplify debugging of piuparts failures.
      Starts an interactive shell in the chroot if an error occurred.
    - Unmount /proc/sys/fs/binfmt_misc only if mounted.
    - Query the apt version in the chroot.  (Closes: #851517)
    - Use apt_pkg.version_compare().
  * piuparts.conf:
    - Add new suite: stretch-rcmd (test with --install-recommends).
    - Add new suite: jessie2stretch-rcmd (test with --install-recommends).
    - Add new suite: stretch-security.
    - Add new suite: stretch-pu (test packages in stretch-proposed-updates).
    - Add new suite: stretch2proposed.
    - Reduce delay before rescheduling untestable packages.
  * piuparts-analyze.py:
    - Adjust debianbts syntax to be compatible with both jessie and stretch.
    - Improve exception handling.
  * Handle more database setup issues.
  * Add/adjust some exceptions for ancient packages.
  * scripts/pre_install_extras: Add examples how to preseed license acceptance
    for non-free and downloader packages.
  * scripts/pre_distupgrade_zz_database-server: Run pg_upgradecluster during
    dist-upgrades.
  * scripts/post_distupgrade_hack_debsums: Limit to squeeze->wheezy and merge
    into scripts/post_distupgrade_exceptions.
  * scripts/{pre,post}_remove_exceptions: Support removal of essential
    packages with apt-get from stretch onwards.
  * known_problems/piuparts-depends-dummy_error.conf: Recognize the failure
    from 'apt-get install piuparts-depends-dummy.deb'.
  * known_problems/problems_and_no_force_error.conf: Recognize the apt 1.1
    message on attempted removal of essential packages.
  * master-bin/detect_piuparts_issues: Recognize more cases of full disks.

 -- Holger Levsen <holger@debian.org>  Wed, 25 Jan 2017 13:19:30 +0100

# For older changelog entries, run 'apt-get changelog piuparts-master'
