[Piuparts-devel] [Git][debian/piuparts][develop] 19 commits: p-s: catch IOError while creating tarball
Holger Levsen
gitlab at salsa.debian.org
Thu Feb 14 11:30:58 GMT 2019
Holger Levsen pushed to branch develop at Debian / piuparts
Commits:
b28b7ca4 by Andreas Beckmann at 2019-02-14T11:30:34Z
p-s: catch IOError while creating tarball
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
9ff0d4bc by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: use --warn-on-others for [sid-strict] only
installing a package in the same run as its dependencies exposes more bugs
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
f0f9fa13 by Andreas Beckmann at 2019-02-14T11:30:34Z
introduce scripts-multi-distro-upgrade
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
61ddc48b by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf.anbe: use scripts-multi-distro-upgrade
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
52292d90 by Andreas Beckmann at 2019-02-14T11:30:34Z
p: reinstall packages that were downgraded to match the reference chroot
'disappering files' are infrequently seen with partial distros (experimental,
backports) if the partial distro contains packages in the reference chroot
apt/dpkg seem to do a suboptial job in some cases involving Breaks/Replaces
and downgrades: the old version of package downgrade-me *may* get unpacked
before package remove-me (which Breaks+Replaces the old version of
downgrade-me) gets removed, thus losing files to remove-me
reinstalling downgrade-me afterwards will recover these lost files
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
84163446 by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [buster-security]
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
15f6530f by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [buster-pu]
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
bb2f2f05 by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [buster-proposed] (disabled)
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
58a43ad3 by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [buster2proposed]
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
6b412c01 by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [sid-broken-symlinks]
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
8e1f764f by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [stretch2Xbuster]
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
f3780e1e by Andreas Beckmann at 2019-02-14T11:30:34Z
p.conf: add [stretch2Xbuster-rcmd]
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
f839b38e by Andreas Beckmann at 2019-02-14T11:30:34Z
add piuparts-{master,slave}-from-git-deps metapackages
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
cb60e736 by Andreas Beckmann at 2019-02-14T11:30:34Z
refactor handling of packages that are uninstallable in lenny
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
d265f148 by Andreas Beckmann at 2019-02-14T11:30:34Z
refactor handling of packages that are uninstallable in squeeze
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
240be3b8 by Andreas Beckmann at 2019-02-14T11:30:34Z
refactor handling of packages that are uninstallable in wheezy
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
6ca92892 by Andreas Beckmann at 2019-02-14T11:30:35Z
refactor handling of packages that are uninstallable in jessie
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
28b6b276 by Andreas Beckmann at 2019-02-14T11:30:35Z
p: use print() function for commented prints, too
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
ee1a1df0 by Andreas Beckmann at 2019-02-14T11:30:35Z
piuparts-master: add Depends: python-setproctitle
Signed-off-by: Andreas Beckmann <anbe at debian.org>
Signed-off-by: Holger Levsen <holger at layer-acht.org>
- - - - -
8 changed files:
- + custom-scripts/scripts-multi-distro-upgrade/post_distupgrade_base_cleanup_multi-distro-upgrade
- custom-scripts/scripts/is_testable_uninstallable
- debian/changelog
- debian/control
- instances/piuparts.conf-template.pejacevic
- instances/piuparts.conf.anbe
- piuparts-slave.py
- piuparts.py
Changes:
=====================================
custom-scripts/scripts-multi-distro-upgrade/post_distupgrade_base_cleanup_multi-distro-upgrade
=====================================
@@ -0,0 +1,15 @@
+#!/bin/sh
+set -e
+
+# Only while creating the reference chroot.
+test "$PIUPARTS_PHASE" = "" || exit 0
+
+
+if [ "$PIUPARTS_DISTRIBUTION" = "buster" ] || \
+ [ "$PIUPARTS_DISTRIBUTION" = "buster-proposed" ] ; then
+
+ if [ -d /etc/init ]; then
+ rmdir --ignore-fail-on-non-empty -v /etc/init
+ fi
+
+fi
=====================================
custom-scripts/scripts/is_testable_uninstallable
=====================================
@@ -45,6 +45,105 @@ skip_distupgrade()
# we usually skip the failing initial install, too, since that is
# *not a bug* in the package.
+
+if [ "${PIUPARTS_DISTRIBUTION}" = "lenny" ]; then
+
+ case ${PIUPARTS_OBJECTS%%=*} in
+ blootbot)
+ skip_distupgrade "#502753: fails to install: prompts without using debconf"
+ ;;
+ distributed-net)
+ skip_distupgrade "#655922: noninteractive install: postinst loops infinitely"
+ ;;
+ dnscache-run)
+ skip_distupgrade "#664848: breaks dns resolution in chroot"
+ ;;
+ libpils0|\
+ libpils-dev|\
+ libstonith0|\
+ libstonith-dev)
+ skip_distupgrade "#702055: transitional packages uninstallable in lenny"
+ ;;
+ mhc)
+ skip_distupgrade "#696231: fails to install: emacs-package-install failure"
+ ;;
+ multex-bin)
+ skip_distupgrade "#668791: fails to install: The format file of 'multex' is NOT built successfully."
+ ;;
+ python-milter|\
+ spf-milter-python)
+ skip_always "python-milter contains virus signatures that may get blocked by the firewall"
+ ;;
+ runit-run)
+ skip_distupgrade "#542157: fails to install"
+ ;;
+ sun-java5-doc|\
+ sun-java6-doc)
+ skip_distupgrade "#709967: fails to install: download location no longer available"
+ ;;
+ trn)
+ skip_distupgrade "fails to install: prompts without using debconf"
+ ;;
+ ttf-root-installer)
+ skip_distupgrade "#678807: fails to install: ftp:// download location disappeared"
+ ;;
+ esac
+
+fi
+
+if [ "${PIUPARTS_DISTRIBUTION}" = "squeeze" ]; then
+
+ case ${PIUPARTS_OBJECTS%%=*} in
+ distributed-net)
+ skip_distupgrade "#655922: noninteractive install: postinst loops infinitely"
+ ;;
+ firmware-b43-lpphy-installer)
+ skip_distupgrade "#623703: download location no longer available"
+ ;;
+ fossology|\
+ fossology-agents|\
+ fossology-agents-single|\
+ fossology-scheduler|\
+ fossology-web|\
+ fossology-web-single)
+ # removed after squeeze
+ skip_distupgrade "#595593: fails to install"
+ ;;
+ mini-buildd-bld|\
+ mini-buildd-rep)
+ skip_distupgrade "#632955, #656746: time limit exceeded during install"
+ fail_test "#632955, #656746: time limit exceeded during install"
+ ;;
+ esac
+
+fi
+
+if [ "${PIUPARTS_DISTRIBUTION}" = "wheezy" ]; then
+
+ case ${PIUPARTS_OBJECTS%%=*} in
+ firmware-b43-lpphy-installer)
+ skip_distupgrade "#623703: download location no longer available"
+ ;;
+ nautilus-dropbox)
+ skip_distupgrade "#770402: downloads awfully slow, hangs during installation"
+ ;;
+ esac
+
+fi
+
+if [ "${PIUPARTS_DISTRIBUTION}" = "jessie" ]; then
+
+ case ${PIUPARTS_OBJECTS%%=*} in
+ steam)
+ skip_distupgrade "#772598: cannot preseed licence acceptance"
+ ;;
+ susv4)
+ skip_distupgrade "#900882: download location no longer available"
+ ;;
+ esac
+
+fi
+
case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
acgvision-agent at squeeze)
# removed after squeeze
@@ -55,9 +154,6 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
skip_distupgrade "arch:all package no longer installable in stretch/i386"
fi
;;
- blootbot at lenny)
- skip_distupgrade "#502753: fails to install: prompts without using debconf"
- ;;
bugzilla3 at lenny)
# fixed in squeeze, removed after squeeze, excluded from squeeze-lts
skip_distupgrade "was excluded from squeeze-lts"
@@ -75,13 +171,6 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
# removed after lenny
skip_distupgrade "#523770: must use invoke-rc.d"
;;
- distributed-net at lenny|\
- distributed-net at squeeze)
- skip_distupgrade "#655922: noninteractive install: postinst loops infinitely"
- ;;
- dnscache-run at lenny)
- skip_distupgrade "#664848: breaks dns resolution in chroot"
- ;;
docbookwiki at lenny)
# removed after lenny
skip_distupgrade "unconditionally uses mysql-client during purge"
@@ -102,15 +191,6 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
# removed after lenny
skip_distupgrade "#574220: package purge (after dependencies removal) fails"
;;
- fossology at squeeze|\
- fossology-agents at squeeze|\
- fossology-agents-single at squeeze|\
- fossology-scheduler at squeeze|\
- fossology-web at squeeze|\
- fossology-web-single at squeeze)
- # removed after squeeze
- skip_distupgrade "#595593: fails to install"
- ;;
gclcvs at squeeze)
# removed after squeeze
skip_distupgrade "modifies conffiles: /etc/default/gclcvs"
@@ -126,12 +206,6 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
# removed after lenny
skip_distupgrade "modifies conffiles: /etc/security/pam_rsa.conf"
;;
- libpils0 at lenny|\
- libpils-dev at lenny|\
- libstonith0 at lenny|\
- libstonith-dev at lenny)
- skip_distupgrade "#702055: transitional packages uninstallable in lenny"
- ;;
localepurge@*)
skip_distupgrade "requires a full --reinstall to restore disappeared files"
;;
@@ -143,20 +217,6 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
# removed after lenny
skip_distupgrade "#574228: package purge (after dependencies removal) fails"
;;
- mhc at lenny)
- skip_distupgrade "#696231: fails to install: emacs-package-install failure"
- ;;
- mini-buildd-bld at squeeze|\
- mini-buildd-rep at squeeze)
- skip_distupgrade "#632955, #656746: time limit exceeded during install"
- fail_test "#632955, #656746: time limit exceeded during install"
- ;;
- multex-bin at lenny)
- skip_distupgrade "#668791: fails to install: The format file of 'multex' is NOT built successfully."
- ;;
- nautilus-dropbox at wheezy)
- skip_distupgrade "#770402: downloads awfully slow, hangs during installation"
- ;;
nessusd at lenny|\
harden-remoteaudit at lenny)
# removed after lenny
@@ -176,10 +236,6 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
# removed after squeeze
skip_distupgrade "#698533: modifies a shipped file: /usr/share/poker-web/currency_one.php"
;;
- python-milter at lenny|\
- spf-milter-python at lenny)
- skip_always "virus signatures in python-milter may trigger the firewall"
- ;;
python-poker-stats at squeeze)
# removed after squeeze
skip_distupgrade "#608646: cronjob exits with error after package removal"
@@ -192,28 +248,12 @@ case ${PIUPARTS_OBJECTS%%=*}@${PIUPARTS_DISTRIBUTION} in
# removed after squeeze
skip_distupgrade "fails to purge: rt3.8-rtfm.postrm: ucf: not found"
;;
- runit-run at lenny)
- skip_distupgrade "#542157: fails to install"
- ;;
sdic-eijiro at lenny)
skip_distupgrade "requires a dictionary CD"
;;
sdic-eijiro@*)
skip_always "requires a dictionary CD"
;;
- steam at jessie)
- skip_distupgrade "#772598: cannot preseed licence acceptance"
- ;;
- sun-java5-doc at lenny|\
- sun-java6-doc at lenny)
- skip_distupgrade "#709967: fails to install: download location no longer available"
- ;;
- trn at lenny)
- skip_distupgrade "fails to install: prompts without using debconf"
- ;;
- ttf-root-installer at lenny)
- skip_always "fails to install: download location disappeared"
- ;;
usrmerge@*)
skip_always "performs piuparts-unfriendy filesystem layout changes"
;;
=====================================
debian/changelog
=====================================
@@ -1,9 +1,29 @@
piuparts (0.98) UNRELEASED; urgency=medium
+ [ Holger Levsen ]
* piuparts-reports.py: add link to states graph for each suite.
* instances/piuparts.conf-template.pejacevic: increase sid-nodoc's
precedence.
+ [ Andreas Beckmann ]
+ * piuparts.py:
+ - If packages were downgraded to restore the reference chroot state
+ reinstall the downgraded-to version again to recover potentially lost
+ files in case of bad interactions of Breaks/Replaces with downgrading.
+ * piuparts.conf:
+ - Use --warn-on-others for [sid-strict] only.
+ - Add sections [buster-security], [buster-pu] and [buster2proposed].
+ - Add sections [stretch2Xbuster] and [stretch2Xbuster-rcmd].
+ - Add section [sid-broken-symlinks], failing on broken symlinks
+ * piuparts-slave.py:
+ - Catch IOError while creating tarballs, will be retried later.
+ * scripts/is_testable_uninstallable:
+ - Refactor handling of known uninstallable packages.
+ * scripts-multi-distro-upgrade/: New custom scripts for distupgrade tests
+ spanning a series of distros.
+ * Add metapackages piuparts-{master,slave}-from-git-deps to ease running
+ piuparts-master and piuparts-slave instances from git.
+
-- Holger Levsen <holger at debian.org> Mon, 11 Feb 2019 12:55:50 +0100
piuparts (0.97) unstable; urgency=medium
=====================================
debian/control
=====================================
@@ -32,6 +32,7 @@ Package: piuparts
Architecture: all
Depends:
piuparts-common (= ${binary:Version}),
+# keep this list in sync with piuparts-slave-from-git-deps
debootstrap (>= 1.0.89~),
debsums (>= 2.2.2~),
lsb-release,
@@ -62,9 +63,11 @@ Built-Using: ${misc:Built-Using}
Depends:
piuparts-common (>= ${source:Version}),
piuparts-common (<< ${source:Version}+),
+# keep this list in sync with piuparts-master-from-git-deps
adduser,
openssh-server,
python-debianbts,
+ python-setproctitle,
tango-icon-theme,
xz-utils,
python-yaml,
@@ -90,11 +93,42 @@ Description: piuparts master components
operate. It also contains piuparts-report to generate web pages with the
testing results as well as documentation.
+Package: piuparts-master-from-git-deps
+Architecture: all
+Depends:
+ git,
+# this list is synced from piuparts-master
+ adduser,
+ openssh-server,
+ python-debianbts,
+ python-setproctitle,
+ tango-icon-theme,
+ xz-utils,
+ python-yaml,
+ python (>= 2.7),
+# selected packages from piuparts-master Recommends
+ apache2 | httpd,
+ python-rpy2,
+# this list is synced from piuparts-common
+ python-apt,
+ python-distro-info,
+ python-lzma,
+ ${misc:Depends},
+Description: dependencies for running piuparts master from git
+ piuparts is meant as a quality assurance tool for people who create .deb
+ packages to test them before they upload them to the Debian package archive.
+ A master/slave piuparts installation is used for testing complete archives
+ as it is done on https://piuparts.debian.org/.
+ .
+ This metapackage provides all the dependencies needed for running a
+ piuparts-master instance (including piuparts-report etc.) from git.
+
Package: piuparts-slave
Architecture: all
Depends:
piuparts (= ${binary:Version}),
piuparts-common (= ${binary:Version}),
+# keep this list in sync with piuparts-slave-from-git-deps
adduser,
openssh-client,
screen,
@@ -113,9 +147,41 @@ Description: piuparts slave components
This package provides the piuparts slave components, which need a piuparts
master to operate. See the documentation in the piuparts-master package.
+Package: piuparts-slave-from-git-deps
+Architecture: all
+Depends:
+ git,
+# this list is synced from piuparts-slave
+ adduser,
+ openssh-client,
+ screen,
+ sudo,
+ python (>= 2.7),
+# this list is synced from piuparts
+ debootstrap (>= 1.0.89~),
+ debsums (>= 2.2.2~),
+ lsb-release,
+ lsof,
+ mount,
+ python-debian,
+# this list is synced from piuparts-common
+ python-apt,
+ python-distro-info,
+ python-lzma,
+ ${misc:Depends},
+Description: dependencies for running piuparts slave from git
+ piuparts is meant as a quality assurance tool for people who create .deb
+ packages to test them before they upload them to the Debian package archive.
+ A master/slave piuparts installation is used for testing complete archives
+ as it is done on https://piuparts.debian.org/.
+ .
+ This metapackage provides all the dependencies needed for running a
+ piuparts-slave instance from git.
+
Package: piuparts-common
Architecture: all
Depends:
+# keep this list in sync with piuparts-{master,slave}-from-git-deps
python-apt,
python-distro-info,
python-lzma,
=====================================
instances/piuparts.conf-template.pejacevic
=====================================
@@ -1,8 +1,6 @@
[DEFAULT]
# these are needed always
flags-base =
-# restrict to problems in the package being tested
- --warn-on-others
# default exceptions
--scriptsdir /etc/piuparts/scripts
# pejacevic's slaves are doing everything relevant on a ramdisk anyway
@@ -18,6 +16,8 @@ flags-default =
# like default flags, but failing on leftover files
flags-leftovers =
%(flags-base)s
+# restrict to problems in the package being tested
+ --warn-on-others
# perform some additional cleanup
--scriptsdir /etc/piuparts/scripts-leftovers
@@ -104,6 +104,46 @@ flags-start-lenny =
# and removing a shell would remove its entry from /etc/shells
-i /etc/shells
+# common flags for testing for broken symlinks
+flags-broken-symlinks =
+ %(flags-default)s
+ --fail-on-broken-symlinks
+ --install-recommends
+ --scriptsdir /etc/piuparts/scripts-broken-symlinks
+# --fake-essential-packages libjs-sphinxdoc
+# ignore intentionally broken symlinks
+ -i :/usr/lib/libcxx/test/std/experimental/filesystem/Inputs/static_test_env/bad_symlink
+ -i :/usr/share/gocode/src/github.com/Masterminds/glide/testdata/path/x/vendor
+ -i :/usr/share/gocode/src/github.com/constabulary/gb/internal/fileutils/_testdata/copyfile/a/rick
+ -i :/usr/share/gocode/src/github.com/hashicorp/atlas-go/archive/test-fixtures/archive-symlink/link/link
+ -i :/usr/share/gocode/src/github.com/prometheus/procfs/fixtures/26231/exe
+ -i :/usr/share/gocode/src/github.com/prometheus/procfs/fixtures/26231/ns/mnt
+ -i :/usr/share/gocode/src/github.com/prometheus/procfs/fixtures/26231/ns/net
+ -i :/usr/share/gocode/src/github.com/prometheus/procfs/fixtures/26232/cwd
+ -i :/usr/share/gocode/src/github.com/prometheus/procfs/fixtures/26232/root
+# ignore broken symlinks
+ -i :/etc/systemd/system/display-manager.service
+# civicrm-common, #857601, wontfix, /usr/share/civicrm/packages/OpenFlashChart/open-flash-chart.swf -> ../../../../local/open-flash-chart.swf
+ -i :/usr/share/civicrm/packages/OpenFlashChart/open-flash-chart.swf
+# musescore-common, #910145, wontfix, /usr/share/mscore-2.3/sound/{sf2,sfz} -> ../../sounds/{sf2,sfz}
+ -i :/usr/share/mscore-2.3/sound/sf2
+ -i :/usr/share/mscore-2.3/sound/sfz
+ -i :/usr/share/mscore-3.0/sound/sf2
+ -i :/usr/share/mscore-3.0/sound/sfz
+# mender-client, #915680, /var/lib/mender -> /data/mender
+ -i :/var/lib/mender
+# ignore broken symlinks (patterns)
+ -I :/etc/.*/supervise
+ -I /usr/include/python2\.7_d/.*\.h
+ -I /usr/include/python3\..dm/.*\.h
+ -I /usr/include/python3\..dm/internal
+ -I :/usr/lib/jvm/java-.*-openjdk-.*/src\.zip
+ -I :/usr/share/doc/kde/HTML/.*/common
+ -I :/usr/share/man/man1/(.*-)?python.*-config\.1\.gz
+# ignore broken symlinks (third party game data)
+ -I :/usr/lib/openjk/JediAcademy/base/assets.\.pk3
+ -I :/usr/lib/rtcw/main/.*\.(cfg|pk3)
+
[global]
basetgz-sections =
@@ -120,13 +160,20 @@ sections =
sid
sid-strict
sid-nodoc
+ sid-broken-symlinks
testing2sid
stable2sid
stable22sid
buster
buster-rcmd
+ buster-security
+ buster-pu
+# buster-proposed
+ buster2proposed
stretch2buster
+ stretch2Xbuster
stretch2buster-rcmd
+ stretch2Xbuster-rcmd
stretch2bpo2buster
stretch2bpo
stretch
@@ -322,6 +369,15 @@ piuparts-flags =
distro = sid
+[sid-broken-symlinks]
+precedence = 9
+description = + Failing on broken symlinks.
+json-sections = none
+piuparts-flags =
+ %(flags-broken-symlinks)s
+distro = sid
+
+
[testing2sid]
precedence = 2
piuparts-flags =
@@ -394,6 +450,49 @@ piuparts-flags =
distro = buster
+[buster-security]
+precedence = 2
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-buster)s
+ %(flags-end-buster)s
+depends-sections = buster
+distro = buster/updates
+
+
+[buster-pu]
+precedence = 3
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-buster)s
+ %(flags-end-buster)s
+depends-sections = buster
+distro = buster-proposed-updates
+
+
+[buster-proposed]
+precedence = 3
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-buster)s
+ %(flags-end-buster)s
+distro = buster-proposed
+
+
+[buster2proposed]
+precedence = 3
+json-sections = none
+piuparts-flags =
+ %(flags-default)s
+ %(flags-start-buster)s
+ %(flags-end-buster)s
+distro = buster
+upgrade-test-distros = buster buster-proposed
+
+
[stretch2buster]
precedence = 4
json-sections = none
@@ -405,6 +504,20 @@ distro = stretch
upgrade-test-distros = stretch buster
+[stretch2Xbuster]
+precedence = 5
+json-sections = none
+description = + Testing two-stage upgrades.
+piuparts-flags =
+ --upgrade-before-dist-upgrade
+ %(flags-default)s
+ %(flags-start-stretch)s
+ %(flags-end-buster)s
+distro = stretch
+upgrade-test-distros = stretch buster
+exclude-known-problems = packages_have_been_kept_back_error.conf packages_have_been_kept_back_issue.conf
+
+
[stretch2buster-rcmd]
precedence = 5
json-sections = none
@@ -418,6 +531,21 @@ distro = stretch
upgrade-test-distros = stretch buster
+[stretch2Xbuster-rcmd]
+precedence = 6
+json-sections = none
+description = + Testing two-stage upgrades with --install-recommends.
+piuparts-flags =
+ --install-recommends
+ --upgrade-before-dist-upgrade
+ %(flags-default)s
+ %(flags-start-stretch)s
+ %(flags-end-buster)s
+distro = stretch
+upgrade-test-distros = stretch buster
+exclude-known-problems = packages_have_been_kept_back_error.conf packages_have_been_kept_back_issue.conf
+
+
[stretch2bpo2buster]
precedence = 5
json-sections = none
=====================================
instances/piuparts.conf.anbe
=====================================
@@ -4,7 +4,6 @@
[DEFAULT]
flags-base =
- --warn-on-others
--no-eatmydata
--scriptsdir /etc/piuparts/scripts
--allow-database
@@ -13,6 +12,7 @@ flags-default =
%(flags-base)s
--warn-on-leftovers-after-purge
flags-leftovers =
+ --warn-on-others
%(flags-base)s
--scriptsdir /etc/piuparts/scripts-leftovers
@@ -2225,6 +2225,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-lenny)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = amd64
area = main
components = main
@@ -2240,6 +2241,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-lenny)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = lenny222testing/main lenny222testing/non-free
arch = amd64
area = contrib
@@ -2253,6 +2255,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-lenny)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = lenny222testing/main lenny222testing/contrib
arch = amd64
area = non-free
@@ -2267,6 +2270,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-lenny)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = i386
setarch = linux32
area = main
@@ -2283,6 +2287,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-lenny)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = lenny222testing_i386/main lenny222testing_i386/non-free
arch = i386
setarch = linux32
@@ -2297,6 +2302,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-lenny)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = lenny222testing_i386/main lenny222testing_i386/contrib
arch = i386
setarch = linux32
@@ -2623,6 +2629,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-squeeze)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = amd64
area = main
components = main
@@ -2636,6 +2643,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-squeeze)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = squeeze222testing/main squeeze222testing/non-free
arch = amd64
area = contrib
@@ -2649,6 +2657,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-squeeze)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = squeeze222testing/main squeeze222testing/contrib
arch = amd64
area = non-free
@@ -2663,6 +2672,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-squeeze)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = i386
setarch = linux32
area = main
@@ -2677,6 +2687,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-squeeze)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = squeeze222testing_i386/main squeeze222testing_i386/non-free
arch = i386
setarch = linux32
@@ -2691,6 +2702,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-squeeze)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = squeeze222testing_i386/main squeeze222testing_i386/contrib
arch = i386
setarch = linux32
@@ -3110,6 +3122,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-wheezy)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = amd64
area = main
components = main
@@ -3123,6 +3136,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-wheezy)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = wheezy222testing/main wheezy222testing/non-free
arch = amd64
area = contrib
@@ -3136,6 +3150,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-wheezy)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = wheezy222testing/main wheezy222testing/contrib
arch = amd64
area = non-free
@@ -3150,6 +3165,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-wheezy)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = i386
setarch = linux32
area = main
@@ -3164,6 +3180,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-wheezy)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = wheezy222testing_i386/main wheezy222testing_i386/non-free
arch = i386
setarch = linux32
@@ -3178,6 +3195,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-wheezy)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = wheezy222testing_i386/main wheezy222testing_i386/contrib
arch = i386
setarch = linux32
@@ -3701,6 +3719,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-jessie)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = amd64
area = main
components = main
@@ -3714,6 +3733,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-jessie)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = jessie222testing/main jessie222testing/non-free
arch = amd64
area = contrib
@@ -3727,6 +3747,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-jessie)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = jessie222testing/main jessie222testing/contrib
arch = amd64
area = non-free
@@ -3741,6 +3762,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-jessie)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
arch = i386
setarch = linux32
area = main
@@ -3755,6 +3777,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-jessie)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = jessie222testing_i386/main jessie222testing_i386/non-free
arch = i386
setarch = linux32
@@ -3769,6 +3792,7 @@ piuparts-flags =
%(flags-default)s
%(flags-start-jessie)s
%(flags-end-testing)s
+ --scriptsdir /etc/piuparts/scripts-multi-distro-upgrade
depends-sections = jessie222testing_i386/main jessie222testing_i386/contrib
arch = i386
setarch = linux32
=====================================
piuparts-slave.py
=====================================
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
#
# Copyright 2005 Lars Wirzenius (liw at iki.fi)
-# Copyright © 2011-2017 Andreas Beckmann (anbe at debian.org)
+# Copyright © 2011-2019 Andreas Beckmann (anbe at debian.org)
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@@ -919,17 +919,22 @@ def create_chroot(config, tarball, distro):
time.gmtime()))
output.write("Executing: " + command2string(command) + "\n\n")
logging.debug("Executing: " + command2string(command))
- p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- for line in p.stdout:
- output.write(line)
- logging.debug(">> " + line.rstrip())
- p.wait()
- output.write(time.strftime("\nEnd: %Y-%m-%d %H:%M:%S %Z\n",
- time.gmtime()))
- if os.path.exists(tarball + ".new"):
- os.rename(tarball + ".new", tarball)
- else:
- logging.error("Tarball creation failed, see %s" % output_name)
+ try:
+ p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ for line in p.stdout:
+ output.write(line)
+ logging.debug(">> " + line.rstrip())
+ p.wait()
+ output.write(time.strftime("\nEnd: %Y-%m-%d %H:%M:%S %Z\n",
+ time.gmtime()))
+ if os.path.exists(tarball + ".new"):
+ os.rename(tarball + ".new", tarball)
+ else:
+ logging.error("Tarball creation failed, see %s" % output_name)
+ except IOError:
+ output.write(time.strftime("\nFAIL: %Y-%m-%d %H:%M:%S %Z\n",
+ time.gmtime()))
+ logging.error("Tarball creation failed with IOError")
def create_file(filename, contents):
=====================================
piuparts.py
=====================================
@@ -3,7 +3,7 @@
#
# Copyright 2005 Lars Wirzenius (liw at iki.fi)
# Copyright © 2007-2018 Holger Levsen (holger at layer-acht.org)
-# Copyright © 2010-2018 Andreas Beckmann (anbe at debian.org)
+# Copyright © 2010-2019 Andreas Beckmann (anbe at debian.org)
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@@ -672,7 +672,7 @@ def split_path(pathname):
parts = []
while pathname:
(head, tail) = os.path.split(pathname)
- # print "split '%s' => '%s' + '%s'" % (pathname, head, tail)
+ # print("split '%s' => '%s' + '%s'" % (pathname, head, tail))
if tail:
parts.append(tail)
elif not head:
@@ -697,18 +697,18 @@ def canonicalize_path(root, pathname, report_links=False):
one for each symlink encountered.
"""
- # print "\nCANONICALIZE %s %s" % (root, pathname)
+ # print("\nCANONICALIZE %s %s" % (root, pathname))
links = []
seen = []
parts = split_path(pathname)
- # print "PARTS ", list(reversed(parts))
+ # print("PARTS ", list(reversed(parts)))
path = "/"
while parts:
tag = "\n".join(parts + [path])
- # print "TEST '%s' + " % path, list(reversed(parts))
+ # print("TEST '%s' + " % path, list(reversed(parts)))
if tag in seen or len(seen) > 1024:
fullpath = os.path.join(path, *reversed(parts))
- # print "LOOP %s" % fullpath
+ # print("LOOP %s" % fullpath)
path = fullpath
logging.error("ELOOP: Too many symbolic links in '%s'" % path)
break
@@ -724,14 +724,14 @@ def canonicalize_path(root, pathname, report_links=False):
path = "/"
elif os.path.islink(rootedpath):
target = os.readlink(rootedpath)
- # print "LINK to '%s'" % target
+ # print("LINK to '%s'" % target)
links.append((newpath, target))
if os.path.isabs(target):
path = "/"
parts.extend(split_path(target))
else:
path = newpath
- # print "FINAL '%s'" % path
+ # print("FINAL '%s'" % path)
if report_links:
return links
return path
@@ -747,7 +747,7 @@ def is_broken_symlink(root, dirpath, filename):
# The symlink chain, if any, has now been resolved. Does the target
# exist?
- # print "EXISTS ", pathname, os.path.exists(pathname)
+ # print("EXISTS ", pathname, os.path.exists(pathname))
return not os.path.exists(pathname)
@@ -1561,6 +1561,10 @@ class Chroot:
self.apt_get_install(to_remove=all_to_remove,
to_install=version_qualified,
flags=["--no-install-recommends", "--force-yes"])
+ # reinstall potentially downgraded packages, they may have
+ # missing files in case of unfortunate Breaks+Replaces timing
+ self.apt_get_install(to_install=version_qualified,
+ flags=["--no-install-recommends", "--reinstall"])
else:
self.remove_packages(all_to_remove)
View it on GitLab: https://salsa.debian.org/debian/piuparts/compare/4ff7394a9f2c40072bfad31c8aa44171cf74223a...ee1a1df0513a9a14ec402fc28ff6f6a36ce9e52d
--
View it on GitLab: https://salsa.debian.org/debian/piuparts/compare/4ff7394a9f2c40072bfad31c8aa44171cf74223a...ee1a1df0513a9a14ec402fc28ff6f6a36ce9e52d
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/piuparts-devel/attachments/20190214/8a8fe303/attachment-0001.html>
More information about the Piuparts-devel
mailing list