Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian.org@packages.debian.org
Usertags: pu
Hi,
We'd like to update piuparts with the following changes in buster, fixing a
bunch of rather important bugs (as well as one trivial wishlist bug and a
trivial normal bug), including one for buster=stable (which missed the buster
relase because 1.0.1 was not accepted).
piuparts (1.0.0+deb10u1) buster; urgency=medium
.
* Happy 26th birthday, Debian! And many thanks to all the contributors!
.
[ Andreas Beckmann ]
* piuparts.py:
- Run pre_remove scripts before computing packages to be removed.
- Fix spurious failure to remove packages with names ending with '+'.
- Add '--max-command-output-size' option to allow overriding the default
of 8 MB for debugging runs.
* piuparts-slave.py:
- Generate separate tarball names for --merged-usr chroots.
* detect_well_known_errors.py:
- process untestable logs.
* Makefile: use gzip -n for reproducibility.
* piuparts.conf, distros.conf: Update for buster release.
* custom-scripts: some updates for buster. If custom-scripts are used, it's
probably better to use piuparts from bpo.
.
[ Holger Levsen ]
* Cherry-picking the above.
The diffstat to 1.0.0 in buster is:
$ debdiff piuparts_1.0.0.dsc piuparts_1.0.0+deb10u1.dsc | diffstat
.gitignore | 3 +
Makefile | 8 ++--
conf/distros.conf | 8 ++--
custom-scripts/scripts/post_distupgrade_exceptions | 1
custom-scripts/scripts/post_setup_minimize | 2 -
custom-scripts/scripts/pre_distupgrade_zz_database-server | 7 ++--
debian/.gitignore | 5 ++
debian/changelog | 24 ++++++++++++++
instances/piuparts.conf-template.pejacevic | 4 --
instances/piuparts.conf.anbe | 7 ----
master-bin/detect_well_known_errors.py | 2 -
piuparts-slave.py | 3 +
piuparts.1.txt | 4 ++
piuparts.py | 22 ++++++++----
piupartslib/conf.py | 6 ++-
15 files changed, 73 insertions(+), 33 deletions(-)
The full diff is attached.
Thanks for your work on buster!
--
cheers,
Holger
-------------------------------------------------------------------------------
holger@(debian|reproducible-builds|layer-acht).org
PGP fingerprint: B8BF 5413 7B09 D35C F026 FE9D 091A B856 069A AA1C
diff -Nru piuparts-1.0.0/conf/distros.conf piuparts-1.0.0+deb10u1/conf/distros.conf
--- piuparts-1.0.0/conf/distros.conf 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/conf/distros.conf 2019-08-16 15:05:52.000000000 +0200
@@ -176,19 +176,19 @@
# alias
[oldoldstable]
-distribution = wheezy
+distribution = jessie
# alias
[oldstable]
-distribution = jessie
+distribution = stretch
# alias
[stable]
-distribution = stretch
+distribution = buster
# alias
[testing]
-distribution = buster
+distribution = bullseye
# It's also possible to have "virtual" entries by setting uri to
diff -Nru piuparts-1.0.0/custom-scripts/scripts/post_distupgrade_exceptions piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_distupgrade_exceptions
--- piuparts-1.0.0/custom-scripts/scripts/post_distupgrade_exceptions 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_distupgrade_exceptions 2019-08-16 15:21:58.000000000 +0200
@@ -100,7 +100,6 @@
fi
if [ "$PIUPARTS_DISTRIBUTION" = "buster" ] || \
- [ "$PIUPARTS_DISTRIBUTION" = "sid" -a "$PIUPARTS_DISTRIBUTION_PREV" = "stretch" ]; then
# libc-bin only upgrades pristine /etc/nsswitch.conf
if grep -q '^passwd:.*compat' /etc/nsswitch.conf ; then
diff -Nru piuparts-1.0.0/custom-scripts/scripts/post_setup_minimize piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_setup_minimize
--- piuparts-1.0.0/custom-scripts/scripts/post_setup_minimize 2018-04-22 04:30:08.000000000 +0200
+++ piuparts-1.0.0+deb10u1/custom-scripts/scripts/post_setup_minimize 2019-08-16 15:05:52.000000000 +0200
@@ -8,7 +8,7 @@
jessie)
dpkg --purge gcc-4.8-base
;;
- sid|stretch)
+ stretch)
dpkg --purge lsb-base tzdata
;;
esac
diff -Nru piuparts-1.0.0/custom-scripts/scripts/pre_distupgrade_zz_database-server piuparts-1.0.0+deb10u1/custom-scripts/scripts/pre_distupgrade_zz_database-server
--- piuparts-1.0.0/custom-scripts/scripts/pre_distupgrade_zz_database-server 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/custom-scripts/scripts/pre_distupgrade_zz_database-server 2019-08-16 15:21:58.000000000 +0200
@@ -56,7 +56,7 @@
CANDIDATES="$CANDIDATES mariadb-server-10.3"
CANDIDATES="$CANDIDATES postgresql-11"
;;
- sid)
+ bullseye|sid)
CANDIDATES="$CANDIDATES mariadb-server-10.3"
CANDIDATES="$CANDIDATES postgresql-11"
;;
@@ -164,7 +164,10 @@
stretch:buster)
upgrade_pg_cluster 9.6 11
;;
- stretch:sid)
+ buster*:bullseye)
+ upgrade_pg_cluster 9.6 11
+ ;;
+ buster:sid)
upgrade_pg_cluster 9.6 11
;;
esac
diff -Nru piuparts-1.0.0/debian/changelog piuparts-1.0.0+deb10u1/debian/changelog
--- piuparts-1.0.0/debian/changelog 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/debian/changelog 2019-08-16 15:21:58.000000000 +0200
@@ -1,3 +1,27 @@
+piuparts (1.0.0+deb10u1) buster; urgency=medium
+
+ * Happy 26th birthday, Debian! And many thanks to all the contributors!
+
+ [ Andreas Beckmann ]
+ * piuparts.py:
+ - Add '--max-command-output-size' option to allow overriding the default
+ of 8 MB for debugging runs.
+ - Run pre_remove scripts before computing packages to be removed.
+ - Fix spurious failure to remove packages with names ending with '+'.
+ * piuparts-slave.py:
+ - Generate separate tarball names for --merged-usr chroots.
+ * detect_well_known_errors.py:
+ - process untestable logs.
+ * Makefile: use gzip -n for reproducibility.
+ * piuparts.conf, distros.conf: Update for buster release.
+ * custom-scripts: some updates for buster. If custom-scripts are used, it's
+ probably better to use piuparts from bpo.
+
+ [ Holger Levsen ]
+ * Cherry-picking the above.
+
+ -- Holger Levsen <holger@debian.org> Fri, 16 Aug 2019 15:21:58 +0200
+
piuparts (1.0.0) unstable; urgency=medium
[ David Steele ]
diff -Nru piuparts-1.0.0/debian/.gitignore piuparts-1.0.0+deb10u1/debian/.gitignore
--- piuparts-1.0.0/debian/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ piuparts-1.0.0+deb10u1/debian/.gitignore 2018-04-22 03:24:26.000000000 +0200
@@ -0,0 +1,5 @@
+files
+piuparts.debhelper.log
+piuparts.postinst.debhelper
+piuparts.prerm.debhelper
+piuparts.substvars
diff -Nru piuparts-1.0.0/.gitignore piuparts-1.0.0+deb10u1/.gitignore
--- piuparts-1.0.0/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ piuparts-1.0.0+deb10u1/.gitignore 2019-05-04 21:49:33.000000000 +0200
@@ -0,0 +1,3 @@
+*.pyc
+/deps.png
+/debiman-piuparts-distill/debiman-piuparts-distill
diff -Nru piuparts-1.0.0/instances/piuparts.conf.anbe piuparts-1.0.0+deb10u1/instances/piuparts.conf.anbe
--- piuparts-1.0.0/instances/piuparts.conf.anbe 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/instances/piuparts.conf.anbe 2019-08-16 15:21:58.000000000 +0200
@@ -420,7 +420,7 @@
lenny_i386/non-free
lenny2squeeze/non-free
#
-testing-suite = buster
+testing-suite = bullseye
#
json-sections = none
#
@@ -500,7 +500,6 @@
arch = amd64
area = main
components = main
-chroot-tgz = %(upgrade-test-distros)s-merged-usr_%(arch)s.tgz
# 60*60*24*2
max-tgz-age = 172800
@@ -514,7 +513,6 @@
setarch = linux32
area = main
components = main
-chroot-tgz = %(upgrade-test-distros)s-merged-usr_%(arch)s.tgz
# 60*60*24*2
max-tgz-age = 172800
@@ -938,7 +936,6 @@
arch = amd64
area = main
components = main
-chroot-tgz = %(distro)s-merged-usr_%(arch)s.tgz
[sid-merged-usr/contrib]
precedence = 45
@@ -949,7 +946,6 @@
distro = sid
arch = amd64
area = contrib
-chroot-tgz = %(distro)s-merged-usr_%(arch)s.tgz
[sid-merged-usr/non-free]
precedence = 45
@@ -960,7 +956,6 @@
distro = sid
arch = amd64
area = non-free
-chroot-tgz = %(distro)s-merged-usr_%(arch)s.tgz
[sid-bl/main]
diff -Nru piuparts-1.0.0/instances/piuparts.conf-template.pejacevic piuparts-1.0.0+deb10u1/instances/piuparts.conf-template.pejacevic
--- piuparts-1.0.0/instances/piuparts.conf-template.pejacevic 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/instances/piuparts.conf-template.pejacevic 2019-08-16 15:21:58.000000000 +0200
@@ -232,7 +232,7 @@
squeeze2squeeze-lts
squeeze
lenny2squeeze
-testing-suite = buster
+testing-suite = bullseye
mirror = @MIRROR@
master-host = pejacevic.debian.org
master-user = piupartsm
@@ -287,7 +287,6 @@
%(flags-merged-usr)s
distro = None
upgrade-test-distros = sid
-chroot-tgz = %(upgrade-test-distros)s-merged-usr_@ARCH@.tgz
# 3 days (60*60*24*3)
max-tgz-age = 259200
@@ -408,7 +407,6 @@
piuparts-flags =
%(flags-merged-usr)s
distro = sid
-chroot-tgz = %(distro)s-merged-usr_@ARCH@.tgz
[sid-broken-symlinks]
diff -Nru piuparts-1.0.0/Makefile piuparts-1.0.0+deb10u1/Makefile
--- piuparts-1.0.0/Makefile 2019-02-11 12:54:17.000000000 +0100
+++ piuparts-1.0.0+deb10u1/Makefile 2019-08-16 14:54:19.000000000 +0200
@@ -90,12 +90,12 @@
install -m 0644 README.txt README.html README_server.txt README_server.html docbook-xsl.css $(DESTDIR)$(docdir)/
install -d $(DESTDIR)$(man1dir)
install -m 0644 piuparts.1 $(DESTDIR)$(man1dir)/
+ gzip -9fn $(DESTDIR)$(man1dir)/piuparts.1
install -d $(DESTDIR)$(man8dir)
install -m 0644 piuparts_slave_run.8 piuparts_slave_join.8 piuparts_slave_stop.8 $(DESTDIR)$(man8dir)/
- gzip -9f $(DESTDIR)$(man1dir)/piuparts.1
- gzip -9f $(DESTDIR)$(man8dir)/piuparts_slave_run.8
- gzip -9f $(DESTDIR)$(man8dir)/piuparts_slave_join.8
- gzip -9f $(DESTDIR)$(man8dir)/piuparts_slave_stop.8
+ gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_run.8
+ gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_join.8
+ gzip -9fn $(DESTDIR)$(man8dir)/piuparts_slave_stop.8
install -m 0644 piuparts.1.html $(DESTDIR)$(docdir)/
install-conf: build-stamp
diff -Nru piuparts-1.0.0/master-bin/detect_well_known_errors.py piuparts-1.0.0+deb10u1/master-bin/detect_well_known_errors.py
--- piuparts-1.0.0/master-bin/detect_well_known_errors.py 2018-12-09 22:27:32.000000000 +0100
+++ piuparts-1.0.0+deb10u1/master-bin/detect_well_known_errors.py 2019-08-16 14:46:07.000000000 +0200
@@ -35,7 +35,7 @@
CONFIG_FILE = "/etc/piuparts/piuparts.conf"
-KPR_DIRS = ('pass', 'bugged', 'affected', 'fail')
+KPR_DIRS = ('pass', 'bugged', 'affected', 'fail', 'untestable')
class Busy(Exception):
diff -Nru piuparts-1.0.0/piuparts.1.txt piuparts-1.0.0+deb10u1/piuparts.1.txt
--- piuparts-1.0.0/piuparts.1.txt 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/piuparts.1.txt 2019-08-16 14:54:19.000000000 +0200
@@ -173,6 +173,10 @@
*--log-level*='level'::
Display messages from loglevel LEVEL, possible values are: error, info, dump, debug. The default is dump.
+*--max-command-output-size*='size'::
+ Set the maximum permitted command output to _size_ (in MB) for debugging
+ runs exceeding the default of 8 MB.
+
*--merged-usr*::
When using debootstrap to create the chroot, use the '--merged-usr' option
to create a chroot with /bin, /lib, /sbin being symlinks to their /usr
diff -Nru piuparts-1.0.0/piupartslib/conf.py piuparts-1.0.0+deb10u1/piupartslib/conf.py
--- piuparts-1.0.0/piupartslib/conf.py 2018-04-22 04:30:08.000000000 +0200
+++ piuparts-1.0.0+deb10u1/piupartslib/conf.py 2019-08-16 14:42:20.000000000 +0200
@@ -246,12 +246,14 @@
c))
return lines
- def get_basetgz(self, distro, arch):
+ def get_basetgz(self, distro, arch, merged_usr=False):
# look for the first base distribution
for d in self._expand_depends(distro):
if self.get(d, "depends"):
next # skip partial distro
- return "%s_%s.tar.gz" % (self.get_distribution(d), arch)
+ return "%s%s_%s.tar.gz" % (self.get_distribution(d),
+ "-merged-usr" if merged_usr else "",
+ arch)
return None
diff -Nru piuparts-1.0.0/piuparts.py piuparts-1.0.0+deb10u1/piuparts.py
--- piuparts-1.0.0/piuparts.py 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/piuparts.py 2019-08-16 15:21:58.000000000 +0200
@@ -1506,7 +1506,7 @@
def remove_packages(self, packages, ignore_errors=False):
"""Remove packages in a chroot."""
if packages:
- self.run(["apt-get", "remove"] + unqualify(packages), ignore_errors=ignore_errors)
+ self.run(["apt-get", "remove"] + ["%s-" % x if x.endswith('+') else x for x in unqualify(packages)], ignore_errors=ignore_errors)
def purge_packages(self, packages, ignore_errors=False):
"""Purge packages in a chroot."""
@@ -1522,6 +1522,13 @@
logging.debug(" reference: %s" % " ".join(reference_chroot_state["avail_md5"]))
logging.debug(" current : %s" % " ".join(self.avail_md5_history))
+ self.list_paths_with_symlinks()
+ self.check_debsums()
+ self.check_adequate(packages_qualified)
+
+ # Run custom scripts before removing all packages.
+ self.run_scripts("pre_remove")
+
selections = reference_chroot_state["selections"]
packages = unqualify(packages_qualified)
@@ -1548,13 +1555,6 @@
all_to_install += [(name, version) for name, (state, version) in nondeps.iteritems()
if state == "install"]
- self.list_paths_with_symlinks()
- self.check_debsums()
- self.check_adequate(packages_qualified)
-
- # Run custom scripts before removing all packages.
- self.run_scripts("pre_remove")
-
# First remove all packages (and reinstall missing ones).
self.remove_packages(deps_to_remove)
if all_to_install:
@@ -2973,6 +2973,10 @@
default="dump",
help="Displays messages from LEVEL level, possible values are: error, info, dump, debug. The default is dump.")
+ parser.add_option("--max-command-output-size", action="store", metavar='SIZE',
+ default=0,
+ help="Set maximum permitted command output to SIZE (in MB).")
+
(opts, args) = parser.parse_args()
# expand combined options
@@ -2987,6 +2991,8 @@
settings.tmpdir = opts.tmpdir
settings.keep_env = opts.keep_env
settings.shell_on_error = opts.shell_on_error
+ if opts.max_command_output_size:
+ settings.max_command_output_size = int(opts.max_command_output_size) * 1024 * 1024;
settings.single_changes_list = opts.single_changes_list
settings.single_packages = opts.single_packages
settings.args_are_package_files = not opts.apt
diff -Nru piuparts-1.0.0/piuparts-slave.py piuparts-1.0.0+deb10u1/piuparts-slave.py
--- piuparts-1.0.0/piuparts-slave.py 2019-05-04 21:37:32.000000000 +0200
+++ piuparts-1.0.0+deb10u1/piuparts-slave.py 2019-08-16 15:21:58.000000000 +0200
@@ -411,7 +411,8 @@
def _get_tarball(self):
basetgz = self._config["chroot-tgz"] or \
self._distro_config.get_basetgz(self._config.get_start_distro(),
- self._config.get_arch())
+ self._config.get_arch(),
+ merged_usr="--merged-usr" in self._config["piuparts-flags"])
return os.path.join(self._config["basetgz-directory"], basetgz)
def _check_tarball(self):
Attachment:
signature.asc
Description: PGP signature